我编程,我快乐

话说年届不惑之年,再来考虑职业规划,似乎有点晚。不过考虑到现代医学的发展,到我们这代人健康活到八十岁并非难事,这样算来,生命历程还只是过半。更何况,中国有句古话:“活到老,学到老”。所以无论何时,都不算晚。

在我职业生涯的前半程,基本上是懵懵懂懂的,走到哪算哪。这也不奇怪,因为上大学之前,只有一个目标:考上大学,什么兴趣爱好、理想似乎都离我很远。上了大学之后更迷惘,因为眼前的目标突然消失,又没有新的目标来填充,以后要做什么事、成为一个什么样的人完全没概念。工作之后只有一个朴素的想法:踏踏实实的做技术,天生我才必有用。这中间也换个几个工作,基本上也是无奈之举,并非职业发展上的考量。转眼到不惑之年,忽然发现前面的路越来越窄,出现这样的情况,主要是两方面的原因:

  1. 现在这个社会,很难有什么铁饭碗,特别是对于我这种在企业工作的人而言。但是工作往往是越往上,岗位就会越来越少。有人可能会想:我就老老实实从事基础岗位,把基础岗位上的工作做好就好。现实中,这种想法是行不通的。且不说每年有多少大学毕业生加入竞争的行业,就老板而言,经过多年的涨薪,虽然每次涨薪都幅度不大,但经过十几年的累计效应,相较最初的薪资,还是有很大幅度的提高。如果这个时候,仍然只做一些基础工作,老板肯定不干,如其这样,还不如找刚毕业的学生、或者只工作过几年的年轻人。

  2. 人到中年后,身上担责更多,家庭、房子都是重重大山。有的人能够修炼到“视金钱如粪土”,但伴侣、子女是否也修炼到这种境界呢?所以说,人有时并非只为自己而活。

最近,又重读了一遍一本有关程序员职业的书,书名为《我编程,我快乐 - 程序员职业规划之道》。这本书的主题实际上就是:你不会一辈子只做一件事情,也不可能只在一个公司工作,所以你看着办。我很久之间就领悟到,读书的意义并非是为了获得某种答案,而是在你心里产生一个疑问,让你思考。读这本书的意义并非从别人那里找到寻求职业发展的道路,而是结合书中所讲,思考自己的职业发展之道。

image

1. 选择技术方向

这是网上最常见的问题,特别是对于刚进入编程领域的人,这是这本书最先探讨的话题,书中引入了一个风险收益平衡的概念。若干年前,COBOL语言风行(估计现在的程序员已经没有多少人知道了),掌握这门语言很容易找到工作,但同时COBOL程序员也很多,所以平均工资不高。这是一种低风险,低回报的选择。而同一时期,如果选择新语言Java,就不那么容易找到工作(对于一项新技术,接受需要一个过程,所以使用Java的公司很少)。但如果谁能预测到Java后来会火起来,那投资越早,你就越有可能成为这个新技术潮流的领导者。这就是一种高风险,高回报的选择。为了追求高回报,是不是意味着出现一种新技术,我们都需要去追逐呢?这也不见得,因为新技术最终也可能夭折,最后并没有流行起来。BeOS就是一个很好的例子,虽然他也是由牛人乔布斯打造的。这就是高风险,零收益。

其实技术市场也是符合经济规律的。比如在十年前,IOS开发人员十分抢手,培训机构培训几个月出来的IOS程序员,都可以拿10K+的月薪,吸引了大量程序员进入IOS开发。人多了,就会导致IOS程序员不再那么值钱了,加上近年移动互联网寒潮,培训几个月就能拿高薪的日子已经一去不复返了。

还有一种选择就是一些特殊的领域的技术,这些技术需求量很小,但竞争的重点是能力而不是价格。举个例子,浏览器内核方向比较冷门,需求比较小,都是Google、Apple、Microsoft这样的大BOSS在玩,国内也有一些公司做一些定制、精简的工作,薪资都开的不低。但如果身处二、三线城市就比较危险,因为公司一旦调整方向裁员,很难找到同方向的工作,不得不转技术方向,或者去一线城市。

所以说,说去说来等于白说,普通人没有那种眼光,能够看到技术发展趋势,还是老老实实选择一个技术方向,先做下去。然后时不时抬头,看看外面的世界。另外,尽可能使自己的技术全面一些,面临变故也能处事不惊。

2. 成为技术全才

书中所说的做一名通才,不能简单理解为学习多门语言,而是说不要只专注于一种技术,比如做.NET就完全拒绝J2EE,你可以成为某一项技术的专家,同时还应该擅长几种别的技术。专精某项技术,并非意味着只关注该项技术本身,比如Java程序员知不知道Java类装载器是如何工作的,Java虚拟机是如何处理内存管理的?其实你如果深入专研某项技术,并掌握背后的技术,广度自然就会起来。

