0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

程序员需要学习算法吗

工程师人生 来源:wv 作者:简书网 2019-09-09 09:43 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

前言

现在由于互联网时代的到来,越来越多的人去学习互联网开发,成为程序员大军中的一员。也正是因为程序员大军中人数众多,导致了现在对于技术人员的要求也越来越高了。技术不断的更新变化,因此技术人员也每年都在跟着时代不断的学习。今天移动开发火热,一群人去学习AndroidiOS开发,明天人工智能火热又一群人去学习Python、人工智能技术。但是很多时候,我们在学习完成了一门技术之后去面试找工作,一些公司在面试的时候往往需要考察算法知识。但是很多技术人员都知道,其实在工作中算法知识用的其实很少很少,那么就产生了一个疑问,作为一名程序员,数据结构和算法知识到底有没有必要去学习?

首先回答你,如果是一般岗位其实不用;如果是进BAT这种大公司,是需要会但是不用特别精通,如果是去国外加入Google、Facebook这种公司或者想拿高薪作为一名算法工程师拿就必须精通。下面我对这三种说法结合自身来分别说下。

一般型中小公司

对于小公司或者一般的公司来说,其实按照我的说法是不仅不需要精通,甚至可以说你完全无知也没关系。因为小公司或者一般的公司入门门槛低,不要说算法了,就算是面试官可能都不太懂技术,他主要面试的是人,也就是看人,觉得你合适就来,而且真正牛逼的人根本就不是靠小公司走招聘市场招来的,大牛一般都是靠挖来的。而且在一般的小公司都是专注去写业务逻辑代码,很多公司只需要你实现了这个功能就OK,对于代码编写规范或者时间空间复杂度等最优实现根本就不会去管你。所以你在这里面其实会不会算法都没有任何必要,会算法不会为你加分,不会算法也不会为你减分。

BAT

如果你是一个有追求的程序员,不甘心满足天天在小公司待着,而是想去BAT或者TMD这种大型公司或者超级独角兽公司的话,那算法是绝对绕不开的一个话题。就拿本人还有周围去面试过大公司的朋友来举例子。BAT面试全都要涉及到算法。腾讯我去面试过,在二面挂了,一面和二面其实都有算法题目,一面相对而言简单一些,二面的算法就有难度了。而我有一个朋友,拿到了腾讯和阿里的offer,他回来说腾讯五轮面试中有一轮面试是专门考察算法,总共六道算法题目给了你两个小时时间作答。阿里的电话面试里面也有一轮视频面试专门考察算法,也是当着他们的面手写算法。光讲思路在腾讯行不通的。本人曾面对腾讯的题目跟面试官说我谈谈思路吧,面试官直接怼回来说不要谈什么思路,直接写出来给我看,平时怎么敲代码现在就怎么写出来。可见对待算法完全没有任何商量的余地。至于头条公司那就更是如此了,因为头条就是一家以算法驱动的公司,对算法要求也比较高。但是即便如此,BAT对待算法还远达不到称之为精通的地步。

硅谷形公司——Google、Facebook

其实最凶残的公司是硅谷这些公司,例如Google和Facebook这类的公司。他们面试你问的全是算法,从来不会去问你专业知识,而且他们的算法问的是超级难得地步。只要你通过了Google、Facebook公司的算法面试,那么你进入公司想做什么技术岗位都可以。比如,你一个从来没学过Android的人,只要通过了他们面试,进去做Android也完全没问题。因为在老外眼里,算法是非常难得东西,你连这么难的东西还能通过他们的面试,那么其他的编程知识进去给你时间学也能够马上学会。所以你想通过他们Google和Facebook的面试,那么算法确实要达到精通的地步,如果只是初级水平可能只有进去参观的份了。而不管时代如何变,算法工程师永远是市面上的稀缺物种,稀缺就代表值钱,所以学好编程不如学好算法,语言只是编程工具,算法才是编程之魂!

