不擅长算法和数据结构的程序员就不是好程序员吗?

2015-04-17 10:08:09 +08:00
 linpf

我是phper,主要就是做网站项目,在大多数的项目中,根本用不到算法和数据结构。我不得不承认懂算法和数据结构是很牛逼的一件事,但是即使不懂,也可以解决80%的问题。

现在看到各种大公司的笔试面试,都涉及到大量数据结构,感觉无论这个岗位是不是很需要掌握数据结构和算法。诚然,这是一种大浪淘沙精益求精的做法,可是我还是受到打击了。

作为数学渣的我,在学校学数据结构和算法,及格都是谢天谢地了。但是我算法不好,我会去学很多技术、掌握更多的框架或者组件,学更多的语言,我认为我将来仍然也会是一名好的程序员。

元芳们,你们怎么看。

29570 次点击
所在节点    程序员
138 条回复
MForever78
2015-04-17 10:43:56 +08:00
是。
ryd994
2015-04-17 10:44:07 +08:00
@linescape 大O区别很大的好吧
如果人家写的O(logn),你写的O(a^n),换什么语言都是悲剧。
dbfox
2015-04-17 10:46:24 +08:00
这些东西,总觉得没意思

需要工作实践,具体解决了 xx 问题的时候,才觉得有意义

平时去学,感觉不到有什么
ryd994
2015-04-17 10:46:33 +08:00
@linpf 我觉得除开这些东西,编程就没什么好学的了(再往上要么是数学要么是管理)
不学这些学什么?单纯语言的话3个月速成不难的
bash99
2015-04-17 10:47:15 +08:00
其实好的code monkey的需求就是
1. 把讨论的逻辑(大部分是if else for)转化为代码
2. 考虑到上述逻辑的边界条件,不出bug

但是这个我觉得真心会被AI所替代,那样出路 就是往和人打交道的方向转,比如产品/项目,或者是领域知识。

像我这类心里不算热爱和人打交道的,只好走另外的路了。
linpf
2015-04-17 10:48:46 +08:00
@ryd994 我就是不想研究算法。我喜欢做项目,做出来以后很有成就感。我觉得这是我鼓励我前进的动力之一。
@linescape monkey也分高级monkey和低级monkey,就算不精通算法和数据结构,我懂的多,我的价值就高。我一个人顶3个人的时候,那我就不怕别人会来顶掉我。
@MForever78 打击我。
lion9527
2015-04-17 10:48:53 +08:00
现在觉得枯燥没意思很正常,大部分学生都很难对这些产生兴趣。
主要原因还是项目做得少,代码量不够。觉得算法什么之类的没多大用途。
现在大家跟你说这些很基础很重要也没用,因为你自身就没兴趣,学不进去,学了不用也会忘记。
但是这些东西工作几年以后再补也是没问题的。只是相对在校基础打得牢的那些人,困难很多。
rentaro
2015-04-17 10:51:34 +08:00
这个问题在各社区都能常见新手提问,道理说了无数遍,我每次想参与 GitHub 上那些出众的项目结果都卡在算法和协议上,正在恶补。还是那句话学不学是个人自由,如果有人喜欢一辈子写 PHP 搞网站不学算法也可以活下去。每个选择都会有不同的代价和后果,对我来说学习是生存之道,多学会提高自己的竞争力,如是而已。
zhuchong0329
2015-04-17 10:55:32 +08:00
@linpf
是吗?那你一定没有找到好的学习方式,算法和数据结构是个很有趣的东西,动动脑子想想隐藏在问题后面的规律,继而掌握规律。
尽管有一些问题刚接触需要花费一些的脑子,慢慢去弄懂,可是一旦你掌握了,那么你再回头去看,就会觉得一切是那么自然
我们在换个角度来看,有一定的难度是肯定的,这样你一旦掌握了,别人追上你也一样要越过这个难度
so,怕什么真理无穷,怕什么难度,进一寸有一寸的欢喜
推荐你一本书《算法引论》相对简单有趣一些
然后推荐你一个网站 http://www.51nod.com/ 一个有趣的做算法题的网站

ps. 本文也是菜鸟一枚,楼主共勉之
kifile
2015-04-17 10:58:17 +08:00
校招会比较注重这一块吧,毕竟公司也不知道你的能力,如果正式工作了,应该会主要问工作相关的东西
linpf
2015-04-17 10:58:18 +08:00
@lion9527 我没觉得算法之类没多大用途,我深知其重要性。我现在就是感觉,我学那些东西十分吃力,我就像换个方向。我深度进不去,我走广度的道路。
zipher
2015-04-17 10:59:37 +08:00
@linpf 你觉得你目前做的项目用不到算法的时候
请思考一下 在现有硬件环境下并发扩大十倍,你的项目会怎么样
反复的摧残自己的工程,你就会发现算法和数据结构的价值
cfm1989
2015-04-17 11:00:22 +08:00
只能是一枚好程序猿,好码农
lion9527
2015-04-17 11:05:02 +08:00
@linpf 你走广度的路线也没事,不过你还没毕业,校招基本上所有公司对于应届生都是考察算法之类的基础知识。深度不够的话很难进好的公司,在起跑线上就输了一段,后面想追回来就更困难。
devon
2015-04-17 11:05:38 +08:00
不懂算法,码农都算不上。离开算法,还叫什么程序?
ryd994
2015-04-17 11:08:08 +08:00
@linpf 问题是
虽然别人比不上你高产,但是一进生产环境别人的代码不仅性能好消耗低还稳定,这时候老板怎么说?哪怕别人写的代码量不及你十分之一,但是别人写一行是一行,你重构十次还有bug,这个时候怎么比?
程序员是智力密集型工作!程序员是智力密集型工作!程序员是智力密集型工作!因为很重要所以说三遍。不要以为程序跑通就算完了,也不要以为程序员的生产力是以代码量计算的。
neilwong
2015-04-17 11:08:22 +08:00
会算法和数据结构,公司至少可以保证,这是一个系统学习过程序开发的人,能用程序员思维思考问题。要比一般的monkey靠谱很多。

做过四年的网站工程师的一些分享:
如果单纯用php框架开发普通网站的话,数据结构和算法如你所说,的确用到的地方非常少。完全不需要算法和数据结构也是ok的。

不过以下对数据结构和算法要求就比较高了:
1. 后端接口开发(排序,搜索,消息推送等等)
2. 任何平台的游戏开发
3. c++, java,swift 等编译性语言开发。


如果楼主以后只是单纯的想用解释型语言开发网站的话,的确可以,不过现在时代发展这么快,移动互联网会往什么方向发展还不好说啊,基础打好了,以不变应万变才是明智的选择啊。
young
2015-04-17 11:15:00 +08:00
http://pan.baidu.com/s/1jGsxdwq 拿好, 晋升了不要忘记请客撸串
ZHenJ
2015-04-17 11:47:35 +08:00
大厂招本科生,算法题是一个很方便的帅选工具。。。
bullettrain1433
2015-04-17 11:52:36 +08:00
@young 空的说

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/184271

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX