从土木零基础裸辞转行到数据挖掘和算法了

苦逼的码农

共 7833字,需浏览 16分钟

 ·

2021-06-08 02:03

17年1月硕士毕业,后去国企设计院工作,次年4月裸辞后去杭州准备转行,后进入一家互联网金融公司做数据挖掘。大半年后又辞职来到京东做算法,直到现在。

这两年算法岗卷得不是人,以为大家转行的热度会小一些,但发现还是有很多朋友想转互联网,以运营和数据为主。我也是从0开始,探索怎么转行,转去做什么,最后走到了这里。

分享下这段经历,只要对一个人有思考的价值,也是有价值的。

先把排掉坑之后最真诚的推荐总结下,正文有详细的学习过程和坑。
  1. 学语法学基础

    1. 《笨办法学Python》和《Python基础教程》

  2. 学Web开发

    1. 《Flask Web开发:基于Python的Web应用开发实践》

    2. 学git,学html和css:菜鸟教程

  3. 学数据分析

    1. Dataquest:Data Scientist – Python路线

    2. 学markdown写作

    3. 学sql:SQL zoo、牛客网、力扣

    4. 学Python库(NumPy, pandas, matplotlib, sklearn):《利用Python进行数据分析》《Python数据科学手册》

  4. 学算法

    1. 西瓜书、统计学习方法、深度学习入门

    2. Coursera 上的deeplearning.ai的专项课程

01
毕业以前

10年上大学时,房地产大周期正盛,各大院校土木招生人数多分数高,大家都在往这个方向转。难以忘记,有个计算机专业的哥们转专业来学土木,问其原因竟是《越狱》男主Michael Scofield是位结构工程师。

土木专业作为一门应用型学科,专业课非常地难学,专业壁垒特别高。真正要命的是,土木学科和其他学科很难交叉,机械可以和自动化、机器人交叉,材料可以通过半导体、高分子、电池等领域进入科技公司,唯独土木,往科技上凑的BIM搞成了什么,广联达跟土木也没有什么关系。即使近年来市场萎靡,产能过剩,土木从业者找工作还是没有问题的,毕竟除了房产还有基建,除了国内还有国外。

总而言之,那个时候土木专业的同学,是没有几个吵着闹着争着抢着转行的。我也不例外,即使有过实习经历,也并没有想着跳出行业看看。本科想着保研,读研想着发论文去设计院,参考着有限几种师兄师姐的发展路径,在局限的认知里也落得快活。

人总是要先进入了一种生活,才知道要跳出这种生活。围城内外。

02
为什么转行

在设计院工作,地位和收入虽不比早年,在一个二线城市,还是很安稳舒服的。朝8晚5,下班可以随时健身、打球、看电影,但产业链夕阳西下,也无法忽视。互联网领域发展很快,但传统领域还是应用相对较老的技术。我很慌。我想学点新东西,也许十年后二十年后还能用上我的专业背景,做点特别的事情。

于是开始写文章,追求工作之外的价值。

想去读博,也许可以当老师,不行也可以想办法去做科研。想换专业读研,国内要考,国外太贵。想转行。

找了一些朋友聊,但做决定的只有自己。

我选择了转行,以“想要去改变世界,而不是给改变世界的人盖房子”为精神动力。

然后就离职了,去到了另一个城市,没有明确的职业规划,只是认准了一个方向:Python。没有其他。

说句后话,不到万不得已尽量别裸辞,一定要把辞职后的路想清楚。像我这样稀里糊涂辞职会遇到很多问题。

03
如何转行

来了杭州之后,租了个自如,买了一堆python相关的书籍和一台新的Mac Pro,也不知道该走向何方。


学语法学基础

买了《笨办法学python》和《python基础教程》,这个其实是离职前后就大略看过了。但是你懂的,python基础语法容易,进阶玩法还是很难的。

怎么学都会觉得浮在表面,不知道在干啥。后来在慕课网找到个高效编程的免费课程,对照着学完了一遍,并notebook挨个实践,后来就放GitHub了。
转行的人都懂,学了再多这种基础也不知道可以用来干嘛,就像我们在学高数、概率论和线性代数一样。后来就频繁逛知乎搜集一切对自己有用的资源。

