Re: [請益] 資料結構需要先會C語言才能學嗎?

看板Soft_Job (軟體人)作者 (3d)時間8年前 (2018/03/02 18:56), 8年前編輯推噓6(6048)
留言54則, 11人參與, 8年前最新討論串2/2 (看更多)
※ 引述《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://www.ptt.cc/bbs/Soft_Job/M.1519988191.A.270.html

03/02 19:12, 8年前 , 1F
只能同意轉換跑道不要太早被資料結構限制
03/02 19:12, 1F

03/02 19:12, 8年前 , 2F
完全照原po這樣只會變成追技術的碼農...
03/02 19:12, 2F

03/02 19:27, 8年前 , 3F
升職最重要的是人格特質,只會跟電腦溝通不要怪錢少
03/02 19:27, 3F
年輕人都是這樣。不曉得選擇Library,人際溝通更重要。 ※ 編輯: oopFoo (36.227.20.247), 03/02/2018 20:18:48

03/02 20:21, 8年前 , 4F
所以會不會資結在程式開發不重要嗎
03/02 20:21, 4F
array(stack,queue). hastable. 這兩個東東,99%夠用。api, framework才是重點。 ※ 編輯: oopFoo (36.227.20.247), 03/02/2018 20:43:23

03/02 20:58, 8年前 , 5F
然後各種東西都學了 領不到3萬
03/02 20:58, 5F

03/02 21:01, 8年前 , 6F
C++ 的 set, map 是 red-black tree
03/02 21:01, 6F

03/02 21:03, 8年前 , 7F
array != stack != queue 拜託別把這些混在一起
03/02 21:03, 7F

03/02 21:06, 8年前 , 8F
還有 linked list 也很常用吧
03/02 21:06, 8F

03/02 21:17, 8年前 , 9F
學校課程會要求實作主要是幫助學習 不是重不重要的問題
03/02 21:17, 9F

03/02 21:20, 8年前 , 10F
不懂 DS 寫出來的程式可能會是慢一個等級的很可怕
03/02 21:20, 10F

03/02 21:24, 8年前 , 11F
所以等於是要學到無招勝有招的感覺,自然寫程式就
03/02 21:24, 11F

03/02 21:24, 8年前 , 12F
融入ds的技巧?
03/02 21:24, 12F
應該說。現實就是你的程式就是處理各個api傳回的data structure. frontend js 就是處理 dom tree.

03/02 22:16, 8年前 , 13F
語言的函式庫都把資結實作好了,效能是演算法的問題
03/02 22:16, 13F

03/02 22:57, 8年前 , 14F
No. 如果不知道各個操作的時間複雜度 效能還是會寫爛
03/02 22:57, 14F

03/02 22:59, 8年前 , 15F
array, dynamic table, balanced bst, hashtable
03/02 22:59, 15F

03/02 23:00, 8年前 , 16F
這些全部都能 find, insert, delete 但是複雜度各不同
03/02 23:00, 16F

03/02 23:01, 8年前 , 17F
運用了錯誤的資料結構效率可以影響到 2 倍甚至遠遠更高
03/02 23:01, 17F

03/02 23:03, 8年前 , 18F
就算是同個 DS 不好的實作影響程度也可以到兩倍以上
03/02 23:03, 18F

03/02 23:03, 8年前 , 19F
不要以為 library 或是 STL 內建的實作就有多好
03/02 23:03, 19F

03/02 23:05, 8年前 , 20F
libstdc++ 以前 (現在不確定還是不是)
03/02 23:05, 20F

03/02 23:05, 8年前 , 21F
unordered_set (hashtable) 可以輸給 set (RB Tree)
03/02 23:05, 21F
goo.gl/F3B49w 是。MS 可以把 hashtable memory allocation 用 power of 2 而不是prime, 也是奇葩。但那是implementation 問題。現實上hashtable絕對是99%好用。

03/02 23:10, 8年前 , 22F
認為效能只跟演算法有關是很錯誤的觀念
03/02 23:10, 22F

03/02 23:10, 8年前 , 23F
演算法、資料結構這兩門科目可以說是相輔相成
03/02 23:10, 23F

03/02 23:14, 8年前 , 24F
還有就算是用了對的 DS ,不懂 DS 的用法用錯也會 GG
03/02 23:14, 24F

03/02 23:32, 8年前 , 25F
就算到了後面 SQL Query Tuning 也是需要仰賴 DS 的學問
03/02 23:32, 25F

