转型之路:从土木工程到人工智能

3字数 5360阅读 9624

欢迎关注本人微信公众号:【马骋笔记

2017年底,我在设计院从事桥梁设计工作,对职业发展有了新的想法,决定从土木工程转行到人工智能领域。经过3个月的准备,成功拿到AI算法研发offer,在2018年5月入职上海一家AI独角兽。

回顾这段大跨度的转型经历,努力固然是成功的基础,但更重要的是面对高难度的目标,如何拆解问题、做出高质量的决策、并且用果断的行动实现自己的愿景。跨界的经历或许不可复制,但对于如何实现目标、解决问题,态度和思维方式可以一以贯之。

1. 转型之路

转型之前的我是刚毕业从事市政工程设计的桥梁工程师。转型的过程,大约两个半月学习人工智能领域的技术,用三个星期投简历面试。原工作在职的状态下,能在三个月完成这样的转型,达成目标的关键不在于地毯式地学完了所有的技术,而在于做对了6个关键决策:

  • 瞄准深度学习方向
  • 完成大数据比赛项目
  • 挖掘自核心优势
  • 把握金三银四机会窗口
  • 修改简历,重构人设
  • 打造价值点,支撑能力面

1.1 确定深度学习方向,选定吴恩达课程

第一个关键决策:从什么方向切入

2017年,人工智能已经成为国民级的话题。但要从事专业的工作必须弄清楚,人工智能究竟是什么、从业人员具体要做什么、有哪些关键技术。对应的?学习传统的统计分析技术、通用机器学习算法、还是最流行的深度学习?

为了想清楚这个问题,重读了吴军老师的《智能时代》和李开复的《人工智能》,基本弄清楚了当前人工智能的兴起关键在于“深度学习”方法的跨越式发展,而深度学习是计算机科学下机器学习的一个分支。顺着深度学习的线索,找到了网上最热门的吴恩达《Deep Learning》课程,系统学了深度神经网络方法和图像识别的技术。

后来的经历表明,吴恩达的课程讲的最好(并非最深),配套资源(习题、编程作业)非常容易上手,是初学者最佳的选择。并且课程知名度高,在业内也有认可度,学到的概念和方法基本可以满足面试的要求。

1.2 参加阿里天池大数据比赛,取得名次

第二个关键决策:如何证明职业胜任力

学完吴恩达课程是一件花时间就能完成的事情,但是如何证明自己具备职业能力呢。和中科院自动化所读研的许同学交流,他给我的建议是做一个大数据比赛,锻炼实际的项目应用能力,例如阿里天池比赛,或国外的kaggle。

决定做大数据比赛之后,我与南大计算机读研的好友Z兄商量,决定在春节期间做比赛。春节之前,在南大奋战一周,搭建了基本的深度神经网络模型,但成绩极差,排名倒数,铩羽而归。回家之后继续推进,整个春节假期全部投入,与国科大的W同学(当时比赛的第一名)不断交流,改进模型,终于在春节假期结束前夕取得理想结果,排名前20%。开始上班后,没有时间继续做比赛,成绩定格在这个水平。

大数据比赛耗费的精力,过程之艰难,远超之前的想象。但收获也是巨大的,以非计算机专业的基础,在两三个星期内具备Python实战能力,学会Linux操作基础,还能部署云计算,基本解决深度学习的调参问题,最终取得一个得体的成绩。大数据比赛的成果打造成了项目经历,后来成为每次面试的压轴戏,每次都能和面试官侃侃而谈,使对方相信我具备从业的能力。

1.3 挖掘个人优势,侧重数学、算法理论

第三个关键决策:定位个人核心优势

学习准备的过程中,有一个关键的战略性问题:自己的核心优势究竟是什么。最初,自己理解是,本科硕士有一些在本专业编程开发的经历,英语能力强,善于总结写作、快速学习等等。但这些自以为的优势,并没有立竿见影的效果,在土木工程的圈子里,我可能算是懂一点编程的,但在IT的圈子里,编程熟练度可能不如上几个月培训的人。元旦时,与在深圳做IT的同学孙sir交流,他给我的建议是我以前从来没有意识到的:“你的最大优势是数学好,数学基础强可以在算法方向持久发展,而缺乏基础的人做不到。”

最初自己的设定是做数据分析相关,从没想过直接做算法,要知道在纯计算机领域领域,算法也是最难啃的一块。后来想明白,虽然完全没有算法基础,但毕竟本硕7年的学习培养了很好的理论基础,做侧重学习和研究的事情是自己的强项。于是,整个备战过程,除了必要的Python编程语言学习,其余的时间都放在深度学习,机器学习算法学习上,花很多时间学清楚了诸多经典算法的数学推导(如SVM,k-means,k-邻近,决策树,协同过滤等)。与这一策略对应的是,我放弃了原计划学习一大堆编程语言(Csharp、C++、R),的想法。

