第2章 程序员自我定位
有这样一句名言:“方向比努力重要,能力比知识重要,健康比成绩重要。”
对于刚步入社会的大学生来说,这句话的含义显得更加确切,更有现实意义。人生就像一种旅行,如果选错了方向或者迷失了方向,将很难到达目的地,至少需要付出更多的努力。作为一名刚毕业的学生,应该给自己定制一个人生目标,然后结合自身的能力,为自己的理想和目标设计短期和长期规划,最后按照规划坚持不懈地努力,自己终将拥有美好的人生。
2.1 求职从选定目标开始
拿破仑说:“希望成功,就必须确定一个明确的目标。”一个人只有明确了目标,才有前进的方向,才有成功的希望。一份没有明确目标的求职,只会使你随波逐流、到处碰壁。程序员素来就被认为是一个奇特的人群,进入这个行业,开始就要做好自我定位。
下面给出了程序员的8个级别分类,前3个级别需要勤奋、坚持和一定运气,其余级别只要努力,皆有可能达到。看看你想成为哪种程序员。
● 第一级:领袖级程序员。技术过人,高瞻远瞩,能捕捉住稍瞬即逝的机会,通过努力,成为某一领域的领导者,有独占市场的产品或平台。
代表人物:比尔·盖茨(微软公司创始人)、马克·扎克伯格(Facebook创始人)、马化腾(腾讯公司创始人),如图2.1所示。
图2.1 领袖级程序员举例
● 第二级:顶尖级程序员。不一定大学毕业,但对技术痴狂,常常引领技术潮流,是某一领域顶尖专家,有独立或带领团队开发的核心产品影响行业发展或大众消费。
代表人物:约翰·沃洛克(ADOBE公司创始人)、约翰·卡马克(id Software公司创始人)、求伯君(金山公司创始人),如图2.2所示。
图2.2 顶尖级程序员举例
● 第三级:著名程序员。并不一定软件开发出身,但因工作关系,与软件开发结缘,并全身心投入其中。熟悉相关行业知识,能开发出适合市场的优秀产品。
代表人物:杨志远(Yahoo公司创始人)、埃文·威廉姆斯(博客Twitter创始人)、王江民(江民公司创始人),如图2.3所示。
图2.3 著名程序员举例
● 第四级:管理型程序员。技术精湛,有领导团队的能力,此类人大公司技术总监、项目经理居多。他们不会失业,因为他们随时都可以很容易地找到工作。他们工作过的公司都会因为他们而有所发展。
● 第五级:骨干程序员。技术精湛,熟悉行业知识,但管理能力欠佳,此类人大多为系统分析人员或资深程序员。
● 第六级:一般程序员。他们没有远大目标,不想成为伟大的程序员,或想成为但心有余而力不足。他们有一定的编程能力,技术有广度无深度,喜欢钻研但浅尝辄止。程序员只不过是他们的工作而已,并不是他们人生的全部。此级别人员为软件业的重要组成部分。
● 第七级:软件熟练工人。编程对他们来说就如同工厂流水线的熟练工人,很多人都不知道自己编写的代码能干什么,程序开发对他们而言只是一种重复麻烦的工作而已。
● 第八级:大忽悠型程序员。他们通常顶着一顶高学历的帽子,在事业单位或小公司里混个一官半职,胡乱支配下属,在领导面前胡吹海侃,把自己装扮成技术高手的模样。
2.2 你适合哪类企业
俗话说“女怕嫁错郎,男怕入错行”。选择什么样的企业,就会有什么样的职业道路。不一定大企业就好,小企业就不值得一提。如果你想稳定、高薪,就选择大公司。如果你想挑战自我,获取更大的机会和成就,或以后自己创业,就应该选择一家优秀的小公司。
中国制造业500强、服装业大亨美特斯邦威集团董事长周成建先生在一次回答记者的提问时强调:“未来发展特别是以后网络经济的发展,大多的公司都做得很小,而且一定有创新性。几个人就可以创建公司,几年就可以做出来成绩,以后需要一种新的知识、新的能力,而这种能力往往是在一些小公司,在民营公司里才能真正培养出来。你到大公司,反而得不到。”
2.2.1 你应该知道的
知己知彼,方能百战百胜。下面介绍几类软件企业,如表2.1所示,希望对你的求职有所帮助。
表2.1 软件企业列表
实际上,选择求职目标时不能只看企业大小,更多的是要结合自己的性格和职业目标,选择合适的企业。作为一个有经验的求职者,他们更关注求职公司的发展态势、老板、员工的素质等因素。在一个快速发展的小公司和一个萧条低迷的大公司之间,有眼光的人会选择前者。
2.2.2 你适合哪类企业
不同的性格和目标,决定走怎样的道路。就像刚出生的小鸟,是成为笼子里不愁温饱的家鸟,还是居于一隅的林鸟,或者长途跋涉的候鸟?这是一个艰难的选择。选择哪类企业,要结合个人性格和职业目标。表2.2给出了个人性格和职业目标的建议。
表2.2 个人性格和职业目标
如果可能,也许大部分毕业生愿意选择大公司。大公司有完善的培训、令人羡慕的薪资待遇,以及稳定的发展机会。但要提醒的是,进入大企业固然很好,发展机会却远远小于小企业。要知道,《财富》500强所有私人企业都是从小公司发展起来的。
2.3 成功有秘诀吗
干一行爱一行,这句俗语正是说明要热爱自己的工作岗位。现今社会竞争激烈、工作压力大,做一份自己非常感兴趣的工作,是件非常令人畅快的事。编程工作技术难度大、工作量大,加班更是常事,所以编程工作更需要工作热情和兴趣。既然选择了程序员这种富有挑战性的工作,就要为编写优秀的程序而奋斗。那么,如何在学习和工作中培养编程兴趣呢?笔者基于前辈和亲身经历,总结出以下几点:
● 在工作中建立高标准。要以成为行业中的顶尖为目标,绝对不要接受第二流的表现。你做事的品质和你个人的成就成正比,与你的态度成正比,与你的知识成正比,与你的标准成正比。成功者都拥有高的标准,失败者的标准都不高。把每天的工作都当成自己的代表作,不要100分,要101分。
● 要树立远大的梦想,同时要有合理的目标来实施。每一个成功的人都有伟大的梦想。大成功是由小成功所累积的,每一个成功的人都是在达成无数的小目标之后,才实现了他们伟大的梦想。不放弃,就一定有成功的机会。如果你放弃,就已经失败了。
● 把别人不愿意做的事做好。在实际工作中,要勇于去做别人不愿意去做的事情,并且要做好,做得有创意。只有敢于接受挑战的人,才能为自己赢得更多的锻炼机会,才能收获更多。
● 要打好基础,多实践,多阅读代码。要利用大量的时间阅读源码。只有多阅读这些源码,才能对语言本质有深刻的了解,进而超越语言本身。
● 不要过于计较个人得失。当一个人斤斤计较的时候,机会也会和你斤斤计较。当你不是为了钱而活着的时候,你才有可能获得更多的机会和发展,金钱仅仅是成功的附带品而已。
● 要有韧性,经受住各种磨难。当你陷入困境时不要抱怨,要默默吸取教训。任何一个产品都是用心血浇灌而成的。
● 你到底是想要成功,还是一定要成功?成功有三个最重要的秘诀:要有强烈的欲望;还是要有强烈的欲望;还是要有强烈的欲望。
2.4 程序员成长路线
程序员的成长是艰辛的,这让我想起了一句话——“痛并快乐着”。
每个人都是从零开始成长的,程序员也不例外。程序员一般会选择走两种路线:技术路线和管理路线,如图2.4所示。
图2.4 程序员的成长之路
1.技术路线
由程序员,经系统分析师、系统设计师、产品经理,直到架构设计师为归宿,这整个过程没个十年半载是办不到的,适合喜欢技术的人、对技术狂热的人、愿意一辈子去搞技术的人。当然,在这其中需要程序员在工作及平时的生活中不断地学习和研究。系统分析师、架构师的工作是令人羡慕的,也是很多公司的挖掘对象。虽然国内的系统分析师和系统架构师比较抢手,但是想真正成为这个角色还是相当困难的,自己必须拥有很强的专业技能和系统分析能力。另外,国内对其职位的需求量并不是很大,只有实力雄厚的公司才会设置系统分析师、架构师的职位,种种原因让这个岗位的人少之又少。
2.管理路线
这也是大部分程序员的成长路线。当程序员到达高级程序员后,向管理方面转变,经开发小组负责人、工程负责人,奋斗到项目经理。这种路线适合有一定沟通能力和协调能力的人。走向管理岗位并不是放弃编程,项目经理会在宏观上调控项目的进行,而不像程序员那样注重于程序的细节和功能点。
有的人可能会问,程序员那么多,不可能每个人都能成为系统设计、架构师或是项目经理。答案是肯定的,有的人有所成就可能会自立门户,选择自己去当老板,或者去培训中心教书育人,再或者就是程序员的第三种路线,就是告别编程——转行。毕竟在中国不能当一辈子的程序员,这可能是程序员最无奈的一种选择了,但是这却是每个程序员都需要思考的问题。
有一点是不可否认的,就是成长都要付出艰辛的代价(绝不是混工作经验混出来的),当你成功的时候回过头想想那些付出,就会认为一切都值得。