导航:首页 > 源码编译 > 算法大牛抢手吗

算法大牛抢手吗

发布时间:2023-03-29 05:03:12

‘壹’ 算法工程师 就业前景

一、算法工程师简介
(通常是月薪15k以上,年薪18万以上,只是一个概数,具体薪资可以到招聘网站如拉钩,猎聘网上看看)
算法工程师目前是一个高端也是相对紧缺的职位;
算法工程师包括
音/视频算法工程师(通常统称为语音/视频/图形开发工程师)、图像处理算法工程师、计算机视觉算法工程师、通信基带算法工程师、信号算法工程师、射频/通信算法工程师、自然语言算法工程师、数据挖掘算法工程师、搜索算法工程师、控制算法工程师(云台算法工程师,飞控算法工程师,机器人控制算法)、导航算法工程师(
@之介
感谢补充)、其他【其他一切需要复杂算法的行业】
专业要求:计算机、电子、通信、数学等相关专业;
学历要求:本科及其以上的学历,大多数是硕士学历及其以上;
语言要求:英语要求是熟练,基本上能阅读国外专业书刊,做这一行经常要读论文;
必须掌握计算机相关知识,熟练使用仿真工具MATLAB等,必须会一门编程语言。
算法工程师的技能树(不同方向差异较大,此处仅供参考)
1 机器学习
2 大数据处理:熟悉至少一个分布式计算框架Hadoop/Spark/Storm/ map-rece/MPI
3 数据挖掘
4 扎实的数学功底
5 至少熟悉C/C++或者java,熟悉至少一门编程语言例如java/python/R
加分项:具有较为丰富的项目实践经验(不是水论文的哪种)
二、算法工程师大致分类与技术要求
(一)图像算法/计算机视觉工程师类
包括
图像算法工程师,图像处理工程师,音/视频处理算法工程师,计算机视觉工程师
要求
l
专业:计算机、数学、统计学相关专业;
l
技术领域:机器学习,模式识别
l
技术要求:
(1) 精通DirectX HLSL和OpenGL GLSL等shader语言,熟悉常见图像处理算法GPU实现及优化;
(2) 语言:精通C/C++;
(3) 工具:Matlab数学软件,CUDA运算平台,VTK图像图形开源软件【医学领域:ITK,医学图像处理软件包】
(4) 熟悉OpenCV/OpenGL/Caffe等常用开源库;
(5) 有人脸识别,行人检测,视频分析,三维建模,动态跟踪,车识别,目标检测跟踪识别经历的人优先考虑;
(6) 熟悉基于GPU的算法设计与优化和并行优化经验者优先;
(7) 【音/视频领域】熟悉H.264等视频编解码标准和FFMPEG,熟悉rtmp等流媒体传输协议,熟悉视频和音频解码算法,研究各种多媒体文件格式,GPU加速;
应用领域:
(1) 互联网:如美颜app
(2) 医学领域:如临床医学图像
(3) 汽车领域
(4) 人工智能
相关术语:
(1) OCR:OCR (Optical Character Recognition,光学字符识别)是指电子设备(例如扫描仪或数码相机)检查纸上打印的字符,通过检测暗、亮的模式确定其形状,然后用字符识别方法将形状翻译成计算机文字的过程
(2) Matlab:商业数学软件;
(3) CUDA: (Compute Unified Device Architecture),是显卡厂商NVIDIA推出的运算平台(由ISA和GPU构成)。 CUDA™是一种由NVIDIA推出的通用并行计算架构,该架构使GPU能够解决复杂的计算问题
(4) OpenCL: OpenCL是一个为异构平台编写程序的框架,此异构平台可由CPU,GPU或其他类型的处理器组成。
(5) OpenCV:开源计算机视觉库;OpenGL:开源图形库;Caffe:是一个清晰,可读性高,快速的深度学习框架。
(6) CNN:(深度学习)卷积神经网络(Convolutional Neural Network)CNN主要用来识别位移、缩放及其他形式扭曲不变性的二维图形。
(7) 开源库:指的是计算机行业中对所有人开发的代码库,所有人均可以使用并改进代码算法。
(二)机器学习工程师
包括
机器学习工程师
要求
l
专业:计算机、数学、统计学相关专业;
l
技术领域:人工智能,机器学习
l
技术要求:
(1) 熟悉Hadoop/Hive以及Map-Rece计算模式,熟悉Spark、Shark等尤佳;
(2) 大数据挖掘;
(3) 高性能、高并发的机器学习、数据挖掘方法及架构的研发;
应用领域:
(1)人工智能,比如各类仿真、拟人应用,如机器人
(2)医疗用于各类拟合预测
(3)金融高频交易
(4)互联网数据挖掘、关联推荐
(5)无人汽车,无人机

