编程新手教学龙书:最小化学习编程

来源:互联网 发布:产品防伪码制作软件 编辑:程序博客网 时间:2024/05/20 03:47

关键字:新手学编程


编程新手教学龙书 : 最小化学习编程

By Minlearn
@ http://minlearn.shaolonglee.com/

新手学编程

新书学编程,第一件事怕的就是怕看不到编程的全貌,这种由未知带来的信息恐慌是很真实的,因为编程这个字眼,实际上并不能带给人们太多认识上的帮助,它直接带给人们的认识是某种语言和学习和软件的编制,然而,选择一门语言扎头猛学并非好的学习入口,实际上编程是如此之大每一个领域都是一个小世界存在多种方案,除非先道尽一切与此有关的东西否则这个问题会因为太多的准入者的言语论变得太多声音,恰恰巧在一个专家一本书的声音中我们恰恰甚至道不尽与某个语言选择相关的应用方案工程的全部所以我们还在讨论着(这绝对是个不大不小的“大”问题,比如语言的选型,无论是开发还是学习,一开始就难于再重来而这涉及众多),直到把它变成一门宗教。。编程的宗教,所以在学习中,我们一遍遍为纠缠一些非实质相关的问题,诸如“怎么样去学编程,C,C++之争,要不要学习J2EE,怎么展开设计”之类的问浪费时间,这些都是因为不能从具体应用和采取的具体方案这样的大角度去思考问题。这些对于初学者和入门一段时间的人都是平等发生的,而在实践的时候,他们又往往找不到足够详细的参考资料,埋没在互联网上的资料(他们大都非常优秀)需要重新整理。它们需要被整理加入缺失的至关重要的某些理论内容,以求得一个全面详细的,领域可查的,经过整理组织的理论+实践过程,换言之它们往往缺少一个完善的理论知识网与之搭配。来求得一个最佳实践的教学方式,而市面上一些对新出的API大力铺陈的书,它并不能教会人从上及下的思考。只会使我们变成工具小子。在实践和阅读一套稍微大型的源程序中,我们找不到一套标准,搞不清一套源码的类栈,为什么要出现这样的类逻辑使用了什么第三方组件,这些都是恰恰因为你从中学到的理论不到家,与实践缝隙过大。

从深入浅出到最小化学编程:大师的禅语并非一无所指,一切都是因为你还没拿到那个水晶球,而很多问题,仅仅未在语言层被道破

深入浅出学理论:

基于这些,我一直以为,知识的框架是重要的,,只要先完成对编程科学体系中最基本的认识落实化,只有孰识了一个从平台原理到软件工程的整个网络,新手才能够全面地看待整个编程构架;而只有站在这个高度,才能不致于横看山岭侧成峰,才能找清路,使读者在know what的基础上how,真正具备独立解决至关重要的那些障碍的能力,,才能最终能做到深入浅出,始于编程而跳出编程 ,换言之,它是理清编程学的主线和基本常识性的东西,在这些基本正确的全局观下,才能迅速确定正确的理论枝节主线区别和实践的方向 。继而具备真正的实践能力理解大型应用逻辑,独立公平地看待业界出现的各种现行的方案和不足。

1)先理论后实践的直线式学习路线科不科学?行得通吗?

组织得当定位好所谓理论并不意味着高深的学说,你听过科普就知道了,虽然学习强调实践先行,但在学习上宜先分开再结合,但如果理论先行指导得正,直线式学习反而比先实践来得更好。一切都是因为市面上少那样一套东西存在而已。先完成必要理论的学习,才是一个良性持续过程。

而且这还符合深入浅出的学习过程,虽然人们正常的学习规则是边理论边实践,但如果能在实践和学习之初能够让人们有这些基本常识和框架观,那么这个作用无疑是巨大的。因为站在科学的高度理论使他们把握编程的全貌,这种提倡从上而下的科普式的教学效果和理论体系与降低学习曲线有着紧密的对应,深入学习理论再学习尾端的简单应用开发,才能使初学者觉得编程简单,就达到了深入浅出,就达到了最佳实践。而且这适用于无论有无基础的情况,如果用它来进行理论学习和实践前教育,将会事半功倍。较扎头实践受挫的过程能更好培养读者的实践能力(爱好或者工作)。

2)我们需要什么样的理论?怎么样才讲得清编程?怎么样串联这些理论才能达到教学的最大化?

把一件事办成功最有效的策略只是分开把每一步都办好,只有计算机科学,抽象科学,平台,语言,方案,应用,,这些字眼,,才是我们要在意识里要首先存在的。因为它指出高于编程的那个世界的所有主体,指出了人们在铺设编程的总过程中提出的工程元素,只有在这里看待编程,带来的认识才最具有指导性和无争议的全面意义,确定了这些并力求组织讲好,比如将艺术部分和人的部分,与机器和科学部分分开,比如系统开发是一种强计算机科学的东西,应用编程更多偏接口艺术。能讲清编程的唯一途径是将其自然部分即科学部分和人为部分即艺术部分分开。能做到此那么一门理论书就成功了一半。

