首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

3.0版《编程生手真言》已移到http://www.hellogameprogramming.net/

2012-06-30 
3.0版《编程新手真言》已移到http://www.hellogameprogramming.net/下载地址见文尾?Minlearn’s software dev

3.0版《编程新手真言》已移到http://www.hellogameprogramming.net/

下载地址见文尾

?

Minlearn’s software development self - teaching book:

?

工程眼光看编程: 理论(问题,编程,设计)与实践(能力养成,开发实训) 2.0th

?

Writen By Minlearn

????? ???????????????????????? Frequently Updated @ http://www.xisofts.com/


?

版本历史:

?

版本

详情

日期

Ver1

* 确定了最初的目录安排,完成了开头部分的前几节;

* 发布本书180多页的一个初稿《Any Program》;

20080603

Ver2

* 开始写作language,os,os programming理论部分,写了300多页;

* 重整理了部分内容使整书变得更为可读;

200904-08

Ver2.1

* 增加部分内容;

* 整合部分目录,并确定了最终的目录安排,即同时讲解从问题到人的全部过程,做到概要而不失广泛;

20090810

Ver2.2

* 开始写作实践部分,都是.net语言及.net类库实践。

* 增加了对应代码;

* 发布《编程新手真言》

200908-12

Ver3.0

*决定搬上xisofts.com

-20110101

?

声明与敬语

本书及附书资料分别基于GNU Free Documentation License, Version 1.2 Or Any Later[1]和GNU FSF发布,你可以自由修改并发布本文档和使用附书资源,但不得当它用..

丛书里有少数文章是我很早不成熟的时候写的.为了不必要的澄清与反澄清,本人只推荐此套丛书作为参考书使用,如果您先前没能看到这条警告,请在不小心使用本丛书后去看医生.

另外,本丛书有一些部分和章节摘自网上,,我在行文中极力对他们的出处和作者进行了提及,感谢他们为丛书带来的一切,如有遗漏或错误,请告知我..

最后,如果你不是从http://www.xisofts.com/ 上下载的本丛书,那么可能你得到的不是最新版本,请同样去看医生..

?

?

大师的禅语并非一无所指,一切只是你还没有拿到那个水晶球.而很多问题,仅仅只是没在语言上被道破过.

By Chenyi

眼前这本书充分体现了作者的所思、所想、所感,他用自己独特的眼光审视着计算机技术的世界,也用自己独特的思维逻辑对技术进行解读,并用自己特有的,呵呵,偶尔带有“四个逗号 = 一个逗号”这样的语言风格,进行着自己的诠释.创新是一种美,独立思考也是:)

学习是一件因人而异的事情,因为每个人的生活经历、教育背景、年龄、认知模型等等,都是不尽相同的,也就是每个人所处的“维度[2]”不同,而作者有一种“建立更高层抽象的能力”,用一种特有的方法尝试着给大家建立一个学习计算机的、相对高层的构架,这样,可以在一定程度上突破个人的“维度”,使大家从与周围事物建立联系开始,一步一步的走向计算机的世界.不识庐山真面目,只缘身在此山中.确实的,在学习技术的过程中,横看成岭侧成峰,远近高低各不同,但是作者却尽力想让这高低或是远近都不同的山峰,能在我们面前呈现出一种规律、共性来,这是难能可贵的,因为这个架构的过程对思维的要求是比较高的:)

哲语有云,动身的时候到了,有的人去生,有的人去死,只有上帝知道,于是这个问题被回归到“ To Be ? Or Not To Be ”的问题,是生,是死,只有上帝知道.

但是,人类对真理的探索和对知识的追求,却从来没有因为“生死”的维度而停止过,是的,一颗崇尚真理、探寻真理的海洋之心,将从来不会因为泰坦尼克号的沉沉而消沉,它将永远绽放在人们的心中,激励着我们向更广阔、更深髓的世界,一路前行、风雨无阻:)

在这个意义上,鼓励作者的写作和思路,也是对我们自身追寻真理的一种鼓励、一种回路.是为一点小感想:)与作者分享!!

By Minlearn

对思想的认识和界定是重要的!!因为我们需要一个知识体系才能不致于困惑!!(而身处编程界,纷繁复杂的术语和概念足以让一个初学者却步)

我抓住了哪些转瞬就在我脑中消失的思想,,因为它们远比一切成书的东西都让我感到它的珍贵!而更玄的是,他们竟然真的能够被文字描述出来!!这整本书就是科普式的教学.它力求呈现出一个精致化了的术语集.以使初学者能真正理解至关重要的那些概念.

