程序员的“非程序员”之路

烈酒焚心 提交于 2019-11-29 10:22:16

摘要:

20多年前我就开始写代码,很喜欢写代码,直到现在为止仍然热度不减!人生总是会和你开点小玩笑,我在多年之前走上了”非程序员“之路。我觉得无论你将来是否继续走技术路线,你的程序员经历将为你打下雄厚的基础。本文为你分享我的一些心得,为你分享一些程序员也应该掌握的”非程序员“技能,希望对你有帮助。

 

什么是”非程序员“?

什么是程序员?这应该不用解释了。所以”非程序员“就很容易解释了,只要你从事的是IT类工作,但又不是写代码的,你就是”非程序员“!

”非程序员“常见的职位有:项目经理、产品经理、测试工程师、配置管理员、实施工程师、SQA等;除此以外还有部门经理、副总、总经理、老板!

按照时间顺序,我做过的职位有:程序员、项目经理、研发中心经理、副总经理、常务副总,后来我创业了,所以老板我也当了一回!(PS:我这个老板是光棍司令)

 

我的程序员之路

如果我问你:你写过代码吗?

你肯定会说:写过,而且还写了很多!

请你留意,我说的是”写“代码,而不是”敲“代码噢。

我的运气比较好,高中一年级的时候学校就开课《BASIC语言》这门课。当时电脑是很稀缺的资源,家里没有计算机,虽然学校有计算机房,但上机的时间并不多。当时我编写程序的方式就是用笔在练习本上写代码,调试程序的方法就是在脑袋里面运行这个程序。平时我写下大量的代码在练习本上,非常珍惜上机时间,想榨干在电脑房中的每一秒中。虽然当时我的大部分时间是在练习本上写代码,在脑袋中运行,但就是因为这样的编程方式打造了我的编程基本功和素养。

我对计算机编程的强烈兴趣,驱使我报考大学时的第一志愿就是计算机软件,但我的高考成绩不理想,只考上了第二志愿……

我大学读的是”城镇建设“专业。这是一个”伟大“的专业,我们的系主任说:这个专业是用来培养建委主任的(现在叫建设局局长)!当时我们兴奋和自我陶醉了一翻,结果毕业时我们没有人能找到”建委主任‘的工作,直到现在好像也没有同学坐上了这个岗位。

大学毕业后我在某事业单位从事市政方面的工作,但我很快憋不住,我找到了一份新工作,在某软件公司做程序员,开发建筑预算方面的软件,正式开始了我的程序员的生涯。接着下来的5年时间,我写下了大量代码。当时整个公司13个,其中程序员4人,但作为程序员的我除了写代码,还需要自己分析需求,自己测试自己的软件,自己管理自己等。这样的工作模式,让我得到全面的锻炼。

 

我的非程序员之路

公司规模不断扩大,开发人员的数量增加了不少,后来做的项目一般都会配备几名程序员和一名测试,而我“理所当然”地当上了项目经理。最开始做项目经理的时候,还可以写一些代码,后来要花更多的时间处理需求、客户关系、项目管理、团队建设等事情,基本上没有时间去写代码了。

不多久,公司打算将我推向“研发中心经理”的职位,这是一个莫大的诱惑!刚接任研发中心经理一职,还期望能有一半时间来研究技术,实际上这是不可能滴。后来我还先后负责了ISO9001、CMM3级和CMMI5级的工作。

我从心里面其实是更喜欢走技术路线的,当初选择了管理路线让我踏上了“不归路”。我原本在技术上有很多“第一”:公司中编程最熟练的第一人,第一个最熟悉C#,第一个最熟悉SQLServer等等,多年所从事的“非程序员”工作虽然让我掌握了不少新技能,但同时也在技术上“废掉”了我的武功。

 

如果上天再给我一次机会,我会不会仍然选择这样的 一条路呢?

世界上没有这么多如果,我们只能做到总结以前,把握现在,面向未来。

上文简介了我的经历,下面开始为分享一些我的心得体会,无论你是否打算继续走技术之路,希望对你能有帮助。

 

关于程序员的几个误区

1.)30岁不能再干程序员

当年不知道谁说程序员不适合干到30岁,因为人脑越老越不适应这样的工作,程序员要趁30岁前做好转型的准备。我当做了研发中心经理,选择了管理路线,其中一部分原因就是受这个“30岁不能再干程序员”的影响!

国外四五十岁的程序员很多,人家写的代码越老越牛B,脑袋的思考能力完全不见到减退,反而越发厉害,所以"30岁不能再干程序员"就是一句坑爹的话!

当然这句话在中国说是有背景的,那就是程序员没日没夜的加班,如果是这样的状态,当然是很难挨到30岁的。所以我们要保护好自己的身体资源,特别是脑袋,记住两句话:

a)加班有害健康!
b)工作是公司的,身体是自己的!

 

2)程序员 = 码农

一些外行领导认为程序员就是一种低技术含量的工种,随便在街上可以抓一把,你不干还有很多人干!就算是我们程序员本身,也将自己自嘲为“码农”。

