作者oopFoo (3d)
看板Soft_Job
标题Re: [请益] 资料结构需要先会C语言才能学吗?
时间Fri Mar 2 18:56:26 2018
※ 引述《ludohsiao (陆星材)》之铭言:
: 菜菜的在下去年开始接触Javascript开始觉得写程式很有趣
: 目前在写web前端
: 因为之後想往後端做
: 想要更精进这方面的能力
: 开始找线上的开放式课程
: 但发现很多大学的计算机概论都会拿C语言来举例
: 变成说他在举例的时候我听得不是很懂
: 是不是资料结构也需要先学C才能听得懂老师的开放式课程呢?
:
应该先学algorithm. data structure就跟着来。把
big O notation 学会。了解基本在用的data structure就是
hashtable(set, map...)。就很够用了。
可是
Javascript学好了吗。es6懂了吗?arrow function, recursion, closure,
let, const, destructuring assignment...会了吗?
css有学好?css grid, flexbox, css variable要学会。
把bootstrap, foundation, or semantic-ui。看完,了解作法。
read code. 把jquery, react, angular, 你在用的library, framework
下载下来,好好搞懂。
学sql。基本上,後端搞定。
学会用tools (git, testing, ci...). 学会evaluate Libraries.
这些在工作上都比会写data structure重要。
-------------
Data Structure不需要c。况且现在data structure早就写好给你用了。
algorithm 书 推荐
http://www.algorist.com/
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 36.231.132.50
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Soft_Job/M.1519988191.A.270.html
1F:→ ThxThx: 只能同意转换跑道不要太早被资料结构限制 03/02 19:12
2F:→ ThxThx: 完全照原po这样只会变成追技术的码农... 03/02 19:12
3F:→ pttworld: 升职最重要的是人格特质,只会跟电脑沟通不要怪钱少 03/02 19:27
年轻人都是这样。不晓得选择Library,人际沟通更重要。
※ 编辑: oopFoo (36.227.20.247), 03/02/2018 20:18:48
4F:推 cplusplus426: 所以会不会资结在程式开发不重要吗 03/02 20:21
array(stack,queue). hastable. 这两个东东,99%够用。api, framework才是重点。
※ 编辑: oopFoo (36.227.20.247), 03/02/2018 20:43:23
5F:→ dreamnook: 然後各种东西都学了 领不到3万 03/02 20:58
6F:→ lNishan: C++ 的 set, map 是 red-black tree 03/02 21:01
7F:→ lNishan: array != stack != queue 拜托别把这些混在一起 03/02 21:03
8F:→ lNishan: 还有 linked list 也很常用吧 03/02 21:06
9F:→ lNishan: 学校课程会要求实作主要是帮助学习 不是重不重要的问题 03/02 21:17
10F:→ lNishan: 不懂 DS 写出来的程式可能会是慢一个等级的很可怕 03/02 21:20
11F:推 cplusplus426: 所以等於是要学到无招胜有招的感觉,自然写程式就 03/02 21:24
12F:→ cplusplus426: 融入ds的技巧? 03/02 21:24
应该说。现实就是你的程式就是处理各个api传回的data structure. frontend js 就是处理
dom tree.
13F:→ pttworld: 语言的函式库都把资结实作好了,效能是演算法的问题 03/02 22:16
14F:→ lNishan: No. 如果不知道各个操作的时间复杂度 效能还是会写烂 03/02 22:57
15F:→ lNishan: array, dynamic table, balanced bst, hashtable 03/02 22:59
16F:→ lNishan: 这些全部都能 find, insert, delete 但是复杂度各不同 03/02 23:00
17F:→ lNishan: 运用了错误的资料结构效率可以影响到 2 倍甚至远远更高 03/02 23:01
18F:→ lNishan: 就算是同个 DS 不好的实作影响程度也可以到两倍以上 03/02 23:03
19F:→ lNishan: 不要以为 library 或是 STL 内建的实作就有多好 03/02 23:03
20F:→ lNishan: libstdc++ 以前 (现在不确定还是不是) 03/02 23:05
21F:→ lNishan: unordered_set (hashtable) 可以输给 set (RB Tree) 03/02 23:05
goo.gl/F3B49w
是。MS 可以把 hashtable memory allocation 用 power of 2 而不是prime,
也是奇葩。但那是implementation 问题。现实上hashtable绝对是99%好用。
22F:→ lNishan: 认为效能只跟演算法有关是很错误的观念 03/02 23:10
23F:→ lNishan: 演算法、资料结构这两门科目可以说是相辅相成 03/02 23:10
24F:→ lNishan: 还有就算是用了对的 DS ,不懂 DS 的用法用错也会 GG 03/02 23:14
25F:→ lNishan: 就算到了後面 SQL Query Tuning 也是需要仰赖 DS 的学问 03/02 23:32
26F:→ lNishan: 因为 DB on-disk storage 的部分背後通常是一棵 B Tree 03/02 23:36
27F:→ pttworld: 演算法的影响远比资结大。演算法影响是指数级还在2倍 03/02 23:38
28F:→ pttworld: 另外选错资结是不明白问题本身,不是资结本身 03/02 23:40
29F:→ lNishan: 演算法的影响是指数级 ==> 会到指数级的也是不明白问题吧 03/02 23:43
30F:→ lNishan: 没有学好 DS 也会错用。 03/02 23:47
是你说的都没错。但不会sql,有sql tuning的问题?
我强调的是priority。原po,有太多的东西要学。先把重要的学会。ds只要会用,
不须实做。但algorithm就真的常用。
31F:→ elements: 演算法和资料结构几乎是同一科了 没有那些资料结构讨论 03/03 01:18
32F:→ elements: 演算法的意义是什麽?没有演算法怎麽操作资料结构? 03/03 01:18
33F:→ steve1012: 这两个根本没啥好分的 没啥好战 03/03 02:43
34F:推 lance8537: 看起来,某个常回负面推文的观念也不怎麽样耶 03/03 05:46
35F:推 sorryla: 楼上,对於无法分辨台湾人才然後说台湾没有软体人才的人 03/03 06:36
36F:→ sorryla: 不用指望太高 03/03 06:36
※ 编辑: oopFoo (118.167.153.229), 03/03/2018 09:09:02
37F:推 sunsamy: 这麽迷信时间复杂度?可能没写过平行运算或ASIC,就算同一 03/03 08:46
38F:→ sunsamy: 电脑,不同指令的O(1)时间也不同 03/03 08:48
39F:→ pttworld: 目前经历来说,混讨论区社群都不怎麽样 03/03 10:44
40F:→ pttworld: 你什麽看副总在批踢踢发文,会混的就是程度一般 03/03 10:45
41F:→ pttworld: 想藉由别人的意见来加强自己,这种都还不能独立 03/03 10:46
42F:→ lNishan: 我同意 priority 我是想说明 DS 的重要性 03/03 11:38
43F:→ lNishan: 没有人在迷信时间复杂度 只是第一个参考的 benchmark 03/03 11:39
44F:→ lNishan: 我刚好写过 如果你还加 compiler 优化、记忆体用量 03/03 11:41
45F:→ lNishan: 我也可以继续讨论下去 只是那样就完全偏离主题了吧 03/03 11:41
46F:→ lNishan: 比如说 caching 还有一群 cache-oblivious 演算法 资结 03/03 11:48
47F:→ lNishan: 这些都是初学者 一般写程式的都不太需要知道的 03/03 11:48
48F:→ elements: 原po有问priority吗?priority只有自己知道。反正要混 03/03 12:41
49F:→ elements: 下去,这两个都得会,还得会的更多,每次有人问这个就 03/03 12:41
50F:→ elements: 被说跟说喔不对你要先学另一个。迷信复杂度就是不懂复 03/03 12:41
51F:→ elements: 杂度才容易迷信。把一套指标哪里套在所有地方本来就是 03/03 12:41
52F:→ elements: 不对的,但照这样说所有指标都是迷信,就连比薪水都会 03/03 12:41
53F:→ elements: 有人说薪水不是唯一的,所以乾脆都不学回去睡觉好了。 03/03 12:41
54F:推 lovdkkkk: 不用两个, C 只要一个 pointer 就 100% 够用 :p 03/05 16:16