又是一年毕业季,一大波程序员又将进入战场。
不知不觉间距离毕业的念头已经一只手都数不过来了,想想上一次在学校的日子还是在20世纪10年代。在程序员这个行业也摸爬滚打好几年了。在这一大波程序员进入战场之前,谈谈这些年感受到的苦与乐。希望想要入坑或即将入坑的同学们,慎重考虑!
程序员乐趣我想程序员这个职业最大的乐趣a在于其并不是一个完全重复性的职业。写程序、开发软件,不是一个简单的重复性的肌肉劳动,更多的是脑力劳动。相比于工厂生产线上那日复一日年复一年的重复性劳动,我想,从事脑力工作人是幸福的,虽然它们可能会掉更多的头发。
创造的快感这种非重复的劳动会有很大的创造性,而创造本身就可以可以带给人很纯粹的快乐,就像小孩可以不知饥饿的玩泥巴,画家可以为了新作可以废寝忘食、建筑师可以为了设计图而不眠不休一样,程序员也可以为了程序的完成而通宵达旦。
我经常会跟朋友开玩笑说,程序员也是“艺术家”。其实仔细想想画家画画、音乐家创造音乐、作家写出文章......他们都是一个无中生有、创作的过程。而程序员写程序、做软件,同样是一个无中生有,是一个创造事物的过程。为什么不能称为艺术家呢?
魔术般的力量创造的过程会体现出一种魔术般的力量,将一个个细小的零部件通过不同的方式组装起来,看着它们精妙的运行,并且得到自己预期的结果。你就想一个掌控全局的指挥着,整个过程散发着迷人的魅力。这种掌控一切的感觉让人迷恋。
创造的过程可以给人很纯粹的快乐,创造的成果则会给人很大的成就感,看着我们敲出的一行行代码能打印结果,绘制图形,发出声音......神话中魔术般的场景,在我们这里成为了现实。
而如果我们创造出的东西可以被其他人所使用,可以给他人带来帮助,那么它会给我们带来更大的愉悦感。快乐有时源于我们是一个有用的人,我们可以做出对他人有用的东西。每个人内心深处都会渴望自己被社会被他人所需要的。没有什么比看着我们的劳动成果被人所需要,并可以给予他人帮助更令人开心的事了。
学习的乐趣学习使我快乐!
正是由于程序员工作的不重复性,创造性。你需要不断的进行学习。学习新的思想、新的技术......
而学习新事物的本身就是充满乐趣的。而这一点也是在毕业以后从事了这个行业才感受到的,在学校的时候总是被逼着学,因此对学习充满了抗拒。而工作以后更多的是出于自愿、出于兴趣。每学习到一个新的技能、新的知识点,总会有种莫名的喜悦。以至于工作越久越发怀念与羡慕那学校的时光,可惜却再也回不去了。
程序员的苦恼程序员的工作是充满乐趣的,但其中却也包含了许多苦恼。
枯燥沉闷的劳动万丈高楼平地起,也都是工人们一块一块砖盖起来的。程序与软件同样如此。再庞大的软件都是一行行代码写出来的。而与建筑师所不同的是,建筑师只需要设计,由工人们负责执行。而程序员大多数时候还需要自己去亲自实现自己的设计,甚至是他人的设计。创造是令人愉悦的,实现的过程却也是枯燥而沉闷。
繁杂琐碎的Bug程序的创造必然会产生其附属产物——Bug,尽管这个产物你并不想要,却也是无法避免的。你必须时候准备好迎接它,并要有耐心去寻找它产生的原因,花费大量的时间查错、调试,并解决它。不管它是不是你所创造出来的。
身不由己的无奈程序员这个职业有很多身不由己的无奈。
虽然程序是由你来创造,很多时候却必须由他人来设定目标,供给资源,提供信息。
很多时候我们也不能决定自己的工作环境、工作时间。
我们必须在有限的时间和有效的资源范围内,寻找解决实际问题的切实可行方案。
有些时候我们不得不依赖一些他人的东西。有的时候这是一件非常痛苦的事情,往往这些程序设计得并不合理,实现拙劣,发布不完整(没有源代码或测试用例),或者文档记录得很糟。
有些时候我们必须按照别人的设计进行创造,尽管这些设计糟糕的像坨屎。