我是怎样自学编程并找到第一份工作的

这是今天我发布在知乎上关于『自学编程的人,都是怎么找到第一份软件开发工作的?』的一个回答,链接在这里,喜欢的老铁可以去帮我点赞刷一波666

Link: https://www.zhihu.com/question/25034235/answer/295451575

我本科专业是政治学,28岁开始学习编程,29岁找到工作,现在马上30岁。现在一家互联网创业公司里做 Python 后端开发,写了非常核心的后端组件,也完成了公司90%的自动化测试,简单的、难的项目都参与过。其实我是编程弱鸡,仰仗同事帮忙,这一年学了很多。
我清楚,从自学编程到找工作,这是一个很痛苦的过程。
从学习第一行代码开始,你就很清楚自己和科班程序员有巨大差距,随着学习深入,会发现这个差距之大,以我们普通人的资质和勤奋水平,真的很难弥补。及至你终于鼓足勇气找工作,却发现竞争对手全是你仰望的『科班选手』(在我这个岁数,还会发现他们都比你年轻),会气馁,会沮丧。
心里默默念叨:真的没什么优势啊……
转行前,我在深圳一家互联网公司做运营总监,成绩斐然,搞了一些业内独一无二的运营策略,做了很多现在看来依然牛逼的运营项目。由于项目中涉及大量自动化工作内容,而我们只能人工完成,于是2015年底决定自学 Python 希望降低团队工作量,不久后做了『教练,我想写代码』的打算并离职,2016年1月开始正式脱产自学。9月开始找工作,2016年10月31日正式入职现公司,专职后端。
从找工作到入职,一共面过3家公司。

第一家公司:位于华强北附近的行业数据公司,主要工作是写分布式爬虫。

我对此毫无概念,面试的时候问用没用过数据库,回答没用过,然后做了一份笔试题,有一道题印象很深,问从1+2+3+…+100怎么计算,于是我写了个 for loop了……;还有很难的题,例如让我写一下分布式爬虫架构……最后让我回家等消息,当然是没消息。通过这次面试,知道了数据库这东西很重要,于是回家后马上买了一本 SQL 入门书快速读了一遍,学会增删改查。至于这家公司本身,我看了现场气氛后没太大兴趣,对工作内容也并不感冒,所以没有很遗憾。

第二家公司,腾讯。

能混到腾讯面试,我也很意外,居然没有被刷简历刷掉。我没有通过腾讯的社招平台投简历,而是在 V2EX 上看到了腾讯云工程师发的招聘贴,于是把直接发简历到腾讯云工程师的 QQ 邮箱里面,附带了一封求职信。某一天接到电话,说定个日期来一次电话面试。腾讯的这场电话面试是我最紧张的一场面试,电话期间被问及冒泡算法的复杂度,我脑子一片空白,完全想不起来,当然是遗憾收尾。对面工程师说,其实觉得我的工作态度非常好,而且之前的运营工作经验说明我善于利用工具解决问题,只要技术水平达到他们的最低标准,就很乐意让我加入,只不过……

重点说说第三家,现公司,米筐。

最早在拉勾看到米筐的招聘信息,投了然后被拒。然后在 V2EX 上(又是 V2EX,想找工作的朋友一定要重视这种社区)看到他们的招聘贴,继续发简历,同时附上了求职信(这封求职信起了关键作用,后面会细说)。去公司所在地(当时公司在深圳一个别墅区里租了几间房子)面试,和 CTO 简单聊了一下自己学过的东西、写过的代码,然后给我留了一个作业,就是在2周内学习冒泡、插入、选择、希尔、归并、堆、快速,桶排序,并用代码实现。
接下来的2周我足不出户,靠着一本红色的《Algorithms》、一本《算法导论》以及网上的零散内容,大致知道什么意思,然后面向 Google 编程,最后实现了。发邮件回复 CTO 后,1小时内得到回复,说不错,但是没有函数、没有继承,就是一堆命令的堆积,让我用 类 来改写一遍,时限1周。
继而又是兵荒马乱的1周。CTO 第三次发来邮件说不错,但是有几个技术细节和我讨论一下,然后再让我把排序内容输出为表格并增加自动化测试进行验证,时限又是1周。
这次稍微简单一些,但是从没写过测试,也没输出过表格,所以学习了几天,然后实现之(这里有个插曲,我当时的『表格』就是在命令行里绘制一张表格出来,现在想想 CTO 可能是想让我输出成 csv 之类的文件)。这次邮件之后,CTO 通知我第二次面试。这次面试我自觉带上了开发用的 Mac,现场也确实用到了,简单讨论后,CTO 说恭喜你加入米筐。
以上是我仅有的三次面试的经历,第三次就找到工作,只能说自己运气不错,另外求职技巧也有一些可以分享的。
技巧1:良好的邮件习惯
标题写个人基本信息、应聘岗位等,正文简要介绍自己,附件包含 docx 和 pdf 格式的简历各一份,然后附上一封像老朋友面谈一样的诚恳的求职信。
技巧2:求职信
从投腾讯简历开始,我在太太的帮助下认真的写一封求职信,详细介绍自己的优势、劣势、以及对新工作的期望,在信中表达出极为诚恳、诚实的态度,而非吹牛逼、忽悠。记得在给米筐的求职信里我写过『知道自己的水平和其他工程师有差距,所以并不要求工资水平和别人一致,只求多一点实战机会、多一点成长』。因为我也面试过不少人,深知市场上的聪明人太多,老实踏实的人太少,所以装一装老实,可能算是一个蛮突出的『竞争优势』吧。
技巧3:不要海投,不要投 HR 邮箱,直接发简历到工程师邮箱
我们这种自学编程的人,绝大多数水平真的不行,没有相关工作经验,没有相关学历。类似我当年不会用数据库、不知道多线程多进程的区别和用途,海投简历只会收获海拒。因此最好能绕过 HR,与工程师直接联系(例如腾讯那场面试,如果我走正常招聘程序,不可能获得面试机会)。
我的工位
基本上我就是这样在自学编程后找到第一份开发工作的,到现在,工资数倍于入职的起薪,深深觉得米筐给我的东西,远远多于我给米筐的,很感激公司同仁的宽容与善良。写代码是一项实践性的工作,不进入生产环境,很多东西自己是搞不懂也不会接触到的。希望各位自学编程的人,都能早日找到工作,快速学习和成长,不断进化和突破,最终超越自己。

Tagged :

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注