最近在想一个问题,我作为一个男人,老婆挣得不多,自己去一线工作,就是老婆在老家工作带娃,程序员只有在一线城市才会有比较好的工作,但是大多数挣得工资应该不足以在一线城市买房养家吧,等到年纪大了呢?难道还是家人在老家,自己在一线?可是回老家it行业又不行,最近一直在思考这个问题,想问问知乎上的大神,是我想错了,还是这个问题有其他更优解?
不能,相比法学,医学这些大后期的职业,程序员对于大部分人,确实是青春饭。
如果等你过了中高级水平,在五到十年的年限之内不能达到架构师的水平,也不能转管理,卡在瓶颈上,就准备某天被公司扫地出门,然后到处投简历没人要了,同样的中高级水平,HR为什么不要二十六七的,要你这个三十五六的大叔?
那些说程序员能干一辈子的,都是行业精英,他们当然能啊。
作为一个工作了几年的程序狗给准备入坑的准程序员一点建议吧。
第一现在想要上车,最好是科班出身,或者有不错的学历作为大厂敲门砖。
现在这一行已经趋于饱和,这已经不是五六年前只要你稍微学一点入个门就能找到工作了。非科班出身,学历低于全日制二本的真的极其不建议通过培训机构入行了,现在外包都要求全日制二本才能录入系统生成工号了,两三万砸进去,最后还找不到工作还得靠伪造简历,找到了也是不交五险一金月薪低于5k的小作坊,何必呢?
第二要一直都在学习,不仅要打好基础,也要掌握最新的技术。
即使你毕业,找到了一个程序员的工作,稳定的做了下来,但凡有空余时间,还是把时间花在学习上,水水知乎这种随时能停下来的没关系,但是真心不建议男生沉迷游戏,一把就半个小时,一玩几个小时过去了,极其浪费时间。
Java程序员的话,最好把Java编程思想,Java核心技术,深入理解Java虚拟机,深入分析Java Web在两三年之内精读一遍,把jdk以及spring的源码里面怎么实现的看一遍。
基础打好的同时,新出的一些技术,比如jdk8,9的一些新特性,比如spring boot,spring cloud,最好及时学习一遍,这样能提高你的竞争力,要敢于去尝试新事物,比如我刚开始用IntelliJ IDEA的时候很不习惯,但是用惯了之后发现是神器。
第三就是公司选择上
先从项目上来讲吧,首先你工作四五年的时候,希望你能有一些高质量的项目经验,比如分布式系统,高并发,消息队列,缓存,分表分库,复杂查询优化等。很多面试的时候,你光说会这些东西,看书看过,但是没实操过,那跟不会区别不大。如果做了四五年,项目经验还都是CURD的,或者都是业务复杂技术简单,那就该好好反思自己了。
然后公司不加班是不可能的,但是不能996,因为那意味着你一点空闲时间都没有,就算你不享受生活,也得学习,提高吧。大部分正常一点的公司都是忙的时候加班,加班会有个说法,比如折算成加班费或者调休什么的。然后不给交五险一金的公司大概率是坑逼公司,可以坚决不用去。
第四到了中高级水平,快摸到瓶颈的时候。
就需要认真考虑下将来怎么办这个问题,是技术上更上一层楼,还是转管理,还是转型做其他的,总之你不仅要保证十年之后还能有饭吃,也要想好万一碰到整个行业性的冬天,你能有什么退路。
我最近也在为这个事情焦虑。
补充额外的几点吧。
职业的任何阶段,除非你牛到行业精英这个程度,否则如果你还只是普通的中高级工程师,学历还是十分重要的,千万不要觉得工作几年后就不看学历了,妈蛋作为一个专升本虽然很想骂人,但确实如此。
想要靠打工这种财富通过加法增加的方式实现财务自由很困难,但年轻的时候最好存点钱,或者掏空家里买个房,抵御风险。
不要频繁换工作,否则简历会很难看,但凡大厂入职都要背景调查,不要有任何能蒙混过关的想法,造假的代价是十分高昂的,这意味着你会被好几家大厂一并拉黑。
不要说谎,造假,人生任何一个阶段都要爱惜羽毛,包括还是学生的你们,上学的时候就不要作弊,上次就见到一个哥们,入职阿里没学位证,背调公司打电话到学校,得知是作弊失去学位证,offer被取消。
还有就是学好英语吧,用业余时间,最好能达到雅思4个7的水准,这对于提升你个人竞争力还是很大的,我就不说很多程序员,那个英语简直是不忍直视,别说交流了,命名的时候单词都是拼错的。