RT,大专没教数据结构,算法也没学过,工作3年了,现在学还来得及不?有学习路线推荐吗?
![]() | 1 bengol 2015-07-08 10:09:32 +08:00 via Android 转管理,管懂算法的码农 |
![]() | 2 66beta 2015-07-08 10:12:45 +08:00 谁跟你说学过了就一定能记住,嘎嘎嘎... |
![]() | 3 lzsadam 2015-07-08 10:22:23 +08:00 那就得看其它方面的能力了~ |
![]() | 4 Exin 2015-07-08 10:24:13 +08:00 就数据结构这方面的教材来说,其实也没多少内容,看个一个月就摸透了。但是之后记不记得住另说,我是忘得差不多了 |
![]() | 5 hahastudio 2015-07-08 10:26:02 +08:00 算上昨天那个不感冒 js 的前端,真是感叹是不是现在程序员门槛太低了 以后是不是会拍脑门想需求的就叫程序员了 |
![]() | 6 hahasong 2015-07-08 10:29:21 +08:00 虽然没学,但是你平时在开发中基本都用过了,只是你没发现而已。楼上说的对,学过的也不一定记住了 |
![]() | 7 Mac 2015-07-08 10:55:10 +08:00 ctrl-c ctrl-v会就可以了 |
8 loolac 2015-07-08 11:00:32 +08:00 走着走着就会了 |
9 neo2015 2015-07-08 11:01:37 +08:00 我们只是GitHub的搬运工 |
![]() | 10 rock_cloud 2015-07-08 11:10:20 +08:00 @hahastudio 门槛低很正常,本来工具和语言的发展就是降低门槛的,比如现在程序员已经基本不需要学习很复杂的基础知识就可以完成大部分需求,说不定以后真的就是提需求就自动出程序呢(参考拖控件的VB)。 当然有深厚功底的程序员的工资比普通程序员的多几个零就是另外一码事了~~ |
11 cz208209 2015-07-08 11:14:16 +08:00 @hahastudio 有同感啊 |
![]() | 12 F281M6Dh8DXpD1g2 2015-07-08 11:36:12 +08:00 @hahastudio 如果你还在打孔编程的话,倒是可以感慨下,如果不是我就呵呵了 |
![]() | 13 hahastudio 2015-07-08 12:15:27 +08:00 |
14 monnand 2015-07-08 12:15:41 +08:00 其实能走很远,只不过是拿着多少钱走,在什么环境下走的问题。 |
![]() | 15 HanSonJ 2015-07-08 12:55:51 +08:00 |
16 OceanOverflow 2015-07-08 12:57:14 +08:00 即使算法数据结构很差也不意味着不能写出好的程序啊,学好这些只能多造几个轮子罢了。上回homebrew的作者不就正是可以说明这件事情吗。 |
17 ddou 2015-07-08 13:01:19 +08:00 可以走的足够远(时间足够长),但是不会足够高 |
![]() | 18 F281M6Dh8DXpD1g2 2015-07-08 13:03:58 +08:00 @hahastudio 人类是站在前人的肩膀上的,现在你还要打孔么还要手写汇编么还要用磁带文件系统么 如果他写的程序能够完成他的功能的话,"写程序不学数据结构和算法"又有什么关系呢。 程序是写来解决问题的,其他都不重要。 |
![]() | 19 dorentus 2015-07-08 13:08:45 +08:00 ![]() 不学数据结构和算法怎么能用好别人造的轮子? |
20 OceanOverflow 2015-07-08 13:14:55 +08:00 @dorentus 学好英语看人家写的文档啊。: ] |
![]() | 21 sneezry 2015-07-08 13:16:45 +08:00 via iPhone ![]() 闻道有先后,啥时候都不晚 |
![]() | 23 F281M6Dh8DXpD1g2 2015-07-08 13:18:45 +08:00 @Andiry 偷换概念了吧 “解决问题“ != "程序能够完成功能" |
![]() | 24 hahastudio 2015-07-08 13:18:52 +08:00 @liprais 话是没错,但那是对普通用户啊 总用别人包装好的魔法盒子,渐渐地你就不再是魔法师了,就应该归到麻瓜那一列了 |
![]() | 25 F281M6Dh8DXpD1g2 2015-07-08 13:23:50 +08:00 @hahastudio 每个人都在用别人包装好的魔法盒子:-) |
![]() | 27 Email 2015-07-08 13:37:15 +08:00 感觉软件工程的思维还有做事的态度也很重要. 打比方说一个功能, 我们不管这个人基础如何会不会算法会不会数据结构. 他完成了,并且对自己写的功能有充分的测试再交付.省心 当然这个测试就看个人的能力了,到底是通过代码来覆盖测试用例. 还是自己手动地去把该功能的种种分支都测试完毕了. 总之一句话, 这个人靠谱. 很重要对吧. 其实没什么考究的, 作为程序员,还是要会算法更吃香. 如果说算法用不上, 说明你还没到达一定的高度 对吧. |
![]() | 28 bk201 2015-07-08 13:38:40 +08:00 ![]() 先写程序再去学这些东西,会有种豁然开朗的感觉。先学这些东西再编程很容易陷进去出不来。 |
![]() | 30 sankooc 2015-07-08 14:14:05 +08:00 其实只需要知道有这么个东西就行 具体的即使学了工作上不用的话 也会忘的 |
![]() | 31 beimenjun PRO ![]() 其实数据结构和算法,是很有意思的一个地方。仔细理解不一定很快能体现在工资里,但是对于不少人而言,数据结构和算法很可能是一个人真正热爱编程或者“真正认为编程其实是一件很Cool的事情”的起始。 因为这其实是很具有美感的一类东西。 |
![]() | 32 paulagent 2015-07-08 14:20:20 +08:00 说不准未来有一天,真有人造个机器人,写程序,程序员的工作就变成流水线工人,专门监视机器人了 |
![]() | 33 caiya21 2015-07-08 14:35:14 +08:00 这个还是要学习下把 |
34 lecher 2015-07-08 14:43:34 +08:00 ![]() 如果不会算法不懂数据结构,永远只能做拿到架构、明确的需求、基本的实现步骤(甚至伪代码)之后,去写实现代码这个层次的工作。 比如说架构一下项目结构,分析一下系统瓶颈,优化功能提高效率这类附加值更高的岗位,是没机会去做的。因为没有算法和数据结构的功底,根本不能去分析出问题的原因,也没办法去做优化的工作。 大家都说epoll模型比selector模型处理网络请求效率高,为什么? 如果系统某个功能很忙,要不要用请求队列,怎么计算会有多大的延时,数据一致性怎么解决? 大家都说nosql很快,为什么?在什么地方使用nosql合适?用了的话可以节省多少处理时间,减轻多少负载? 要做一个推荐系统,要怎么处理数据?会产生多大的负载?计划任务需要间隔多长时间? 如果上面的问题没有能力分析,那下面的问题呢? 要做一个逆序列表的事情,用什么方式效率和健壮性比较好,为什么? 如果一个列表有多个数据源的数据需要组合,用什么方式合并成一个列表显示比较好? 如果有一组图片要加载,怎么实现优先加载最后查看的图片? |
35 lecher 2015-07-08 14:54:25 +08:00 ![]() 会算法和数据结构,不见得在工作中有多么突出的表现。也不见得工资会高多少。 但是真要遇到了问题,算法和数据结构的思想,绝对可以帮助我们有效的分析问题、量化数据。因为算法和数据结构就是计算机运行的思维方式,如果都不会,还怎么去分析?靠看别人写的报告?还是靠蒙? 学完了不用,可能会生疏,但是只要认真的去思考过,思路是不可能忘的。 学过的知识用不上只能说明岗位需求没有用到,不代表它没有用。高等数学的很多东西,大部分人是够不上它的运用门槛的,但是实际分析问题的时候,会借鉴到很多当初学习过程所使用的思路去分析问题。这些思路才是真正的知识财富。 |
36 fuxiaohei 2015-07-08 15:00:45 +08:00 学数据结构这些更像练内功 不过,一般情况下拼招式就可以分胜负 |
37 mougua 2015-07-08 15:09:29 +08:00 同意 28楼 的,先写,多写,再去补内功 |
![]() | 38 zonghua 2015-07-08 16:55:56 +08:00 ( - ) 写一个类去列出文件夹的所有文件与目录,发现这个就是树结构的遍历。 |
![]() | 40 anjianshi 2015-07-08 17:46:11 +08:00 我就想说,那么多军校出来的,最后谁也没打赢毛主席 |
![]() | 42 beimenjun PRO |
43 hitmanx 2015-07-08 18:25:06 +08:00 数据结构和算法我感觉还是很重要的,倒不一定说要自己实现一个红黑树之类的,而是对于它基本有个概念。举个简单的例子,比如什么场景下适合用std::map,什么情况下用std::tr1::unordered_map,两者背后的数据结构分别是什么,常见操作的复杂度分别是多少,占用空间又是多少。如果应用得当,在一些场景下,程序效率提高几十倍都是很有可能的。 像我们这种非科班出身的,肯定没在学校里学过这门课,不过其实自学也不难。如果英文可以的话,我强烈推荐<Algorithms>这本书(现在好像是第四版),里面每种常见的数据结构都有极为详细的介绍,配以大量的详细到令人发指的图,看起来就像单步调试一样清晰。我当初就是看的这本书入的门,另外coursera上有作者的同名课程视频教程。 |
![]() | 44 kzzhr 2015-07-08 18:27:49 +08:00 你看西游记或者金庸小说,真正叼的都是靠内功,比如太上老君的牛鼻环,比如段誉的六脉神剑。拿个大锤或者大砍刀的妖怪都是一下死一片的。 数据结构和算法就算内功部分。 |
![]() | 45 chmlai 2015-07-08 18:31:25 +08:00 不远. |
![]() | 46 justahappy 2015-07-08 18:36:51 +08:00 你去博客园看看那些写.net的, 算法功底都比较差,学历比较低,见啥喷啥,只会windows,你觉得这类人能走多远。 |
![]() | 47 zhicheng 2015-07-08 19:45:13 +08:00 via Android 能走多远取决于你想走多远,别拿不会做借口。以前混的不好的同学经常问我,不会英语和数学能不能学会编程。我就纳闷了,既然知道自己不会英语和数学,为什么不去学一下。 |
![]() | 48 tracebundy 2015-07-08 19:57:40 +08:00 刷题 |
![]() | 49 akira 2015-07-08 20:02:54 +08:00 随便找一本大学的数据结构与算法的教材,看完就差不多了。 |
![]() | 51 ericls 2015-07-08 20:26:22 +08:00 via Android 可以边用边学啊 何必呢 |
![]() | 52 unionx 2015-07-08 20:59:46 +08:00 感觉只要能把代码写得比较清楚,就能走挺远的 |
53 osto 2015-07-08 22:33:42 +08:00 不会算法也可以走远, 但会了会走得比较飘逸(智商优越的幻觉) 以楼主提问的水平推测,学了对平时工作是没啥直接作用的. 等你要面试集中学学即可. 推荐roadmap直接刷leetcode, 不会再查书. 等你leetcode都刷过了, 足以秒杀国内90%的程序员.. 到时候你也知道针对工作需要学到什么程度了和如何按需学习了 |
![]() | 54 chairuosen 2015-07-08 22:48:35 +08:00 你可以做一个前端 |
55 wudikua 2015-07-08 22:52:43 +08:00 刚毕业得会,以后的话就靠你做过的事来炫吧 |
56 miss417 2015-07-08 23:02:41 +08:00 要想做的深入,会一点算法是必须的,懂得原理则是必须的。 |
![]() | 57 sivacohan PRO 其实你翻书看看,就会发现算法没有你想的那么难。专注于一点来攻破效果很好。 其实算法真正的难点是什么时间选择什么算法。以最简单的排序算法来举例。算法的时间复杂度其实是严重依赖于数据的有序性的,对于不同语言,稳定排序和不稳定排序的表现也不同。 关注于问题的解决,然后再关注问题解决方法的优化,比单纯的刷题,刷算法有意义的多。 而且,到目前而言,我遇到的问题,也没有超出排序,查找,压缩。 |
![]() | 59 ChiangDi 2015-07-08 23:28:26 +08:00 学一段时间就好了。 |
![]() | 60 insaneguy 2015-07-08 23:32:41 +08:00 感觉身边搞过 ACM-ICPC 的人学东西都很快,而且逻辑分析能力都很强,这应该和他们进行过的算法训练有关吧。 我是大二下学期才算正式接触编程的(非计算机专业),当时跟一个老师做C++相关的项目,连栈(stack)是什么都不知道,也不知道时间复杂度、空间复杂度为何物,经常想到哪写到哪,结果就是写出来的东西乱七八糟,根本完不成老师布置的任务。大三选修了计算机学院的“数据结构基础”课程,发现对提高自己编程能力很有帮助。大部分时候虽然不会自己去实现数据结构和算法,但清楚什么场景下应该选取哪种数据结构和算法才能更好地解决问题。 英文好的话直接去 coursera 上课,配合<Algorithms>这本书一起看: https://www.coursera.org/course/algs4partI https://www.coursera.org/course/algs4partII 中文的资源我看过计蒜客的<程序设计竞赛入门>(http://www.jisuanke.com/course/8),讲解+练习的形式,比较基础,但感觉入门很合适的。 |
![]() | 61 delavior 2015-07-09 08:08:20 +08:00 我也是,估计过不了多久就得转行了。 |
![]() | 62 wilsoncao 2015-07-09 09:14:53 +08:00 感觉不远。。。其实我也不知道。。。 |
![]() | 63 mouhong 2015-07-09 09:31:21 +08:00 @lecher 要说推荐系统,那还得说到数学,要不然对模型优化完全没概念,做推荐系统完全不懂数学就和写程序不懂算法一样。算法肯定是重要的,越是工作久了项目复杂了就越能感觉到,不过话说我算法很菜,晚上赶紧补习去T_T |
![]() | 64 mouhong 2015-07-09 09:34:07 +08:00 @justahappy “你去博客园看看那些写.net的, 算法功底都比较差,学历比较低,见啥喷啥,只会windows,你觉得这类人能走多远。” ----------------------- 不想说太多,但我真心觉得这不是一个程序员该说出来的话 |
65 hienchu 2015-07-09 11:25:45 +08:00 个人觉得,不是因为不懂这些走不远,而是因为走得不够远才不懂这些。。。 |
![]() | 66 jsyangwenjie 2015-07-09 15:12:38 +08:00 你可以转产品经理啊 |
![]() | 68 foxkiller 2015-07-09 22:04:29 +08:00 这和下围棋不学定式是一样的。 要么 你是天才,真下棋的时候全靠算路,每盘棋都造轮子。 要么,你一个定式下错一盘棋都输,或者下错一个定式后面得杀大龙才能扳回来十几二十目. |
69 charlie21 2021-07-06 00:16:25 +08:00 ydys |