焦虑开始首现。

一天在小区跑步就想:我要做个博客,文章就记录我学习的东西。


学Web开发

于是,进入了学习的第二阶段,学习怎么做博客。

光看大家的博客文章是很难学到整体认识的,所以要买一本好书。选定了《Flask Web开发:基于Python的Web应用开发实践》。事后觉得这本是真的好,推荐指数五颗星。

然后半个月过了一遍这本狗书。转行的生活就是这样,除了学习就是吃喝拉撒。前半部分特别仔细,去理解思路和代码,后半部分就只顾得上思路了。期间也学习了Git,开始用GitHub。一章一章过这本书,觉得写的真好,再次推荐。虽然基本上照搬书上的代码,但要走通还是有很多坑,频繁参考了GitHub的issues。不过特别坑的是,我买的纸质书是1.0版本的,GitHub上作者已经更新成2.0版本了,直到某一章我死都调不通,提了个issue,还是原作者指出来是版本问题。

在这个过程中,Git主要是从菜鸟教程上学到,实践过程中也反复参考了廖雪峰老师网站的git教程。两者都足够全面,二选一即可。

跑通了狗书之后,发现最终做出来的效果不是我想要的风格,我不需要这么多复杂的功能,也不需要交互。又没能力修改这套框架去定制化实现我想要的博客风格。

然后了解到GitHub Pages写博客,这个就比较容易了,folk了个自己喜欢的模版,同时学习了下Html、CSS,改成了自己喜欢的样子。话不多说

网页开发涉及的Html和CSS主要也是从菜鸟教程上学的,偶尔也去w3schools看看。

以上呢,总结下来,最推荐的就是菜鸟教程了,该有的都有。


博客有了,我要写什么呢?


学数据分析

接着进入到了第三阶段。在离职后去杭州的高铁上,第一次搜到了numpy这个东西,有点数学的意思,看了一篇教程。这个时候我还从未听说过数据分析,更别说算法、数据科学家这些时髦词汇。

要做什么,也是通过不断地浏览知乎确定的。搜python的应用,很难跳过数据分析,看过相关概念后,感觉还不错,用数学办法来解决问题。有点心动了,认为数据分析这个方向其实是把python当工具用,这个比完全依靠python做开发更容易入门。当然,真实原因其实是python研发对我这样0基础的人来说太难了。至少,入门,真的真的太难了。

又开始逛知乎,怎么去学这套东西。看了很多高赞的帖子,挑出来合适自己的办法,最后选了dataquest。它的特点是编程学习而不是跟视频,对我来说通过视频学习总是抓不到重点,还是看材料学好。
然后花了一个月时间学完了整个Data Scientist – Python路线,中间少数跳跃。

个人觉得dataquest这个平台还是很不错的,充分锻炼了自己的动手能力,因为每一步都是看材料写代码,有结果可供参考。学习路线也很全面,从python基础,到sql,到numpy、pandas、matplotlib为主线的数据分析和可视化,到统计学知识,到机器学习、深度学习,也涵盖shell命令行、git和Jupyter Notebooks的基本应用,如下图。
当然,它有两个缺点,一是都是英文,二是进阶教程需要收费,29刀一个月。如果你英文还不错,我认为是很值得的,有一些基本课程是免费的,大家可以先试试看适不适合自己。btw,之所以要在一个月内学完它,就是因为收费29刀。

另外,也不忘初心,写了几篇博客,还是挺认真的。写博客需要中间又学习了markdown这个鬼东西,我是在下面这个网站上学的,菜鸟教程上也有,这个简单,边用边学即可。当时写的几篇文章就是博客截图的那个。




再学数据分析

学完上面的课程之后,逐渐了解到SQL特别重要,尤其是数据分析领域,可能是最核心的技能了。所以,又针对性开始深抓这方面。

首先是dataquest有一部分最基础的sql内容,这个学习过了。菜鸟上同样有sql教程,偶尔作为工具查看一下,倒没在上面从头学一遍。

