热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

以算法岗为例:我最想对入职前的自己说些什么?

来自:机器学习与推荐系统进入算法岗的正式工作虽然只有半年多,但从19年1月就在算法岗开始实习,算下来到现在都有两年多的工作经验了ÿ

来自:机器学习与推荐系统

进入算法岗的正式工作虽然只有半年多,但从 19 年 1 月就在算法岗开始实习,算下来到现在都有两年多的工作经验了,不过正式参加工作以后还是有了很多新的感悟,这篇文章一个是总结自己的半年所得,规划自己的未来职场之路;另外一点也是为大家做个分享,给一些即将步入这个岗位,或者也刚刚步入工作岗位的同学做一个参考。希望对大家有用~

假如我可以给刚刚进入工作的自己说几句话的话,我想最主要的是三个 keyword:算法工程师的 pipeline、业务能力、软技能。

算法工程师的 pipeline

现在关于算法工程师需要重视工程能力的观点以及基本上成为主流,但是我认识的很多同学,受限于在学校的环境,并不太能够了解到具体工作中需要用到哪些工程知识,也不太清楚需要将工程能力应该锻炼到何种程度。

另一方面,学校导师的论文压力,也使得同学们在校只能专注于算法本身,而硕士期间的时间又远不够到秋招前就磨砺出优秀的算法能力(至少以我当初在的实验室为例,导师要论文,就要花费太多精力在前沿文献的跟踪上,但是以找工作为目的的话,其实无须跟踪太多的前沿工作,更多的是应该将主流的几大类核心 paper 玩转搞懂)

前段时间组里组织学习了谷歌的一篇对机器学习工程的实践总结,第一部分就是 pipeline 的构建,说的就是机器学习工程在应用中首先要做的是一个完整的 pipeline。同样的,我们如果要成为一名合格且优秀的算法工程师,也首先需要一个机器学习工程基本 pipeline 的构建能力。

但是完整的技术栈,我们不太可能都去精通,而且每个专业部分其实都有对应的职位,是算法工程师,你的未来重心可能就是在算法的设计与尝试上;是数据科学家,你的未来重心可能就是在数据的分析上;是 AI 架构师,你的未来重心可能就是算法工作的工程架构上。。。所以我们不可能精通这整条链路上的所有方向,但是打通这一个链路却是必须的。

所以要想成为一名优秀的算法工程师,你必须可以亲自下场完成任何一个环节的基本工作需求。简而言之数据+工程+算法,这三个方向你都必须有掌握。

其实这也和我之前一直与 mentor 探讨的一个话题一样:「技术的学习到底是宽度优先还是深度优先呢?」

他给我的一个答复我觉得很喜欢,分享给大家这个观点,希望大家也可以觉得有帮助:技术的学习不能是宽度优先或者深度优先的去做一个树遍历,而是应该宽度略优先,深度不能忘。判断的基准应该是,你在参与当前的工作时,涉及到的这些技术栈出现问题时,你可以和相关同学侃侃而谈,而不至于不了解人家说的是什么概念。简单的说你可以不具备该方向解决问题的能力,但是你不能不知道问题是什么。

讲个我自己的例子哈,我本科是电子工程学院的,但是由于对编程感兴趣,后来硕士就读了计算机专业。电子专业写 C 比较多一点,所以我从大四进入读研导师的实验室后才开始接触别的语言,然后硕士期间一直在写 python,后来靠着一篇一作的 SCI 一区和几篇 CCF 的水文,向导师争取到了实习的机会,研二中旬开始了实习之路。彼时我的技术栈是 C/C++ 和 python,基本的 git,Linux 等,然后去实习的工作是需要用到 Java。基本的 Java 语法还是很容易学习的,半天就可以带着 Ctrl C + V 开始先线上代码了,但是对什么 netty,什么 maven,什么 Tomcat,什么 dubbo 这些听都没听过,spark,Redis 这些也就是会拼字母~~

所以这就是典型的如果有相关的问题,根本连问题是什么都不知道~~当然,这也只是举个栗子,并不是说我们需要掌握到所有相关的内容,只是说这个 pipeline 需要有能力走通。

另一方面深度也应该一直保持,在自己专精的领域需要有钻研精神,成为一个方向的典型专家,可以做到某个方向的问题,身边人会第一反应来咨询你。至少作为一个算法工程师,算法的基础功力需要扎实,跟踪前沿「优秀」文献的能力不能丢。

真正优秀的算法工程师,甚至说任何一个技术人,都要做到一精多通。

业务能力

除了具备基本的技术能力,工作后和学校最大的区别就是业务能力,这也是在校生最难提高自己的一个方向。加了我微信的同学知道我前段时间去了一趟深圳,见了很多人(最多的还是腾讯的人,其中腾讯云监控负责人小熊,是我的好友,曾经给过我很多帮助,推荐一下他的公众号:机智的程序员小熊),说实话这段深圳之旅对我获益匪浅,包括一位前阿里大佬给我的教诲,这里做一下自己的总结,大家也可以取其精华去其糟粕,参考一下。

