TUhjnbcbe - 2023/11/6 8:12:00
随着大数据和以深度学习为代表的人工智能技术的飞速发展,算法工程师这个职业逐渐成为国内互联网行业的标配。年3月,谷歌旗下DeepMind公司的围棋程序“AlphaGo”战胜职业九段棋手李世石。这场著名的科技秀把人工智能的热潮从学术界席卷到工业界、新闻媒体和广大群众。外行人眼中的算法工程师是高收入和高科技的职业;而新入行的人往往觉得算法工程师门槛低导致内卷化(人才饱和导致过度竞争)。随着算法相关的工具越来越成熟,很多算法工程师自嘲为调包侠、调参侠,于是也开始有人唱衰这个职业。本人作为有一些算法研究和实践经验的过来人,想分享一些自己在企业做算法工作的心得,顺便为想入行做算法以及刚从事算法工作的朋友提供一些参考。本文的观点基于个人的工作经验和理解,如有不对的地方欢迎指正。本文接下来的内容分为六个部分:1.什么是算法2.算法的应用场景3.算法技术介绍4.算法工程师的职业定位5.算法工程师的职业发展6.总结一、什么是算法提到算法,有人可能会联想到人工智能。个人觉得人工智能是个非常大的概念(很多算法技术似乎都可以归类到人工智能),所以为了使叙述更清晰和聚焦,本文会避免用“人工智能”这样的术语,而是尽量用更精确的词汇来描述算法相关的技术。狭义地看,算法是用计算机程序求解计算问题的方法。定义一个计算问题有两个要素:输入和输出。例(素数判定问题):给定一个整数,判断它是否为素数(素数是只能被1和自身整除且大于1的整数)。以素数判定问题为例,它的输入是一个整数,输出是一个布尔值:“是”或“否”。求解素数判定问题的算法是一个满足上述输入和输出条件的计算机程序。在实际应用中,首先要明确算法需要解决的具体问题,以及对应的输入和输出,然后才是设计与实现算法。我们可以把一个算法理解成一个满足输入与输出要求的硬件装置或软件模块。从这个角度来看,算法工程师与软件、硬件工程师的工作是相似的:实现满足输入与输出要求的算法(软件、硬件)模块。算法工程师的工作目标是实现“又快又好”的算法。具体来说,需要