相关术语:
(1) Map-Rece:MapRece是一种编程模型,用于大规模数据集(大于1TB)的并行运算。概念"Map(映射)"和"Rece(归约)",是它们的主要思想,都是从函数式编程语言里借来的,还有从矢量编程语言里借来的特性。
(三)自然语言处理工程师
包括
自然语言处理工程师
要求
l
专业:计算机相关专业;
l
技术领域:文本数据库
l
技术要求:
(1) 熟悉中文分词标注、文本分类、语言模型、实体识别、知识图谱抽取和推理、问答系统设计、深度问答等NLP 相关算法;
(2) 应用NLP、机器学习等技术解决海量UGC的文本相关性;
(3) 分词、词性分析、实体识别、新词发现、语义关联等NLP基础性研究与开发;
(4) 人工智能,分布式处理Hadoop;
(5) 数据结构和算法;
应用领域:
口语输入、书面语输入
、语言分析和理解、语言生成、口语输出技术、话语分析与对话、文献自动处理、多语问题的计算机处理、多模态的计算机处理、信息传输与信息存储 、自然语言处理中的数学方法、语言资源、自然语言处理系统的评测。

相关术语:
(2) NLP:人工智能的自然语言处理,NLP (Natural Language Processing) 是人工智能(AI)的一个子领域。NLP涉及领域很多,最令我感兴趣的是“中文自动分词”(Chinese word segmentation):结婚的和尚未结婚的【计算机中却有可能理解为结婚的“和尚“】

(四)射频/通信/信号算法工程师类
包括
3G/4G无线通信算法工程师, 通信基带算法工程师,DSP开发工程师(数字信号处理),射频通信工程师,信号算法工程师
要求
l
专业:计算机、通信相关专业;
l
技术领域:2G、3G、4G,BlueTooth(蓝牙),WLAN,无线移动通信, 网络通信基带信号处理
l
技术要求:
(1) 了解2G,3G,4G,BlueTooth,WLAN等无线通信相关知识,熟悉现有的通信系统和标准协议,熟悉常用的无线测试设备;
(2) 信号处理技术,通信算法;
(3) 熟悉同步、均衡、信道译码等算法的基本原理;
(4) 【射频部分】熟悉射频前端芯片,扎实的射频微波理论和测试经验,熟练使用射频电路仿真工具(如ADS或MW或Ansoft);熟练使用cadence、altium designer PCB电路设计软件;
(5) 有扎实的数学基础,如复变函数、随机过程、数值计算、矩阵论、离散数学
应用领域:
通信
VR【用于快速传输视频图像,例如乐客灵境VR公司招募的通信工程师(数据编码、流数据)】
物联网,车联网
导航,军事,卫星,雷达
相关术语:
(1) 基带信号:指的是没有经过调制(进行频谱搬移和变换)的原始电信号。
(2) 基带通信(又称基带传输):指传输基带信号。进行基带传输的系统称为基带传输系统。传输介质的整个信道被一个基带信号占用.基带传输不需要调制解调器,设备化费小,具有速率高和误码率低等优点,.适合短距离的数据传输,传输距离在100米内,在音频市话、计算机网络通信中被广泛采用。如从计算机到监视器、打印机等外设的信号就是基带传输的。大多数的局域网使用基带传输,如以太网、令牌环网。
(3) 射频:射频(RF)是Radio Frequency的缩写,表示可以辐射到空间的电磁频率(电磁波),频率范围从300KHz~300GHz之间(因为其较高的频率使其具有远距离传输能力)。射频简称RF射频就是射频电流,它是一种高频交流变化电磁波的简称。每秒变化小于1000次的交流电称为低频电流,大于10000次的称为高频电流,而射频就是这样一种高频电流。高频(大于10K);射频(300K-300G)是高频的较高频段;微波频段(300M-300G)又是射频的较高频段。【有线电视就是用射频传输方式】
(4) DSP:数字信号处理,也指数字信号处理芯片
(五)数据挖掘算法工程师类
包括
推荐算法工程师,数据挖掘算法工程师
要求
l
专业:计算机、通信、应用数学、金融数学、模式识别、人工智能;
l
技术领域:机器学习,数据挖掘
l
技术要求:
(1) 熟悉常用机器学习和数据挖掘算法,包括但不限于决策树、Kmeans、SVM、线性回归、逻辑回归以及神经网络等算法;
(2) 熟练使用SQL、Matlab、Python等工具优先;
(3) 对Hadoop、Spark、Storm等大规模数据存储与运算平台有实践经验【均为分布式计算框架】
(4) 数学基础要好,如高数,统计学,数据结构
l
加分项:数据挖掘建模大赛;
应用领域
(1) 个性化推荐
(2) 广告投放
(3) 大数据分析
相关术语
Map-Rece:MapRece是一种编程模型,用于大规模数据集(大于1TB)的并行运算。概念"Map(映射)"和"Rece(归约)",是它们的主要思想,都是从函数式编程语言里借来的,还有从矢量编程语言里借来的特性。
(六)搜索算法工程师
要求
l
技术领域:自然语言
l
技术要求:
(1) 数据结构,海量数据处理、高性能计算、大规模分布式系统开发
(2) hadoop、lucene
(3) 精通Lucene/Solr/Elastic Search等技术,并有二次开发经验
(4) 精通Lucene/Solr/Elastic Search等技术,并有二次开发经验;
(5) 精通倒排索引、全文检索、分词、排序等相关技术;
(6) 熟悉Java,熟悉Spring、MyBatis、Netty等主流框架;
(7) 优秀的数据库设计和优化能力,精通MySQL数据库应用 ;
(8) 了解推荐引擎和数据挖掘和机器学习的理论知识,有大型搜索应用的开发经验者优先。
(七)控制算法工程师类
包括了云台控制算法,飞控控制算法,机器人控制算法
要求
l
专业:计算机,电子信息工程,航天航空,自动化
l
技术要求:
(1) 精通自动控制原理(如PID)、现代控制理论,精通组合导航原理,姿态融合算法,电机驱动,电机驱动
(2) 卡尔曼滤波,熟悉状态空间分析法对控制系统进行数学模型建模、分析调试;
l
加分项:有电子设计大赛,机器人比赛,robocon等比赛经验,有硬件设计的基础;
应用领域
(1)医疗/工业机械设备
(2)工业机器人
(3)机器人
(4)无人机飞控、云台控制等

