软件开发相关知识体系的整理_第1页
软件开发相关知识体系的整理_第2页
软件开发相关知识体系的整理_第3页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、每隔一段时间,就会收到些类似的消息:怎么学好软件开发?我已经学完了 A,我接下来该学B还是C?其实这样的问题,真的是一言难复。如何学习,是一个很复杂的话题,尤其是眼下业内的技 术名词日新月异,乱花迷人眼,使得新人更加看不清。所以才激发了我关于“技术族谱”的 设想,本意就是想通过一个机制来理顺知识之间的关系,分享每个人的学习经验,新人借鉴 老人的学习路径,从而减少走弯路的现象。记得2007年的时候,一次团队内部开总结会,我在白板上随手画过一个开发相关知识的结 构图,当时还有团队成员拿相机拍下来,现在想想,也许对某些人有一定的指导意义,于是 今天整理了一下发出来,如下图所示:一些相关的解释:学校里

2、的课程没用吗?答:肯定有用。计算机专业的经典理论课,意义非凡:计算机组成原理、计算机体系结构、操作系统、编译 原理、数据结构。操作系统中的内存管理算法、进程调度算法、并发控制算法,都是非常经 典的,你会在很多其它地方发现这些算法的应用或者变体。编译原理有助于我们理解编程语 言是如何工作的,如何用范式来表达复杂的语法,编译原理中的状态机相关知识,也是开发 者手中的强大武器。数据结构就更不用说了,List,Map,Tree,是编程中广泛使用的。快餐式软件开发培训的问题何在?一个典型的快餐式培训班,先教java语言,然后教SSH,然后给个千篇一律的虚拟项目做一 下,最后号称培养出来一批“WEB开发”

3、程序员。我觉得,如果之前没有任何基础,仅靠 这样的培训,那么出来真的只能做非常程式化的工作。我一直提倡稳扎稳打,从下向上学起 这样的方式,缺点是不如容易出效果。所以从两个方向入手,一边学基础,一边学应用,互 相印证,也是不错的学习路径。软件开发的门槛在提高吗?我觉得是的,当然,我说的不包括hello world这样的示例程序的开发。虽然现在程序语言 比十年前强大很多,工具要好用很多,但要想写出一个有点意义的软件,需要了解的知识多 了很多,需要配置的环境复杂了很多。看看有多少初学者被java的ClassPath所困扰,您就 明白我说的意思了。开发不仅仅是学一门语言!开发的本质是用程序控制计算机做

4、一件事。基本上,任何有价值的程序都有内政和外交。内 政就是程序的处理流程、数据加工算法、并发控制。外交就是网络通信、IO、数据库访问, 以及通过各种协议和其它系统进行交互。很多知识,尤其是外交相关的知识,仅仅学习一门 语言是不够的。误区:很多人花大量精力关注最上层,比如:新的框架、新的工具、各种处理问题的技巧等 等。但偏偏这一部分的变化最快,您在这上面投入的精力保值能力最差。技术有很强的相似 性,比如,如果您真正掌握了 javascript,那么掌握Ext或者JQuery只是熟悉对方的编程习 惯和API而已,没必要为了这些新名词而疲于奔命。一家之言,欢迎拍砖或者交流。每隔一段时间,就会收到些类

5、似的消息:怎么学好软件开发?我已经学完了 A,我接下来该学B还是C?其实这样的问题,真的是一言难复。如何学习,是一个很复杂的话题,尤其是眼下业内的技 术名词日新月异,乱花迷人眼,使得新人更加看不清。所以才激发了我关于“技术族谱”的 设想,本意就是想通过一个机制来理顺知识之间的关系,分享每个人的学习经验,新人借鉴 老人的学习路径,从而减少走弯路的现象。记得2007年的时候,一次团队内部开总结会,我在白板上随手画过一个开发相关知识的结 构图,当时还有团队成员拿相机拍下来,现在想想,也许对某些人有一定的指导意义,于是 今天整理了一下发出来,如下图所示:一些相关的解释:学校里的课程没用吗?答:肯定有用

6、。计算机专业的经典理论课,意义非凡:计算机组成原理、计算机体系结构、操作系统、编译 原理、数据结构。操作系统中的内存管理算法、进程调度算法、并发控制算法,都是非常经 典的,你会在很多其它地方发现这些算法的应用或者变体。编译原理有助于我们理解编程语 言是如何工作的,如何用范式来表达复杂的语法,编译原理中的状态机相关知识,也是开发 者手中的强大武器。数据结构就更不用说了,List,Map,Tree,是编程中广泛使用的。快餐式软件开发培训的问题何在?一个典型的快餐式培训班,先教java语言,然后教SSH,然后给个千篇一律的虚拟项目做一 下,最后号称培养出来一批“WEB开发”程序员。我觉得,如果之前没

7、有任何基础,仅靠 这样的培训,那么出来真的只能做非常程式化的工作。我一直提倡稳扎稳打,从下向上学起 这样的方式,缺点是不如容易出效果。所以从两个方向入手,一边学基础,一边学应用,互 相印证,也是不错的学习路径。软件开发的门槛在提高吗?我觉得是的,当然,我说的不包括hello world这样的示例程序的开发。虽然现在程序语言 比十年前强大很多,工具要好用很多,但要想写出一个有点意义的软件,需要了解的知识多 了很多,需要配置的环境复杂了很多。看看有多少初学者被java的ClassPath所困扰,您就 明白我说的意思了。开发不仅仅是学一门语言!开发的本质是用程序控制计算机做一件事。基本上,任何有价值的程序都有内政和外交。内 政就是程序的处理流程、数据加工算法、并发控制。外交就是网络通信、IO、数据库访问, 以及通过各种协议和其它系统进行交互。很多知识,尤其是外交相关的知识,仅仅学习一门 语言是不够的。误区:很多人花大量精力关注最上层,比如:新的框架、新的工具、各种处理问题的技巧等 等。但偏偏这一部分的变化

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论