插句话:非常鼓励各位能向自己身边认识的大佬请教,不仅仅是具体的技术问题,包括职场规划,技术发展,甚至自己的业务理解,个人理财等等,都是可以的。有时候过来人的几句话,就可以对我们产生很大的帮助(虽然大佬们往往不愿意帮人做选择,但是会乐于帮助你把事情看的更透彻)。

回到正题,业务能力是你职场发展的主线,对应的业务方向往往一旦定下来,就意味着你在不短的一段时间里都会是这个方向,甚至整个职业生涯都很有可能一直在这个方向浸淫。对于业务方向的选择有一部分是很看重运气,能不能在最初的职业生涯进入一个业务方向大有前景的组,某种程度上决定了你未来职场的困难模式。

比如阿里做了电商搜索约二十年了,如果一开始参与到电商搜索方向的人,可能这二十年都值得研究,并随着相关领域的技术发展不断进步;但是有的方向可能同样是搜索,但是相关的业务可能没几年就没了。

所以在提高业务能力的前提是认真审视自己手上所做的方向是不是有前景,是不是具备作为长期赛道的潜力。如果是那自然最好,但如果不是也并不意味着我们就需要放弃当前的工作去寻找更合适的工作。人的精力是有限的,业务方向值得投入,我们就可以放更多的精力在具体的业务细节上;相反就可以将精力投入到技术能力上,或者注重更基本一点的方向。

比如如果我们做某个感觉没有太多前景的推荐业务,那么我可以将业务观点更多的放在推荐这个大方向上。

我当初本科毕业的同学,有几个都是 Java 开发,在同一家公司做支付相关业务,这就是属于可以作为长期赛道的业务方向,毕竟公司要赚钱就肯定要有支付。后来一个去了拼多多(如果不是今年拼多多的事情,春晚项目被搞没了,可能今年就会有望达到知乎平均水准),另外一个去了微众银行,大家做算法的可能会比较了解微众银行。看得出来,这两个跳槽都和自己的业务方向很是相关。

如果恰巧当前的业务方向不是很有前景呢?其实也无需过多担心,虽然适合最好,但是好在技术岗对业务并不是强依赖。相比之下运营,产品等岗位,可能换个业务方向,就会出现更长的不适期;但技术相关的岗位可能一半个月就可以融入到新方向中去。

另一方面,对于未进入工作的同学,可以在选择的时候更多的考虑这方面的问题,或许会有助于你做出更合适的选择。

软技能

曾经见到过这么一句话:任何一个公司,职位越往上技术能力越淡化,产品能力越重要。

这句话可能有失偏薄,但是毋庸置疑的一点是,职位越往上,职场生涯越发展,软技能的占比就越大。这里的软技能不局限于产品思维,运营思维,逻辑思维,人际交往,职场关系等。

最早期的时候,我想的是想 Linus 那样,专注于技术,任何的外在东西都是花里胡哨,只要你能力强就牛逼,就不可替代,就肯定被器重。但是人家在我们还玩泥巴的时候就开始编程了,我们得承认我们不过是泯泯众生的一员,就必须在社会的泥潭里打滚。

只专于技术会让我们饿不着,但是软技能决定我们吃的好不好。比如你搞个产品,只专于技术可能很久时间让指标提高了一两个点,但是优秀的产品思维,结合对业务的理解,或许某些策略干扰就可以瞬间提高好几个点。

此外,和领导怎么相处,和同事怎么相处,也决定了当机会来到你面前时,你能不能把握住。这些问题只能说我虽然仗着手上的两行代码没有吃到痛,但是的确是看到有人吃到甜。这不是教大家去溜须拍马,只是说写代码是低头走路,但也不要忘了抬头看看身边是不是有人能帮到你。

最后逻辑思维的锻炼也是很重要的,最常见的一个东西就是 PPT。一个好的 PPT,会让你在汇报时被另眼相看,这也是我自己的一个薄弱点。毕竟干了活儿要让领导知道,PPT 决定了你如何展示你干的好不好。优秀的逻辑力,呈现力,以及美感都是很重要的。

新年的展望

新年里也希望自己能通过这些总结,能走的更稳更快。技术能力上需要打通自己的整个 pipeline,在数据方面自己的能力还需要提高,此外工程和算法能力也不能放下,巩固好自己的技术栈,快速的成为相关工作上的核心力量。在这个过程中,保持公众号的周更,作为自己的技术总结,同时保证 paper 的学习。业务能力上需要慢慢打磨总结。软技能方面今年计划看完五本以上产品相关的书籍,外加逻辑思维和职场发展相关的书籍各一本。

公众号方面写了一年多了,之前更新比较随性,今年会稍微严格一点,保持周更的同时,每周会选两篇文章转载(我自己是公众号重度使用者,收藏夹也一堆吃灰的好文,现在公众号的质量的确很乱,但是认真原创的作者们的确质量也很好,我会筛选一些好文分享出来)。

然后保持好现在比较坚持的两个项目,力扣和 paper 学习。也墙裂建议同学们保持对力扣的练习,一方面是锻炼解题能力,万一将来跳槽,也避免来不及刷题;另一方面是锻炼代码的思维,免得业务代码写多了就成了 shi 山创造者。

