程序员要有工程师思维

尽管程序员有时被叫做软件开发工程师,但好多程序员其实名不符实。我这里说的程序员指的就是从事编程工作的人。

大学时一位老师给我们讲对日外包的情况,说日本人会把文档写得非常详细,连if分支都要写清楚,外包公司的程序员就照着文档来写代码,

这种程序员不能叫做软件开发工程师,叫代码工可能更合适。

而那位写出详细文档的家伙,才应该被叫做工程师。

这里的区分在于,工程师能解决问题。

工程师思维就是解决问题的思维。

在我看来,这种思维要比你记得住一百个函数的具体用法还能用记事本直接编程要重要的多。

对于一个初级程序员来说,当你被安排任务时,最好先想想这个任务到底是为了解决什么问题。

比如让你为用户数据按某条件加个排序,如果你直接开动,确实能完成任务,但你只是加了一个排序而已。

如果你先了解这个用户数据排序到底是为了做什么,那你完成任务后,解决的就是一个用户数据相关的问题。

当你解决了许多问题,积累了许多经验后,能解决更大更抽象的问题时,你就升级了。

这就叫经验的积累。

写一年的排序,并不叫做有一年经验。而解决一年的问题,才是积累了一年经验。

所以有些号称多年经验的程序员,你可能会发现他其实很水,因为他这么多年做的都是同一件事,顶多算一个熟练代码工而已。

有人说,程序员做到多少多少岁要么转管理,要么转行,否则赶不上那些年轻人。

对于年纪大的代码工来说,确实是这样。他们的性价比肯定不如年轻人。

而对于年纪大的软件工程师来说,无需跟年轻人比,因为两者做的根本不是同一件事。可能看上去都是在写代码,但是代码要做的事,则天差地别。