首先定义下什么样叫体面?第一是得到和自己能力相匹配的尊重,第二得到的收入能匹配自己的贡献,比如996有996的收入,965有965的报酬,第三是稳定,不是朝不保夕。其实这些条件不算高,我在上海,能达到上述标准的公司不算少,但相比之下也有不少公司给出的条件低于上述标准。

    本人虽然目前工作达到了“体面”的标准,但之前也在小公司干过,也经历过惶惶不可终日的日子,而且本人一直在做兼职培训,培训出来的学生也有不少进入体面公司干活的。古话有“穷不过三代”的说法,职业规划也是如此,“窘况不过”三个公司。在我之前的博文里,讲述了零基础举目无亲的程序员用2年时间走上正轨的方式,同样,如果上进,换3个工作后,程序员也可以活得很光鲜(至少让外人看上去很光鲜)。

1 在第一份工作里,解决温饱问题,同时入行

    有不少程序员在第一份工作时就有了一个好的起点,比如从事大数据机器学习等高含金量工作,或者进入大公司,但对不少程序员而言,需要通过第一份工作把理论知识转换成实践技能,现在正值毕业季,所以如下的建议正好对景。

    第一,除非有考研等重大原因,否则尽快找个工作入职。一般对毕业生而言,应该是毕业前就找好工作了,如果从7月到9月中间有两个月处于闲置状态这还能说得过去,如果时间再长,一方面越到后面工作越难找(校招和社招标准不同),而且闲置时间很长说明个人能力有问题,这对后面找工作也有影响。

    第二,尽可能去大城市,也尽量进规模大点的公司,这样能给自己一个好的起点。如果刚开始达不到也不要紧,但尽量找个和相关技能匹配的工作,比如开发,测试或IT Support等,如果没特殊情况,尽量别找些诸如销售之类的和IT无关的活。

    第三,大学生活和社会工作之间有一定的落差,尤其在小公司或者人际关系复杂的公司,刚开始一定得脚踏实地。

    一般来说,如果第一份工作不如意,比如进到小公司或人力外派公司或者在小城市,这问题都不大,我见过大量的低起点的程序员干个5,6年最后干得风生水起,但一定得选择一个方向,以后就尽量别朝三暮四了,尽量朝这个方向努力。

    我就拿Java后端程序员方向来说吧,因为我从事这个,而且在这方面出过书,也做过兼职培训讲师。其实如果上心再肯问肯学,最多用个半年就能上手,比如Java核心部分的集合多线程JDBC,数据库方面的增删改查,框架方面的SSM,经过半年应该都能用了,但绝不能停留于此。

    当第一份工作也做了一年多,也能适应社会的节奏,也能适应社会人的交流沟通方式,生活上也逐渐安顿下来,技术上也有了初步的积累,这时候就应该全面观察自己所选方向的综合技能。我见过不少初级程序员,由于工作中只会用到范围很小的技术,比如Java就用到SSM中里Spring,Mybatis是别人配好的,Java多线程等重要的技术平时用不到,自己也不进取,所以当有3,4年工作经验时,技术能力和毕业生差不多。

    所以当初级程序员在入行后,能应付本职工作后,就可以看些培训学校的课程,比如看Java方向需要哪些技能,然后自己多留意,然后在有1到2年的工作经验后,就可以考虑跳槽以进入到第二个阶段了。

    在解决“入行”的阶段,有些程序员可能对公司没得选,比如不得不委屈进入一些小而且不舒服的公司,比如人事关系像宫斗,或者朝不保夕,或者被外派到类似工地的甲方公司, 或者工作时间和收入严重不匹配。

    在这种恶劣情况下,程序员更该努力上进,通过提升技术等能力以求早日脱离苦海,而不能以“求稳定”的借口长期在这种公司干,这样的话,可能真就一直穷下去了。

