论普通程序员与架构师
为何一说程序员就是吃青春饭,各行各业按理不应该是呆的越久懂得经验越多吗?
为何时间带来的不是成就感,而是恐慌感,还有转型的困惑?
那几年的项目经验到底为程序员提供了什么?
为何程序员开发项目几年之后仍然成为不了架构师,仅仅是项目少的问题吗?
从项目经验到底得到了什么?
有一种程序员一直做底层开发,以实现一个一个具体的功能为傲,然后就称自己做过多少项目了。
而我,就是其中一员。我参与过2个中小型项目,除了架构和美工,整个网站都是我开发的,然后我就以为这是程序的全部了,开始自称有经验的开发者,感觉很骄傲。直到更年轻的程序员的出现,我发现自己没啥竞争力和优势,我已经比他们多学好好长时间啦,但是他们写的代码几乎和我差不多,我找不到比他们强很多的优点,有的也只是那些无聊的自尊感,因为底层开发都是过程式的,大家都这么想,所以都这么写。然后,我就开始怀疑了,我原来做的项目到底获得了什么,如果这么进行下去,吃青春饭的可不就是我嘛。我发现,是思想的问题。我以实现具体功能为傲,目光就盯着功能,整天面向过程式编程,尽管我用着纯面向对象思想的语言Java,或者C#,我的面对对象的思想没有一点的进步,抽象能力还是很差,全局大观能力还是没有。这意味着,我原来的项目经验大部分只是在浪费我的青春而已,如果我依然如此,我相信不久的将来,我会被更年轻的,有精力的,好学的,能加班的程序员所替代。
不得不说,这是个大坑。
我结论就是,我在耗费着自己最宝贵的青春来没日没夜的做以后谁都可以替代自己的开发,而没有思想上一丁点的长进,还沾沾自喜,自以为程序员生涯就是这样。
砖瓦工与建筑师的比喻
我原来一直认为【砖瓦工与建筑师】之于【普通程序员与架构师】的比喻有些不同,砖瓦工永远也成不了建筑师,而普通程序员开发很长时间后可以成为架构师,我发现自己错了,自己只是在自欺欺人,一句俗话说的好,不在其位,不谋其政。砖瓦工不在建筑师的位置上,所以他不会按照建筑师的角度去思考,所以他没有成为建筑师,而普通程序员也是如此,并无差别,程序员被分配给一项一项具体功能任务,在架构师的框架下补充自己的代码,所以他的眼界也会只有具体功能,如果一直这样下去,无论努力多少年,也成长不了架构师,除非他跳出这个框架,开始提升思想,而我,并没有提升。因为,在框架之下完成具体功能,很多人都会,包括没有开发经验的程序员,只要有学习能力,培训一段时间,他就能完成同样的任务。
所以我的结论是,开发很长时间后可以成为架构师,我是在自欺欺人。
程序员的工资高,因为价值?
你可能问了,那为啥年轻程序员工资还是挺高的呢?我认为是需求,大量的需求,导致程序员普遍稀缺,而年轻的,更能加班吃苦,不是因为自己掌握了许多技术,我所认为的程序员的价值。人都有学习能力,迟早会学会的。所以,我认为,现在工资高是因为需求,价值肯定有的,但是需求大于价值。
但是,随着大军人数的增加,程序行业迟早会饱和。
杂谈
如果说普通程序员掌握了面向过程编程的极致,那架构师就是掌握了面向对象编程的极致。架构师拥有着高度的面向对象编程思想,轻易的可以将需求抽象,分解到一定层次。
面向对象编程思想没那么容易掌握,我相信即使有几年的开发经验的程序员,也没有几个人敢在自己的简历上写上架构师三个字的。虽然Java,C#是面向对象的语言,但是大部分程序员其实一直在面向过程编程。比如,做一个中小型项目网站,假定这里需求不变动,不考虑前端和测试,这里有一个架构师,一个后台开发人员。然后架构师根据需求分析,开发出能满足这个网站开发,甚至以后扩展的框架,然后后台开发人员在这个框架之下,根据架构师的API,开发出一项一项的具体功能,然后项目完美结束。好像这里没啥问题,以后两人依然如此,这样开发项目,我相信过几年之后,后台开发人员没有什么长进,迟早会被更年轻的程序员所淘汰。因为他一直锻炼的是面向过程的编程思想,面向对象思想没有长进。
结论
我最终的结论是,我原来所有的项目经验只是开发了一些具体功能,全部是面向过程思想编程,而面向对象的编程思想毫无建树,而我却没有进步和危机感,而随着程序员大军的增加,我的价值会越来越低,因为我的工作是可替代的,我觉得这就是程序员吃青春饭的原因。
我相信,架构师绝对对【程序员吃青春饭】这句话嗤之以鼻。
我已经开始主动的学习框架,提升抽象能力,提升面向对象的思想了,避免以后悲剧的发生。
毕竟,我深爱着编程。
发表此文,谨此来警惕自己,提醒自己。