程序员是高技术含量的工种,如果你掌握了核心技术,你是相当值钱的!但是在我们中国高技术含量项目或软件太少了,所以如果你连续几个月觉得自己技术上没有什么进步的话,你要想办法找一些更有挑战的工作了。

 

3)掌握的开发语言越多越潮就越好

开发语言不在多,在于精!对于编程老手来说,掌握一门开发语言的语法可能只需要几天的时间,但编程的素养和深厚的编程功力是需要多年沉淀的。

我刚学会我的第一种开发语言BASIC,自认为感觉良好,自以为凭借自己小聪明就能运用BASIC写出很强大的程序。后来参加了程序员兴趣小组学习班,系统地学习了一些算法,才发现自己是井底之蛙。刚开始工作的几年开发语言用的是VB,还学习了一些设计模式,自以为自己很OO,后来随着工作经验的积累和遇到不同的问题,才发现自己是多么的肤浅。

编程基本功需要在学校阶段就打造,并且要让自己爱上编程。除了要认真完成所有编程课程的课后作业、练习和课程设计外,你自己还要尝试去挑战一些高技术难度的题目。

给几个题目你参考一下:

a)写一个五子棋(或象棋)之类的程序。
b)写一个画UML图的程序。
c)写一个视频播放程序,要自己写解码器。

自己独立完成需求、设计、实现和测试等全部工作。

 

程序员应该掌握的几个非程序员技能

程序员不仅要学习技术,也需要掌握一些“非程序员”的技能,这些技能能帮助你开阔视野,加速你的成功!

1)需求分析能力

2)活用UML分析及解决问题的能力

3)软件测试能力

4)项目管理基本知识

5)口头表达能力和书面表达能力

6)团队协作能力

以上知识不能只看书本,更关键是实际操练,操练的最有效办法就是:自己独立完成一个软件的所有工作;当自己具备一定基础后,就和几个同学或朋友去挑战更高难度和复杂度的软件项目。

 

职场上的一些小建议

1)想清楚自己想干什么。

星爷说过:人生没有理想,和一条咸鱼没有什么分别!

人生能有多少个十年,要尽早发现自己想干什么,并要尽早做好通盘规划。

 

2)多为自己着想,不要太过顾全大局。

读大学时,老师给我的评价是:综合素质和能力很强。工作后,老板给我的评价也是这样。但这样的评价,可能会带来杯具的事情……

因为我综合素质和能力强,所以在安排工作的时候,别人都可以挑一些他喜欢或他擅长的事情做,而我因为是“全能”的,所以我要去干一些别人不喜欢或不擅长的事情。我曾经试过好多次将自己想研究的技术点让给别人,久而久之我就失去了很多掌握高精尖技术的机会。至今为止我在技术上的一个最大遗憾就是,没有能精通C++编程,我曾经有机会和有条件去开发C++的绘图程序的,但我让给别人了……

“人不为己天诛地灭”这句话很有道理,当然不是要你去自私自利,但也不能太过于“大公无私”,根据自己的发展路线,要主动去争取一些能提升你的技能的机会。

 

3)不要说少多做,要多说多做。

“少说多做”被誉为一种美德,但每个公司都会有办公室政治,少说多做会让你吃大亏,你需要的是多说多做!除了要干好事情,也需要让你的老板、同事及时知道你的工作成绩。成功人士不仅仅是靠实力的,还需要包装和宣传。

 

4)精通技术能帮你创业,精通管理可能只能帮你找到好工作。

大学毕业之前,我的职业规划是这样的:争取几年内达到月入过万,然后争取5年左右的时间能通过打工积累一点点的钱和技术,然后通过自己的技术去创业。可能很多程序员都有这样的类似想法。

我曾经试过两次创业:

第一次创业:我打工的同时和一些朋友合伙成立一个公司,我负责开发软件,我的合作伙伴负责市场方面的工作。但最终还是失败了。

第二次创业:从2010年开始我辞职出来单干,全职做软件研发方面的咨询和培训服务。目前正在进行中……

如果你技术足够牛B,能找到合适的合作伙伴,并且能找到投资人,那么成功的机会是很大的!有技术你就有创业的本钱。

我第二次创业就比较尴尬了,当时我已经干了很多年的管理工作,技术上已经被废武功,我的去路可能只有两个选择:

a)找一个新公司任职管理层的职位;
b)创业搞咨询和培训方面的事情。

我不想再打工,所以选择了b),但搞培训和咨询其实是很难做大的,每次上课其实都是体力活+脑力活。

这与我多年前的梦想是完全不一样的,我期待自己的公司具备核心技术,并且这个核心技术能为社会带来很大价值,公司能通过这样的模式赚到很多钱。

 

小结

每个人都会有自己成长之路,每位企业家都会有自己的创业之路。

我走了不少弯路,本文分享一些小心得,希望能对你有一点点小帮助。

 

如果本文对你有帮助,麻烦点一下“推荐”啦,谢谢!

 

 

 

作者:张传波

创新工场创业课堂(敏捷课程)讲师

软件研发管理资深顾问

CMMI首席专家

《火球——UML大战需求分析》作者

软件知识原创基地创办人

 

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!