• 12月23日 星期一

经验分享:两年从不会编程到AI工程师

赖可 发自 凹非寺量子位 报道 | 公众号 QbitAI

想做机器学习的工作,却觉得自己没有专业技能?

有一位小哥,从不知道Python到找到AI工程的工作,用时两年。他的文章在网上获得了5000多条点赞。

有网友在他的故事里看到了激情好奇心

经验分享:两年从不会编程到AI工程师

这条路不好走,这非常不容易。享受路上小小的胜利,从遇到的众多挫折中学习。All the best!

他的经验或许能给你一些启发。

不知道Python,却被”机器学习“吸引

这位David Chong小哥在新加坡管理大学的专业是经济和金融,本来毕业后打算在银行工作。

经验分享:两年从不会编程到AI工程师

毕业前的9个月,他找到了日企野村证券的工作。这期间,他接触了一些数据分析的软件,学习了Excel VBA编程,数据可视化软件Tableau和Power BI,还有机器人过程自动化软件UiPath。

“机器学习“的世界深深吸引了他,最让他着迷的是输入数据,然后预测结果这个过程。

原来,他对银行产品的复杂性着迷,经过了一段时间工作后,觉得不过是从客户获利的一种方式。

总之,旧的东西没变得有那么吸引他,又出现了新的兴趣。他决定改变工作方向了。

但现实是,他完全不会编程。

那时候的他的字典里,Python是一种蛇,而Pig……是一头猪。

在Mooc上疯狂自学,纸上得来终觉浅

想学数据科学,网上资源大把大把,于是他在Mooc上注册了不少课程:

  1. Python 训练营:Python 3 从零开始成为英雄[ Udemy ]
  2. 用于数据科学和机器学的 Python 训练营[ Udemy ]
  3. 使用MySQL管理大数据[ Coursera ]
  4. Java初学者教程[ Udemy ]
  5. Web开发人员训练营 [ Udemy ]
  6. 机器学习A-Z:动手实践数据科学中Python和R [ Udemy ]
  7. 用Docker进行机器学习和NLP模型[ Udemy ]

不过他只完成了前三门课程。Mooc的课程内容非常简洁,也让他很快就对一门课失去兴趣,还没有上完就去看下一门。

MOOC上教授传统机器学习方法时,往往会跳过模型实际在做什么这个部分。比如,会教随机森林是决策树的集合,但不会讲决策树怎样决定在哪个分支上选择哪些特征(也就是熵概念和与之相关的数学);会简单介绍支持向量机是分类方法,但不会讲如何确定超平面。

深度学习的课程更不能满足做获取AI专业技能的需求。

相关课程通常会在Tensorflow上,在MNIST这样不错的数据集上给出大量代码,然后让你觉得自己是深度学习专家了。

但是这远远不够。研究论文通常包含复杂的体系结构,涉及理解深度神经网络模型中的特征提取,以及其他更复杂的特征,例如Transformer和双向编码。理解为什么某些最新模型比其他模型更好,以及迁移学习transfer learning元学习meta learning等概念也很重要。

小哥认为,Mooc的课程的优势在于快速入门。上面的课也容易给人误导,任何人都可以成为机器学习的从业者,以为机器学习就是关于.fit() and .predict()的几行代码。

实践和挫折

因此,上了在线课程后。为了提高编程能力,David选择在Hackerrank上进行练习,完成关于SQL和Python的问题。

经验分享:两年从不会编程到AI工程师

同时,他还用python进行了一个项目,来实现在网上自动预订羽毛球场。新加坡的羽毛球场需要提前抢着预定,经常提前两周就预订完了。

经过一段时间的学习和操练,David对自己的技能水平心里有了个大概:

对写python很有信心,但是对代码效率一无所知。

在机器学习上,是jupyter notebook专家,可以把Jupyter notebook 的主题改为“ dark mode”,并使用所有的键盘快捷键。

他想做数据科学家。

但是面试失败了,涉及代码的技术测试比他学习的“数据科学”发展更快。他本来申请了技术分析师的职位,被转去了另一部门,做了业务分析师。

这离他的目标还很远。

接受专业学术训练

为了有更好的技能,他决定在学校继续读商业IT硕士学位(专门研究AI)

经验分享:两年从不会编程到AI工程师

接受专业教育的过程中,大大的补充了此前知识框架的不足。

他学习了传统ML模型背后的数学原理,在自定义数据集上应用了最新的深度学习架构;有关AI的重要概念,包括常见的搜索算法,Q-learning and 深度Q-learning;算法设计,包括图形算法,时间和空间复杂度,名称匹配算法以及其它很多算法。

他还参加了几个学校的硕士项目。这些项目不完整,数据集经常从Kaggle上获得,在Jupyter notebook上结束。深度学习模型在Docker上运行,但不考虑部署。

David 看来,硕士教育提供了AI从业者所需要的严谨学术训练,但缺乏实际应用的训练。硕士课程不会告诉你数据科学工作的必要条件。这个部分需要自己去弄清楚。

软件工程和DevOps技能通常是必需的(尽管并不广泛)。在大型组织中,代码协作也很重要。比如,如何设置Docker环境,启动AWS EC2实例,在Azure blob存储上托管数据集,有效地组织代码,使用GitHub或GitLab进行版本控制。课堂不会教授这些内容。

在面试中积累

David继续进行面试,在技术面试和非技术面试中积累了很多经验(大多数人都不及格),也知道了自己所缺的知识,然后花时间补足。

面试带来更重要的经验是让他详细地摸了摸行情。

他明白了公司对于同样一个职位角色做的不同描述,以及这与公司在采用AI技术的成熟度之间的对应关系。

最终,在决定做AI工作的两年后,他找到了一个好机会,是一个会被培训成AI工程师的职位

小哥目前的职位是在野村证券操作风险部门operation risk的数据分析师。他在邮件中告诉量子位,下个月他将会转去新的岗位。

小哥觉得,这只是一个开始,职业之路就像一场马拉松,不是短跑。

One more thing

看了David小哥职业路径,对你有没有启发呢?

David 说分享自己的经验也是为了鼓舞更多的人,不要把他的经验看成指南。

这是我个人的轶事,我希望能够鼓舞人们,抱持信念去做他们想做的事情,因为人生太短暂了,不能过没有意义的生活。

做你爱的事情,因为你会花你生命的一大部分来工作。

如果你感到迷失,记住Elsa说的“do the next right thing”

经验分享:两年从不会编程到AI工程师


参考资料:

https://towardsdatascience.com/i-had-no-idea-how-to-write-code-two-years-ago-now-im-an-ai-engineer-13c530ab8227


— 完 —

量子位 QbitAI · 头条号签约

关注我们,第一时间获知前沿科技动态

上一篇新闻

各类中学体系学生申请新加坡公立大学本科就读指南

下一篇新闻

​两年前不知如何编写代码的我,现在是一名人工智能工程师

评论

订阅每日新闻

订阅每日新闻以免错过最新最热门的新加坡新闻。