2 第二份工作就可以想办法进大中公司,同时开始学习“架构”等值钱知识

    不过在毕业后的1到2年里,程序员就应该能精通手头上用的技术,并能以此衍生,熟悉相关技能所用的时间也不会太长了,比如有2年工作经验的Java开发,如果要用spring cloud,应该最多用1个月就能上手,所以在此阶段,可以面试进入比较正规的公司,甚至可以面试大公司了。

    这个阶段应该找哪类公司呢?

    1 如果可以,进BAT或者有一定品牌的互联网公司,吃几年苦,让自己的技术飞速提升。

    2 如果不行,尽量进互联网公司,虽然此类公司加班多,但对人的帮助相当大。

    3  或者进一些独角兽公司,或者从事一些热门的岗位,比如AI大数据分析等。

    总之,在第二个阶段里,至少应该少在“宫斗”环境里内耗,也别随遇而安地坐等被调整,应该进些有一定前景的公司。

    对此,我写了不少面试文,之前的一篇博文,最近面试java后端开发的感受:如果就以平时项目经验来面试,通过估计很难——再论面试前的准备,其实是给这个阶段程序员看的。

    “穷不过三代“的第二代里,应该是积累财富,并开始培养气质,或者至少家有余粮。那么程序员在第二个发展阶段应该达到什么水准呢?

    1 技术方面,至少应该达到高级开发的水准,甚至架构师需要了解的分布式组件微服务等,也要开始了解了。如果有机会,尽可能多地熟悉目前比较流程的框架技术, 比如阿里系或spring cloud方面的云技术,或者高并发级别的网络框架,或者大数据这块。

    2 成为一个组的主心骨,或者至少在某个业务方面很精通。比如可以从业务角度和产品讨论技术方案,遇到中等级别的问题,可以通过排查日志或者百度等方式来解决。

    3  熟悉和业务无关,但和项目管理相关的工具,比如jenkins,sonar,maven或gradle等,至少熟悉一种开发模式,比如敏捷开发,应该能在linux下部署代码,或者能在linux环境里分析日志。

     4 尽可能多地积累排查问题的经验,比如解决消息队列问题的经验,或者解决OOM的经验。 

3 在第三份工作里,开始创建个人品牌

    在古代,一般经过两代的积累,至少应该达到小康水平,就可以供养第三代子弟通过科举来尝试为官上进的途径了。在程序员的第三份工作里,经过前几年的积累,应该可以进大公司了,在这个阶段,除了技术之外,还应该提升如下的技能。

    1 或者走项目经理到部门经理路线,提升项目管理(比如PMP)方面的经验。

    2 或者走架构师到技术总监的路线,比如达到阿里P7到P8的能力,具体需要哪些技能请看网上描述。

    3 至于走自己接项目自主创业的路线,本人听说过,但没做过,也不敢擅拟。

    同时可以积累自己的品牌,比如在博客园里写博客,录制视频教程,多和一些大神沟通,最好是做到业内有名,或者至少能通过比较流行的视频教程或正规出版社的图书来露脸。

    在这个阶段,更需要多和大神们接触,在大神圈子里哪怕刚开始资历能力不够,但有各位大神加持总比个人努力要好很多。经过三个工作状态的迭代后,或者能在互联网公司里获得较多的实惠,或者能在大公司里看上去很光鲜,或者能有自己的来财渠道。但不管如何,虽然能做到人前光彩,但背后的努力只有自己知道。

4 总结,福报来自积德,光鲜来自实干

     在上文里描述的是平均状态,一般一个公司干两年,三年迭代,通过6年达到上述目标。或者有的程序员比较勤奋,起点也高,无需这么长的时间,但对些起点低能力一般的程序员(比如我)而言,可能用的时间会长些,中间甚至还会走弯路。

     但不管如何,我们先不求大富大贵,只先脚踏实地干好活,比如每天看到手头工作,再给自己制定短期和长期的目标和学习计划,然后尽量少图安逸多学习多实干多复盘,每过段时间,总能看到自己显著而踏实的进步。

    不过,哪怕找到了份比较光鲜的职位,我们也需要关注更高级的目标,毕竟还有“富不过三代”的谶语。在此之后的目标要么就是在技术上进一步发展,成为公司的技术顶梁柱,或者就自己组个工作室(做大了就是公司)找几个人接点项目然后逐渐达成财务自由这个更高级的目标。

    

版权说明:

    有不少网友转载和想要转载我的博文,本人感到十分荣幸,这也是本人不断写博文的动力。关于本文的版权有如下统一的说明,抱歉就不逐一回复了。

    1 本文可转载,无需告知,转载时请用链接的方式,给出原文出处,别简单地通过文本方式给出,同时写明原作者是hsm_computer。

    2 在转载时,请原文转载 ,谢绝洗稿。否则本人保留追究法律责任的权利。

 

 

 

posted on 2019-07-17 10:06  hsm_computer  阅读(9898)  评论(24编辑  收藏  举报