摘要:程序员
20多年前我就开始写代码,很喜欢写代码,直到如今为止仍然热度不减!人生老是会和你开点小玩笑,我在多年以前走上了”非程序员“之路。我以为不管你未来是否继续走技术路线,你的程序员经历将为你打下雄厚的基础。本文为你分享个人一些心得,为你分享一些程序员也应该掌握的”非程序员“技能,但愿对你有帮助。算法
什么是”非程序员“?编程
什么是程序员?这应该不用解释了。因此”非程序员“就很容易解释了,只要你从事的是IT类工做,但又不是写代码的,你就是”非程序员“!设计模式
”非程序员“常见的职位有:项目经理、产品经理、测试工程师、配置管理员、实施工程师、SQA等;除此之外还有部门经理、副总、总经理、老板!学习
按照时间顺序,我作过的职位有:程序员、项目经理、研发中心经理、副总经理、常务副总,后来我创业了,因此老板我也当了一回!(PS:我这个老板是光棍司令)测试
个人程序员之路职业规划
若是我问你:你写过代码吗?spa
你确定会说:写过,并且还写了不少!设计
请你留意,我说的是”写“代码,而不是”敲“代码噢。调试
个人运气比较好,高中一年级的时候学校就开课《BASIC语言》这门课。当时电脑是很稀缺的资源,家里没有计算机,虽然学校有计算机房,但上机的时间并很少。当时我编写程序的方式就是用笔在练习本上写代码,调试程序的方法就是在脑壳里面运行这个程序。平时我写下大量的代码在练习本上,很是珍惜上机时间,想榨干在电脑房中的每一秒中。虽然当时个人大部分时间是在练习本上写代码,在脑壳中运行,但就是由于这样的编程方式打造了个人编程基本功和素养。
我对计算机编程的强烈兴趣,驱使我报考大学时的第一志愿就是计算机软件,但个人高考成绩不理想,只考上了第二志愿……
我大学读的是”城镇建设“专业。这是一个”伟大“的专业,咱们的系主任说:这个专业是用来培养建委主任的(如今叫建设局局长)!当时咱们兴奋和自我陶醉了一翻,结果毕业时咱们没有人能找到”建委主任‘的工做,直到如今好像也没有同窗坐上了这个岗位。
大学毕业后我在某事业单位从事市政方面的工做,但我很快憋不住,我找到了一份新工做,在某软件公司作程序员,开发建筑预算方面的软件,正式开始了个人程序员的生涯。接着下来的5年时间,我写下了大量代码。当时整个公司13个,其中程序员4人,但做为程序员的我除了写代码,还须要本身分析需求,本身测试本身的软件,本身管理本身等。这样的工做模式,让我获得全面的锻炼。
个人非程序员之路
公司规模不断扩大,开发人员的数量增长了很多,后来作的项目通常都会配备几名程序员和一名测试,而我“理所固然”地当上了项目经理。最开始作项目经理的时候,还能够写一些代码,后来要花更多的时间处理需求、客户关系、项目管理、团队建设等事情,基本上没有时间去写代码了。
很少久,公司打算将我推向“研发中心经理”的职位,这是一个莫大的诱惑!刚接任研发中心经理一职,还指望能有一半时间来研究技术,实际上这是不可能滴。后来我还前后负责了ISO900一、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大战需求分析》做者
软件知识原创基地创办人