算法对于“程序员”的重要性

peacepassion 2013-08-05 04:40:07
本人小硕一枚,即将毕业,现在正在阅读程序员求职相关的书籍。
经过两年的计算机书籍的阅读以及一些实际的编程经验,目前有以下感觉:
1、喜欢研究、使用C++与设计模式;
2、非常不喜欢算法的研究。
根据我有限的阅历,目前我的观点是:
1、关键算法是大公司的重要资产,而这些算法是由专门的做research的算法工程师来研究的;
2、做开发的工程师,只需懂得如何“翻译”那些重要算法即可;
3、各个语言的库基本已包含大多数成熟的基本的数据结构与算法,如:二叉树、查找、排序、哈希表、字符串查找等等,对于开发工程师来说,更重要的是了解各个语言的库,各个算法的特点、适用情形;

希望大家能够针对我的观点发表下自己的意见。
...全文
10592 108 打赏 收藏 转发到动态 举报
写回复
用AI写文章
108 条回复
切换为时间正序
请发表友善的回复…
发表回复
caicai007008 2016-01-17
  • 打赏
  • 举报
回复
发明算法很不容易的
fywindy 2013-08-09
  • 打赏
  • 举报
回复
都是屌丝呀呀呀呀呀呀
peacepassion 2013-08-08
  • 打赏
  • 举报
回复
引用 105 楼 SmallYamateh 的回复:
[quote=引用 104 楼 peacepassion 的回复:] [quote=引用 103 楼 SmallYamateh 的回复:] 设计模式也需要算法的啊,就拿Spring得bean初始化来说,核心源码其实就四个字“后序遍历”。另外,STL或者JDK只是提供了基本的数据结构罢了,但提供不了“算法设计方法”,例如动态规划、回溯、分支限界等等技巧性比较强的算法,没有1w行的代码量是掌握不了的。
话说,对于动态规划、贪心算法、单纯形法等等这些经典的算法,若真是把最优数学模型给建立好以后,剩下的工作就是翻译成代码了。 但是,数学建模这一块,如果按照80-20法则来说,绝对就是影响程序性能的80那部分。 但我并不觉得,每个程序员日常工作中都会碰到类似于ACM中的那些问题。我相信,绝大多数的精力还是放在如何确定合适的语言、框架、类库、开发流程等等。[/quote] 同意你的“日常工作中不会遇到ACM问题”,需要补充的是:虽然我课余时间看《导论》,但日常工作中,我用到最多的是:ctrl+c ctrl+v ctrl+f replaceAll。[/quote] 非常同意你的观点。更多的精力一般会放在业务逻辑、技术选择、技术实现上。 当然了,我现在还在学校里,这些东西我也不确定,所以,平时有空的时候就会上网与大家交流。
kosora曹 2013-08-08
  • 打赏
  • 举报
回复
引用 104 楼 peacepassion 的回复:
[quote=引用 103 楼 SmallYamateh 的回复:] 设计模式也需要算法的啊,就拿Spring得bean初始化来说,核心源码其实就四个字“后序遍历”。另外,STL或者JDK只是提供了基本的数据结构罢了,但提供不了“算法设计方法”,例如动态规划、回溯、分支限界等等技巧性比较强的算法,没有1w行的代码量是掌握不了的。
话说,对于动态规划、贪心算法、单纯形法等等这些经典的算法,若真是把最优数学模型给建立好以后,剩下的工作就是翻译成代码了。 但是,数学建模这一块,如果按照80-20法则来说,绝对就是影响程序性能的80那部分。 但我并不觉得,每个程序员日常工作中都会碰到类似于ACM中的那些问题。我相信,绝大多数的精力还是放在如何确定合适的语言、框架、类库、开发流程等等。[/quote] 同意你的“日常工作中不会遇到ACM问题”,需要补充的是:虽然我课余时间看《导论》,但日常工作中,我用到最多的是:ctrl+c ctrl+v ctrl+f replaceAll。
wjjll123 2013-08-08
  • 打赏
  • 举报
