转行做程序员? 先别着急, 看完这个再说....
首先说下我的情况,我写代码已经超过10多年了。
关于健康
话说秃顶这个东西跟基因有关,跟工作是否劳累好像关系不大,因为程序员中秃顶的比例跟非程序员秃顶差不多。相反以我的观察,感觉白发这个东西跟工作强度相关性还是挺强的,程序员30多岁,满头白发还是挺常见的。
但是也跟自己是否在意保养有关,例如不要经常熬夜,加班最狠的一般也就10点多就结束了,要加到12点的公司可以果断的辞职了。所以加班不是熬夜的借口。
当然,作为后端和前端程序员经常会有种操作叫上线,以及系统事故修复,这种情况确实会被迫熬夜,但是这种情况毕竟不是常态,偶尔为止对健康的影响也没那么大。
如果经常熬夜上线,经常事故修复,要么是架构师水平太次,要么公司流程有问题。同样,果断辞职。
关于年龄
年龄大了之后并不是写不动代码了,而是由于家庭、精力、待遇要求、积极性降低等原因综合导致了自身的竞争力比不上年青开发人员。
如果你在40~45岁之后,能接受你的待遇随着年龄增大不是增加而是减少的话,那么,一线程序开发岗确实可能一直做到退休。
但即使这样,it行业最低的收入肯定也会比技术含量不高的行业(例如银行出纳、行政等)的待遇要高一些。
关于学开发25岁是不是过晚
这个东西看人的,如果逻辑思维强,善于思考,别说25岁,就算35岁开始学,一样没问题。
要知道,人的大脑在年青的时候善长的死记硬背,从而表现出貌似学习能力强。而在30岁大脑定型之后,表现出来更强的是逻辑能力,这就是为什么很多科学家60多岁依然头脑清晰。
所以30岁之后,不是学习能力下降,而是学习方式改变。
我刚招聘的一个女生,就是学林业的,在it不相关的行业工作4年,25岁才转前端开发,到现在已经3年,做的还不错。
是不是深受鼓励?
最后,一个外行要转行做程序员,不要看其它答案给出的那么多复杂的学习内容,我给你一条绝对靠谱,而且非常易行的方案:
学习js做前端开发。因为js这个东西,不跟系统打交道,也不太需要性能优化,又不涉及多线程,所谓的异步模型,不理解照样使用。连网络通信也被一些框架封装的非常好,也无需深入理解。
总之,这是个最不需要正常计算机开发所需要大量基础知识的职位。
学习路径也非常简单,学html/css/js、jquery、vue等框架,学完之后能实现需求方想要让你实现的功能就行。全部学下来,一般3个月足够了。
这样的能力,找到8k的工作应该靠谱,工作几年熟练之后,找到15k的工作也是可以的。
而且,也就因为前端开发技术含量并不高,对计算机科班出身的人来说天花板很快会见到,所以大多不乐于从事,所以导致现在市场上前端开发非常紧缺。
(不然,你以为我会招一个非科班出身,连什么是数据结构都不太清楚的人过来做项目吗!)
当然,对科班人士天花板容易见到,那是因为很多基础知识他们都会。而对于转行开发前端的人,天花板则没有那么容易,至少在他把计算机所有相关知识补全之前不会见到。
所以,要想提高,最后还是得去看《数据结构》《计算机组成原理》《计算机网络》《操作系统》《初等算法》等知识。
补充下,对于面试对开发经验的要求。
这个确实是需要适当包装下,但有几个原则啊:
1.不要包装的太厉害,hr和技术面试官不是傻子,要么直接不给面试机会,要么问几句就明白你在吹牛逼,印象会大减。
2.写的东西自己要确实明白,会做。例如,你明明没用过angular,非要写这个,别人一问就清楚了。
简单说,所谓的包装,并非单纯的吹牛逼而已。关键是自己要模拟一些项目的开发过程,从中学习到开发的经验。例如自己去写一个网站,跟XX网站功能完全相同,从中体悟真实的项目开发过程,其中要对自己有高一些的要求,不能说光把功能完成即可,而且还要学习如何上线,如何编译(js的编译一般指es6编译到es5,或者多文件打包到单文件,然后代码混淆等,并非c++之类的编译),如何管理各类插件和包等。
这套东西对初学者来说虽然耗费的精力比较多,但是非常有价值。
这样,再包装简历后,面对问题就能从容应付。一般面试官只要你能把问题答上来,能写项目,就OK了,不会去纠结于你以前的项目到底是真的公司项目,还是只能你自己模拟的假项目。