正如Chenyi所说,每个人都是某个维度上的人,有他自己的年龄和认知,具体到某个历史时刻,我们的人生阅历已然被格定,而这决定了你接受新事物的能力和眼界,人生在世,已经不可能脱离某种信念(也异或某种阻力和障碍)而活,当我们开始学习编程,我们永远都是用外行的眼光来看待它的,而当你占在巨人的肩膀上成为一个专家之后,你就能够用全局的眼光去看待曾经陌生的知识,你看问题的维度发生了质变,此时你不再是个学习者,而会开始审视你学过的东西并学会产生你自己的认知,但,那毕竟是要过的第二道槛,而初学者就是那些连第一道槛都难以过去的群体.

这其中最大的拦路虎就是对术语的理解,很多书并不切合初学者的实际,从他们的角度呈现一条清楚可见的理解路线,而只是一些大部头衍生下的反复抄袭品.

给你一个术语或道理,这个道理有什么用?没用,是的,因为要给你一个情景,一些台阶,你才能理解它,仅仅让你去学一个知识,而知识和众多其它知识之间相似而微有不同,如果不给出它被产生时的历史和它所处的架构[3],那么我们就会迅速迷惑,更遑论运用它,因为我们不是泛化主义者,形而上学者[4],我们需要一种与自身相联系点去理解它,我们只是生活的人,有自己的维度和局限,我们不是高高在上的学院派高手.

一个高手必定是与常人有不同的思想级深层的东西和他自己特有的体会,因为他也走过初学者才走过来的路经历过与所有人一样的迷惑,可是往往人们都忘了归纳那些至关重要的经验,那会是什么经验呢,那些是不会出现在市面上任何描述具体技术细节的书里的思想级的东西!!如果你苦于找不到那样的一本书,那么本书正是尝试记录那些秘诀的一本,本书展开的过程,正是为初学者呈现一条清楚的理解路线的过程[5],在这条路线中,所有的编程相关的概念都自然地围绕着“抽象”逐次展开,请紧记本书的意义重点在这里.

如果真的想当高手,请你不要错过这本书里任何一个字眼!!如果你是高手,这本书一定与你内心深处的某些想法偶合.

?????? 本书过后,再辅于其它教科书(比如本丛书的第二本和第三本书)你应该会具备编程的基于抽象能力和用C++,Python进行基本和高级的编程能力和编程理解能力.本书前半部分是对思想和认知的导论(第一部分),后半部分注重真实的代码控制能力的形成(第二部分尾).

书中错误再所难免,望不吝赐教!!

v????? 别怀疑,这正是一本同时可作为入门和进阶级的书(更偏重入门)!然而真正的高手和真正的初学者都将从中有所得.

?

v????? 你还在为学不懂大量术语而烦恼吗?如果你真有这种体会,那么你可能先要看这本书再看你正在看的C++,Python的书,因为你仅仅缺少一根主线, 而它是能让你少走很多弯路的拐棍

v????? 对架构的学习才是真正的学习,知识也有它的架构,然而在这本书内有架构也有细节(高手固然知道细节,然而高手也有精神空洞,因为你还需要懂得一些细节之外的知识系统的东西)! 当满目的书摆在你面前,请相信,你只需要那么一本,仅仅能让你知道这一切是怎么回事的不致以迷惑的那本.《编程新手真言》

感谢CCTV,感谢MTV,,噢,错了...

?

* 导读(Part I)

1.1.????? 什么是算法,平台,语言,及对应的编程

1.1.1.????? 对platform,C/C++,python,C/C++ programming,Python programming(第1,3,4章)部分的讲解

1.1.2.????? 对OS programming,high level user’s logic programming(第2,5章)部分的讲解

1.1.3.????? 对实路和能力养成部分的讲解

1.2.????? 本部分用到的图例

第一部分??? 计算机与通用计算机编程(问题,编程,设计)

第1章??? 平台与映射 : 冯氏系统,与面向系统的实现编程

1.1.????? 机器系统与实模式下的汇编

1.1.1.????? 图灵机与冯氏模型

1.1.2.????? CPU与内存地址

1.1.3.????? CPU的类型系统

1.1.4.????? CPU的指令系统与裸机会编

1.1.5.????? 对子系统和中断的支持

1.1.6.????? 第一种编程 : 编程中的(硬件)系统编程,OS内核的原型

1.1.7.????? (*)编程的三种结构:运行模型与语言模型,设计模型