(八)导航算法工程师
要求
l 专业:计算机,电子信息工程,航天航空,自动化
l 技术要求(以公司职位JD为例)
公司一(1)精通惯性导航、激光导航、雷达导航等工作原理;
(2)精通组合导航算法设计、精通卡尔曼滤波算法、精通路径规划算法;
(3)具备导航方案设计和实现的工程经验;
(4)熟悉C/C++语言、熟悉至少一种嵌入式系统开发、熟悉Matlab工具;
公司二(1)熟悉基于视觉信息的SLAM、定位、导航算法,有1年以上相关的科研或项目经历;
(2)熟悉惯性导航算法,熟悉IMU与视觉信息的融合;
应用领域
无人机、机器人等。

‘贰’ 为什么有人说弄懂了《算法导论》的90%,就超越了90%的程序员

其实计算机程序底层核心就是各种数学算法,剩下就是怎么用代码去实现数学,世界上有名的计算机程序大牛几乎都跟数学权威方面的专家有关。

从另一个角度回答,因为就算看懂百分百,也很难超越另外的百分之十

很多程序员没读过算法导论

其实不管是对于在校生来说还是已经工作的程序员,一般很少都会接触算法。

学生的话也只有计算机相关专业的开设了数据结构和算法相关课程的才需要用到,但如果只是对付期末考试的话也没啥难度。

但是如果在大学期间接触到算法竞赛就不一样了,需要花费比较多的精力。

的确在工资上任何公司都是10%的算法大佬拿的工资比其他90%的业务开发程序员或者其他的程序员都要高,不过就凭只懂《算法导论》这本书的话还是不太行的,算法离不开业务的。就算超越也是超越那10%的算法工程师里的90%,如果能达到这个境界别说BAT了,微软谷歌都是可以考虑的。

说这个话在我看来他可能是想卖课,卖完再慢慢告诉你,“学到90%也没有那么容易”,或者“在刷我这套题这件事上超越90%的程序员 并不等于收入上超越90%的程序员”。

