程序员难以逃避的几个坎儿及解决方法
俗话说人在江湖,身不由己,程序员的江湖更是如此。
转眼间,我已在程序江湖里混迹了10年有余,也于今天:农历年2014年10月10日迎来了我的第三十五个生日。可以说这是一部非常丰富多彩程序人生。物以类聚,人以群分,在程序员的江湖混迹的时间久了,身边几乎都是程序员,耳濡目染的也都是各种苦逼程序员的种种经历和段子,很多段子,看似可笑,但对程序员确是真实的写照。菜鸟、屌丝、油条、大虾大拿等等,这些社会流行语,无不是起源于程序江湖,然后被发展光大。这些写照的背后,其实映射着的更多是程序员进阶过程中的各种坎儿,这些坎儿也几乎是难以逃避的或者是向往的。
--菜鸟坎儿
这个是最先被程序员引入并发扬光大的牛B词汇,已经被收录进中华汉语词典中了。菜鸟,最初的意思为“计算机初学者”,后被发扬光大,新入一个行,新入一个团队,新学一门手艺等等,都统称菜鸟。这个是程序员难以逾越的第一道坎儿。每个人都有入行的一天,对于程序员来说,菜鸟这道坎意味着:选择什么样的语言?从事那种分类的程序工作?进入什么样的公司?等等。其中语言选择这个是菜鸟坎儿中最难的,你无论选择哪一种语言,都会引起另外一种语言跟随者的冷言讽语,你要是为选择那种语言而求助于程序员江湖的话,你肯定得不到满意的答案,抛出问题前迷茫,抛出问题后你依然迷茫。
那么,该如何过这道坎儿呢?以我个人经历和身边朋友来说,我以为应该遵循如下几步:
首先:你要明白,无论选择任何一种语言,只要是面向对象的,其核心编程思想都是一样的, 都是对现实事物的抽象,都离不开封装、继承和多态的概念。
其次:任何一门语言,最终都离不开算法,要想真正能混好饭吃,设计模式和数据结构都是必 须要深刻领悟的。
再次:选择一门语言,最初最好根据你身边朋友的情况,选择和他们一致的语言,这样你在遇 到问题的时候,会有最近的帮手,解决问题不会孤单。
最后:不要根据一个语言的优缺点去选择,要根据个人的兴趣爱好去选择,只有这样,你才能 走的更远。如果你对任何语言都不感兴趣,那么,你在程序江湖也就是混口饭吃,难以 走的很远,这种情况下,找一门易于上手,容易快速学习的语言。当然,易于上手只是 相对的,因为任何一门语言,要真正研究透,真正能够掌握其精华,都必须有爱好和兴 趣的支撑,外加时间和经验的积累。没有兴趣和爱好支撑,迟早会被程序江湖抛弃。
--屌丝坎儿
屌丝是最近几年才火爆的网络流行词,屌丝的原意为“矮、穷、搓”,矮和穷就不说了,搓的含义有很多种,人长相搓、思想搓、心态搓、行为搓等,其实这是针对“高富帅”的另一种称呼,是程序员的一种自嘲,后被无限放大,成了大家对现实个人生活和社会病态的一种嘲讽了。但屌丝的另外一层意思则是自我温饱能解决,房、车等都有点遥不可及的意思。从选择了语言,进入程序江湖,到在程序江湖混迹3年以下的,都可称为屌丝,当然依据个人天赋,有一些人凭借着对语言的浓厚兴趣和特有潜质,很快就能逾越过这个坎儿,但大多数人这个阶段是相对最长的。这段时间的程序员,会面临实际工作中的各种问题,会有很多个第一次碰触问题的情况,这些问题主要包括:技术上的、交际上的,这也是程序员相对痛苦的阶段,但这段时间的程序员也有一个独有的优势:几乎任何一个公司,最需要的就是这个阶段的人,所以这个阶段的人工作最好找,跳槽最容易,原因是这个阶段的人,工作经验已经具备,工资成本相对较低,个人经历最为旺盛。换句话来说,就是这类人群对公司来说,性价比是最高的。但对程序员来说,肯定是希望最快的速度跳过这个坎,因为相对于程序员来说,无疑这个坎是:苦、累、贱的代名词。
该如何过这道坎儿呢?还是以我个人经历和我身边的朋友经历来说:
首先:要有熬的充分思想准备,熬不是瞎熬,要主动的去针对问题进行思考,寻找解决方法, 积累问题解决经验,一定不能一不懂就问,一定要先思考,自己找解决方法,直到迫于 时间或者无法解决才去讨教,切忌为自己及逃避问题找理由。
其次:要能经得住辱骂,要把这些辱骂作为一种锻炼和修养,不要因为一时承受不了辱骂而放 弃一个公司,要知道几乎在每个公司,每个程序员都会有这样的经历,这是个人性格的 一种培养和个人意志的修炼。是通往优秀程序员的必经之路。我曾经在这个过程中,被 骂哭过多次,被骂蠢、笨、傻B是常有的事许多次,也有逃避不想干程序员的各种思想, 但最后我都坚持下来了,那段时间里,我几乎每天晚上都要针对一些问题,找方法,加 速自己的学习,几乎每天晚上都是凌晨以后才睡觉。
最后:这个阶段不要频繁跳槽,不要以为跳槽多了,工资高了就是好事,许多时候,一个公司 在面试的时候,看到简历中一个人几乎每年都跳一到两个公司的时候,会直接把这种人 给Pass掉,各种原因不做解释。
--油条坎儿
这个词对于的意思是指:阅历丰富有经验,但为人世故油滑不厚道,是一个贬义词
但对于程序员来说,这个阶段的程序员相对来说比较轻松,也是很多屌丝羡慕的阶段。因为对这个阶段的程序员来说,他们的经验积累到了一定的程度,开发效率会很高,对一些技术,有了自己的沉淀和主观思想,经常是交予的任务能够很好地快速的完成,加班对他们来说已经不是第一频词了,这些人往往也是一个公司的技术核心或者技术骨干,甚至很多时候,公司为了能够更高的工作效率,加班什么的都会求着这些人。这些人的工资也相对较高,生活自理能力也比较强。他们的时间在程序猿中也是比较充分的,经常闲暇时逛逛各种论坛,回答一些初学者提出的问题,可以说是相当活跃,几乎绝大部分论坛的问题答疑是靠这部分人来支撑和解决的,甚至一些开源应用也都有这些人来贡献出来。这个阶段也是程序员坎儿中最危险的一道坎,因为这个阶段的程序员,容易骄傲,也容易浮躁。特别是碰到一些感觉不如自己的人领导他的时候,做事上经常会鄙视或者顶撞领导,甚至会有一些极端冲突。而为了整体项目进度,领导对这些人还必须忍气并竭力讨好。很大一部分人在这个阶段不思进取,认为生活,工作都相对稳定,奋斗的激情慢慢衰退,而随着年龄的增长,经验却没有持续提高,到后来会后悔莫及。也有一部分人会慢慢参与到项目管理中去,而在管理过程中,形成了一种极端可怕的思想,就是自认为自己很具有管理能力,这相当可怕,因为这个阶段的程序员所进入到的所谓的管理成无非就是项目组长、项目经理最高也就是部门经理的职务上。对于小公司来说,手下可能带上几个人,甚至两三个人,对于比较大的公司来说,手下有十几号或者几十号的人,到最后大多是技术丢了,管理也不是真正的管理,落得个找工作都很难的境地。当然,技术大虾和一些出色的领导也是在这个阶段逐渐产生的,这个阶段一般是进入程序江湖5年左右时必经的一个坎儿。
处于这个坎儿上的程序员兄弟需要注意:
其一、一定要戒掉浮躁和骄傲的心态,努力是自己处在平静中,遇事不要冲动,先冷静的思 考问题,和领导更不要当面冲撞,应该学会帮领导树立权威,不要动辄冲动,对别人的 技术言论不要直接否定,而是静心分析问题,学会从不同的技术角度去看问题。
其二、自我清醒,一定要认清自己是适合走技术路线还是适合走管理路线,不要认为技术路 线很简单,当然,更不能以为管理就那回事,以至于最后沦落为一个公司的鸡肋,并且 要切记,管理路线一定比技术路线更难。
其三、发挥自己的核心骨干作用,时团队协作更为融洽,因为您绝对有这个实力和能力。
其四、找准了方向之后,一定要做深沉次的研究,多思考是这个阶段最重要的武器。
--大虾坎儿
大虾:别名大侠,这是很多菜鸟或屌丝对技术牛人的尊称。也是绝大多数趟过油条坎儿后,程序员的终点站,因为天才必然很少,许多人走到这个阶段,已经再难以持续了,技术上来说,这些人绝对比油条要高一大档次,大虾对一门语言的兴趣会狂热到极点,对其他主流语言也有相对研究。他们更多的时候,是用设计模式和数据结构的精华,结合个人的工作经验,把一门编程语言用到极致。或者说,他们要么追求性能上的最佳点,要么追求各种已有框架架构上的最佳融合,有能力在一个项目中,左右整个项目的技术方向,也能扬长避短。也就是说,到了这个阶段的程序员,思考的更多的是整体,可以说,那些屌丝或者油条写出来的代码,在他们看来也是漏洞百出。很多菜鸟或者屌丝希望能得到大虾的指点。大虾一般在程序界混迹都是8年有余。但大虾也有自己的瓶颈,这种瓶颈甚至说是难以逾越的。主要原因为:一:家庭,到了这个阶段的程序员,一般老婆、娃、房、车一应齐全了,家庭开支相当大,因此家庭生活生计会分化掉他很大的精力,以至于没有时间去钻研。二:资源,处在这个阶段的程序员,大多会感到比较孤独,甚至无助,公司的技术重大难点要这些人来攻克,而这些人一旦遇到难题,几乎没人能帮他的忙,他很多时候只能自己思考解决方案,甚至有些问题,日思夜想,也会出现很奇怪的事,就是一直无解,结果做梦的时候吧问题解决方案想到了。对于简单的问题,大多数情况下是谁问就会被骂,这么简单的问题怎么都不去思考!。处在这个阶段的人,不会轻易跳槽,而能够养的起这样的人的公司,技术方向几乎是围着他来转,不会轻易想更换,因为那可能是整套思想和整体技术都要换的代价。如果这类人面临跳槽,那么对他们来说几乎以为着失业,亦或是自己创业。原因很简单,1、不愿轻易放下身价,因为后面有整个家庭负担,除非迫不得已;2、没多少公司会大量养这些人,因为养不起,很多公司甚至连一个都养不起或者不愿养。3、年龄已大,没有更多的精力和能力以及体力和屌丝们去拼。
这个坎儿怎么过呢?我不敢去想也不愿去想。
--大拿
对很多人来说,大拿是个传说,甚至都没见过,而我也只见过一两个,从我和他们有限的几次交流的情况,我发现我所有所会的,几乎都是他的子集,这些人跨越了年龄,大多有一二十年的工作经验,并且在跨国企业呆过,钱?他们已经没这个概念了!工作?大公司或者跨国公司都抢着拉他们呢!