1.2.????? 作为程序执行宿主的OS(上):存储管理,任务,IO

1.2.1.????? 保护模式

1.2.1.????? 软件系统的出现

1.2.2.????? OS Kernel

1.2.3.????? 虚存管理与任务调度

1.2.4.????? IO

1.2.2.????? OS级的执行路径

1.3.????? 高级语言对于人的写法与表达逻辑的数据产生模式与代码产生模式: (系统实现语言C)

1.3.1.????? 高级语言与编译原理

1.3.2.????? 编译,编译语言与静态类型语言

1.3.3.????? (%%)语言的类型系统

1.3.4.????? 语言的代码系统,抽象代码系统

1.3.5.????? 过程,函数,过程范式与结构化

1.3.6.????? (*)形象理解C语言中的一些至关重要的二义性

1.3.7.????? C的标准库与Gnu Libc

1.4.????? 通用算法与数据结构: 加进了对组织内存中的数据与对问题固有解法的编程

1.4.1.????? 算法+数据结构的本质

1.4.2.????? 函数增长与算法复杂性分析

1.4.3.????? 算法的设计模式 : 算法设计方法

1.4.4.????? 数据类型和数据结构

1.4.5.????? 线性结构

1.4.6.????? 树结构

1.4.7.????? 图结构

1.4.8.????? 散列结构

1.4.9.????? 排序算法

1.4.10.??? 查找算法

1.5.????? low level system programming

1.5.1.????? 第二种编程 : low level implentment : 利用高级语言完成的第一种编程

1.5.2.????? 第三种编程 : 应用编程 low level IO Programming

1.5.3.????? low level schedule Programming

第2章??? 问题(1) : 初级系统开发(以原始的,未经显式抽象和设计的方式)

2.1.????? 作为程序执行宿主的OS(下):网络,界面

2.1.1.????? 其它OS子系统的职能(1) : 图形系统

2.1.2.????? 窗口系统与桌面环境

2.1.3.????? 其它OS子系统的职能(2) :网络系统

2.1.4.????? tcp/ip

2.2.????? 解决程序关于桌面系统模型的问题

2.2.1.????? 持久与数据库编程

2.2.2.????? gui programming

2.2.3.????? socket programming

2.2.4.????? (*)为什么这章不写更多? C还善于用来作什么编程?

2.3.????? API与复用

2.3.1.????? 如何更好地解决可复用问题及其它问题

第3章??? 高级平台与映射 : 虚拟机,抽象运行时,面向程序员的抽象编程

(*) 抽象

3.1.1.????? 再谈可复用

3.1.2.????? 什么是抽象,抽象是设计的一种高级形式

3.1.3.????? 系统编程与逻辑编程

3.2.????? 抽象了的运行时,整合了编译层与运行层的语言系统 : 虚拟机语言

3.2.1.????? Better C

3.2.2.?????? (*)虚拟机的实现

3.2.3.?????? (*)虚拟机是对OS执行功能的强化

3.2.4.????? Python Vm

3.3.????? (%%)抽象了的数据产生模式,代码产生模式:(C++,Python)

3.3.1.????? C++的UDT语义

3.3.2.????? Py的OO实现

3.3.3.????? (*)Py语言系统的c/py api扩展层次

3.4.????? 抽象了的语句产生模式之过程控制抽象 : 基于对象编程

3.4.1.????? 抽象冯氏开发中的数据与代码 : 从平铺,过程的代码到预置,类化的对象代码(ADT&UDT编程)

3.4.2.????? 模板与C++的基于对象和基于原型设计

3.5.????? 统一了的语句产生模式与类型产生模式和发展了的过程控制抽象:面向对象编程

3.5.1.????? OO与CLASS

3.5.2.????? Pure OOA与OOD

3.5.3.????? OO的缺点

3.6.????? C++与库

3.6.1.????? libstd++

3.6.2.????? stl

3.6.3.????? boost

3.7.????? (*)C++与桌面开发

3.7.1.?????? mfc : shipped with windows

3.7.2.?????? 第三方的解决方案:QT,Wxwidget,Win32GUI,MySQL,ACE

第4章??? 人 :语言内和语言外对高阶设计手段与应用方案的显式支持

(*) 设计

4.1.1.????? 软件工程与设计

4.1.2.????? 设计 : 当编程考虑进与人有关的那些东西时

4.2.????? 使用Advance OO技术的方式

4.2.1.????? 使用语言层的Interface : 抽象方法集

4.2.2.?????? 使用设计模式: 加进了对应用进行固有OOA,OOD的编程(OOA,OOD Patterns)

