2019年1月份参加了香帅的上海线下大课,课后同一名91年的小友相谈甚欢。马骋是依图公司的算法工程师,5月份入职,而这之前他还是一名科班出身的土木工程师。整个转型过程仅仅花了三个月时间!
三个月时间,对人的一生来说可能只是白驹过隙的片段,对于马骋兄弟来说却是人生的重要转折。1月27日下午聚会后,他在群内分享了自己转型后的攻略文章,干货满满,非常有收货,在此推荐下。
总结:
要达成这个看似无法完成的目标,关键是做对以下几点:一是目标明确;二是任务拆解;三是专家指导;四是快速迭代。
一、目标明确
* 根据吴军、李开复等大牛的推荐,明确深度学习作为职业目标
* 目标越具体,越聚焦,在行动策略选择上就越简单
* 学习资源很丰富,且可得,选择最适合自己的
二任务拆解
* 任务拆解首先是目标导向,比如要学习算法理论,而非加强编程实现能力;
* 其次是问题导向,对于算法工程师这个职位,现在还缺啥?
* 必须要有时间表,一段时间专注于一件事。
三专家指导
* 业内人士的体感是最宝贵的信息;
* 除了信息,可能还会有内推这种非常直接帮助,其实很多公司都给员工这项权力,其实是双赢;
* 完成需要多人参与的项目,本身就是最高效的学习方式。
四、快速迭代
* 学习技能是没有底的,要根据目标,尽早推出产品(这里是简历和参加面试),通过小成本的试错,快速打补丁迭代;
* 需要打补丁的地方肯定很多,但人精力时间有限,要抓主要矛盾。(这里是自己的核心优势和企业需求之间的公约数:数学天分和算法基础理论)
启发:
看了马骋兄弟的求职经历,对我自己也有两点启发:一是学习技能要以需求导向;二是做事情一开始不要害怕失败。
一、需求导向
* 求职的过程企业就是将自己的技能打包成一个产品。一个误区是,很多人并不直接和客户沟通,而是自己想象客户需求,拿出来的产品肯定不能达到要求。很多单位,外面的传闻和实际情况往往相差十万八千里,如果根据电视剧里看到的内容去思考,会死得很惨。比如,大家都认为外资企业是先进、科学、高效率的代名词,但我在现实中了解到的,很多世界500强的工作氛围跟国企其实差不多。
二、敢于试错
* 人的思维模式分很多种,有创造性思维和批判性思维,就跟汽车的动力模式一样,可以切换的。比如很多人在写简历或者创作的时候,抱着第一稿就要完美的心态去做的话,那么第一稿是永远出不来的。这个其实是用错了模式,用批判性的思维模式去做了创造性的事情。正确的做法是,放下评价,顺着自己的思路去做,怎么舒服怎么来,尽快出来第一稿。然后再切换到批判性思维模式,根据现实的反馈快速打补丁迭代。好的产品永远是迭代出来的。
转型之路:从土木工程到人工智能
作者:马骋
从土木工程师转型到人工智能算法工程师,从土木工程设计的龙头企业进入人工智能领域的独角兽公司,很多朋友感兴趣我是如何做到的。这件事不论对于土木工程还是计算机领域的人士,都很难想象。大跨度的转型或许只是极少数人的选择,但想清楚这件事情如何做成,或许对于我们解决工作生活中的很多事情都是有帮助的。
1. 转型之路
转型的过程,大约两个半月学习人工智能领域的技术,投简历面试用了三个星期。这个过程与很多人想象的,先攻读一个AI相关学位,再找工作的思路是完全不同的。在上一份工作在职的状态下,能在三个月完成这样的转型,达成目标的原因在于做对了6个关键决策,而非地毯式地学完了所有的知识。
1. 确定深度学习方向,选定吴恩达课程
2017年,人工智能大热是众所周知的事情,但人工智能究竟是什么,从业人员具体要做什么,关键的技术是什么。重读了吴军的《智能时代》和李开复的《人工智能》,基本弄清楚了当前人工智能的兴起关键在于“深度学习”方法的跨越式发展,而深度学习是计算机科学下机器学习的一个分支。顺着深度学习的线索,找到了网上最热门的吴恩达《Deep Learning》课程,系统学了深度神经网络方法和图像识别的技术。
后来的经历表明,吴恩达的课程讲的最好(不一定最深),配套资源(习题、编程作业)非常容易上手,是初学者最佳的选择。并且课程知名度高,在业内也有认可度,学到的概念和方法基本可以满足面试的要求。
2. 参加阿里天池大数据比赛,取得名次
学完吴恩达课程是一件花时间就能完成的事情,但是如何证明自己具备职业能力呢。和中科院自动化所读研的许潮铭同学交流,他给我的建议是做一个大数据比赛,锻炼实际的项目应用能力,例如阿里天池比赛,或国外的kaggle。
决定做大数据比赛之后,我与南大计算机读研的好友强哥商量,决定在春节期间做比赛。在南大奋战一周,搭建了基本的深度神经网络模型,但成绩极差,排名倒数。回家之后继续推进,整个春节假期全部投入,与国科大的王奇勋同学不断交流,改进模型,终于在春节假期结束前夕取得理想结果,排名前25%。开始上班后,没有时间继续做比赛,成绩定格在这个水平。
大数据比赛耗费的精力,过程之艰难,远超之前的想象。但收获也是巨大的,以非计算机专业的基础,在两三个星期内具备python实战能力,学会linux操作基础,还能部署云计算,基本解决深度学习的调参问题,最终取得一个得体的成绩。这段经历和成果后来成为每次面试的压轴戏,每次都能和面试官侃侃而谈,使对方相信我具备从业的能力。
3. 挖掘个人优势,侧重数学、算法理论
学习准备的过程中,有一个关键的战略性问题:自己的核心优势究竟是什么。最初,自己理解是,本科硕士有一些在本专业编程开发的经历,英语能力强,善于总结写作、快速学习等等。但这些自以为的优势,并没有立竿见影的效果,在土木工程的圈子里,我可能算是懂一点编程的,但在IT的圈子里,编程熟练度可能不如上几个月培训的人。元旦时,与在深圳做IT的同学孙强交流,他给我的建议是我以前从来没有意识到的:“你的最大优势是数学好,数学基础强可以在算法方向持久发展,而缺乏基础的人做不到。”
最初自己的设定是做数据分析相关,从没想过直接做算法,要知道在纯计算机领域领域,算法也是最难啃的一块。后来想明白,虽然完全没有算法基础,但毕竟本硕7年的学习培养了很好的理论基础,做侧重学习和研究的事情是自己的强项。于是,整个备战过程,除了必要的python编程语言学习,其余的时间都放在深度学习,机器学习算法学习上,花很多时间学清楚了诸多经典算法的数学推导(如SVM,k-means,k-邻近,决策树,协同过滤等)。与这一策略对应的是,我放弃了原计划学习一大堆编程语言(Csharp、C++、R),的想法。
有了这样基础,我的求职范围从较窄的深度学习工程师,扩展到更宽广的机器学习工程师。在诸多面试中,对算法的原理侃侃而谈,避开了自己最不擅长的编程代码实现问题,此为扬长避短。从实际工作来看,这也是有道理的,具体的编程语言和代码实现是容易学会,可以培养的,但理论基础的欠缺几乎难以弥补。
4. 抓住金三银四求职季节
春节后,到了三月初,除了学完吴恩达课程,做了大数据比赛,在其他方面还很欠缺。当时计划再学习一两个月之后,再找投简历。女朋友一针见血地指出,现在是金三银四的求职季,工作机会最多,要赶快投简历,通过面试与业内人士交流,才知道公司究竟需要什么能力,而不是闭门读书。
当时看起来,自己在技能上还很欠缺,总想再学一些技术,让简历更丰满一些。反复考虑之后,决定按女朋友的建议行动。抱着测试IT行业下限的态度,在拉勾网上填了在线简历,先投了一大批中小公司的职位,原因很简单,大公司和明星企业的工作经验要求很高,不具备。直接的结果是收到一大批“不合适”、“不匹配”,石沉大海。
事后来看,这又是一个非常重要的决策,“做准备”是一个没有尽头的事情,知识和技术是永远学不完的。因此做事的关键不在于学多少技术,而在于如何达成自己的目标————拿到一个人工智能算法工程师的offer。要达到这个目标,很关键在于了解行业的需求,而投简历,参加面试就是最直接最一线的方式。
5. 重新设计简历,争取面试机会
直接投出简历的效果并不理想,与一位更早转型的朋友田兴业交流之后,给了几条简历修改的建议:
* 去掉一切与土木工程相关的描述,淡化原专业背景
* 把编程开发相关经历调整到前面,按相关性排序,而不是时间
* 加上自己的个人自述
这几点修改,完全在于表达的形式,但效果是立竿见影的,HR更容易认为这份简历适合AI算法工程师的岗位,在修改简历重新投出后,收到了8个面试邀约,这也体现了行业的认可。
在长达两周的面试周期中,每次面试之后,根据面试的情况有针对地准备下一次面试,可谓“迭代式成长”。由于专业跨度很大的特殊性,仅仅一份简历远不足以证明自己的能力,必须争取面试的机会,充分展示自己的价值。彭南师兄曾经说,找工作最重要的就是面试,能拿到面试的机会就是成功的一半,此言不虚。
6. 研读经典算法论文,通过最严面试
YITU是面试的最后一家公司,也是发展最好,招人要求最高的公司。能够通过面试,最终入职,得益于最后一个关键决策————研读经典算法。
经过师姐丛慧的内推,在第三周取得YITU的面试机会,此前两周已经面试了7家公司,对于面试的基本套路已经很熟悉。第二周的周末,我在想要准备下一次面试,最重要的事情是什么?要把自己在数学、算法模型的优势发挥大极致,最后一个环节就是要读懂前沿的论文,这一能力可以支撑起整个能力面的高峰。于是在周末两天,研读了4篇经典的图像识别论文,搞懂了其中的模型和算法原理,写了七八页的笔记。
第三周,迎来了最重要也最艰难的一场面试————YITU。技术面的流程,几乎是为我量身打造的,基本只考了两个问题:
* 选择一篇经典论文,推导其算法模型
* 分析论述YITU在2017美国人脸识别大赛夺冠的论文
凭借之前研读论文的基础,在一个半小时的面试中,对这两个极有难度的问题基本都能回答上。最终经过后续的两轮面试,终于取得了我图的offer,成功入职国内第一梯队的人工智能企业。
整个转型的过程,远非6个关键决策能讲清楚。但这6个关键的决策基本决定了转型之路的走向和最终的成果。
PS:最后一个关键因素在于地利————上海,工作的选择面太宽广,有了广阔的市场,个人才有发挥的空间。这一点在二线城市是难以想象的。
2. 总结反思
换工作的转型期已经结束,新的职业已经开始,复盘的意义在于总结对未来还有价值的一些启示:
2.1 问题导向和结果导向
对于人工智能、区块链之类的新兴产业,很多人都有一些尝试的想法,但往往被各种问题拦住:没有相关专业学历、怎么学技术、行业跨度太大等等。这种想法偏于问题导向的思维,看到了太多的困难和问题,反而让自己无法行动。
在我看来,决定要做一件事情,就应该以结果为导向,把目标拆解成一个个可以实现的步骤,集成一切可能资源推动目标的实现。没有条件就创造条件。例如,对于非计算机相关专业,要做大数据比赛是一件极其困难的事情,但每个具体的困难都可以找到解决的办法;
* 不懂大数据 -> 去慕课平台学大数据课程;
* 编程技术不熟 -> 找计算机专业的朋友组队;
* 没有时间 -> 春节假期开工;
* 个人电脑算力不足 -> 烧钱上阿里云计算平台;
* 模型有问题 -> 选手交流群找第一名的选手交流;
...
只有目标明确,大多数问题总有破解直接之道,没有条件就创造条件,这是一种做事的态度。
2.2 寻找最重要的一件事情
转型的过程要面对一个全新的产业,有太多的选择和可能性,每个节点都有很多的分支选项,但是能够达成目标的路径总是有限的,必须在诸多要做的事情中找到最重要的一件事,并且把这件事情做好。
三个月完成大跨度的转型,努力和付出是基础,但更重要的在于做对了关键的事情,基本没有做无用功。如何能够如此精准做出最关键的决策呢?
其一,与业内人士大量交流,这个过程中花了很多时间与在IT界工作的朋友沟通,探讨自己想法和考虑,了解行业的需求。
其二,第一份工作的职场经历,使我懂得公司需要什么样的人。因此一切行动的目标是成为人工智能企业需要的人,而不必纠结于要不要读一个相关学位问题。
2.3 用明确的目标来推进充满不确定的愿景
入职之后,同事问我土木工程和计算机专业有什么联系吗?答案是,几乎没有任何相关性,这是两个完全不同的专业,唯一的共性可能在于本科时都要学高等数学。
这意味着,新进入的行业与原来的行业完全不同,原来的经验完全没有复用性,要进入人工智能的产业的愿景充满了不确定性。然而,如果因为外部环境的不确定性而对自己没有明确的计划,那么转型之路将遥遥无期。在一开始,我就确定一个明确的时间表,每个阶段要做什么,何时完成吴恩达课程、何时完成大数据比赛等等,即使遇到问题,也不会轻易放弃既定的目标。
明确的目标会指引人不断向前走,目标可以失败,但围绕目标做出的行动创造的价值是可以复用的。有一位校友师兄曾经帮我内推今日头条上海公司,当时很兴奋,用了一个周末学习了推荐算法。后来并未通过简历关,并没有面试的机会,但借机学会的推荐算法在多次其他的面试中都发挥的用武之地。
2.4 渐变与突变
三个月,从土木工程到人工智能,看似是一次剧烈的突变。但如果回到一年之前,在学校期间已经读了吴军老师的《浪潮之巅》、《智能时代》、《硅谷之谜》以及专栏《硅谷来信》,对于IT产业和人工智能已经有了概念上的了解,并不觉得陌生。从本科到硕士7年的求学,培养的学习研究能力则奠定了自学人工智能技术的基础。因此,从更长的时间跨度来看,这也是渐变,逐渐寻找到更适合自己的事业。
面试中经常被问到,为什么要从土木工程转行做人工智能。我的回答是:
人的价值和成长就像一座金字塔,本科和硕士七年的学习,培养了基本的做事能力、思维方法;在此之上,专业的学习锻炼了学习和研究的能力,具备了系统掌握一门专业技能的素质;在金子塔的最顶端才是土木工程专业的学位。现在的转型只是把已经具备的基础素质和学习能力应用到一个新的领域而已,对我而言只是一个新的发展阶段。
学习、成长是一辈子的事情!
-- 9:48 2018/5/13
-- 于上海