如果需要去面试考察算法的,这里可以推荐一般本书《剑指offer》,这本书基本上涵盖了国内所有公司面试考察的算法题目,只要把这本书上的代码敲一遍,相信在算法领域面试基本应该没啥问题。或者想要动手操作的话也可以去LeetCode上刷刷题目,在练习当中才能有所提高和进步!

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 程序员
    +关注

    关注

    4

    文章

    955

    浏览量

    30786
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    奔赴热AI,码力全开!Talkweb House@1024程序员日系列活动圆满收官

    1024程序员日”系列活动至此划上了一个圆满句号。本届1024程序员节以“AI构建世界,智能引领未来”为主题,广邀技术大咖、产业领袖、企业代表与全球开发者齐聚星城
    的头像 发表于 10-27 18:59 432次阅读
    奔赴热AI,码力全开!Talkweb House@1024<b class='flag-5'>程序员</b>日系列活动圆满收官

    开鸿智谷“以赛促学、以赛选才”|1024程序员节暨开源鸿蒙构建大会圆满落幕!

    10月24日,由开鸿智谷联合主办的长沙1024程序员节暨开源鸿蒙构建大会在长沙圆满落幕。本次活动以“湘聚长沙,共赴热AI”为主题,通过技术分享与实战竞赛相结合的方式,着力培养“开源鸿蒙+AI”领域
    的头像 发表于 10-27 17:58 475次阅读
    开鸿智谷“以赛促学、以赛选才”|1024<b class='flag-5'>程序员</b>节暨开源鸿蒙构建大会圆满落幕!

    如何在机器视觉中部署深度学习神经网络

    人士而言往往难以理解,人们也常常误以为需要扎实的编程技能才能真正掌握并合理使用这项技术。事实上,这种印象忽视了该技术为机器视觉(乃至生产自动化)带来的潜力,因为深度学习并非只属于计算机科学家或程序员。 从头开始:什么
    的头像 发表于 09-10 17:38 693次阅读
    如何在机器视觉中部署深度<b class='flag-5'>学习</b>神经网络

    PID控制算法学习笔记资料

    用于新手学习PID控制算法
    发表于 08-12 16:22 7次下载

    程序设计与数据结构

    的地址)出发,采用推导的方式,深入浅出的分析了广大C程序员学习和开发中遇到的难点。 2. 从方法论的高度对C语言在数据结构和算法方面的应用进行了深入讲解和阐述。 3. 讲解了绝大多数C程序
    发表于 05-13 16:45

    【「零基础开发AI Agent」阅读体验】+ 入门篇学习

    10.AI Agent开发模式走向了零代码可视化模式(需要我们程序员对此有着观念上的转变),但是掌握编程技术,有助于AI Agent的开发进阶
    发表于 05-02 09:26

    如何在 树莓派 上编写和运行 C 语言程序

    ,一本很好的书是BrianKernighan和DennisRitchie所著的《TheCProgrammingLanguage》。这本书对经验丰富的程序员和想学习C语
    的头像 发表于 03-25 09:28 940次阅读
    如何在 树莓派 上编写和运行 C 语言<b class='flag-5'>程序</b>?

    零基础入门:如何在树莓派上编写和运行Python程序

    是一种非常有用的编程语言,其语法易于阅读,允许程序员使用比汇编、C或Java等语言更少的代码行。Python编程语言最初实际上是作为Linux的脚本语言而开发的。Py
    的头像 发表于 03-25 09:27 1527次阅读
    零基础入门:如何在树莓派上编写和运行Python<b class='flag-5'>程序</b>?

    阿里云升级通义灵码AI程序员,全面上线

    近日,阿里云宣布其备受瞩目的通义灵码AI程序员已正式全面上线,为开发者带来更为强大和便捷的编程辅助工具。 此次上线的通义灵码AI程序员,在功能上实现了全面升级。现在,它支持VS Code
    的头像 发表于 01-09 11:16 960次阅读

    TimSort:一个在标准函数库中广泛使用的排序算法

    在计算机科学的领域,排序算法是每位学生必学的基础,而排序的需求是每位程序员在编程过程中都会遇到的。 在你轻松调用 .sort() 方法对数据进行排序时,是否曾好奇过,这个简单的方法背后使用的是哪种
    的头像 发表于 01-03 11:42 956次阅读

    华为云 Flexus X 实例部署安装 Jupyter Notebook,学习 AI,机器学习算法

    前言 由于本人最近在学习一些机器算法,AI 算法的知识,需要搭建一个学习环境,所以就在最近购买的华为云 Flexus X 实例上安装了
    的头像 发表于 01-02 13:43 865次阅读
    华为云 Flexus X 实例部署安装 Jupyter Notebook,<b class='flag-5'>学习</b> AI,机器<b class='flag-5'>学习</b><b class='flag-5'>算法</b>

    TMS320C6000程序员指南

    电子发烧友网站提供《TMS320C6000程序员指南.pdf》资料免费下载
    发表于 12-24 17:19 2次下载
    TMS320C6000<b class='flag-5'>程序员</b>指南

    TMS320C55x DSP CPU程序员参考补充

    电子发烧友网站提供《TMS320C55x DSP CPU程序员参考补充.pdf》资料免费下载
    发表于 12-21 11:36 3次下载
    TMS320C55x DSP CPU<b class='flag-5'>程序员</b>参考补充

    学习硬件的第一节课:学习读懂原理图

    学习硬件的第一节课:学习读懂原理图 读懂原理图对嵌入式软件工程师和程序员尤为重要。在深入细节之前请注意,对所有的嵌入式设计人员来说、能懂得硬件工程师创建和使用的来描述其硬件设计的原理图和符号是非
    的头像 发表于 12-16 16:04 3668次阅读
    <b class='flag-5'>学习</b>硬件的第一节课:<b class='flag-5'>学习</b>读懂原理图

    UCD3138A64/UCD3138128程序员手册

    电子发烧友网站提供《UCD3138A64/UCD3138128程序员手册.pdf》资料免费下载
    发表于 12-09 14:42 1次下载
    UCD3138A64/UCD3138128<b class='flag-5'>程序员</b>手册