4.2.3.????? (%%)软件设计原则与设计模式问题

4.2.4.????? (%)使用C++的语言内模板的方式 : 参数化类型

4.2.5.????? 使用独立语言的二进制级构件的方式 : COM,IDL

4.3.????? 使用了语言和DSL为后台支撑应用的方式 :统一化应用方案,将编程逼到用户级的语义方式进行

4.3.1.????? 文本的语义:正规表达式

4.3.2.????? 文档的语义:XML

4.3.3.????? 文本识别的统一语义 : BNF

4.3.4.????? 数据分析,数据库设计

4.3.5.????? 其它更多……

4.4.????? 使用企业开发的方式 : 利用中间件技术淡化非业务逻辑

4.5.????? 使用辅助手段与工具的方式

4.6.????? 使用统一软件开发过程的方式 : 设计与方法论

第5章?????? 问题(2) : 基于平台上的一般应用问题,脱离平台的一般应用问题的开发,用户逻辑,以及以分布式为特征的企业开发,企业应用,Web开发问题(以加进了显式抽象和设计的方式)

5.1.????? (*)不光是高级系统问题,还是通用应用问题(C++的第2层)

5.1.1.????? 为什么只写这些?C++还善于用来作什么编程?

5.2.????? 企业级应用实现与开发(Java)

5.2.1.????? 企业开发

5.2.2.????? Web与SOA

5.2.3.????? 云计算

5.2.4.????? web?trend : 将桌面与web融合

第二部分??? 在SimpleWebOS下开发(实践和能力养成)

第1章??? .net基本类型,.net与数据结构,C#基本语法

1.1.????? .net基本类型

1.1.1.????? xx

1.2.????? .net与数据结构

1.2.1.????? xx

1.3.????? C# 过程式

1.3.1.????? xx

第2章??? .clr基本平台服务

2.1.????? io

2.1.1.????? xx

2.2.????? net

2.2.1.????? xx

2.3.????? threading

2.3.1.????? xx

第3章?????? clr高级平台服务,C#高级语法

3.1.????? clr 配置,分发支持

3.1.1.????? xx

3.2.????? clr 内置的组件服务

3.2.1.????? xx

3.3.????? clr多语言交互

3.3.1.????? xx

3.4.????? clr各种具体语言支持

3.4.1.????? xx

3.5.????? C# OO

3.5.1.????? xx

3.6.????? C# 其它高级语法手段

3.6.1.????? xx

第4章?????? C# 与设计模式,软件工程,工具使用

4.1.????? C# 与design patterns

4.1.1.????? xx

4.2.????? C# agile

4.2.1.????? xx

4.3.????? C# design tools

4.3.1.????? xx

第5章??? .net领域开发支持(偏重web开发)

5.1.????? .net text与文本语义regex

5.1.1.????? xx

5.2.????? .net data与数据库语义

5.2.1.????? xx

5.3.????? .net xml as shedule

5.3.1.????? xml as metadata

5.4.????? .net xml as metadata

5.4.1.????? xml as metadata

5.5.????? .net web 与web services

5.5.1.????? xx

5.6.????? .net 安全

5.6.1.????? xx

第6章?????? javascript

6.1.????? javascript as a embedded language

6.1.1.????? xx

第7章?????? web fronts

7.1.????? javascript与rwc:rich web clients 技术

7.1.1.????? xx

7.2.????? javascript与dom

7.2.1.????? xx

(#*)* 附录,结语及建议

1.1.????? 附录

1.1.1.????? 语言之争

1.1.2.????? Focus on web and webgame development on webos (with .net and javascript): 关于本书初衷

1.1.3.????? 更多一般性应用问题和一般性设计问题列举

1.1.4.????? 编程及CG,ai中的科学基础导读

1.1.5.????? 本书涉及到的概念列表

1.1.6.????? 分散在本书中的源码归类

1.1.7.????? 参考书籍和资料

1.2.????? 结语与建议

?

?


[1] 请参见Free Software Foundation的说明

[2]在本书第六章的开始可以找到对抽象和维度的解释

[3]这本书不但给你思想,而且给你对应的细节,整书中有大量珍贵入微的分析而不仅仅是从大架构着手.

[4]但是的确存在超前主义学说,只是为了创立一种学说而出现,后来才慢慢与实践相结合成为科学。

[5] 着重了对学习上方法论的讨论

?

?

?

?

下载地址:

?

编程新手真言

?

游戏编程新手真言?

热点排行