软件开发的能力体系及锻炼

(摘自《learn-with-open-source》,网址:http://www.teamhost.org/projects/learn-with-open-source/wiki/Start)

  软件开发的能力体系是怎样的?
  在很多领域,我们都可以用一个金字塔模型,来描述该领域的能力体系,在软件开发领域,同样如此。

  • 高 
    • 创造能力 
  • 中 
    • 逻辑能力 
    • 理解能力 
  • 低 
    • 基础知识 
    • 编程技能 
    • 领域知识 
  简单解释一下:
  低的三项,属于知识类。基础知识包括计算机、数学、算法、逻辑等等知识,这些知识,通过认真的学习书本教材,基本能够掌握。编程技能,往往是跟具体的语言相关的,当然,多学几门不同的语言,对于快速掌握一门新的语言,大有帮助。领域知识,则是与工作的具体方向有关,比如针对多媒体领域的编程,自然要熟悉图形、图形、声音等等的相关领域知识。针对企业级应用的开发,对于管理制度、财务、成本、仓储的东西,总得搞清楚才行。
  中与高的两项,属于超越编程局限的通用能力,不仅仅是软件开发上用得到,在各方面都非常需要这三类能力。逻辑能力,可以通过训练提高;理解能力,可以通过经验积累;而创造能力,的确比较难,有天赋的成分在其中。

  有哪些途径,可以锻炼这些能力?
  • 阅读与习题:找到一堆的经典教科书,狠狠的读,认真的把书里的习题都给做了,这样对于打下扎实的基础,将会有极大的帮助。 
  • 视频教程/ScreenCast:每次讲解一个主题,学习一下总会有收获,只是效率不高。 
  • PPT/Slide/PDF:这种属于某次技术会议上的演讲稿,如果能够配合视频看,效果还好些,否则通常会不知所与。 
  • Wiki:针对某个词条,某个特定的问题,会有相当清晰的解释,不过要看运气,有些词条的解释就非常粗略,甚至过时。 
  • Blog:在分享知识与经验的过程中,blog是很不错的载体,如果你能够找到的话。 
  • BBS:曾经是最主要的学习方式,很多人通过泡论坛来提高自己,不过说实话,效率很低,而且容易跑题。 
  • 问答社区(StackOverFlow/Quora):新兴的交流社区,在面临特定问题时,可以尝试搜索或提问。平时泡泡,努力回答别人的问题,也有助于自己的提高。 
  • 工作中的项目:当然,老板给你发工资,肯定希望你尽快完成,在压力之下,通常进步都会很快。只是这种进步也许是你无法选择的。 
  • QQ群:真的有人借助QQ群来学习吗? 
  • 开源项目/开源社区:当然,这个是最重要的,咱们下节详细说。 


你可能感兴趣的:(编程,工作,Blog,语言,bbs,图形)