近几年来,传统行业多处于经济下行,加上互联网行业的赚钱效应,想要转行到这一行的人越来越多,其中程序员这个行业更是很多人梦寐以求的。
但另一方面,我们也发现,这些想要转行的同学们往往会遇到很多困扰。就在一周以前,我统计了一下身边一些想要转行做程序员的朋友他们的难题,结果大致如下:
比如达内培训,黑马程序员,北大青鸟等各种培训班层出不穷,到底哪家强?
学习语言怎么选:java?c++?python?Android?ios?
如果要学java,从哪里下手?
毫无工作经验,想找一个入行的公司实习,3000快人家都不收
过去的几年里,因为本人从事软件开发工作已经好几年了,各种转行做程序员的人成功或者失败的我见过不少,有的朋友转行成功现在已经在杭州巴巴集团混的风生水起,也有的培训之后放弃了。所以对于转行做程序员的痛苦,我有着极深刻的切身体会。
所以,今天围绕着“转行做程序员”,我想整体聊一些我能想到的建议和看法,希望能够帮助想要转行的同学们。
我会建议每一个想要转行做程序员的同学,最好先逐次问自己这样几个问题:
问题1:你在转行中面临的最大障碍,到底是技能还是认知?
一般来说,一个此前不具备软件开发工作经验的人,在考虑转行做程序员的时候,会面临到两大最主要的障碍:一个是新技能的学习,另一个是新的思维方式,认知的转变。
对于新技能的学习,比方说你要开发一个网站的项目,数据表怎么设计,后端框架选择什么,前端框架选择什么,接口怎么定义,缓存,日志等你什么都不知道,leader告诉你这个模块你负责开发,due-date是几月几号,你该怎么办?
对于思维方式和认知的转变,比方说让你描述一个杯子,你可能会老老实实的说,这是个喝水杯,能够装什么什么东西,颜色是白色,材料是纸等方面去说,但是对于一个程序员,他可能会将这个杯子的所有直观的属性一一描述,然后再来描述他的功能。就像程序里面描述对象一样,这个对象拥有什么属性,拥有什么方法。杯子这个问题也是很多公司的面试题,这就是考察你的思维方式和认知。
就这两点来讲,我的建议是
假如你才刚刚转行不久或者正在转行中,自身缺乏一个程序员必要的各种技能(比如jsp,ajax,springmvc等框架的应用)当然首当其冲的是新技能的学习,而如果你已经有了一定的工作经验,基本的必要技能已经掌握得七七八八(这时候你已经是某项目里面的一些模块的开发负责人)了,这时候就要考虑思维方式和认知得问题了。
问题2:你想要转行的目标岗位是否清晰?
这可能是50%的转行的同学要面临的困惑了,他们对自己的目标岗位和职业规划都是非常模糊的,举个例子:
某A同学希望转行做java开发,各种自学看视频看算法,还是没什么效果,找工作也被别人拒之门外。这时候他就要考虑到底从事java哪一块的开发,想去什么行业,做什么业务,java开发的程序员需要哪些技能,面试的企业又需要什么样的技能。
所以,要转行的话,先考虑你想去什么公司,然后在各大招聘网站上面看看这个公司对java开发人员的要求是怎样的。他们公司需要开发人员会springmvc,那就去学,需要会mysql和oracle,那也要去看看。以下是我在网上选的一个应聘需求,可以参考一下:
这个是人人网的任职要求,三年工作经验可以先忽略,就看他需要你会哪些技能,然后针对性的每个技能怎么应用,有什么知识点,在网络上有无数的资源可以供你学习。可能你会说不知道怎么学习,那么以上要求里面你不认识的每个词语都可以作为搜索关键字,去问度娘,他能给你准确的答案。实在不行,你还可以问我。
问题3:围绕你的目标,你是否有明确合理的学习方式?
这个问题是承接上一个问题的,到底怎么学习才能找到工作。这里我先说几个原则性的东西
1.如果毫无工作经验,对编程还处于一知半解的程度,做一个功能还不知道怎么下手,或者说下手很模糊吃力,这种情况下去考虑思维认知转变,基本上没什么卵用。只有当我们在开发上面能够得心应手的时候,才方便考虑思维认知的问题
2.如果要做到get技能,就必须花费一定的时间去动手写代码,实践和训练是非常有必要的,如果从来都没有写过代码,面试官一问就能难住你,那肯定是拿不到offer的,实习都不行。
3.如果要做到认知升级,就必须在有了一定的经验的基础上,再加入到一个逼格更高的圈子中,结合实际的案例,进行思考总结才能形成一个程序员的思维模式。
在以上几个原则下,再延伸说一下我的建议
1.自己尝试照着网上别人给出的demo从零开始编写代码将别人的案例变成自己的项目经验,哪怕只是一个hello world。就springmvc来说,我去百度看看。我随便搜索了一个“springmvc例子”,第一条搜索结果就是图文并茂的教程,咱们可以照着写一遍,如果觉得这个还难了,那就从更简单的开始入门,比如搜索hello world的实现。
2.尝试参与到一个能给你实践经验的team中去获得开发经验,义务为其劳动,争取获得能够写代码的机会,不懂得当然大胆去问。在网上找一些qq群,或者各种开源框架都可以,比如github。
3.通过一些大神分享得学习视频,对照着别人开发的例子,自己一行代码一行代码的写出来。每一步都照着操作,没有那么难。
一般来说,上面的1只适合那些极度自律和学习能力还不错或者说有一点经验的人,2也是需要有一定基础才能参与的,而第三点就几乎没什么门槛了,任何人都可以通过这种方式来学习,我是大学这个专业的,所以我从来没看过视频学习。
问题4:你对转行是否拥有合理的心理预期?
最后,我们花一点时间来说一下转行做程序员的心理预期,比如薪资的升降,未来能够达到的期待。
我们不妨也先给出几个原则性的判断
如果你已经是一个拥有非常过硬的专业技能的人,转行只是你的一个念头就能做到的事情。那么在转行的时候不妨考虑将自己原有的业务能力发挥到最大,这样可能会有显著的薪资增长空间。比如一些其他专业的人才,他们也拥有非常厉害的编程的技能,转行做程序员完全不是事儿。
如果你没有过硬的专业技能,那么转行过来可能必须要承受一段时间甚至更长时间的降薪了,这也是正常的,毕竟现在做个打杂的也有好几千的工资了,转行到初级程序员前期可能还不如一个文员拿的多。
在整个互联网行业,低端人才是非常多的。如果你只是个刚刚转行的菜鸟,那就要做好超越他们的准备。
因为低端人才的存在,转行要做好一段时间内承受低收入的准备。关键是看你着重的是长远收益,还是短期收益。
到此为止,想要将的可能就差不多了,希望对你能有些启发。如果你还存在哪些困惑,可以在留言区留言,也可以私信发我。
问答区(评论区回答):
你对转行还有什么疑问或者建议?
微信关注我们“java工会”,与君共勉:
网友评论