31岁开始从机械转向学软件Java迟不迟?
看了下其他回答。有比较冲动“强行劝退”的,也有客观分析的,还有所谓专家泛泛而谈没干货的。相比而言前两个还算比较实在。
先说下我的结论,利弊都有,结合个人情况分析。优先建议转前端工程师。
理工科出身转软件可行性相对较高首选,软件编程考验的基础能力就是逻辑思维能力。作为一个机械的理科生,应该是具备了一定逻辑思维能力的。哪怕自己觉得自己这方面做得不好,也好过哪些想转到软件行业的文科生。
我还见过学日语、英文转软件的。他们都能转,一个理科生转软件的障碍天然更小。这方面要有信心。
首选不建议转Java或其他后端语言软件行业分支很多,开发、测试、UI、产品等。
转测试最简单,因为测试入门门槛低。但31岁的年纪无测试经验和刚毕业无测试经验,没有公司会选择前者。不建议去培训机构做测试培训,理由有二。一、一般性的测试,工作内容是功能测试,关键是对需求文档的理解能力,动手操作软件的实践能力,不断重复操作同一个功能的细心和耐心,这些都不需要花那个钱和时间去培训。二、高阶的测试讲究的是性能测试、安全测试等,这些东西对测试还没入门的人来说,直接上培训就好像还没学会走就想跑一样,面试的时候很容易露馅,没有必要跟自己过不去。
UI和产品更不要想。UI首先需要美术方面的专业技能。我估计一个机械专业的同学,要这方面才能大概率也不会去搞机械了。个别特殊人才我们不讨论。
产品更是一个高阶技能。
那么回到开发,从开发技能,简单地分为前端和后端两个方向。注意是为了简化问题,所以简单地谈,希望杠精不要瞎扯。
什么大数据、人工智能、区块链是从开发内容来分的,如果不是搞着玩或炒概念,需要更多的专业知识和背景就先不谈。
后端的流派比较多,java、Python、php等。前端比较统一,不管后端用什么技能,前端都是用html、css、js去匹配。
其实不管前后端,对于智商正常的理工科学生来说“入门”都不难。但对于半路转行的人有两个建议:1、找一家靠谱的培训机构,这样能减少个人自学走弯路,提升学习效率;2、谨慎选择后端,优先选前端。
因为不管选前端还是后端,入门之后,就涉及到如何精进,更进一步的问题。即便是一般性开发,除了在管理非常到位的一些外包公司(外包公司会把事情分解得很好,让每个开发人员只是流水线上一个工人,干好你自己的哪几个规定动作即可。长期下去不利于个人发展),一个后端需要了解,需要去做的东西,涉及到的知识领域非常广。
简单罗列下,至少包括:
数据库安装以及如何用工具(如navicat)去使用它(流行的数据库又分oracle、mysql、sql sever、postgresql等),
数据结构,
算法、设计模式(简单的要会撒),
不同开发语言各自存在的简单性能问题、常用场景写法、常用的开源生态,
windows和linux操作系统基本操作,
各种服务器的安装使用疑难排查(比如java生态里面常用的tomcat)。
如果需要读文档、写文档,还会用到各种写文档的工具或语言,比如UML、powerdesign等。
还有很多零散的计算机基础知识,比如一个中文占几个字,英文占几个字节,什么是ASCII码、换行符是什么,不同的操作系统换行符有什么不同等等。
此外,比较难的一点是需要具有比较好的逻辑思维能力,才能写出逻辑严谨Bug少的代码。
转前端开发相对见效快、进阶容易相对而言,前端比较单纯。用好html、css、js即可。
首先,这3个语言好学。不像后端语言,可能一个知识点,能牵涉出好多东西,这个是后端难的一个重要因素;
其次,整体而言前端对于逻辑性的要求,我只能说确实越来越高,但是跟后端比起来,难度等级还是要差很多。
这两点决定了,前端比后端门槛低,上手快,进阶容易。
后端说实话,越往后面进阶越难,哪怕是对专业出身的人来说也是能难的一件事情。如果是半路出家的同学,除非具有非常强的上进心、很好的学习能力,我估计终其整个职业生涯也就是一个中级水平而已。但前端晋升高级的期望会大一些。
很多培训机构给你说,转Java没有问题的。这话也没错,入门不难。但是他有没有跟你讲清楚,入门之后怎么办?晋升空间大不大?
想转Java或其他后端语言的同学们要冷静,不要被所谓的高工资陷阱迷惑。并且现阶段前端开发正处于一个上升期,有点类似前两年的iOS开发。目前的前端工资水平其实有点虚高,就中初级人员而言,甚至有机会拿到比同等水平的后端人员更高的待遇。
其他非技术因素这主要就是说家庭之类的因素,这方面相信30多岁的人自己能评估可行性,就不需要我们在这里回答了。
反正需要题主平衡好吧,看看家人对你的支持程度,是否理解等等,综合评估吧。简单来说,30岁对普通人来说还有些机会调整人生。
不过千万别认为自己与众不同,像褚时健那样八十多了还能去创业。以普通人的视角,普通人的能力来评估自己能不能承受其中的风险。切记好高骛远,或自以为是!