很多程序员, 包括我自己, 在职业生业道路上前进时会陷入一个误区, 认为对程序员而言最重要的是技术,因而不断的提升技术水平来武装自己。
他们写代码是以技术为驱动的,比如说在项目中使用XX高端的技术,实现XX设计模式、精妙算法。 这没有什么问题,追求技术水平的提高是好事, 能更好的解决问题,能提升自身的行业竞争力。 但是, 在追求技术的过程中,不能忽略掉一样更加重要的事物。
程序员写代码的目的是什么? 毫无疑问,是创造出用户喜爱的软件, 这才是程序员这个职业存在的终极意义。 假如程序员写一个软件,这个软件却不受用户欢迎,那么这个软件就算实现技术再高端, 性能再优秀,也是没有实际意义的。
程序员在自己职业进阶的过程中,技术能力的提升必不可缺, 要是市面上到处都是菜鸟程序员,生产出一堆堆BUG满天飞的软件,那整个行业就会完蛋。
程序员在保证自己的技术足以解决问题和生产健壮稳定软件的前提下,应该更多的去思考, 自己写的软件是否是用户需要的,是否能为用户解决问题? 换言之, 程序员应该多去思考产品经理思考的问题,毕竟这才是软件被生产出来的意义所在, 代码什么的,使用软件的用户是看不到的,他们也不关心。
程序员切记不能一门心思扑在技术上, 即便这是个人的兴趣爱好,因为这对自己的职业发展非常的不利。写一个编译器, 写一个操作系统,这些事情很有意思, 也很有挑战,可这些软件市面上都有了,做出来了也没有人用。 程序员做的东西不应该只是针对自己的兴趣,而应该是站在用户的角度, 看看做出来的东西是不是用户需要的。
一门心思研究技术是计算机科学家应该做的事, 程序员不是计算机科学家。
一般大学里学习计算机技术的地方会被打上计算机科学的标签,这没办法,因为大学本来就是科研场所,但是当立志当程序员的大学生毕业以后,一定要分清楚计算机科学研究者与程序员的区别,程序员是生产用户喜爱的软件的,至于纯粹搞计算机技术, 那不是程序员干的事情。