有了这样基础,我的求职范围从较窄的深度学习工程师,扩展到更宽广的机器学习工程师。在诸多面试中,对算法的原理侃侃而谈,避开了自己最不擅长的编程代码实现问题,此为扬长避短。从实际工作来看,这也是有道理的,具体的编程语言和代码实现是容易学会,可以培养的,但理论基础的欠缺几乎难以弥补。

1.4 抓住金三银四求职季节

第四个关键决策:什么时机开始投简历

春节后,到了三月初,除了学完吴恩达课程,做了大数据比赛,在其他方面还很欠缺。当时计划再学习一两个月之后,再找投简历。女朋友一针见血地指出,现在是金三银四的求职季,工作机会最多,要赶快投简历,通过面试与业内人士交流,才知道公司究竟需要什么能力,而不是闭门读书憋大招。

当时看起来,自己在技能上还很欠缺,总想再学一些技术,让简历更丰满一些。反复考虑之后,决定按女朋友的建议行动。抱着测试IT行业下限的态度,在拉勾网上填了在线简历,先投了一大批中小公司的职位,原因很简单,大公司和明星企业的工作经验要求很高,不具备。直接的结果是收到一大批“不合适”、“不匹配”,石沉大海。

事后来看,这又是一个非常重要的决策,“做准备”是一个没有尽头的事情,知识和技术是永远学不完的。因此做事的关键不在于学多少技术,而在于如何达成自己的目标--拿到一个人工智能算法工程师的offer。要达到这个目标,很关键在于了解行业的需求,而投简历,参加面试就是最直接最一线的方式。

1.5 重新设计简历,争取面试机会

第五个关键决策:如何调整自己的人设

直接投出简历的效果并不理想,与一位更早转型的朋友田兄交流之后,给了几条简历修改的建议:

  • 去掉一切与土木工程相关的描述,淡化原专业背景
  • 把编程开发相关经历调整到前面,按相关性排序,而不是时间
  • 加上自己的个人自述

这几点修改,表面上看起来是格式调整,但对于收到简历的人来说,是人设的变化。以前的简历更像是“土木工程领域很擅长编程”的人,而修改后更像“大数据从业者,做过土木工程方面的项目”,HR更容易认为这份简历适合AI算法工程师的岗位。在修改简历重新投出后,收到了8个面试邀约,这也体现了行业的认可。

在长达两周的面试周期中,每次面试之后,不论成败,第一件事情是复盘面试的结果,有针对地准备下一次面试,可谓“迭代式成长”。一次次的面试,实际上起到了陪练的效果。由于专业跨度很大的特殊性,仅仅一份简历远不足以证明自己的能力,必须争取面试的机会,充分展示自己的价值。更早转行的彭兄曾经说,找工作最重要的就是面试,能拿到面试的机会就是成功的一半,此言不虚。

1.6 研读经典算法论文,通过最难面试

第六个关键决策:以点带面,拿下制高点

经过前7家公司的面试,已经拿到了1个半offer,最后一家面试迎来了上海最大的AI独角兽企业,以算法著称的Y公司。Y公司也是发展最好,招人要求最高的公司。能够通过面试,最终入职,得益于最后一个关键决策--研读经典算法

经过C师姐的内推,在第三周取得了的面试机会,由于此前两周已经面试了7家公司,对于面试的基本套路已经很熟悉。第二周的周末,我考虑要准备下一次面试,最重要的事情是什么?对于面试常见的问题,各种算法的基本原理、项目的展示,已经很熟悉,基本可以撑起做为机器学习算法工程师的能力面,如何进一步突出自己的价值呢?最重要的事不再是面的拓展,而是拿下一个制高点:研读机器视觉领域的论文,把自己在数学、算法模型的优势发挥大极致,用一个价值点支撑起整个能力面的高峰。于是在周末两天,研读了4篇经典的图像识别论文,搞懂了其中的模型和算法原理,写了七八页的笔记。

第三周,迎来了最重要也最硬的Y公司技术面试。技术面的流程,几乎是为我量身打造的,基本只考了两个问题:

  • 选择一篇经典论文,推导其算法模型
  • 分析论述Y公司的一篇经典获奖论文

凭借之前研读论文的基础,在一个半小时的面试中,对这两个极有难度的问题基本都能回答上。最终经过后续的两轮面试,终于取得了的offer,成功入职国内第一梯队的人工智能企业。

此处还有一个决策:妥协

为了提高成功率,主动降低了岗位要求,以算法测试工程师岗位面试、拿到研发部岗offer。在入职6个月后通过考核评测,成功转岗到算法工程师。从过程来看,只要入职的平台足够好,完全可以接受先以偏低端岗位入职,进入行业之后,在工作中更有针对性地提升专业技能,再向高端岗位转岗。工作上的能力,总体上是实践锻炼出来的,不是自己在家憋大招能搞定的,拿到入场的机会,开始迭代和实践才是最重要。换个角度看那些科班出身的算法工程师,他们也需要在校的各种项目、实习的锻炼,才可能胜任算法工程师的职位。

1.7 决策总结

整个转型的过程,远非6个关键决策能讲清楚。但这6个关键的决策基本决定了转型之路的走向和最终的成果。