然后觉得需要实战,找了各个平台,先找到了SQLZoo,过了一下这些最基本的练习。在dataquest学习过程中,被灌输了代码可读性的思想,SQL语句有时候会非常复杂,应该活用大写和空格增强代码可读性,甚至可读性readability比一致性consistency更重要。于是看了一遍SQL Style Guide。于是形成了一套符合自己审美的sql写法,工作后总发现跟别人的不一样,跟自动美化的也不一样,anyway我觉得是清晰好看的。
后面又找到牛客网的sql实战在线编程,当时好像是61道,现在去看有80道了,我觉得很不错。刷一遍,一时半会想不到的,可以刷评论,这样应该能锻炼出最基本的sql思维了。

如果大家也有转行来学sql的,刷一遍的过程中肯定有挺大一部分比例是自己短时间内做不出来的,不用着急。不会就去看评论,再去思考总结就好了。一些做题思路是常学常新的,总结形成体系很重要。

刷完了牛客网的sql题后,又去leetcode上看了下,了解到力扣自然是因为那是刷题人的取经之路。但是算法题太难了,对于转行要以最快速度入行的人来说,刷算法题太慢。看到里面有SQL题,当时是有11道免费的,就刷了一遍。

再往后就浮躁了,感觉自己什么都没怎么会,也不知道学的东西到底是怎么用的,同时还不知道该学什么了。


三学数据分析

当你进入一个领域后,一定要尽快把这个领域有关的重要图书、报告等资料系统性学习一遍,这样能让你了解你所做的在整个领域的位置。日后工作时,你常常需要做出一些判断和选择,这个时候如果知道原则上可以这么做而不仅仅是你个人的想法,会大有裨益。虽然现在我还没有入行,但还是想更进一步学习这个领域。

然后买了一系列图书,下图中间几本,《利用python进行数据分析》《python数据科学手册》《数据挖掘导论》等就是这个阶段买的。推荐第一本,python做数据分析离不开numpy、pandas,里面介绍的非常系统、非常高级。后面在转行后第一份工作中,关于这几个分析库的应用就没有人比得上我了。
又花了几天学习这些内容,逐渐开始焦虑。每天在小区跑步,偶尔一个人去逛西湖,也偶尔找同学聊聊。btw,转行的同学有一个点会非常弱势,那就是身边的圈子都不在新行业,要靠自己借助互联网平台去找到榜样和事例。这是很残酷的一个劣势,但利用的好也会变成优势。这点以后再说。

同样,我还是信奉实践中学习,找各种合适的平台。最后找到了实验楼,还买了个会员,里面有一些基础如numpy百题大冲关、pandas百题大冲关,以及其他一些实践课程。但回头看,这是一个病急乱投医的操作,我并没有怎么用这个平台,当时购买会员完全是那种买了就是学了的失了智行为。

学算法

学习了数据分析后,紧接着到数据挖掘和算法是自然而然的事情。这个阶段我仅仅涉及到非常浅的位置,我没有那么多的时间可以用来投入这些需要持续精进的内容中去。

到这,主要是了解了下有监督学习、无监督学习是什么,分别有什么经典算法,调包怎么用这些算法。但也仅限于非常经典的简单算法,线性回归、逻辑回归、k近邻、k-means等。

学到60分容易,学到80分90分难啊。更何况我这可能就学到20分。其中各种折腾纠结郁闷痛苦。在出租屋待不下去就去星巴克。想有人指导又没人指导。

后来发现好未来要办一个FutureCamp训练营,远程+免费,及其合适及其友好。果断报名了,需要笔试+个人简历,难度系数很大,准备了好几天。最后收到了祝贺信,如下。

后面就认认真真学习了一个礼拜,发现大家都比我厉害,而且大家基本都是在校生。开始变得很焦虑,学习成本变得越来越大,这个时候已经离职来杭州两个半月了。实在是忍不住,就开始boss直聘找工作了,也就没有时间去完成全程训练营的作业了。


总结下