你多去拼多多参加几个活动,在文字 游戏 和预期管理上你应该就懂了;要是还不懂,大概你也不是那么适合做这一行以及算法导论。

公式:弄懂+一本名着+百分比+超越+百分比+你的群体。

例句:

弄懂sicp的67.9%,你就超越了95%的程序员。

弄懂本草纲目的72%,你就超越了93.7%的中医。

弄懂冰箱说明书的83%,你就超越了99.9%的冰箱使用者(这也许是最真实的,虽然冰箱说明书不是名着……)

至于为什么这么说……个人觉得就是对xx东西的一种崇拜,很大程度上是人云亦云。

算法导论是本不会动的书,不同人读效果不一样的。不要神化某一本书,参差多态乃幸福本源。不看算法导论你也可以会算法,你也可以会数据结构,你也可以进大厂。没有算法导论的时候也依然有研究算法的科学家。你能通过他学会知识很好,但你觉得它晦涩,搞不懂,没有c的代码让你学的不舒服,那就不看他。

人生中见书,书中见人生。读书有时候不一定是为了学东西,可能更多的是一种享受。就像你没学看过csapp之前,通过各种课程,学了零零碎碎的知识。忽然有一天你看了csapp,你觉得好过瘾啊,好爽啊。你觉得你学习的第一天就看csapp能有这种效果吗?

好书不会变少只会变多,更何况帮到你的也未必需要是好书。也许一本书只是很普通的书,不严谨,还都是大白话,但未必就帮不到你。

学东西莫要搞崇拜。很多程序员学习的时候都不是通过算法导论这本书学的,可他们依然很杰出。

程序员来回答一下:

1.《算法导论》这本书理论来说90%程序员也没弄懂,所以你弄懂了就超过了90%。

2.其实程序员是一个大的行业,IT也是一个大的行业,门外人看着都是一群写程序的,修电脑的,更有人认为是装电脑系统的,你被别人交过去装过系统吗?

3.程序员架构上来说,嵌入式 协议栈 应用 网络 服务器 工具 系统 等等等!

4.有一些行业是不需要看算法导论的,更有一些转行过来的,应该更不太了解算法导论。

这本书在美国的大学被称为clrs, 是标准的本科高年级和研究生入门的算法课课本。优点是比较全面的讲解了常用和基本的算法,习题质量不错。问题是动态规划讲的不好,篇幅原因一些近代的算法没有概括。总的来说是本不错的算法入门教科书。

算法是计算机科学的核心。计算理论偏数学,编译原理和操作系统偏硬件,真正计算机科学的核心就是算法。无论做研究还是搞工程,都是必不可少的。

程序是给人看的,不是给机器。写给机器的程序谁都可以写出来,但不是每个程序员都能写出别人看懂的东西

程序是什么,程序就是数据结构和算法,弄懂了超90%的程序员不是很正常嘛

看懂2%就超过了80%,没必要看那么多

因为这本书翻译的很枯燥、也很理解,这种情况下你还理解了90%,说明你有耐心,有恒心,耐得住寂寞。我相信不只是做程序员,做其它行业也会很优秀。

‘叁’ 学习无人机应用工程师,以后能从事哪些工作

