很偶然的写了一篇博文“十八年开发经历小结”,本来打算只是简单回顾一下自己经历。结果没想到被CSDN放到了首页,反映也还可以,感兴趣的可以访问我在CSDN上的博客,点击这里,或者访问我在博客园上的博客,点击这里。既然我写的东西还有人愿意看,于是我就萌发了再写一个系列的文字的想法。从第一次在CSDN上获得帮助,第一次在CSDN上帮助别人,一直到现在,期间帮助和被帮助已经很多很多次了。我认为专利和知识产权是独占并被保护的,但是经验和知识是应该分享的。为了这十八年来的帮助与被帮助,为了我写的文字还有人愿意看,我想写出这个系列来,与各位同行分享自己的经验,共同进步。这个系列的内容主要来自个人的实际经历,我不想谈一些什么经典或者范例的东西。我觉得自己体会到的东西和同行分享才更有意义,也更具有实用价值。同时我相信写出这个系列的文字,也是我对自己经验的一个认真的回顾和归纳,这一定是很有裨益的。 作为本系列的第一篇,想谈谈程序员的学习问题。之所以第一个要谈的问题就是学习,是因为我觉得这个问题最重要,也是最让相当一部分程序员比较犯愁发憷的问题。本文如果能给这部分程序员带来一点帮助或者启发,那么目的就达到了。学习问题在那篇小结中写了一小段,这次可以相对较为详细的谈谈这个问题了。 既然要谈学习,那么首先需要明确一个问题,我们打算学什么?这里先对这个纷繁世界中的知识做一个分类: A.教材上的知识 这部分内容来自计算机专业的课程教材。也有可能会涉及一部分来自其他相关专业或者相关课程的内容。 B.编程语言 每一个程序员只有在会使用一门语言的情况下才有可能从事开发工作,所以学习并掌握一门语言是最低要求了。 C.SDK 光有一门语言是不够的,从事任何实际的软件开发都需要一个类库或者开发包才可以完成。比如C语言中的库函数,C#中的.NetFramework类库,Windows的API等等就属于这个范畴。 D.开发工具 以如今的情况来说,没有开发工具理论上也是可以开发软件的,但效率就是一个问题,所以掌握并使用一个开发工具完成开发任务应该也是一个最低要求。 E.领域知识 软件总有用户,于是开发这些用户使用的软件,那么程序员就需要了解用户所在行业的知识,至少需要知道一些基本的必须的知识。还有一部分的内容也划分为领域知识,比如从事Photoshop这类软件的开发那么图形相关的知识就必须了解一些,从事工控软件的开发,那么对控制方面的知识也要有所了解。 以上的分类是在本文中我对知识的理解,一个程序员知道这些知识后从事一个软件的开发应该是没有问题了。下面分别来讨论一下这些知识的学习问题。 |