作为计算机科学与技术的科班毕业生,避免不了和代码有亲密的接触,虽然自己一点也不喜欢。在我看来,计算机科学的魅力在于发明各种各样的应用去方便我们的生活,既然提到了发明一定是源于基础的东西,大家会说代码就是很基础的东西,但是代码就像砖头一样,是静态的。我们盖房子,一定需要优秀的建筑设计师,但是在软件领域,真正的设计师又有几个,大家充其量就是一个coder,而不是一个designer。但是在中国能去code已经是比别人高出一截了,程序员在如何code方面都是十分努力的,要不然也不会有第一批90后已经秃了的情况出现。
为什么说中国的大部分程序员都不能算designer呢,在我大学的时候,主要学的是数学,大家要知道,计算机科学其实当初是数学的一个分支来的,当初发明计算机的初衷就是方便进行大量的计算,虽说现在多媒体、人工智能等技术的发展很迅猛,但是归根到底其实还是计算,数学专业的人在数学中承担论证的角色,作为计算机专业的我们,在数学方面不用去考虑如何论证,直接去应用就好。大家看一下我大学学的主要的课程就有所了解,离散数学、高等数学、数据结构、计算方法导论(数值分析)、线性代数。大家可以看得出来,计算机的本质还是数学,代码就是一个工具,方便我们去实现我们的想法。但是好的设计一定是需要好的算法的,算法工程师在当下的就业环境中还是十分走俏的,30万年薪已经是白菜价。然而现在我们的关注点是如何学习各种编程框架,如何去code,是处在一个执行的角色上的,所以免不了会降低创造力。好多人说做技术的到了30岁会出现职业瓶颈,如果没有走上管理层,基本就很尴尬了。为啥会这样呢?其实编程本质上来说是个体力活来的,就像搬砖的到了年龄身体跟不上是一个道理,只是编程来说看上去更高级一点。就软件开发来说,真正写代码的时间只有20%,其他时间是设计以及测试等工作。所以我觉得广大程序员应该多去考虑学习一些数学方面的东西,而不是仅仅的掌握一门语言就好,最然说现在的行情是掌握一门语言就很厉害了。但是换个角度想,它本身就是一个工具,或者说是一个新华字典,我们是不可能完全掌握新华字典的全部内容的,只是在用到的时候查一下就好。
最近中兴事件也充分暴露了我们在技术上还是处在一个吃别人现成的东西的位置,硬件工程师十分稀缺,为啥呢?我之前的一个同事,就是学硬件的,但是私下聊天的时候,他也透漏出搞硬件周期太漫长,需要很久的积累,做软件发展就比较快了,一两年之内基本就可以月薪过万,这也是社会浮躁的另一个体现,大部分人还是急于求成,但是人生可不是百米赛跑,而是一场马拉松。我们用百米赛跑的方式去跑马拉松,其后果可想而知。人们都说大学学的东西没有用,大学学了四年,还不如社会上培训机构培训几个月,现象的确存在,这也是因为软件行业编程的能力是最基础的,但是培训机构是无法传授你设计的能力。也有很多同事跟我说,在编程编到一定程度时,基本是处于一种无脑的工作状态。再举一个例子,之前我在一家外企工作过,具体名字就不说了,情况就是在涉及到前端设计或者核心的东西上的时候,公司是不会同意让中国这边去做的,他们给出的理由是方便统一管理。
中国人士非常勤劳的,但是有时候就是少了一些思考,程序员都在抱怨苦逼,但是从来没有考虑过是否问题出在自己那,我们把自己定位成一个coder而不是designer,也怪不得好多人转行去干培训了,单纯的code是十分累的。在我们整日的游荡在复杂的业务逻辑上面的时候,是否也能考虑一下下如何让复杂的逻辑变得简单,而不是沉溺在复杂之中,以上是自己关于编程的一点想法,希望能对大家有所启发。