• 穷不过三代,囧不过三个公司——程序员如何通过努力让自己看上去很光鲜


        首先定义下什么样叫体面?第一是得到和自己能力相匹配的尊重,第二得到的收入能匹配自己的贡献,比如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 在转载时,请原文转载 ,谢绝洗稿。否则本人保留追究法律责任的权利。

     

  • 相关阅读:
    意外发现,VC断点可加在构造函数的左括号上
    C++中的INL
    如何用DELPHI编程修改外部EXE文件的版本信
    j2ee面试宝典翻译(1)
    华为总裁任正非:允许小部分力量去颠覆性创新
    QStringList与QString互转
    QTreeView只显示指定驱动器及其目录,隐藏所有兄弟节点
    Protected Functions 是理解OO的难点和关键
    技术人员的创业陷阱:我能,但不管用户在哪里!
    大陆的创业环境和风气的确产生巨大变化,大众创业“蔚然成风”
  • 原文地址:https://www.cnblogs.com/JavaArchitect/p/11137668.html
Copyright © 2020-2023  润新知