大疆招聘最青睐的几个岗位,毕业就能拿高薪,未来大有可为
以无人机为代表的高科技机器人行业近年来发展势头迅猛,其中无人机领军企业大疆秉承“未来无所不能”的理念,向来对人才重视有加,能提供领跑业界的薪资待遇与福利,并且技术实力雄厚、有不错的技术研发氛围,因而一直受到许多求职者的青睐。
其实,不同行业对专业技能的人才有着不同的需求,如同蓬勃的互联网带动了程序员的人才市场需求,想要进入无人机行业,技术专业对口也非常重要。事实上,大疆也有自己所青睐的岗位人才,小编在这里整理了几个大疆常年重点招聘的岗位,这些岗位不仅薪资水平令人称羡,而且未来也有很大的发展空间。
1、算法工程师
AI时代的来临,不少企业为了抢夺未来发展制高点纷纷转战人工智能,高科技圈更是流传“得人工智能者得天下”的说法,可见人工智能人才到底有多稀缺,而算法工程师岗位作为人工智能的核心刚需,在人才市场中的抢手情况有目共睹。
作为技术梯队中的顶尖人才,算法工程师虽然并非新兴岗位,但招聘热度和薪资却一路水涨船高,大企业为算法人才开出天价年薪已是司空见惯。
在网上热传的校招薪水榜单中,谷歌中国、微软以及国内的腾讯、大疆、网易、阿里巴巴、滴滴、网络、今日头条、京东等知名大企业纷纷在榜,为算法人才开出了高薪。毫不夸张的说,对应届生来说,选择算法岗位意味着毕业就能稳拿高薪。
而且,无人机产品类型众多,涉及到图像处理算法、视频算法、通信算法、音频算法、感知算法、导航算法等等细分的技术领域,因此在无人机行业从事算法岗位,未来会有非常多元和广阔的发展空间。
2、嵌入式工程师
嵌入式系统无疑是当前最热门最有发展前途的IT应用领域之一。去年,是嵌入式发展最快的一年,全球芯片企业并购加速,人工智能逐渐渗透云、大数据和物联网,而物联网又被誉为“下一个工业革命”,嵌入式作为物联网的重要技术组成部分,也是机器人行业的关键技术。
据BOSS直聘发布《2019春招旺季人才趋势报告》显示物联网相关的嵌入式工程师人才需求今年春季同比增速超过46%,人才紧缺程度高于其他技术职位。
嵌入式发展前景良好,目前嵌入式开发更倾向于智能化,也就是我们所说的智能硬件(硬件+软件),网络机器人、大疆无人机、天猫精灵智能音响、自动驾驶汽车、海尔扫地机器人等等我们熟知的高科技产品都是前沿的嵌入式产品。在可见的未来,机器人行业对嵌入式工程师的需求只会越趋强烈。
3、硬件工程师
很多人将硬件工程师与软件工程师做比较。但实际从长远来看,随着机器时代的来临,硬件工程师将更有发展前途,因为硬件所涉及的内涵丰富、对知识要求更高,不仅更容易转行,而且可以寻找到更多乐趣,真正的高手往往是软硬兼通的。所以有一种说法,“一个顶级硬件工程师可遇不可求,一个顶级的软件工程师一抓一大把”。
硬件工程师相对来说是一个准入门槛较高的行业,硬件重复设计成本较高,一个有较高水平的硬件工程师可以为公司节省大量的时间与成本。目前国内的集成电路处于大发展的时期,国家的各项政策投资大力扶持集成电路行业,所以市场对成熟的硬件工程师的需求依然非常旺盛。
在无人机领域,硬件开发犹其重要。大疆无人机更为轻便、性能更为优越,正是得益于大疆优秀的硬件工程师。硬件工程师在大疆不仅需要完成相关硬件的研发,硬件方案的设计及相关硬件的转交及交付等内容,同时还可以更多的参与到上游供应链中学习。大疆丰富的产品线也为硬件工程师提供了广阔的成长机会和通道。在大疆,硬件工程师可以选择相机、高速硬件、功率电池、成本控制等方向,而且大疆集合了许多行业的顶尖大牛人才,长期交流可以得到更快速的成长。
机器时代已经来临,当前我国诸多领域已显现出“无人机+行业应用”的蓬勃发展势头,无人机行业在可见的未来无疑还将迎来新的增长点。对于那些有志于无人机行业的人才,不管是从事什么岗位,相信只要技能实力过硬就一定能获得自己想要的未来。

‘肆’ 学习无人机应用工程师,以后能从事哪些工作

无人机应用专业是航空技术,电子技术与计算机应用技术相结合的专业,主要培养适应无人机行业需要 ,德、智、体、美全面发展,具有较扎实的基础理论知识,熟练掌握各种专业技能,职业素质优良,专业技术 精湛,实践能力突出,能在无人机应用领域面向无人机操作、无人机维护和开发等不同方向发展,从事无人机 设备的操作、编程、维护以及生产组织和管理等方面工作的高等技术应用型人才。

评论无人机应用专业是航空技术,电子技术与计算机应用技术相结合的专业,主要培养适应无人机行业需要 ,德、智、体、美全面发展,具有较扎实的基础理论知识,熟练掌握各种专业技能,职业素质优良,专业技术 精湛,实践能力突出,能在无人机应用领域面向无人机操作、无人机维护和开发等不同方向发展,从事无人机 设备的操作、编程、维护以及生产组织和管理等方面工作的高等技术应用型人才。

评论

‘伍’ 数据结构与算法在计算机领域或行业之中到底占据着什么样的重要地位

