目前被编辑推荐的文章是,70后.net老猿,尚能饭否?,这让本来就危机感十足的我更加倍感压力。

    人总会变老,可以想象,哪怕是今天刚出大学的95后程序员,虽然时间的推移,可能头发会慢慢少,也可能眼镜的度数会慢慢变大,更可能颜值慢慢变低(说得好听点就是颜值会转化成技术和经验),也会渐渐被压力磨平棱角。

    这个是没办法的,长江后浪xxx,后浪xx沙滩上。哪怕我们再不乐意,再隐瞒年龄,再装嫩,也没法改变自然规律。算算今年,已经是北京奥运后的第10个年头了,与其感怀,还不如赶紧给自己多充点电。

    本文有两个主题,

    1 和初级程序员相比,大龄IT从业者(包括高级开发,架构等职位)该具备哪些方面的技能。

    2 在真的变老前,该如何装备自己。 

 

1 多积累真正值钱的技能

    哪些技能值钱?能被别人在短时间内学会技能不值钱(但一定要学,这是基础 )。举些不大值钱的技能例子。

   1 概念性的知识,比如大数据和人工智能等方面概念性的知识点。

   2 比如Java语法,数据库里的SQL语句,或者其它语法使用类别的技能。

   一些得靠一定动手实践经验积累下的经验比较值钱。

  1 比如SQL大数据调优,JVM虚拟机调优。

  2 架构师级别的高并发网站应用的搭建。

  这话说得非常轻巧,做起来说难不难,说容易不容易。

    如果我每天都在学习,哪怕用最笨的办法学习,在短时间(比如1个月)内总能找到好的学习进阶的途径,但如果成天混,那只能呵呵了。年轻时尚能呵呵,真的老时,只能为一条著名的古诗增加有力的论据了。

    其实大龄程序员的竞争优势不是在于多会几门开发语言,多背出一些API的用法,而在于通过工作经验积攒更多的专业经验,在这部分的结尾,我给出些在我面试过程中经常提到的能问出候选人值钱知识点的问题。

    1 你在代码里,有过哪些提升Java内存性能的措施,或者问,你在java虚拟机优化方面做过哪些工作?

    2  数据库方面,除了增删改查等基本技能点之外,你还有哪些提升数据库性能(比如SQL调优)的经验。

    3 在大数据库等方面,你有哪些实践经验?

    4 你是否搭建过系统架构,比如让你设计一个秒杀系统,你需要考虑哪些方面的因素?选用哪些方面的组件。

    5 在设计一个成熟稳定的系统时,你需要考虑哪些因素?你说下这方面的实践经验。

 

2 老程序员或者可以通过拼搏让自己无需再工作,如果不行,就找个稳定的工作

    我见过有些人进入到了创业公司,然后通过两三年的苦熬最终成功在30岁钱退休,但大多数的人没这个机遇。

    秦国宰相李斯有个著名的仓鼠论,对于大龄程序员而言,一些大公司或许是个非常好的去处。

    这里大公司的最低标准是,裁员的门槛相对高些,不会因为经济形势不好等原因轻易地裁人,也不会经常因为经营业绩不好而经常调整部门结构,更不应该存在跑路的风险。

    以这个标准而言,大公司至少包含了一些著名外企,一些国内大公司和一些在某个行业处于龙头地位的公司。

    本人最近一直做技术面试,普遍的感觉是,进大公司不难,但要准备。下面列些必备的要件。

    1 基础知识一定得扎实,比如java方面,集合,多线程,spring boot等方面,最好了解下底层代码实现。

    2 什么技能点都应当向“优化”方面靠,比如一段代码如何实现性能优化,访问数据库如何实现返回效果最快,一个架构如何实现“高可用”的效果。

   3 最好实现全栈,前端,后端,数据库,还有Linux部署,上线后如何通过日志排查问题,这都该懂些。

   4 针对上述技能点,应当有不少于2年的项目实践经验。

   其实进大公司,与其说技术项目经验不匹配,还不如说一些程序员主观上给自己画了个狭隘的圈,还没做技术和面试上的准备,就给自己打上了“我外语不行”或“我技术不行”的标签,然后把时间挥霍到其它方面。

    在大公司里,可能人的能力普遍高些,在其中不仅能积累项目和技术经验,更能积累人脉,更能通过这些高质量的人脉为自己年老后未雨绸缪。 

 

