一个10年工作经验程序员的成长故事

很多新手程序员在面对自己的岗位和职业发展的时候,都会希望能得到过来人的指引,帮助自己少走弯路,更快的成长。

来自10年经验的程序员的自白:

回顾过去的十年,作为一个本科毕业生,在管理上六年升任副总监,技术上七年半晋升专家。虽不是发展最好的,但相对平均速度来说都是比较快的。

我总结主要的几点是学习成长、合作共赢、总结呈现、思考前行。分享一下这些方面的体会,希望可以帮助初入互联网行业的技术人员或发展遇到困惑的人突破和提升自己,让自己成为精兵再到骨干,并进一步成长为一名强将。

一个10年工作经验程序员的成长故事

10,000小时定律

我曾看过一本书,名叫《异类 不一样的成功启示录》,作者对社会中那些成功人士进行了分析,书中那些被称为异类的 计算机天才,杰出的棒球手,演奏家,无一例外都是经过了超过10,000小时的练习才达到了超乎常人的技能。

而另一个我最喜欢故事,是关于一位做寿司的日本老人的,他便是被誉为寿司之神的小野二郎,他的寿司店数寄屋桥次郎(Sukiyabashi Jiro)被《米其林美食指南》评为三颗星的美食店,被公认为拥有世界上最好的寿司服务。而他作为全球最年长的米其林三星寿司大厨在88岁高龄仍然在不断探索寿司制作之道,当然他花在寿司制作上的时间,也远远超过了10,000小时。

技术成长

第一阶段、入门级阶段(1-2年),此阶段处于观望期。抱着怀疑的态度进入这个行业,学习一门新的语言或者技能。初学者在初学时,往往也会纠结于一些在后来看来不是很紧要的问题,学的这个技术有前景吗?会不会过时?IDE用什么?什么语言是最好的语言?这些问题,大多都不重要,重要的是你扎实下去,把所学的这一行搞精。

第二阶段、迷茫期(3-4年)。对于基本的业务开发也比较熟练,自认为自己啥也能干了,但是工资就是上不去。有的人,因此迷茫、普通,有的人因此会产生一些积极的动力来改变。在之前,想渡过这个阶段,有几个途径,比如说跳槽到一个更好的公司,找到大牛,跟随成长。比如在论坛里活跃,结交好友。

第三个阶段、成熟期(5年以上)。进入这个阶段,就是高级工程师和架构师阶段了。进入这个阶段,已不再为语言纠结,知道啥合适用啥。也不再为完美纠结,懂重妥协、权衡的艺术。从多种门类的技术中,窥见了要义和根本。可以快速地掌握新技术,融会贯通。

钱很重要,但是生活质量比钱还重要,工作是很重要,但是家人比工作还重要。

钱 不是万能的,但是没钱是万万不能的。钱赚了,身体夸了,全送给医院了,钱赚了,身心疲惫了,人活着为了啥?不就为了开开心心生活嘛?工作重要,但是失去了 家人的爱,失去了女朋友,失去了老婆孩子,那这个工作有啥用了?工作很容易就换了,家人是换不了的,老婆不是想换就换的,孩子不是想换就换的,连自己的家 庭都不负责的人,怎么可能对公司负责呢?我一直是这个观念,来面试时觉得工作更重要的,我们一般不录取的,那太假了,或者太不懂事了。

为项目而工作

在我的经验中,没有什么可以与工作于自己的项目以学习编程更有用的了。除了一些例外,我所知道的所有真正优秀的程序员都有一个习惯就是工作于业余项目(这也可能发生在工作中!)。有了一个点子并试图实现这个点子是非常具有挑战性的。它需要很强的自律心。

一个10年工作经验程序员的成长故事

对某方面的无知可能会让你一败涂地,因为你在这方面毫无经验。

即使到了今天我依旧在不断惊叹,有的同行竟然仍然没有收集足够的日志、崩溃报告和使用信息来掌控自己的软件。那些对这方面信息不屑一顾的家伙,大多会高估产品的质量。因为如果你不采取措施和记录结果,浑浑噩噩地混日子,终将会导致你对当前情况一无所知,包括你的客户。我一直反复强调,详细而有用的日志记录、程序崩溃跟踪、评论和意见,反正各种只要能让我尽快了解发生了什么问题的途径和方法,都是可行的。不过,我也知道有很多人认为“这种事和程序员有一毛钱的关系吗?”。

将复杂的东西整理成简单的,是很难的,但是要是把复杂的捣鼓成更加复杂的,那就简单了。

这一条适用于编程、设计和几乎所有的创造领域中。我一直以来都希望自己的代码能越易于理解越好。如果你的代码过于复杂和晦涩,那十之八九它正常工作的可能性很低。我曾非常有幸地见识到有些程序员费劲千辛万苦,反而让代码更加难以捉摸了。

解决故障报告

每个开发人员都应该花时间去处理来自客户的故障报告,并修复bug。这能让你更好地理解客户的意图,明白如何使用系统,知道排除故障的难易程度,了解系统的设计情况。这也是为自己的开发成果负责的好方法。

一个10年工作经验程序员的成长故事

从程序员向技术管理发展

其实一个Team Leader的职责与Project Manager相像,但Team Leader更着重于技术开发方面,通常一个大型项目都会有一两个开发团队由Team Leader带领,负责开发核心部分,而其它部分分派给不同开发小组或者分派给外包公司。在网上常看到几句话,贴切地形容了PM与TL的区别:“技术人员乐于被领导;但他们不喜欢被管理,不喜欢像牛一样被驱赶或指挥。管理者强迫人们服从他们的命令,而领导者则会带领他们一起工作。管理是客观的,没有个人感情因素,它假定被管理者没有思想和感受,被告知要做什么和该如何做。领导是引领、引导,它激励人们达成目标。领导力是带有强烈个人感情色彩的,它不是你能命令的,也不是你能测量评估和测试的。”

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值