算法是程序的灵魂,架构是灵魂的躯体,最近对这两句话感触很深,但很多程序员甚至忽略算法存在,更不要说是架构层面的东西,有些程序员甚至有些疑问,做编程也有几年了碰到关于算法的东西实在是很少。

在学习算法之前首先要掌握数据结构,因为数据结构里面很多基础,像队列,栈,链表,二叉树这些都是算法基础,因为再复杂的算法也是基础的东西组合起来的,复杂的算法涉及到数学知识了,所以专业的算法工程师需要具备良好的数学底子。但数据结构更多是用在功能模块里面编程模型的设计上,有些程序员在设计模块功能的时候。

‘陆’ ACM 竞赛用纯C写的大牛,那些算法和数据库是用什么实现的 有现成的库吗(像STL) 还是现成用C写

① 比赛的时候允许带纸质材料,也就是说,可以把所有现成的算法代码书籍带进去,需要的时候直接目录索引到,抄上去(对于每分钟300个英文字母的盲打速度,2分钟就能写完一个算法,剩下的就是针对题目,把算法做一个优化和处理并结合其他算法,解决题目)。

② 一般常用的就是排序、数据结构、搜索算法,这些算法要能达到闭着眼睛写出来,其他算法要能哗亏够参考两下代码,马上全部写出来。

③还有一点,菜鸟写HASHMAP可能要很久侍派,但是对于一个AC上千次的人,老芦贺一般的结构和算法都是十几分钟不到就写完的,比赛关键在思考解题途径和效率。

‘柒’ 思谋科技高级算法研究员属于大牛吗

思谋科技高歼衡级算法研究员属于大牛。2019年11月18日AI大牛贾佳亚告别腾讯优图,创立思谋科技,而后获得融资。根据相关公开信息显示,思谋科技的公司,该公司确实已经获得数千万人民币的PreA轮融资。其核心成员,也就是该公司的创始人为贾佳亚、沈小勇,其中,沈氏衫做小勇曾担任腾讯优图实验室高级研究员。AI大牛贾佳亚,2004年加入香港中文大学计算机科学与工程系,从助理教授做起,2010年升任副教授,2015年任教塌慧授,随后成为香港中文大学终身教授。

‘捌’ ACM:参加过ACM的大牛是不是练习时都要把每个算法敲几十几百次呢

ACM比赛可以带纸质资料,准备一份模板是很有必要的,所以算法模版很重要,记住模版一定要权威,不要网上杂七杂八的拿来当模版,一份好的模板一定会对你的编程习惯和算法实现打下良好的基础。但是,ACM比赛的等级越高,模版的作用就越小,毕竟比赛不是套模板。

没有人会把每个算法敲几百遍,大牛更加不会,敲十遍还记不住的话,一百遍也没用的,重要的是对算法本身的理解。如果你真正理解了算法但写不出来,那是你编程水平问题,这样应该多看看大牛的代码,多看看模板。
大牛不是算法模板敲的多,而是对算法理解的深刻并加上做的题目多,算法就像数学公式,你记住公式难道就能考高分了吗。重要的是运用啊,一个数学高手对于新学的公式他可以随时推导出来,因为对公式真正理解啊,推的多了自然记住了,不是吗。对于新手,先不要学算法,先去poj做水题,就是简单的题目没什么算法,水题不要做太多,100题就差不多了。接下来就该系统的学习一下算法了,《算法导论》和《算法艺术与信息学竞赛》是我觉得必看的两本书。另外,历届NOI国家队选手的论文也是很有价值的,也属于必看。接下来继续去poj做题,多思考,做不出来就网络,google,poj做题的人非常多。做题可以查漏补缺,之前没碰到过的 算法都可能在题目中体现,碰到没学过的算法就网络学习,然后选一个好的放到你的算法模板库,poj做题1000以上想不成大牛都难!

我只想说大牛基本上都是这么过来的,当然不排除个别天才,不过我没碰到过也没听过谁不做大量的题就能成为牛人的,毕竟天道酬勤。

‘玖’ 如何成为编程开发技术大牛