最后给大家拜个早年,新年可能不会再有文章更新了,新年返工后会开始更新起来~~

大家新年快乐~~

已经工作的职场顺利,升职加薪~~

未工作或要跳槽的都 offer 多多~~

投稿的都是 accepted~~

表白的答复都是我愿意~~

说个正事哈

由于微信平台算法改版,公号内容将不再以时间排序展示,如果大家想第一时间看到我们的推送,强烈建议星标我们和给我们多点点【在看】。星标具体步骤为:

(1)点击页面最上方深度学习自然语言处理”,进入公众号主页。

(2)点击右上角的小点点,在弹出页面点击“设为星标”,就可以啦。

感谢支持,比心

投稿或交流学习,备注:昵称-学校(公司)-方向,进入DL&NLP交流群。

方向有很多:机器学习、深度学习,python,情感分析、意见挖掘、句法分析、机器翻译、人机对话、知识图谱、语音识别等。

记得备注呦

推荐两个专辑给大家:

专辑 | 李宏毅人类语言处理2020笔记

专辑 | NLP论文解读

专辑 | 情感分析


整理不易,还望给个在看!


推荐阅读
  • window下的python安装插件,Go语言社区,Golang程序员人脉社 ... [详细]
  • 本文详细介绍了 PHP 中对象的生命周期、内存管理和魔术方法的使用,包括对象的自动销毁、析构函数的作用以及各种魔术方法的具体应用场景。 ... [详细]
  • 浏览器作为我们日常不可或缺的软件工具,其背后的运作机制却鲜为人知。本文将深入探讨浏览器内核及其版本的演变历程,帮助读者更好地理解这一关键技术组件,揭示其内部运作的奥秘。 ... [详细]
  • OpenAI首席执行官Sam Altman展望:人工智能的未来发展方向与挑战
    OpenAI首席执行官Sam Altman展望:人工智能的未来发展方向与挑战 ... [详细]
  • 第二章:Kafka基础入门与核心概念解析
    本章节主要介绍了Kafka的基本概念及其核心特性。Kafka是一种分布式消息发布和订阅系统,以其卓越的性能和高吞吐量而著称。最初,Kafka被设计用于LinkedIn的活动流和运营数据处理,旨在高效地管理和传输大规模的数据流。这些数据主要包括用户活动记录、系统日志和其他实时信息。通过深入解析Kafka的设计原理和应用场景,读者将能够更好地理解其在现代大数据架构中的重要地位。 ... [详细]
  • Halcon之图像梯度、图像边缘、USM锐化
    图像梯度、图像边缘、USM锐化图像梯度、图像边缘、USM锐化图像梯度、图像边缘、USM锐化图像卷积:1.模糊2.梯度3.边缘4.锐化1.视频教程:B站、 ... [详细]
  • 从0到1搭建大数据平台
    从0到1搭建大数据平台 ... [详细]
  • 如何撰写适应变化的高效代码:策略与实践
    编写高质量且适应变化的代码是每位程序员的追求。优质代码的关键在于其可维护性和可扩展性。本文将从面向对象编程的角度出发,探讨实现这一目标的具体策略与实践方法,帮助开发者提升代码效率和灵活性。 ... [详细]
  • 如何撰写初级和高级前端开发者的专业简历
    如何撰写初级和高级前端开发者的专业简历 ... [详细]
  • 本指南从零开始介绍Scala编程语言的基础知识,重点讲解了Scala解释器REPL(读取-求值-打印-循环)的使用方法。REPL是Scala开发中的重要工具,能够帮助初学者快速理解和实践Scala的基本语法和特性。通过详细的示例和练习,读者将能够熟练掌握Scala的基础概念和编程技巧。 ... [详细]
  • Spring Boot 中配置全局文件上传路径并实现文件上传功能
    本文介绍如何在 Spring Boot 项目中配置全局文件上传路径,并通过读取配置项实现文件上传功能。通过这种方式,可以更好地管理和维护文件路径。 ... [详细]
  • 最详尽的4K技术科普
    什么是4K?4K是一个分辨率的范畴,即40962160的像素分辨率,一般用于专业设备居多,目前家庭用的设备,如 ... [详细]
  • 一篇关于五个编程问题的 Reddit 帖子引发了广泛讨论,特别是关于这些题目是否适合所有软件工程师。 ... [详细]
  • 本文对比了杜甫《喜晴》的两种英文翻译版本:a. Pleased with Sunny Weather 和 b. Rejoicing in Clearing Weather。a 版由 alexcwlin 翻译并经 Adam Lam 编辑,b 版则由哈佛大学的宇文所安教授 (Prof. Stephen Owen) 翻译。 ... [详细]
  • 全面升级的中文PubMed——Medreading
    Medreading 是一款由科研者之家(HOME for Researchers)推出的中文版PubMed,提供强大的文献检索和分析功能,支持AI辅助全文下载。 ... [详细]
author-avatar
永欣慧娟766
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有