03/02 23:36, 8年前 , 26F
因為 DB on-disk storage 的部分背後通常是一棵 B Tree
03/02 23:36, 26F

03/02 23:38, 8年前 , 27F
演算法的影響遠比資結大。演算法影響是指數級還在2倍
03/02 23:38, 27F

03/02 23:40, 8年前 , 28F
另外選錯資結是不明白問題本身,不是資結本身
03/02 23:40, 28F

03/02 23:43, 8年前 , 29F
演算法的影響是指數級 ==> 會到指數級的也是不明白問題吧
03/02 23:43, 29F

03/02 23:47, 8年前 , 30F
沒有學好 DS 也會錯用。
03/02 23:47, 30F
是你說的都沒錯。但不會sql,有sql tuning的問題? 我強調的是priority。原po,有太多的東西要學。先把重要的學會。ds只要會用, 不須實做。但algorithm就真的常用。

03/03 01:18, 8年前 , 31F
演算法和資料結構幾乎是同一科了 沒有那些資料結構討論
03/03 01:18, 31F

03/03 01:18, 8年前 , 32F
演算法的意義是什麼?沒有演算法怎麼操作資料結構?
03/03 01:18, 32F

03/03 02:43, 8年前 , 33F
這兩個根本沒啥好分的 沒啥好戰
03/03 02:43, 33F

03/03 05:46, 8年前 , 34F
看起來,某個常回負面推文的觀念也不怎麼樣耶
03/03 05:46, 34F

03/03 06:36, 8年前 , 35F
樓上,對於無法分辨台灣人才然後說台灣沒有軟體人才的人
03/03 06:36, 35F

03/03 06:36, 8年前 , 36F
不用指望太高
03/03 06:36, 36F
※ 編輯: oopFoo (118.167.153.229), 03/03/2018 09:09:02

03/03 08:46, 8年前 , 37F
這麼迷信時間複雜度?可能沒寫過平行運算或ASIC,就算同一
03/03 08:46, 37F

03/03 08:48, 8年前 , 38F
電腦,不同指令的O(1)時間也不同
03/03 08:48, 38F

03/03 10:44, 8年前 , 39F
目前經歷來說,混討論區社群都不怎麼樣
03/03 10:44, 39F

03/03 10:45, 8年前 , 40F
你什麼看副總在批踢踢發文,會混的就是程度一般
03/03 10:45, 40F

03/03 10:46, 8年前 , 41F
想藉由別人的意見來加強自己,這種都還不能獨立
03/03 10:46, 41F

03/03 11:38, 8年前 , 42F
我同意 priority 我是想說明 DS 的重要性
03/03 11:38, 42F

03/03 11:39, 8年前 , 43F
沒有人在迷信時間複雜度 只是第一個參考的 benchmark
03/03 11:39, 43F

03/03 11:41, 8年前 , 44F
我剛好寫過 如果你還加 compiler 優化、記憶體用量
03/03 11:41, 44F

03/03 11:41, 8年前 , 45F
我也可以繼續討論下去 只是那樣就完全偏離主題了吧
03/03 11:41, 45F

03/03 11:48, 8年前 , 46F
比如說 caching 還有一群 cache-oblivious 演算法 資結
03/03 11:48, 46F

03/03 11:48, 8年前 , 47F
這些都是初學者 一般寫程式的都不太需要知道的
03/03 11:48, 47F

03/03 12:41, 8年前 , 48F
原po有問priority嗎?priority只有自己知道。反正要混
03/03 12:41, 48F

03/03 12:41, 8年前 , 49F
下去,這兩個都得會,還得會的更多,每次有人問這個就
03/03 12:41, 49F

03/03 12:41, 8年前 , 50F
被說跟說喔不對你要先學另一個。迷信複雜度就是不懂複
03/03 12:41, 50F

03/03 12:41, 8年前 , 51F
雜度才容易迷信。把一套指標哪裡套在所有地方本來就是
03/03 12:41, 51F

03/03 12:41, 8年前 , 52F
不對的,但照這樣說所有指標都是迷信,就連比薪水都會
03/03 12:41, 52F

03/03 12:41, 8年前 , 53F
有人說薪水不是唯一的,所以乾脆都不學回去睡覺好了。
03/03 12:41, 53F

03/05 16:16, 8年前 , 54F
不用兩個, C 只要一個 pointer 就 100% 夠用 :p
03/05 16:16, 54F
文章代碼(AID): #1QcItV9m (Soft_Job)
文章代碼(AID): #1QcItV9m (Soft_Job)