回复
引用 101 楼 u011627170 的回复:
[quote=引用 100 楼 wjjll123 的回复:] [quote=引用 99 楼 u011627170 的回复:] [quote=引用 98 楼 wjjll123 的回复:] [quote=引用 91 楼 u011627170 的回复:] [quote=引用 87 楼 wjjll123 的回复:] 做程序。不会API有个毛用。什么算法设计模式。都把码农当脑残?稍微有点上进心的。做的年份高一些的程序员,哪怕自己不想接触这些也或多或少的要用到的。 什么叫没有算法写的程序跑10分钟。有算法写的程序跑5分钟。那人家做java的就是调用一堆堆的接口算什么?不算程序员? STL还不够用?什么冒泡,递归还不够用?非要搞什么高深的算法?弄些别人看不懂没听过的算法就牛逼了?还不是屌丝码农? 搞不懂算法怎么就那么神圣了。不就是把别人写的臃肿的代码写的更加精简嘛?如果屌丝码农连精简自己的代码的心都没有的话。那还是不要做程序员这行了。
引用 88 楼 wjjll123 的回复:
顺便喷楼上那个说没有算法的程序就是渣滓的。。。 我自己做的定时关机程序。请问要什么算法。你给我列出来啊。 我到想看看你牛在什么地方了! 有本事的你给我用纯算法做一个定时关机的小程序啊。
你这种估计一辈子只会停留在调别人api的水平,典型的屌丝码农,满嘴喷粪。。 “我自己做的定时关机程序。请问要什么算法。你给我列出来啊。” 这句话哥笑了。。 估计你都不知道“程序本身,就是一种算法”。。[/quote] 可笑。不知道你哪里来的自信敢说程序本身就是算法。说的话本身就是错误的。不屑喷你了。[/quote] 不在一个层次上交流真费劲。。 小伙子还是回去多修炼几年吧[/quote] OK。本来我就是一个屌丝码农。也没想能成为大神神马的。而且我还是一个纯做UI的码农。觉得交流费劲就无视我吧!!![/quote] [/quote] 这。。。。
tencenter哥 2013-08-08
  • 打赏
  • 举报
回复
引用 100 楼 wjjll123 的回复:
[quote=引用 99 楼 u011627170 的回复:] [quote=引用 98 楼 wjjll123 的回复:] [quote=引用 91 楼 u011627170 的回复:] [quote=引用 87 楼 wjjll123 的回复:] 做程序。不会API有个毛用。什么算法设计模式。都把码农当脑残?稍微有点上进心的。做的年份高一些的程序员,哪怕自己不想接触这些也或多或少的要用到的。 什么叫没有算法写的程序跑10分钟。有算法写的程序跑5分钟。那人家做java的就是调用一堆堆的接口算什么?不算程序员? STL还不够用?什么冒泡,递归还不够用?非要搞什么高深的算法?弄些别人看不懂没听过的算法就牛逼了?还不是屌丝码农? 搞不懂算法怎么就那么神圣了。不就是把别人写的臃肿的代码写的更加精简嘛?如果屌丝码农连精简自己的代码的心都没有的话。那还是不要做程序员这行了。
引用 88 楼 wjjll123 的回复:
顺便喷楼上那个说没有算法的程序就是渣滓的。。。 我自己做的定时关机程序。请问要什么算法。你给我列出来啊。 我到想看看你牛在什么地方了! 有本事的你给我用纯算法做一个定时关机的小程序啊。
你这种估计一辈子只会停留在调别人api的水平,典型的屌丝码农,满嘴喷粪。。 “我自己做的定时关机程序。请问要什么算法。你给我列出来啊。” 这句话哥笑了。。 估计你都不知道“程序本身,就是一种算法”。。[/quote] 可笑。不知道你哪里来的自信敢说程序本身就是算法。说的话本身就是错误的。不屑喷你了。[/quote] 不在一个层次上交流真费劲。。 小伙子还是回去多修炼几年吧[/quote] OK。本来我就是一个屌丝码农。也没想能成为大神神马的。而且我还是一个纯做UI的码农。觉得交流费劲就无视我吧!!![/quote]
wjjll123 2013-08-08
  • 打赏
  • 举报
