• 程序员是否都需要精通数据结构与算法?
  • 发布于 1个月前
  • 34 热度
    1 评论
  • 公孙杨
  • 7 粉丝 38 篇博客
  •   
作为一个做了十几年程序的老司机,现在做的时间越长越是对于精通两个字避之不及了,无论是精通编程语言还是精通算法之类的话,轻易都不会说出口,学的越多越觉得自己知识面的狭窄,算法决定程序员的上限,有很多程序员对于算法的意识比较淡薄,觉得没有特别厉害的算法也能把程序做的很不错,这个涉及到一个问题,不是所有的程序员岗位都是必须把算法搞得特别好,才能做程序员。其实很多程序员的岗位对于算法的要求不是那么强烈,算法主要在游戏或者大型数据计算上用的比较多。

现在多了很多专业的算法工程师职位,这种属于专业的算法,比如现在的人工智能岗位更加现实点的例子今日头条的推荐机制基本上沿用算法的方式,当然在平时的开发过程中涉及到性能方面的问题会有算法相关的操作,笔者曾经做过一个广告过滤功能,策略就是列举一堆不能访问的广告网址,然后采用一定的查找算法,毕竟在列表中的数据很少的情况下效率基本不用考虑,但在成百上千规则的时候,算法就显得特别重要了,算法在编码的过程中相对来讲用的不是很多,但在一些影响性能的地方没有算法,就会显得特别笨重。

说到算法在人工智能上用的最广泛,而且属于比较深层次的算法,数学基础不过关,基本上玩不转,很多公司招收人工智能的程序员,夸张一点算法的要求大于对编码的要求,编码能力时间长了可以弥补回来,但算法不是一时半会就能学会的,对于数学的线性代数,微积分基础知识用的特别频繁,很多人觉得人工智能就是简单学个python就可以玩了,只是入口函数的调用而已,真正涉及到性能的算法,大部分还是C/C++完成。

术业有专攻,不是每个程序员都对算法都会很熟悉,算法和程序设计逻辑有一定的相通之处,很多人所说的编程需要一定的数学基础就是指的算法相关的东西。

现在很多大公司在招聘程序员这关还会专门设计一些算法的考验,算法也是程序员基本功的一种了,不是所有的程序员算法能力都很强,但算法强的程序员能力一般不弱。目前国内市场算法工程师的待遇还是高于一般的技术工种,算法是特殊的技术工种,初学者入门写程序的过程中不要忽略其中算法的作用。

用户评论
  • 十里桃花
  • 程序员和算法没有必然联系,你如果是专门搞算法,研究最优计算的,那肯定是要精通算法,那如果你的工作不是涉及这块的,其实就不一定要掌握多高深的算法知识了
  • 2018/10/17 12:33:00 [ 0 ] [ 0 ] 回复