2016年10月24日,1024程序员节。

1024,是2的十次方,是计算机世界里最基础的数字之一。1GB=1024MB,1MB=1024KB,1KB=1024字节。对于程序员来说,1024是一个特殊的数字,所以这一天,被定为了程序员节。

在这个属于程序员的节日里,我想聊聊我为什么选择做程序员。

一、初心:第一次接触电脑

我第一次接触电脑,是在小学的时候。

那是90年代末,电脑还是个稀罕物。我爸单位有一台电脑,我周末经常跟着去单位,就为了玩那台电脑。那时候的电脑,还是Windows 98系统,CRT显示器,又大又重,开机要等好几分钟。但是,对我来说,那就是一个神奇的世界。

我最早接触的,是电脑里的游戏。扫雷、纸牌、空当接龙,这些Windows自带的小游戏,我能玩一整天。后来,又接触了《红色警戒》《星际争霸》这些游戏,更是沉迷其中。

那时候,我就觉得,电脑太神奇了。你输入一个命令,它就能执行;你点击一个按钮,它就能响应。屏幕上的世界,好像是活的,能和你互动。

小学五年级的时候,学校开了计算机课,教我们用Logo语言画图。用简单的命令,控制一只小海龟,在屏幕上画出各种图形。那是我第一次接触编程,虽然只是简单的画图,但是我觉得太有趣了。我能用命令,让电脑做我想让它做的事情,这种感觉,太奇妙了。

从那时候起,我就对电脑和编程,产生了浓厚的兴趣。

二、选择:大学选专业

高中的时候,我理科比较好,特别是数学和物理。高考填志愿的时候,我几乎没有犹豫,就选择了计算机科学与技术专业。

那时候,很多人劝我,说计算机专业太辛苦了,经常加班,而且是吃青春饭的,年纪大了就不行了。还有人说,计算机专业已经饱和了,毕业不好找工作。

但是,我还是坚持了自己的选择。因为我知道,我喜欢计算机,喜欢编程。做自己喜欢的事情,再辛苦也不觉得苦。而且,我相信,只要技术好,不愁找不到工作。

现在回头看,我的选择是对的。计算机行业,确实辛苦,确实加班多,但是它也给了我很多回报。不错的薪水,公平的竞争环境,持续学习的机会,还有创造的成就感。

大学四年,我系统地学习了计算机的基础知识:数据结构、算法、操作系统、计算机网络、数据库、编译原理、软件工程等等。这些基础知识,虽然工作中不一定直接用到,但是它们构建了我的计算机思维,让我在面对新技术的时候,能快速理解和掌握。

大学的时候,我也做了一些项目。用C++写过小游戏,用Java写过管理系统,用PHP写过个人网站。这些项目,虽然都很简单,但是让我把学到的知识,用到了实践中,也让我更加确定,我喜欢编程,喜欢做程序员。

三、成长:第一份工作

大学毕业之后,我顺利地找到了一份程序员的工作,成为了一名真正的程序员。

刚工作的时候,我充满了热情,但是也很迷茫。学校里学的知识,和实际工作中用到的,差距很大。学校里写的代码,都是一个人写的小项目,不需要考虑团队协作、代码规范、版本控制、测试、部署这些问题。但是工作中,这些都是必须的。

我记得刚工作的第一个月,几乎每天都在加班。不是因为工作多,而是因为我效率低。很多东西都不会,要一边学一边做。写的代码,也经常被leader打回来,说不符合规范,或者有bug。

那时候,我也怀疑过自己,是不是不适合做程序员。但是,我没有放弃,我告诉自己,刚工作都是这样的,慢慢来,会好的。

我开始努力学习。工作中,遇到不懂的问题,就查资料,问同事。下班后,也会花时间学习新技术,看技术书籍,写技术博客。我还把工作中遇到的问题和解决方案,都记录下来,避免以后再犯同样的错误。

就这样,大概半年之后,我慢慢适应了工作的节奏,能独立完成任务了。写的代码,也越来越规范,bug越来越少。leader也开始把更重要的任务交给我。

工作一年之后,我已经能独当一面了。负责一个模块的开发,从需求分析、设计、编码、测试、到部署,都能独立完成。也开始带新人,把我的经验,分享给他们。

这一路走来,有辛苦,有迷茫,但是更多的是成长和收获。

四、困惑:程序员的迷茫

工作几年之后,我也遇到了程序员的迷茫期。

1. 技术更新太快,学不动了

计算机行业,技术更新太快了。今天还在用jQuery,明天就流行Vue、React了;今天还在用PHP,明天就流行Go、Rust了。新技术层出不穷,感觉永远学不完。

有时候,我会觉得很累,学不动了。刚学会一个技术,又出来一个新的,感觉永远在追赶,永远在学习。