回复
引用 99 楼 u011627170 的回复:
[quote=引用 98 楼 wjjll123 的回复:] [quote=引用 91 楼 u011627170 的回复:] [quote=引用 87 楼 wjjll123 的回复:] 做程序。不会API有个毛用。什么算法设计模式。都把码农当脑残?稍微有点上进心的。做的年份高一些的程序员,哪怕自己不想接触这些也或多或少的要用到的。 什么叫没有算法写的程序跑10分钟。有算法写的程序跑5分钟。那人家做java的就是调用一堆堆的接口算什么?不算程序员? STL还不够用?什么冒泡,递归还不够用?非要搞什么高深的算法?弄些别人看不懂没听过的算法就牛逼了?还不是屌丝码农? 搞不懂算法怎么就那么神圣了。不就是把别人写的臃肿的代码写的更加精简嘛?如果屌丝码农连精简自己的代码的心都没有的话。那还是不要做程序员这行了。
引用 88 楼 wjjll123 的回复:
顺便喷楼上那个说没有算法的程序就是渣滓的。。。 我自己做的定时关机程序。请问要什么算法。你给我列出来啊。 我到想看看你牛在什么地方了! 有本事的你给我用纯算法做一个定时关机的小程序啊。
你这种估计一辈子只会停留在调别人api的水平,典型的屌丝码农,满嘴喷粪。。 “我自己做的定时关机程序。请问要什么算法。你给我列出来啊。” 这句话哥笑了。。 估计你都不知道“程序本身,就是一种算法”。。[/quote] 可笑。不知道你哪里来的自信敢说程序本身就是算法。说的话本身就是错误的。不屑喷你了。[/quote] 不在一个层次上交流真费劲。。 小伙子还是回去多修炼几年吧[/quote] OK。本来我就是一个屌丝码农。也没想能成为大神神马的。而且我还是一个纯做UI的码农。觉得交流费劲就无视我吧!!!
tencenter哥 2013-08-08
  • 打赏
  • 举报
回复
引用 98 楼 wjjll123 的回复:
[quote=引用 91 楼 u011627170 的回复:] [quote=引用 87 楼 wjjll123 的回复:] 做程序。不会API有个毛用。什么算法设计模式。都把码农当脑残?稍微有点上进心的。做的年份高一些的程序员,哪怕自己不想接触这些也或多或少的要用到的。 什么叫没有算法写的程序跑10分钟。有算法写的程序跑5分钟。那人家做java的就是调用一堆堆的接口算什么?不算程序员? STL还不够用?什么冒泡,递归还不够用?非要搞什么高深的算法?弄些别人看不懂没听过的算法就牛逼了?还不是屌丝码农? 搞不懂算法怎么就那么神圣了。不就是把别人写的臃肿的代码写的更加精简嘛?如果屌丝码农连精简自己的代码的心都没有的话。那还是不要做程序员这行了。
引用 88 楼 wjjll123 的回复:
顺便喷楼上那个说没有算法的程序就是渣滓的。。。 我自己做的定时关机程序。请问要什么算法。你给我列出来啊。 我到想看看你牛在什么地方了! 有本事的你给我用纯算法做一个定时关机的小程序啊。
你这种估计一辈子只会停留在调别人api的水平,典型的屌丝码农,满嘴喷粪。。 “我自己做的定时关机程序。请问要什么算法。你给我列出来啊。” 这句话哥笑了。。 估计你都不知道“程序本身,就是一种算法”。。[/quote] 可笑。不知道你哪里来的自信敢说程序本身就是算法。说的话本身就是错误的。不屑喷你了。[/quote] 不在一个层次上交流真费劲。。 小伙子还是回去多修炼几年吧
wjjll123 2013-08-08
  • 打赏
  • 举报