大家可以看到我的努力、我的纠结、我的迷茫,很多很多。上面很多纠结是因为离职前没有准备,这里发生的很多事情完全可以前置在离职前解决掉。

这也是我想再次提醒的地方,离职前想好后期规划,因为这个时候你可以跟很多人去沟通去校正你计划的可行性。当你离职之后,你就处在你人生的低谷,你会更愿意一个人走出困境,因为生而为人都是孤独的。

04
转行后第一份工作

离职2个月多后,开始面试,头两个面试就非常的受打击,因为学历还ok,倒不会受到对方歧视,但是一问三不知的确是伤自尊。

后来拿了两个offer,一个是智慧医疗的图像处理,一个是金融科技的风控。可能当时算法人才还比较缺失,还能有公司让我这样背景的人入场。这两个机会,前者过于专精,跟我冲着互联网的商业模式去的初衷相悖,于是选择了后者。当时,并不了解这些方向上、赛道上的差别。

在这家金融科技公司做风控,后来表明是一段非常值得庆幸的事情,即使我很快就选择了离开。这家创业公司在我加入之前,风控组只有若干个实习生在做尝试性工作。我去的当周实习生就都回校或出国了。只有老板和合伙人有风控经验。

在这样的基础上,我开始了一惯的死拼作风。在一个有经验的合伙人的指导下,我做了很多工作。很多我第一个月做的事情,后期深度分析还可以参考我当时的工作成果。

我去的第一个月数据组已经是3个人的团队了,后来一直保持着3-6人的规模。在不到两个月的时间里,我成了公司的数据组leader,参加公司每周会议。一直很拼的工作到年底,做很多事情,跟多个部分协同配合,带领团队,制定策略方案上线模型,建立体系,遇到了很多挑战,也学到了很多东西。很痛苦也很开心。

因为深得公司信任,也承担了相应的责任,有机会站在更高的角度上看待整个业务。我觉得是非常难能可贵的。由经验丰富的合伙人和老板带着,也学到了很多一般人没有机会学到的东西。

至于我后来离职,是想遇到更大的挑战,想认真规划下我的职业生涯。跳出繁忙且压力大的工作,认认真真地思考未来发展问题。

我之所以很快成为了小组leader,我认为有两点:一是我特别努力,当然学习能力也较强;二是我责任感特别重。我做的交接工作是一套二十五页的风控各项工作总结报告,及分类好各个模块对应的文件,相当于重新回顾整理了半年多时间的工作成果。

这些工作主要是利用下班后以及周末时间做的,有很多天都整理到3点左右睡觉。离职时发给老板和合伙人,他们都有点吃惊。他们挽留了我很多遍,只不过我比较死脑筋,坚持置之死地、在挫折中成长。

05
再次离职

大半年后我就又离职了,结果不幸正好有亲戚生病过世了,回家待了一周。回到杭州重新学习,没急着找工作。学习了Andrew Ng在Coursera 上的deeplearning.ai的专项课程。由于7天免费试用,决定7天内学完拿到证书。为了省钱也是蛮拼的。
Coursera上视频加载有时候真的慢,网易云课堂有对应的免费微专业-深度学习工程师,同样的视频并且中英字幕很棒,只不过没有测验。这个课程真的超级超级棒。吴恩达对应的机器学习课程也是极好的。

拿到证书之后,再巩固了下各方面的知识。转行后也有持续地在学习,Kaggle、B站、公众号、知乎都是很好的学习平台,走数据分析—>算法的路线。西瓜书、统计学习方法、深度学习入门等等都是这个阶段有好好在学的。
后来就投简历了,主要是投算法工程师。

第一家面试,也是创业型公司,规模不大,面试官主要问了我之前的工作,交叉性地问了一点CNN、RNN,后来面试反馈说我的所长跟需求不一致。哎,心累,并没有正儿八经问我深度学习的东西,就足以被发现我并不擅长深度学习。不过并不纠结,因为我想去大公司,深耕细作沉淀下来,这也是我离职的原因。当时想的是跳过风控搞技术。

后来投着投着发现基本都没面试机会了,意识到互联网寒冬不是虚的。