但是后来我想明白了,基础知识是不变的。数据结构、算法、操作系统、计算机网络,这些基础知识,不管技术怎么更新,都是有用的。掌握了基础知识,学习新技术就很快。而且,也不需要什么技术都学,选择自己感兴趣的、对工作有帮助的技术,深入学习就好。

2. 加班太多,生活工作不平衡

程序员的工作,加班是常态。项目紧的时候,经常加班到晚上九十点,甚至周末也要加班。时间长了,身体会吃不消,也没有时间陪伴家人和朋友。

我也经历过这样的阶段。有一段时间,项目特别紧,连续加班了一个月,每天都很累,心情也很烦躁。后来,项目结束之后,我好好休息了一段时间,也开始思考,如何平衡工作和生活。

现在,我尽量提高工作效率,在工作时间内完成任务,不把工作带回家。下班后,也会花时间运动、读书、陪伴家人。周末,除非特别紧急的情况,否则不工作,好好休息。

身体是革命的本钱,没有好的身体,什么都做不了。

3. 未来的路,该怎么走

工作几年之后,也会思考未来的路。程序员的职业发展,有几条路:

  • 技术路线:初级程序员→中级程序员→高级程序员→技术专家→架构师
  • 管理路线:程序员→技术组长→技术经理→技术总监→CTO
  • 创业路线:积累经验和资源之后,自己创业
  • 转行路线:做产品、做运营、做培训,或者完全转行

每条路,都有它的优势和挑战。技术路线,需要持续学习,深入钻研,但是相对纯粹,不用处理太多人际关系。管理路线,需要沟通协调能力,能影响更多的人,但是会离技术越来越远。创业路线,有机会获得更大的成功,但是风险也很大。

我现在的想法是,先在技术路线上深入,成为技术专家。同时,也培养一些管理能力,为以后的发展做准备。至于未来具体走哪条路,顺其自然,到时候再根据自己的情况和兴趣做选择。

五、坚持:为什么还在做程序员

虽然有迷茫,有困惑,但是我还是在做程序员,而且热爱这份工作。为什么?

1. 创造的成就感

程序员的工作,是创造。你用代码,从无到有,创造出一个产品,一个功能,一个工具。当你看到自己写的代码,在生产环境运行,被用户使用,给用户带来价值的时候,那种成就感,是无法用语言形容的。

我记得我第一个上线的项目,是一个内部的管理系统。虽然很简单,只有几个功能,但是当我看到同事们在用它,用它提高了工作效率的时候,我特别开心。那种感觉,就像自己的孩子,终于长大了,能为社会做贡献了。

这种创造的成就感,是我做程序员最大的动力。

2. 持续学习的乐趣

计算机行业,技术更新快,这既是挑战,也是乐趣。你永远有新东西可以学,永远不会觉得无聊。每学会一个新技术,掌握一个新工具,解决一个新问题,都会让你觉得,自己又进步了。

我喜欢学习新技术的感觉。从一开始的不懂,到慢慢理解,到熟练掌握,这个过程,虽然辛苦,但是很有乐趣。而且,学到的新技术,能让你写出更好的代码,做出更好的产品,这种正反馈,会让你更有动力去学习。

3. 公平的竞争环境

计算机行业,是一个相对公平的行业。在这里,能力比背景重要,技术比关系重要。只要你技术好,能力强,就能获得好的机会,好的回报。不需要拼爹,不需要搞关系,只需要靠自己的努力。

这一点,对于像我这样,没有背景,没有关系的普通人来说,非常重要。我可以靠自己的努力,改变自己的命运,获得更好的生活。

4. 不错的薪水

虽然说,钱不是最重要的,但是不可否认,程序员的薪水,在各行各业中,算是比较高的。特别是对于刚毕业的年轻人来说,程序员的起薪,比很多行业都高。

不错的薪水,能让我过上体面的生活,不用为了钱而发愁。能买自己想买的东西,去自己想去的地方,给家人更好的生活。这也是程序员这个职业,很实际的一个优势。

六、写在最后

1024程序员节:聊聊我为什么选择做程序员。

从小学第一次接触电脑,到大学选择计算机专业,到毕业后成为一名程序员,这一路走来,有迷茫,有困惑,有辛苦,但是更多的是热爱、成长和收获。

程序员,不只是一份工作,更是一种热爱,一种创造的方式。我喜欢用代码创造东西的感觉,喜欢持续学习的乐趣,喜欢这个公平的行业,喜欢这份工作给我带来的成就感和回报。

虽然这个行业,加班多,压力大,技术更新快,但是我不后悔我的选择。如果再给我一次机会,我还是会选择做程序员。

今天是1024程序员节,祝所有的程序员,节日快乐!愿我们都能保持初心,热爱编程,写出好代码,做出好产品。

最后,用一句话结尾:

"代码改变世界,程序员创造未来。"

愿我们都能在代码的世界里,找到属于自己的快乐和价值。