回复
引用 91 楼 u011627170 的回复:
[quote=引用 87 楼 wjjll123 的回复:] 做程序。不会API有个毛用。什么算法设计模式。都把码农当脑残?稍微有点上进心的。做的年份高一些的程序员,哪怕自己不想接触这些也或多或少的要用到的。 什么叫没有算法写的程序跑10分钟。有算法写的程序跑5分钟。那人家做java的就是调用一堆堆的接口算什么?不算程序员? STL还不够用?什么冒泡,递归还不够用?非要搞什么高深的算法?弄些别人看不懂没听过的算法就牛逼了?还不是屌丝码农? 搞不懂算法怎么就那么神圣了。不就是把别人写的臃肿的代码写的更加精简嘛?如果屌丝码农连精简自己的代码的心都没有的话。那还是不要做程序员这行了。
引用 88 楼 wjjll123 的回复:
顺便喷楼上那个说没有算法的程序就是渣滓的。。。 我自己做的定时关机程序。请问要什么算法。你给我列出来啊。 我到想看看你牛在什么地方了! 有本事的你给我用纯算法做一个定时关机的小程序啊。
你这种估计一辈子只会停留在调别人api的水平,典型的屌丝码农,满嘴喷粪。。 “我自己做的定时关机程序。请问要什么算法。你给我列出来啊。” 这句话哥笑了。。 估计你都不知道“程序本身,就是一种算法”。。[/quote] 可笑。不知道你哪里来的自信敢说程序本身就是算法。说的话本身就是错误的。不屑喷你了。
peacepassion 2013-08-08
  • 打赏
  • 举报
回复
引用 103 楼 SmallYamateh 的回复:
设计模式也需要算法的啊,就拿Spring得bean初始化来说,核心源码其实就四个字“后序遍历”。另外,STL或者JDK只是提供了基本的数据结构罢了,但提供不了“算法设计方法”,例如动态规划、回溯、分支限界等等技巧性比较强的算法,没有1w行的代码量是掌握不了的。
话说,对于动态规划、贪心算法、单纯形法等等这些经典的算法,若真是把最优数学模型给建立好以后,剩下的工作就是翻译成代码了。 但是,数学建模这一块,如果按照80-20法则来说,绝对就是影响程序性能的80那部分。 但我并不觉得,每个程序员日常工作中都会碰到类似于ACM中的那些问题。我相信,绝大多数的精力还是放在如何确定合适的语言、框架、类库、开发流程等等。
  • 打赏
  • 举报
回复
不懂别人怎么做,不懂算法,只懂应用别人的东西,永远落后于别人,如果还以此为荣的话,永远只能为别人打工
kosora曹 2013-08-08
  • 打赏
  • 举报
回复
设计模式也需要算法的啊,就拿Spring得bean初始化来说,核心源码其实就四个字“后序遍历”。另外,STL或者JDK只是提供了基本的数据结构罢了,但提供不了“算法设计方法”,例如动态规划、回溯、分支限界等等技巧性比较强的算法,没有1w行的代码量是掌握不了的。
guanlianan 2013-08-07
  • 打赏
  • 举报
回复
引用 39 楼 wanghb1989 的回复:
算法很重要?Oh,shit
算法很重要?Oh,shit
z2357 2013-08-07
  • 打赏
  • 举报
回复
引用 82 楼 rainbowsix 的回复:
[quote=引用 81 楼 SIOBNOMJ 的回复:] [quote=引用 80 楼 wanghb1989 的回复:] [quote=引用 79 楼 SIOBNOMJ 的回复:] 其实码农写代码时算法是无处不在的,一个功能函数你写100行实现,我用10行,同等功能你要10分钟跑完,我5分钟就能跑完,金融行业数据挖掘、检索等等。。 一个算法意识强的程序员往往能够写出高效而优秀的代码。 如果一个码农总是为自己的懒惰找借口,那么他永远只是一个码农。。
你讲的是常规算法[/quote] 一个程序员到达一定境界后,没有所谓的常规和高级之分,对于他们而言,灵活运用自己所掌握的知识,那就是一种NB。 正如设计模式,就那么几种,都是从面向对象的基本特性衍生而来,相信将来所谓的更复杂的模式也在这么些上发展演化,复杂来源于简单,万变不离其宗。 优秀的码农不会拘泥算法是简单的还是复杂的,因为在他们的眼里,它不紧紧是算法,而是一种思想。 [/quote] 此算法非彼算法,说的应该不是一种东西~[/quote] 我以为,第一级:就是大学上的数据节本和算法。第二级:设计模式等设计方法。第三级:架构模式等架构方法。
wanghb1989 2013-08-07
  • 打赏
  • 举报
