西西河

主题:【原创】一个程序员的自白 -- 荆棘探兴

共:💬101 🌺130 新:
全看分页树展 · 主题 跟帖
家园 工作经验不同呀.

一直都是负责技术队伍的组建,并且培养研发团队的工作.以上所写都是工作中的体会.也许经历不一样,感受就不一样.

不同的学校会有不同的经历。比如计算机系,有的是从自动化系分出去的,有的是从电子系或者数学系分出去的,这就决定了这个系的师资力量的构成。老家伙有他们的常项,比如汇编或者电路,但是很多的老家伙们确实对于如何编写高级语言十分陌生,特别是那些教本科生的。

而由这些老师所教的毕业生的水平是有目共睹的。对于公司而言,所有的新毕业生(包括硕士生)在一年之内(一般是三个月集中培训期,然后进入项目组)都只是培养对象,而不是为公司创造价值的员工。对他们的评价就是资质如何,可培养或者不可培养。

关于那个算术运算的程序。公司里大部分的程序员都不可能独立完成这个程序,甚至根本就没有对这种程序的认识。这不是一个小算法的事,如果你试着自己独立做,就会知道了,比如用C,里面涉及到指针,多层嵌套,迭代甚至会用到递归.按照道理来说,本科学完数据结构和编译原理之后,这个东西就能做出来,但从多少年经历来看,似乎没有几个人能够达到要求.

实际上在选拔好的苗子时,也不会用这个程序,测试是要分出高低的,如果谁都不会做那还分什么。

应用程序员和系统程序员的分法,你可以在《thinking in C++》中看到.当然这种理论估计也不是谁发明的,而是对很多公司已经存在的现象的一种总结.

系统程序员可不是指那些纯技术不懂业务的人.公司的开发平台是在对业务经验抽象总结的基础上完成的,让不懂业务的人来做,那是搞笑的事情.系统程序员是具有十分丰富行业经验,同时又对计算机技术十分精通的人.上面的算法就是用来测试一个人的计算机编程的能力的.

在实际的公司技术体系中,两年以内的程序员是不分体系的,一般都称为工程师,而两年之后,就开始分技术经理和项目经理体系.不论是技术经理还是项目经理,都具有业务经验.项目经理负责项目的实施,技术经理负责产品的研发,在大的项目中,除了项目经理,还会设系统架构师,系统架构师就是由技术经理担当.

有两年到三年项目经验,业务知识就会达到一定水平,可以担当项目经理,而技术经理则是指在实际工作中公认的编程水平高的人中选择.公司的开发平台或工具则是由技术经理中那些不但编程好,而且对于系统和算法都有相当精通程度的人来担当.这些人实际上就是我前面曾经提到的超级员工.

软件的门槛没有降低,只是现在能完成的功能比以前要强大多了,也简单很多了。举个例子,十几年前,在DOS时代,你写个菜单程序就算很牛,但是现在,这个根本就不需要你写,因为所有的开发工具都带,这就是工具的威力。但是程序员要了解的东西反而多了,以前也许只要懂基本语法就行了,就现在的工作经历而言,JAVA所要了解的东西比之C要多很多.

取消数据结构这门课,就是所谓的“软件蓝领”这一概念给闹的。好的国家不学,去学印度,学印度也就罢了,不去全面了解别人的软件工程经验,只去羡慕别人的最低层程序员是除了根据设计编代码外其它什么都不会因此成本也十分便宜的“软件蓝领”。然后,学了几年,才发现,还是被阿三给涮了。

全看分页树展 · 主题 跟帖


有趣有益,互惠互利;开阔视野,博采众长。
虚拟的网络,真实的人。天南地北客,相逢皆朋友

Copyright © cchere 西西河