程序员的成长过程(工作4年)

最近在学习编程的过程中,似乎悟到一些道理,在似懂非懂之间,有了下面这篇文章。

刚开始学编程,你是在学习语法,学会用正确的语法写出可以执行的程序。

学会语法之后,你进入公司,开始学习工具,学会如何使用别人的工具(包括API,框架等东东)来达到自己目的,前面两个阶段通常感觉自己进步很快的,一两年之后,你就感觉自己已经学会了很多技术。

你这个时候会遇到自己的第一个瓶颈,感觉自己虽然学会了很多技术,但是总没有真正理解其思想,更无法自己创造出一个工具,在这时候,你在公司中遇到了一个高手(他可能是你的上司,总之他是你学习的榜样),通过观察他的表现,你发现他的基础理论很扎实,于是你开始回去看一些大学课本,以及买一些基础理论知识书籍,希望能够突破这个瓶颈。

这是一个漫长的过程,可能需要花两三年时间来学习,在这个学习的过程中你发现很多知识跟日常编程都是相通的(即使你只是在做简单的企业应用),比如操作系统里的权限控制,缓存,缓冲设计,比如计算机组成原理中的CPU指令集的设计,比如计算机网络中对网络协议的分层设计,比如算法中的分治法和动态规划,我们每天都在面临着类似的设计问题,而这些设计在基础理论知识中都有涉及到,前人早就遇到过更复杂的问题,而这些复杂问题的解决方案就在你的大学课本里。

这个时候你发现自己的能力比原来提高了一块,你写代码时思路更开阔了,能想到更多的解决方案,考虑更多的可能性,到这个时候,公司可能会让你成为一个项目经理了。

成为项目经理之后,你遇到的很多问题都需要自己解决了,你需要考虑一个技术的可行性,考虑一个设计的完整性,你需要和客户沟通以理解客户的需要,你需要管理你的团队,一方面要提高整个团队的作战能力,另一方面还要照顾到大家的感受。你买来一本人月神话,又买了一本敏捷开发,你考虑的问题比原来多了10倍(但是工资可能没提高多少),你可能还会犯一些错误,从而明白了以后应该如何去更好的设计软件,和如何更好的管理,你在这个过程中受益匪浅,一到两年之后你可能已经是一个比较成熟的软件设计者,你的代码可能没以前熟练了,但是你比以前更理解编程是怎么回事了。

这个时候你走到了一个人生的十字路口,你知道自己在管理和技术上其实都还有很大的提升空间,但是你的精力有限,你只能选择其一。你热爱技术,你发现管理占用你太多的时间导致你无法专心于技术的研究,虽然你也明白了项目的成功不是仅靠技术,但是你还是有点不甘心。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值