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