您的位置:首页 > 职场人生

码路指南:在博与专之间取得平衡

2014-01-20 00:00 1126 查看

 “博”与“专”上的迷失

假设说一个人的学习已经聚焦,并且学习的内容和自己实际参与的项目也相吻合,那么是不是就没有问题了?很不幸,答案仍然是否定的,在任何一个子领域里,仍然需要进一步去考虑“博”与“专”的均衡。

对于软件开发而言,设计是再常见不过,再简单不过的一个词了。可如果把视角拔高一点就会发现,单以设计而论仍然是一个不可穷尽的领域,我们可以快速扫描一下和设计相关的部分概念:

面向对象分析与设计

结构化分析与设计

模型驱动开发

契约式编程

面向方面的开发

基于组件的开发

元编程

有些时候方法论也会和设计牵扯到一起:

测试驱动开发

敏捷软件开发

如果感觉这个还不够多,那可以去Wiki上查编程的范式(平衡点时似乎有一种特例,钻研特定算法的人,从一开始就只往专的方向发展,并不会考虑其他。比如:钻研TTS的人,可能几十年如一日只要专注于TTS就完了。

至于具体选择那个方向,则要根据自身情形来定。总的原则是要以当下工作为根基,以实用为目的甄选各种知识,并追求平衡点。

大致上讲,期望做技术专家的更适合前一个方向,而期望做技术管理的则更适合后一类方向。

学习软件工程的时机与必要性

简单来讲越是没实践经验的人越不适合学习软件工程,越需要规划整体把握全局的时候越需要学习软件工程。

软件工程中覆盖的元素非常繁杂,可以有管理、流程、开发模型、估算、分析设计方法等。这无疑会把知识面扩展的很宽,一旦没有根底,就很容易变成纸上谈兵,夸夸其谈。

在众多软件相关的知识中,软件工程绝对是很特别的一个。很多人很鄙视软件工程,说:我一看到软件工程的书就直接略过;与之相对应,很多人很推崇软件工程,会花很大的心思去研究敏捷、CMMI等。

刚入职场的程序员大致上是讨厌软件工程的,因为这东西离自己的实践有点远,并且主要是添加束缚。但既然更加复杂纷繁的历史都可以总结出规律,忽视软件开发的内在规律无疑的对有志于成为管理者的人是不利的。

真要学习软件工程,不太适合从抽象层次很高的教科书开始,而适合从《代码大全》这样与实际关联比较紧密的书籍开始。

在国内软件工程的落地似乎始终困难,软件工程相关名词始终在不停的变换(ISO,CMMI,敏捷等),但实际能落地起作用的却不多,这最终导致了一种吊诡的局面:刚对一个绝望,就开始对新的一个报以希望,并在这两个简单的步骤上做无限循环。这种状况也许有其更深层次的原因,比如生存压力过于强大导致工程力量的长远价值被漠视,进而使方法论并不为解决现实问题而存在,而是为了证书而存在。很难据此就说软件工程毫无价值。

延伸阅读

此文章所在专题列表如下:

码路指南:缘起
码路指南:怎样才算是编程高手?
码路指南:程序员的几个职场发展方向
码路指南:为何你成不了编程高手?
码路指南:在博与专之间取得平衡
码路指南:别错过人生中学习的黄金时期
码路指南:物质驱动与兴趣驱动
码路指南:保持内心的青春与理想
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  程序员 修养