3 哪种类型的老程序员会被呵呵

    我们小的时候,大多数会被教育,别像xxx读书不好,看他现在多苦。这里也希望大家别成为别人的教育案例。

    时间很残酷,到站后会把不符合标准的程序员赶下车,比如程序员到30岁,35岁或40岁等坎时,如果没达到要求,日子会很难过。不过时间也很公平,在赶人下车前一定会给出足够多的提示(只是很少有人能警觉),不过话说回来,这里赶人下车的门槛其实不低,大多数人应该都可以规避。

    这里出些会被赶下车的人群的普遍特征。

    1 学历不高(大专以及之下),或出身学校一般,而且非计算机专业,或干脆从其他专业转行,只是通过一些培训学校来获得相关技能。我在这里无意贬低上述人群,也无意贬低一般的大学和培训学校,只是这部分人与其它人相比,基础比较薄弱,所以更不能自暴自弃,更得努力。

   2 在工作中得过且过,以最低标准来完成分配的任务,完成后就不务正业了。

   3 工作中斤斤计较,眼高手低,不愿干小事,但大事又做不好,出了问题总是找客观原因。

   4 平时不学习,或者没有给自己制定一个长远的学习的进阶的目标。

   5 经常换不得不换工作(即被换工作),无法积累足够多的行业或项目经验。

   6 经常更换主业,在某个领域无法专研和积累经验,比如今天学python,明天学大数据,后天再转到测试行业了。

   如果程序员具备上述特征,那么随着年龄增大,竞争力不是上升而是下降,这些人很有可能就被小鲜肉们淘汰了。不过据我观察,哪怕程序员利用平时一半时间来学习,基本上就能做到准时升级,从而不会被淘汰。 

 

4 我见过的一些程序员的惨状

    不努力就能成功,天下哪有这样的好事。天下可怜人必有可悲之处,这里我列些我见过的或者是道听途说的一些程序员的境遇。

    1 到一定年龄后,会发现跳槽很难,比如到了30岁还处于初级开发的阶段,或者35岁还处于高级开发阶段,那么跳槽时可能只能在一些小公司之间了。这里我同样无意贬低小公司,但相比大公司而言,小公司。。。

   2 在组里地位急剧下降,工资甚至比刚毕业的大学生高不了多少,这时和其它已经事业有成同龄人相比,心里一定不是滋味。

   3 由于只能在小公司之间跳槽,所以三天两头被辞退,理由很残酷,但也很现实:当公司动荡时,总是会优先辞退竞争力比较低的人。

   4 一年内有很长时间找不到工作,最后只能沦为自由职业者,挣的钱无法保证自己在大城市生活下去。

  其它样子大家可以自行脑补。

 

5 我见过的一些程序员提升自己能力的方式

    1 一定是工作非常努力,不计成本的努力,哪怕遇到不是自己所辖的工作点,不是推脱,而是尽量做好。

    2 一定是做到不断反省,人总是出错,不过这些程序员出错后总会找自己身上的原因,对比着提升自己的水平。、

    3 平时一定是不断学习,并根据自己的职业规划,给自己制定一个学习的路线。比如我从事的是java行业,我就见过不少程序员在不断地学架构方面的技能。

    4 不断地观察领导,分析如果处在这个位置上,我该具备哪些技能(没有就去学),我该如何做。这样到了一定时间就可以通过跳槽等手段实现提升。

    5 与时俱进,不断分析自己与当前热门技能的差距,或者观察当前哪些技能非常值钱,随后不断学习。

 
6 我见过的一些防老的手段

    1 可以积累些大公司的工作经验,这样到一定年龄后,再不济也可以进个大的养老型的公司了。

    2 在业内打些名气,比如写书,在知名网站发表系统文章,或者在github上多发表代码。这里顺便提下我写的书。

    java web轻量级开发面试教程

   打出名气后有什么好处?第一可以出去培训讲课,第二找工作也容易,虽然说程序员是吃青春饭,但任何公司都无法排斥某一领域的技术大牛,这些大牛哪怕是到了45岁50岁,也一定是抢手货。

    3 自己做个解决方案,然后卖给公司,比如针对仓储系统等做个产品,然后找些公司实施。

    4 自己创业,这个不予评论,大家可以自行观察。

    5 用之前挣的钱开个工作室或小作坊,利用人脉关系接些项目,这样做好真能发达,即使是一般,也能有所保障。

    

7 鼓劲+预告

    如下是我最近的感受。

    1 我最近加班很多,我对此感到非常幸运,因为至少现在我尚有通过付出体力和脑力劳动提升自己的机会。

    2 我同时感到很后悔,正是因为我之前加班加少了,用在学习上的时间少了,所以现在我还得加班。  

    总之,付出总会有收获,努力永远不会太晚,最后,如果大家感觉我的这篇文章不错,就看在我周末还在努力写博文的努力程度上,多给我些推荐,谢谢了。

    最近我工作有些忙,但我会尽量抽时间写博文来分享进大公司的一些诀窍。

 

posted on 2018-04-07 21:33  hsm_computer  阅读(7004)  评论(35编辑  收藏  举报