首先确定自己的位置:
一、菜鸟
第1 层楼属于地板层,迈进这层楼的门槛是很低的。基本上懂计算机的基本操作,了解计算
机专业的一些基础知识,掌握一门基本的编程语言如C/C++,或者Java,或者JavaScript,...,
均可入门迈进这层。
二、大虾
从第1 层爬到第2 层相对容易一些,以C/C++程序员为例,只要熟练掌握C/C++编程语言,
掌握C 标准库和常用的各种数据结构算法,掌握STL 的基本实现和使用方法,掌握多线程编程
基础知识,掌握一种开发环境,再对各种操作系统的API 都去使用一下,搞网络编程的当然对
socket 编程要好好掌握一下,然后再学习一些面向对象的设计知识和设计模式等,学习一些测
试、软件工程和质量控制的基本知识,大部分人经过2~3 年的努力,都可以爬到第2 层,晋升
为"大虾"。
三、牛人
由于"大虾"们经常被一些疑难问题给卡住,所以有了"大虾"们只好继续学习,他们需要将原
来所学的知识进一步熟练掌握,比如以熟练掌握C++编程语言为例,除了学一些基础性的枯和州C++
书籍如《C++ Primer》,《Effective C++》,《Think in C++》,《Exception C++》等之外,更重要
的是需要了解C++编译器的原理和实现没蔽机制,了解操作系统中的内部机制如内存管理、进程和
线程的管理机制,了解处理器的基础知识和代码优化的方法,此外还需要更深入地学习更多的数
据结构与算法,掌握更深入的测试和调试知识以棚灶及质量管理和控制方法,对各种设计方法有更好
的理解等。
学习上面说的这些知识不是一挥而就的,不看个三五十本书并掌握它是做不到的。以数据结
构算法来说,至少要看个5~10 本这方面的着作;以软件设计来说,光懂结构化设计、面向对
象设计和一些设计模式是不够的,还要了解软件架构设计、交互设计、面向方面的设计、面向使
用的设计、面向数据结构算法的设计、情感化设计等,否则是很难进到这个楼层的。

主要还是多接触,多看书,多编码,多自己动脑子解决问题,多帮助别人,积累经验

‘拾’ 算法不扎实的程序员,每一个都很慌

初学者经常问这样的问题,然而这些其实是错误的问题。

对于初学者而言,你最应该优先考虑的是,哪些东西构成了程序的基础?

最经典的一句话: 程序 = 数据结构 + 算法

如果说编程语言是程序的血肉,那么算法就是程序的灵魂。

人不能没有血肉之躯,但是没有灵魂的人依然只是一个死人。

不能单纯依靠算法衡量一个程序员的好坏,但是面试的时候考算法绝对是简单高效的筛选手段。近些年大厂的面试几乎必考算法也是这个原因。每一个算法学的不扎实的程序员,在面试的时候都很慌。

下面这些书籍应该是算法方面最常见的经典书籍。我有幸都读过,有些读完了,有些半途而废,不过基本上也都算是熟悉。顺序上由易到难,从薄到厚,每本书下面我会简单的介绍一番,希望能对你的学习有所帮助。

首先是两本算法入门书籍,也可以当做算法读物:

《啊哈!算法》

用他的自我介绍的来讲:“这不过是一本有趣的算法书而已,和别的算法书比较,如果硬要说它有什么特点的话,那就是你能看懂它。”

图文并茂,而且画风有趣,适合新手入门,但是代码是C的,看着比较累,文字也略显冗长。

图是非常棒的,启蒙用,非教科书

《算法图解》

和《啊哈》类似,他的介绍是:“像小说一样有趣的算法入门书。”

书里面讲的很好,Python代码也很容易读懂,比之《啊哈!算法》,书中的例子没有那么有趣,但是图很清晰,文字和代码不冗杂。

缺点同样是非教科书,非常浅显,三四个小时就看完了。有一种刚刚热身的感觉。

接下来这几本都是最常见的书了:

《数据结构与算法分析C语言描述》

这本书的作者几乎不浪费笔墨在一些简单的地方。书很薄,但是覆盖面很广很深,作者实在是非常厉害。

不过反过来说,就是有些地方讲的语焉不详……

这本书还有Java语言版本的,但是相比之下C的更好一些。

挺好的一本书。

还有一点是翻译不是很给力,好多人都没坚持看完。

《数据结构与算法Python语言实现》

英文版评分非常高,中文版评分非常低……

据说是也翻译的不好。另外就是本书自身错误也不少……几版过后依然很多没有改过来。

书中数学证明和介绍比较简单。因为采用Python语言的原因,比较易读。

浅显易懂,内容上循序渐进,环环相扣。相比于上一本,我会更推荐一些。厚度也不算厚。

《数据结构与算法 Python语言描述》