而这些应该还是最简单的科普知识,大众编程应是科普前提下的艺术活动,如果教学中能提出抽象这个软件本质的大件并与其它元素建立联系并加于渲染,如分开科学的数据类型(及冯氏原理类型机制)与算法。与,是封装(数据结构)的抽象。还比如设计—就是人类对本来软件过程的干预这些方面,这就能迅速就为初学者分开了数据结构与软件抽象的区别,了解设计是一种本来与编程无关的额外加入工程。而软件抽象就是编程初学者要接确到的第一个概念,设计是高级编程始终要涉及到的解释很多东西都有用。这二条主线几乎是理论学习的总框架,整书正是在把握大框架的同时细化了对框架内部各重要知识网点之间的讲解与串联,择二,三个主体(人类掌握的复杂度最大限)对比而论,然后进行本质归纳对比揭示始终是本书的特色,特别是抽象和设计作为本书二大部分的前面部分讲了很多,做到了理论教学的最大化。


3)对仅是需要学会编程的实用主义新手来说,最全的开发教育过程要涵盖什么?最有价值的指导是哪些方面?

从深入浅出学编程到最小化学编程,本书给出了一条最精简捷径化同时又是最全面的理论体系。

第一,这其中广为争议的语言的选择问题,语言的选择可以是一条编程实践界的主线,因为它涉及到学习开发过程中的应用方案铺设,,产品如何适应人一系列问题,始于开发而终于开发,由此带来的讨论甚至可以深入到平台选择,语言机制支持,应用设计,设计方案范式的方方面面。只有先完成这些,才能带来基本正确的语言选择认识和实践。这本书至少清楚无缺地从大角度解释了这个问题。

与此相关的,你会学到整个编程和计算机科学的方方面面,对你现在和未来的成长都是至关重要的:宠统来说,如果仅是为了学会编程和最终学会编制APP,仅仅停留在谈编程及偏向应用编程,那么有1-3种编程分别代表3代语言和应用需要,即,1,系统实现者用接近机器和表意复杂的C来实现OS逻辑和部件,C语法复杂,程序运行在本地,2,CPP改进了C在AUI复用度不够的问题,语法更接近桌面程序开发者且相对简单(但CPP历史上集成过多是个例),引入的OO成为典范标准,程序也运行在本地,更多的脚本语言和高级应用语言也作为C的增强与CPP在这个领域分得一地。3,脚本和虚拟机语言开始转移阵地,不再在C系上增强及限制在某平台,而转为用软件语言系统和DSL的框架中间件解决问题,甚至出现多语言多语法的解决手法,DP这些通用设计手法和方法论。针对企业应用和WEB。

几代语言和开发需要的开发部署所在平台,及语言语法,API与组件机制,参与人员都不同,比如在一些配置领域,出现了RAD环境,脚本和前端工具,是一种微小的开发和配置式的开发,属于产品艺术不算编程。甚至应用方式也不一样。如WEB是BS的一种。b/s,c/s在分布式使用方式上都不同,无论如何,这一切经历了低往高的自然进化过程,始终是C和冯氏系统那套,都不是一个推倒一个的方式都是增强并存的,当然也存在过设计错设计,及对银弹的讨论,这一步一步以人类故意设计,在已有层面不断抽象的过程正是编程发展的特点和本质。

任何负责任的编程教学系统以上都要覆盖和提及,《最小化学编程》理论部分巧妙地对应了这些过程, 整个系列的亮点在于描绘了一个事事巨细的知识点框架,最佳理论的方式,和一套从根本上体现桌面编码和各个问题域的基础,有限,最小逻辑体系。以不同于市面上铺陈API的教程,办求做到如上所讲最精简,最实用,最连贯,最全面,最面向新手入阶。可同时用作职教理论核心,科学读本,甚至理论漫话。

这本书要达到什么效果?有什么与众不同之处。

综合起来,我力求建立的这样一套理论实践合一的知识体系(toppestconcepts),这本书主要的亮点在于构建了一个科学,事事巨细的知识点网络(top concepts)。完美地把理论与实践的字眼串连成以作为语言应用问题设计抽象重新整合过程历史的大网络并加以系统解释,特别是要将对语言的选择这个惯彻始终的问题展开,,,,这些都被做在了这本叫《最小化学编程》的wikis汇编中,这是一本教授新手级编程理论,cpp及qt,桌面和分布式应用开发实践的技术类书籍但远远不止定位于这些。更多请参阅汇编中的《关于本文集初衷-Focus on最小理论教学,最佳实践探索》,这基本是那个WIKI的简版,更多请参阅那里。

src: http://github.com/minlearn/mytechprogramming/

down the offline pdf: see http://mineportal.shalol.com:81/index.php/s/demos/download?path=%2F&files=bcxszy.pdf


原创粉丝点击