这本书还谈到,除了掌握纯粹的技术,还应该学习行业是如何运转的。很多IT公司实际上是为其他行业提供产品,比如为电信、移动这样的公司提供解决方案,就需要深入了解这些公司的业务流程、需求等等,而不是只关注编程实现。对于打算创业的同学而言,这一点尤为重要,毕竟很多IT公司存在的价值就是为其他行业提供满足需求的产品。

其实作为一名中国的程序员,只要工作过几年,跳过几次槽,想不成为通才都难。我仔细想了一想,这些年学习和使用过的语言和编程工具有十几种之多,比如汇编、Tourbo C、VB、Delphi、C++Builder、Visual C++、.NET、J2EE、ASP、JSP、Perl、Python等等。所以对大多数人而言,更多的还是需要深挖,成为某项技术的专家。

至于为什么要成为全才,因为中国现在的IT公司以中小企业为主,而且中国的软件开发流程远没有国外那么规范,希望成为一颗螺丝钉是一件很难的事情。再如果公司派你出差,可以希望你一个人搞定现场所有问题,而现场问题往往各种问题都有。如果你只懂一项技术,等公司裁员的时候,想不裁你都难。

3. 练习练习再练习

中国有句古话:“台上一分钟,台下十年功”。在很多领域,比如音乐、绘画,都需要经过长期大量的练习,然后才能出作品。而在编程领域,很多人都是边练习边出作品(开发产品)。作者对这种情况非常不解(本书作者是从一名乐手转行编程),因此提出程序员应该在业余时间进行基础练习,甚至寻找不同风格、不同编程语言进行练习。练习的方法可以是上Topcoder这样的在线编程竞技网站。

文中还提到了一种训练思维敏捷的方法,突破自己的编程极限,比如编一个程序而不做任何变量赋值,让程序变得更小,或者突破编程速度,以最短的时间编制一个程序。

之前我就看过一种说法,“一万小时理论”,是说从新手到大师,需要经过1万小时的可以训练。而这本书的主旨就是要成为一名卓越的程序员,从这个意义上讲,刻意训练还是需要的。可以结合自己的工作,可以做一些练习。比如如果你在工作中经常需要进行字符串处理,你就可以练习一下正则表达式,以后在工作中就不要编写繁琐的处理代码,而改用正则表达式来处理。

4. 推销自己

这部分的核心主旨是说程序员要建立自己的影响力,比较常见的方法是写博客、进行主题大会演讲、出版书籍等等。对于大多数人而言,可以从写博客做起。博客这个环境本身就是一个社交网络,而你需要抱着撰写杂志专栏文章的态度。下一步可以将这些文章在社区网站、杂志上发表。而这些在网站上的作品就是你写作能力的证明,也为你出版图书提供了材料。写得越多,得到的出版机会就会越多。

现在有很多人将博客上的文章集结成册,然后出版。比如我就买了池建强的《人生元编程》、吴晓波的《把生命浪费在美好的事物上》。纯技术的书籍也有很多是这样的,比如罗升阳的《Android系统源代码情景分析》,朱永盛的《webkit技术内幕》。这些人不仅是从版税上获得收益,更多的是获得行业影响。现在微信公众号也是一个很好的写作平台,有些作者仅凭读者打赏,收益就不少。罗胖在2017年跨年演讲上就讲过现在进入了“知识经济”的时代。

当然对于很多人而言,集结成书出版似乎有点困难,写的文章也没有多少人看,更别提打赏了。但是写博客、写文章还是有非常重要的意义的。有的时候你觉得自己懂了某个知识,但等你去写的时候,又发现自己说不太清楚。这种情况下,写文章就是梳理知识的一个过程,如果你能把一个知识阐述清楚了,才是真正弄懂了。写文章还有助于文字表达能力的提高,现在是一个协作的社会,工作中避免不了需要和其他的员工或客户沟通,而文字也是一种重要的沟通手段。

写博客也可以增加新的工作机会,我们知道,面试过程中,只有短短的个把小时(某些大公司面试有好几轮,每次面试时间很长,不在讨论之列),其实是很难判断出一个人的水平的,特别是在工作经历差不多的时候,有时录用一个人,真的是看运气。而如果你写出了一些文章,而正好你的雇主有读过,甚至还从中学习过,是不是会增加被录用的几率?我在几年前就写过一些文章,在某个狭窄的领域内还算有点影响,当时就收到过好几个工作邀请,公司都很不错,可惜都在一线城市(这也说明,在一线城市,各种机会还是会多很多,特别是在某些冷门的领域)。而且非常可惜的是,后面没有坚持下来,当时申请的域名也被回收了,如果能够一直坚持下来,想必也不会面临现在这样的窘境。


这本书还谈及程序开发的方方面面,值得看一看。当然,如果你根本就不想做一名卓越的程序员,或者说根本就不爱软件开发,只是为生活所迫而写代码,这本书就完全不适合了。

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

云水木石

但行好事,莫问前程

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值