再后来又有一家算法工程师的面试,笔试五六张纸,写了一个小时有两道还不会。聊的还可以,但是表现不太好,不太自信,毕竟本身就缺积累。后来一直没反馈也在情理之中。

离职的兴奋期只能保持一个月,后面就会开始烦躁和焦虑。五一去爬了个黄山散心。

在这之后我开始了新的思考,到底想去什么样的公司,想要什么样的职业发展,也开始思考我的核心竞争力。想去一家有活力有发展的大企业,与此同时,又想再深入更技术一点的方向,偏算法而不偏业务。现实已经让我意识到,我做不到二者兼顾。两相对比,更不想折中前者,于是开始剖析不想做互联网金融风控的原因。开始跳出技术,思考头部公司在做什么。看了蚂蚁金服的传记,重新思考金融科技的价值。这个行业这么大的市场,这么多资源,这么多优秀的人才,是不是我的思路没有打开。于是,开始制定新的目标。

蚂蚁金服面了推荐的岗位,被虐惨,后来又有风控的岗位,但当时还没想明白。再后来,我就来京东了,在亦庄生活了近两年。

06
我的现状

现在呢,在这做算法近两年,带个小小的团队,做的当然还是风控建模。自认为,在信用评分领域有了专家级经验,在大风控层面也认识了很多朋友,形成了即宏观又微观的知识系统。也因而得以在这个公众号分享这些经验,可以看此前的文章。希望认识更多的朋友。

信贷与风控
如果你想来金融科技公司……

另外,也开始基金投资,看很多书培养自己关于投资和资本市场的认识。直到现在,努力去搭建自己的思考体系,遇到错误就修正它。我很认可基金投资,一直以来操作还比较频繁。但长期看,我不会把过多精力放在盯盘上,合适的时机入场然后长期持有,查理芒格的思想给了我信心。

当前,基金投资在要我做的事情上,优先级前面还有两个,工作和写文章分享。因而,文章就定位在工作和投资之中。毕竟风险是投资要考虑的第一要素。

07
我的总结与思考

本篇文章重点放在了如何转行上,分享给需要的朋友,跳过了最苦的面试过程。但是我想说,真的很苦。但是假如你真的做出了这个决定,转行之后暂时不太成功,再坚定一下,很大一部分原因是没有天时,静观其变耐心等待。

给想转行的朋友,还是要打一下预防针。

转行穷三年,很有道理。从资深转到资浅,准确点,从相对有资历转到无资历,被更年轻的人吊打,你能不能奋起而上?

尽早做职业规划,尤其是转行的人。对于CS、统计学等专业的学生,进入互联网行业,可能在校期间经过实习或者身边同学就可以了解自己想去什么公司做什么工作了,但是对于我这样的人来说,要亲身感受一遍,代价太大了。一项我认为特别重要的能力是,快速吸取别人的经验教训。只不过,我当时欠缺这个能力。希望你们抓住一切机会弄明白自己的真实需要。

另外,有心仪的岗位尽早投递,不要想着等自己完全准备好了再去尝试,一家快速上升的公司现在的要求你达不到,一年后的要求你可能更达不到了。

裸辞风险极高,裸辞前以为自己想好了它的利弊,裸辞后可能会发现有些弊端你压根就没想到。在我是转行的背景下,还有这么短暂的工作经历,并有一个多月的待业期,这样的条件是巨大的劣势,直接导致很多公司即使匹配我的技能也不给予考虑。相反,如果我是在职,竞争力则会大很多。当然代价是,我这段时间的自我认识就不复存在。

所以,请非常非常认真的评估风险,裸辞我永远不会鼓励。如果你必须,祝你万事如意。我认为裸辞最大的价值在于,自我认识。一个对自己负责的人,一定是经过深思熟虑利弊权衡才会做此决定。如果你对自己还没有那么充分认识的话,可以试试把未来的可能性当成目的,这可能是最重要的。




我也不知道本文想得到什么结论,也许只描述现状就有参考意义了。即使无意义,无妨,付之以文而已。


浏览 22
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报