北大教授裘宗燕的书,这本书前面写的挺好的,尤其是在面向对象还有ADT等思想的阐述,都很不错。

但是读到后来给我一种虎头蛇尾的感觉,前面气势如虹绪论就写了很长,最后三章感觉有点草草收尾的意思。就像编辑在催稿,而作者很忙的样子……

另外就是这本书的编排顺序我个人也不是特别喜欢。

接下来是两本大部头,都是非常厚的书。

他们最大的特点就是:出现率远大于看完率

《算法导论》

算法书中的权威,MIT的6.046J就是按照这个来讲的。

公认最好的算法书,组织结构合理,内容详尽。引导读者从思维方式上对算法进行领悟。

书中对算法的数学结构进行了详尽的阐述。有非常多的数学证明。

这本书我说不出什么缺点,只能说有些内容是因为我还没到大牛的境界,暂时还无法体会理解。

我个人的观点是:不要纠结于详细的伪代码,不用纠结于连篇累牍的讲解。体会其中算法的精髓就好。

《算法》第四版

如果说,《算法导论》是学术上最好书,那这本应该是实际应用最好的书。

它对数学的要求比《算法导论》低很多,摒弃了算法的证明。

书中具体给出了每位程序员应知应会的50个算法,深入浅出,大量图解。非常棒。

java基础的话你能撸出来Hello World基本上就可以开始看这本书了,这本书最大的不友好之处在于它的第一章非常长,没看过的人又不知道哪里可以跳过。

这本书后面的翻译感觉不如前边了,不知道是换人了还是DDL了……

翻开书就会看到很多的图,配套作者在coursera上面的课程学的话事半功倍!

接下来的几本我看的比较少,简单介绍一下,希望大家自己去发现和了解,不要漏下这些好书:

《编程珠玑》

很薄一本啊,但是我放在那还没看完……

这本书被称为: 历史 上最伟大的计算机科学着作之一

融深邃思想、实战技术与趣味轶事于一炉的奇书。

内容不深,但是不是一个知识点一个知识点的给你讲解算法原理的。

这本书的核心思想是让你了解如何正确选择和高效地实现算法。书中还有一些趣闻轶事,看着倒是很有意思~

有兴趣的同学可以看看~

《算法竞赛入门经典》系列

算法竞赛入门经典书,ACM必备书籍吧算是。书中题目对于竞赛来说比较简单,但是对于一般我们平时工程来说偏难。语言用的是C/C++,请好好做例题好好做作业,读书的时候好好思考和复习~

反正我是没读过,捂脸……

《剑指Offer》

这个书很有意思,对于在校生来说我个人觉得是必看的书。没有任何工作经验的同学在面试的时候真的会被问懵的。这本书可以让你了解如何应付考官日常问题,在解答面试问题的时候,书中很多方法和思路会让考官觉得你思考的很全面,给你加不少分。

我面试的时候也曾快速扫过一遍这本书,让我在回答问题的时候条理更清晰。书中代码是C的,emmm,于是代码部分我就没太看……

《用Python解决数据结构与算法问题》

最后给大家推荐一本在线的 免费 的算法书。

https://facert.gitbooks.io/python-data-structure-cn/

不是大部头,也不是读物,新手入门足够用,书中介绍了大多数日常需要的算法,并且讲的比较浅显~转行的新手基本可以通过这本书来快速掌握常用基本算法了~

反正免费,是否适合自己看两页也就get了~

如果需要PDF版,可以在“程序员必修课”公众号后台回复:“Python算法书”获取。

阅读全文

与算法大牛抢手吗相关的资料

热点内容
永新优品app怎么找不到 浏览:244
海外服务器如何找客户 浏览:578
单片机学51 浏览:157
自助审核系统源码 浏览:382
python小数矩阵 浏览:598
安卓微信拍了拍功能怎么打开 浏览:47
求个最新的网址谁知道 浏览:29
bl耽美电影大尺度 浏览:275
编程里的块和函数的关系 浏览:372
大龄程序员自由职业现状 浏览:17
电影讲一个男的把一个小女孩关起来 浏览:600
英语电影读后感100词 浏览:154
征途命令 浏览:695
抢版电影啥意思 浏览:181
xp编程器软件 浏览:397
matlab细菌觅食算法 浏览:784
手机怎么建压缩包 浏览:941
大象里面的文件夹怎么打开 浏览:954
安卓微信为什么发不了照片 浏览:349
补办绿本解压违法吗 浏览:604