回复
Lz能说明下自己的计算机能力吗,比如语言,算法,操作系统,数据库各个方向。下半年找名企压力大嘛?
zuoshouzuohua 2013-08-07
  • 打赏
  • 举报
回复
个人感觉程序不懂算法那不是真正的程序员!!而是程序猿!!!!
无聊找乐 2013-08-07
  • 打赏
  • 举报
回复
引用 81 楼 SIOBNOMJ 的回复:
[quote=引用 80 楼 wanghb1989 的回复:] [quote=引用 79 楼 SIOBNOMJ 的回复:] 其实码农写代码时算法是无处不在的,一个功能函数你写100行实现,我用10行,同等功能你要10分钟跑完,我5分钟就能跑完,金融行业数据挖掘、检索等等。。 一个算法意识强的程序员往往能够写出高效而优秀的代码。 如果一个码农总是为自己的懒惰找借口,那么他永远只是一个码农。。
你讲的是常规算法[/quote] 一个程序员到达一定境界后,没有所谓的常规和高级之分,对于他们而言,灵活运用自己所掌握的知识,那就是一种NB。 正如设计模式,就那么几种,都是从面向对象的基本特性衍生而来,相信将来所谓的更复杂的模式也在这么些上发展演化,复杂来源于简单,万变不离其宗。 优秀的码农不会拘泥算法是简单的还是复杂的,因为在他们的眼里,它不紧紧是算法,而是一种思想。 [/quote] 此算法非彼算法,说的应该不是一种东西~
SIOBNOMJ 2013-08-07
  • 打赏
  • 举报
回复
引用 80 楼 wanghb1989 的回复:
[quote=引用 79 楼 SIOBNOMJ 的回复:] 其实码农写代码时算法是无处不在的,一个功能函数你写100行实现,我用10行,同等功能你要10分钟跑完,我5分钟就能跑完,金融行业数据挖掘、检索等等。。 一个算法意识强的程序员往往能够写出高效而优秀的代码。 如果一个码农总是为自己的懒惰找借口,那么他永远只是一个码农。。
你讲的是常规算法[/quote] 一个程序员到达一定境界后,没有所谓的常规和高级之分,对于他们而言,灵活运用自己所掌握的知识,那就是一种NB。 正如设计模式,就那么几种,都是从面向对象的基本特性衍生而来,相信将来所谓的更复杂的模式也在这么些上发展演化,复杂来源于简单,万变不离其宗。 优秀的码农不会拘泥算法是简单的还是复杂的,因为在他们的眼里,它不紧紧是算法,而是一种思想。
wanghb1989 2013-08-07
  • 打赏
  • 举报
回复
引用 79 楼 SIOBNOMJ 的回复:
其实码农写代码时算法是无处不在的,一个功能函数你写100行实现,我用10行,同等功能你要10分钟跑完,我5分钟就能跑完,金融行业数据挖掘、检索等等。。 一个算法意识强的程序员往往能够写出高效而优秀的代码。 如果一个码农总是为自己的懒惰找借口,那么他永远只是一个码农。。
你讲的是常规算法
SIOBNOMJ 2013-08-07
  • 打赏
  • 举报
回复
其实码农写代码时算法是无处不在的,一个功能函数你写100行实现,我用10行,同等功能你要10分钟跑完,我5分钟就能跑完,金融行业数据挖掘、检索等等。。 一个算法意识强的程序员往往能够写出高效而优秀的代码。 如果一个码农总是为自己的懒惰找借口,那么他永远只是一个码农。。
加载更多回复(86)

590

社区成员

发帖
与我相关
我的任务
社区描述
提出问题
其他 技术论坛(原bbs)
社区管理员
  • community_281
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