2019年第 9 篇文章,总第 33 篇文章
2018年7月正式结束接近20年的学生生涯,正式踏入社会,开始工作半年了,这段时间感触挺多,所以想写下这段时间的一些感想和收获。
关于我
首先简单介绍下自己吧:
刚毕业半年多,本科通信专业,但保研的时候选择了图像分类的方向,算是偏向计算机专业,需要编程技能了,而且2015年,刚好也是深度学习如火如荼的时候,图像、NLP、语音都开始应用深度学习的网络模型,主要也是 CNN 来解决各种问题,因此也跟着入坑深度学习,因为之前专业其实并非计算机专业,所以其实计算机基础比较一般,在找工作的时候选择算法方向,同时才对数据结构、网络通信、Linux方面有所涉猎,也算是自学编程两年多吧。目前的技术栈主要是 python + 图像分类算法方面。
2017年6-8月在深圳华为实习过三个月时间,然后目前在北京京东工作,主要是图像分类方面的工作。
一些感想
1. 算法工程师需要什么
目前岗位是算法工程师,所以先简单谈谈从找工作到目前工作半年后,对于算法工程师技能要求的一点想法(当然我只是个学渣,所以可能这点想法并不对)。
先摆上我的观点:算法工程师,需要熟悉算法,也需要很好的编程能力,或者说是工程能力。原因有这几点:
在企业,算法必须能够落地,变成一个产品。简单说,企业是需要盈利,需要赚钱的,作为公司的一员,你必须证明对公司的价值,而如何衡量价值呢,你可以给公司带来收益,给公司赚钱,或者你可以帮助公司节省成本,都可以。从这个角度看,我们的算法必须能够落地,可以做成一个产品,给公司带来收益。这方面其实就以 BAT 为例子,应该说三年前百度的 AI 能力是最强的,那时候其他两家都没有百度重视人工智能,但从市值来看,百度却早早就被抛弃了好几个档次了,原因就是它一直没能将技术转化为产品,不能带来收益,而其实这段时间有很多 AI 独角兽的创立,商汤、旷视、科大讯飞等,它们都专注做特点领域的AI产品,比如人脸识别,语音识别等。
学术界和工业界的区别。既然在企业,需要算法落地,做成产品,那么需要衡量的指标自然就不是学术界那么简单,只是准确率即可,速度是一个很重要的指标,此外也需要考虑很多不同场景下的情况,这些问题不只是简单调用模型就可以搞定的,你需要将模型封装起来,写成一个对外的接口服务,或者是接入到一个产品中,那么就需要你有很好的工程能力,可以快速完成开发;
从校招经历看。如果是大牛,发了多篇顶会论文,那么编程方面的要求当然就会减轻很多;但对于我们大多数普通人,这个要求就很高了,我们应该考虑的是让自己有多个项目经历,比如自己科研的项目,或者是参加一些比赛,比如 Kaggle、天池上的比赛,这样面试官也可以从你写的项目入手来问问题;但如果没有项目经历,或者面试官对你的项目不感兴趣,那么除了必问的算法问题,还会问你一些编程和数据结构的问题,不过,比较幸运的是,相比研发岗位,算法岗位面试时候对编程能力的要求并不是很高;但编程技能依然是必备的,并且要努力提升的;
算法和工程都很牛逼的,业绩好,也更加受领导重视。工作后的这半年里对这个想法的感触更加深了,部门里就有既精通算法,又有很强工程能力的同事,成功做出一个非常好的产品,并给部门带来了收益,深受领导重视。事实上,对于很多算法,我们都需要做出一些对应的修改,才能符合实际应用的场景需求,甚至我们需要做出一些改进,从而得到更好的应用效果,这时候如果同时具备很强的工程能力,那么工作进展就非常快了,这包括能够快速复现一些论文的方法!
2. 团队协作能力 & 沟通交流
团队协作,这也是我刚入职时候比较不适应的一点,读研的时候是自己一个人进行研究,对于代码也是按照自己的思路来写,即便出现bug了,也就自己调试好,以及很少写注释。
但是工作后,都是多人负责一个项目,那么首先就必须保证自己写的代码尽量不要出现低级的错误,尽量不要麻烦同事来帮你找出错误;其次,需要明确双方的分工和需求,保持良好的沟通交流,确定对接的接口部分的数据格式,特别是对需求部分一定要和同事或者业务方进行再三确认,保证自己理解的需求实现就是业务方希望实现的效果,否则只是一点不同,都会让你之前的工作前功尽弃,需要重写代码。
最后再提一点,对项目代码和数据的备份!而且是经常备份,多端备份!这里是指尽可能每天都备份一次,而且不能只是备份在一个电脑上,通常我们都会在服务器上运行代码,但我们也需要注意备份代码到本地的电脑上,以防止如果服务器出现硬件问题,数据无法恢复,那真的是让你明白什么是绝望的心情。(ps,这是真实的身边同事的经历!)
3. 早就是优势
这个观点,实际上是我非常崇拜的一个大佬–张哥(公众号:stormzhang),在关注了他的公众号、加入知识星球后,感触最深的一个观点。
首先,从公众号来说,之前其实一直都有关注很多公众号,但是却没有想过自己开通一个公众号,等毕业后再开通的公众号,已经没有留言功能了,而早早开通带有留言功能的公众号,现在都至少价值 1k,甚至更多,这就是早来带的优势;
其次,信息差也体现了这个观点,很多人早早知道某些信息,通过信息差来赚钱,当然这个就需要你有很好的获取信息的渠道,可以比大多数人都更早获取到一些有用的信息。
4. 持续坚持学习
尽管毕业了,但是学习这个技能还不能丢弃,甚至你必须加强或者培养这个学习的技能。原因当然是在刚毕业的头几年,你的收入最主要还是工作方面的收入,要尽快积累财富,最好的办法还是涨薪,而这需要你提高自己的专业能力,从而做出更好的业绩。
因此,毕业后依然需要继续学习,特别是学习工作相关的技能和知识,但其实对很多人来说,学习并不能很好坚持,原因就在于很多人都幻想一夜突飞猛进,但这不现实,也不科学。
正确的做法应该是每天都坚持学习,保证每天都提升一点点,虽然不可能立刻得到明显的反馈,但坚持三个月,半年,一年后,你就会感受到这些日积月累的进步;而且,机会总是留给有准备的人的,坚持每天的学习,就是为机会来临时候,可以成功把握所做的准备。
当然,要坚持每天学习,其实很困难,很多时候我们都是三分钟热度,因此,我们首先要从简单入手,不需要给自己限制每天学习一小时,阅读一小时的目标,因为如果不能达成一小时的目标,必然会很沮丧,这会影响坚持学习的目标。我们只需要告诉自己,今天要学习,或者是看书,即便只是几分钟,都是达成目标,简单说,先养成习惯!
这个目标实现的过程就是持续-》稳定-》有质量!比如培养阅读的习惯,首先当然是每天都保证看书,即便只是一两页内容;当养成每天都看书后,就可以开始提高目标,设置一定的阅读时间或者阅读页数;之后,可以尝试做读书笔记,进行输出。
5. 培养第二技能
这也是张哥提倡的一个观点,培养自己的第二技能,是可持续积累提高,并且未来能带来额外收入的技能,毕竟可以赚钱就是最大的动力。比如写作,这当然也是目前我在努力培养的技能,不过目前才刚刚开始,开通公众号也是带有这个目的,在学习提高工作方面的专业技能的同时,输出自己的学习笔记,一些学习感悟,这也是比较高效的学习方面,不单单只是阅读,还需要转换为自己的理解,进行输出,才能更高效巩固知识。
以上就是自己的一点感想,因为写作和表达能力都才刚刚开始练习和培养,加上个人认知见识也有限,可能一些看法并不对。
最后,感谢大家的关注,目前个人技术能力水平有限,输出的学习笔记质量还不是很高,然后接近一半的文章也都是分享一些教程、资源,往后会努力提升自己的技术水平,多写出更高质量的文章,希望能跟各位多多交流,欢迎各位大神不吝赐教!
附上我的微信,有需要的可以加下我,随时进行技术交流。
我的微信号:cai874462