大家好,欢迎来到编程教室!
我知道在咱们读者中有相当一部分的编程学习者都不是计算机专业出身,其中又有一部分是冲着转行而学的。那么在自学编程、转行找工作的过程中,有哪些值得注意的问题和可以借鉴的经验?
之前我在知乎上有过一个相关的回答,今天在这里给大家分享一下:
非计算机专业,毕业两三年之后才开始自学编程的人,都是怎么找到第一份编程工作的?
招聘要求中有很多学历,专业和n年工作经验的要求,感觉会很难的样子。
从零基础自学到获得第一份编程工作又需要大概多久?
我现在在自学.net,想转行做程序员,目标很明确,也有兴趣,不过迫于生计问题只能边工作边业余时间学习,问这个问题并不是因为急于求成,而是希望能对未来状况,这个目标的可实施性以及我目前最担心的问题:能否顺利获得入行工作的机会有一个大概的了解。
https://www.zhihu.com/question/25034235
我因为在做线上编程教学,所以接触过不少转行开发的人。每个人在学习时的起点和状态都不一样,其实没有一个百分百有效的标准模板,可以让你按照任务列表一个个完成就能达到目标。但是,凡是最终成功转行的,我觉得基本都或多或少满足以下几点:
1. 自我定位明确
既然想自学编程,必然不是相关专业,有很多人学校牌子也不是很响,加上对现有工作不满意,于是想转行。但首先你得明确,以上述条件来看,和相关专业本科的毕业生相比,确实存在不可忽略的差距,这个是需要正视的。我曾看过有的人,培训班上了三个月,了解点开发皮毛,然后找工作不顺利,就在论坛上发帖,说公司招人就知道看学历看专业,根本不给机会。然而,这种牢骚没有任何实际帮助,只会增加你放弃的借口。
还有的人,目标定太高。看了网上各种机构的招生宣传说零基础三个月成为人工智能程序员,就真的觉得离人工智能只差一个培训班的距离。
如果你真的打算转行,正视差距、定下合理目标,这个是必须的第一步。举个例子,如果你想做安卓开发,那么你的定位就是一个初级的安卓程序员,从做最简单的控件开始。
2. 项目为王
之所以很多人会谈论自学编程转行,就是因为这个可能性是存在且不低的。程序开发是个非常看重实践的事,学历专业的要求相对来说不那么高。之所以很多公司招聘时会以学历专业作为标准,一是大公司出于效率考量(成千上万人应聘,简历初筛是必然),二是如果你没有其他可以证明能力的东西,只能看学历专业。
那么,反过来,如果你没有学历和专业,或者说你要超越那些学历和专业看起来更好的竞争者,你能依靠的只有项目。多做项目,做好项目。我认为项目分三级:
初级,学校课程大作业级别的,一眼看上去就是练手的项目。用到某些技术,但是不完整,甚至不能体验。
中级,花时间设计过项目,功能相对完整,用户可使用。
高级,正式的项目,可以是外包项目、开源项目、有真实用户的个人项目。
尽可能是去做高级项目,实在不行也要尽可能有看起来像样的中级项目。一个功能简单的高级项目,含金量也高过一堆初级项目。有这样的项目在手,面试过程也会顺利许多,不然你也别怪面试官五分钟就让你离开,因为可能实在没什么可聊的。
另外要注意的一点是,要选择和你目标方向一致的项目。比如你想做安卓开发,然后你的项目全是python爬虫,那就是为难招聘方了。
3. 重视基础
开发技术经过这么多年发展,已经比较傻瓜了:一个经过简单培训的人,也可能通过拖拽控件、加几行事件处理脚本,就完成一个能运行的程序。但你要明白,仅仅是这样是达不到合格开发标准的。就像学吉他,硬背几个和弦,也能弹唱不少歌了,但稍微改一点就做不到,因为你不懂乐理、并没掌握演奏技能。
所以不要觉得专业学生学的那些计算机组成原理、操作系统、离散数学、数据结构与算法、软件测试、编译原理等等都是在浪费时间。具体的开发技术是决定求职的下限;而这些基础才是决定你发展的上限,是否能在开发这条路走得更远。因此,改补的课,迟早得补上。
4. 寻找圈子
不管什么行业,不管学什么,其实都不存在严格意义的“自学”。互联网上自学的问题不是缺少信息,而是信息太多了,多到你无法仅通过自己就得到正确的判断。当然你可能通过自己反复摸索尝试进行区分,但这个过程就太痛苦了,可能很多人就放弃了。而如果能有一个过来人给一些建议,或许就少走很多弯路。
也许你会说,我身边没有相关人士啊,上哪找?我觉得,网上技术大牛还是很多的,用心看看别人分享的文章已经可以受益不少,如果有明确的问题也可以尝试去请教,并不是所有人都很高冷。而且退一步说,就像健身,身边没有健身教练,但是有几个一起健身的伙伴,也是好过自己一个人摸索的。
5. 相信长期的回报
大多数人会犯一个错误,就是高估短期的收益,低估长期的收益,尤其在学习这件事上。什么21天学会XXX,本身就是种不好的提法。对于一个零基础,想在业余时间自学并转行的人,我一般建议,做好一年以上的心理预期,这还是在你每天都能抽出一点学习时间的前提下。简单算下:入门基础3个月、具体方向进阶3个月、开发项目半年,你才能拿得出一些能吸引招聘方的货来。而让我感到不可思议的是,很多人宁可花几年的时间在网上追问,有什么快速转行的方法,也不愿埋头尝试一下。
不要担心时间长,不要担心走弯路,只要你开始走了,每一步都不会浪费。而且当你走了一阵子回头看,会发现进步其实比想象中要快。
附两个转行成功人的案例,之前也在“Crossin的编程教室”公众号里发过:
一个是我亲自带的实习生,毕业一年后,来我这里边学边做,过了一年被猎头推荐到其他公司做开发,目前已经立足开发岗位了:
另一个不是身边的例子,从reddit上翻译的一篇转行经验,但是里面很多体会说得都是普遍存在的道理:
最后,我提一句个人观点:如果你想转行开发,我希望你是因为对编程感兴趣,而不仅仅是因为工资待遇。编程是件很“挑人”的事,爱它的人乐在其中,而不爱它的人只会觉得枯燥乏味。只是为了一份工作,真的没必要挤开发这条船,在各种机构近几年的推波助澜下,低端开发岗位已经明显供大于求了,用个流行的话叫做“内卷”很严重!如果你并不热爱这行,接下来的日子恐怕并不好过。
以上是根据以往很多案例和经验总结出的个人观点,供参考。希望对相似境况的读者有所帮助。
作者:Crossin先生
来源:Crossin的编程教室
_往期文章推荐_