从天时地利人和的角度来看:

  • 天时,抓住时机窗口
    2017年AI爆发,2018年初金三银四的求职季,整个行业有大量的岗位机会。
    然而到了2018下半年,经济形势恶化,大量互联网公司裁员,跨界求职概率渺茫。
  • 地利
    上海作为一线城市,产业丰富,个人的选择面非常广阔,大量试错的机会。
  • 人和
    转型过程中,要进入一个完全不熟悉的行业,必须主动借助外力的支持,而不是自己的蛮干。
    行业内各位同学朋友的建议反馈、内推支持起到了极大的主力;转型期面对极大的压力,女朋友全力支持、出谋划策,我们一起做出了一系列高质量的决策。

2. 总结反思

换工作的转型期已经结束,新的职业已经开始,复盘的意义在于总结对未来还有价值的一些启示:

2.1 问题导向和结果导向

对于人工智能、区块链之类的新兴产业,很多人都有一些尝试的想法,但往往被各种问题拦住:没有相关专业学历、怎么学技术、行业跨度太大等等。这种想法偏于问题导向的思维,看到了太多的困难和问题,反而让自己无法行动。

在我看来,决定要做一件事情,就应该以结果为导向,把目标拆解成一个个可以实现的步骤,集成一切可能资源推动目标的实现。没有条件就创造条件。例如,对于非计算机相关专业,要做大数据比赛是一件极其困难的事情,但每个具体的困难都可以找到解决的办法;

  • 不懂大数据 -> 去慕课平台学大数据课程;
  • 编程技术不熟 -> 找计算机专业的朋友组队;
  • 个人电脑算力不足 -> 烧钱上阿里云计算平台;
  • 模型有问题 -> 选手交流群找第一名的选手交流;

只要目标明确,大多数问题总有破解直接之道,没有条件就创造条件,路总是人走出来的,这是一种做事的态度。

2.2 寻找最重要的一件事情

转型的过程要面对一个全新的产业,有太多的选择和可能性,每个节点都有很多的分支选项,但是能够达成目标的路径总是有限的,必须在诸多要做的事情中找到最重要的一件事,并且把这件事情做好。

三个月完成大跨度的转型,努力和付出是基础,但更重要的在于做对了关键的事情,基本没有做无用功。如何能够如此精准做出最关键的决策呢?

其一,与业内人士大量交流,这个过程中花了很多时间与在IT界工作的朋友沟通,探讨自己想法和考虑,了解行业的需求。
其二,第一份工作的职场经历,使我懂得公司需要什么样的人。因此一切行动的目标是成为人工智能企业需要的人,而不必纠结于要不要读一个相关学位问题。

2.3 用明确的目标来推进充满不确定的愿景

入职之后,同事问我土木工程和计算机专业有什么联系吗?答案是,几乎没有任何相关性,这是两个完全不同的专业,唯一的共性可能在于大一都修了公共基础课。

这意味着,新进入的行业与原来的行业完全不同,原来的经验完全没有复用性,要进入人工智能的产业的愿景充满了不确定性。然而,如果因为外部环境的不确定性而对自己没有明确的计划,那么转型之路将遥遥无期。在一开始,我就确定一个明确的时间表,每个阶段要做什么,何时完成吴恩达课程、何时完成大数据比赛等等,即使遇到问题,也不会轻易放弃既定的目标。

明确的目标会指引人不断向前走,目标可以失败,但围绕目标做出的行动创造的价值是可以复用的。有一位校友师兄曾经帮我内推今日头条上海公司,当时很兴奋,用了一个周末学习了推荐算法。后来并未通过简历关,并没有面试的机会,但借机学会的推荐算法在多次其他的面试中都发挥的用武之地。

2.4 渐变与突变

三个月,从土木工程到人工智能,看似是一次剧烈的突变。但如果回到一年之前,在学校期间已经读了吴军老师的《浪潮之巅》、《智能时代》、《硅谷之谜》以及专栏《硅谷来信》,对于IT产业和人工智能已经有了概念上的了解,并不觉得陌生。从本科到硕士7年的求学,培养的学习研究能力则奠定了自学人工智能技术的基础。因此,从更长的时间跨度来看,这也是渐变,逐渐寻找到更适合自己的事业。

3. 结语

面试中经常被问到,为什么要从土木工程转行做人工智能。我的回答是:

人的价值和成长就像一座金字塔,本科和硕士七年的学习,培养了基本的做事能力、思维方法;
在此之上,专业的学习锻炼了学习和研究的能力,具备了系统掌握一门专业技能的素质;
在金子塔的最顶端才是土木工程专业的学位。
现在的转型只是把已经具备的基础素质和学习能力应用到一个新的领域而已,对我而言只是一个新的发展阶段。

学习、成长是一辈子的事情!

-- 9:48 2018/5/13 (2019.03.24更新)
-- 于上海


更多原创文章请关注本人微信公众号:【马骋笔记】

logo.jpg

推荐阅读更多精彩内容