※ 引述《xj3zj17 (xj3zj17)》之銘言:
: 如題,原本想去soft_job問的
: 但是小弟比較常看書版 所以在這裡問
: 之前爬文很多人都說先學好
: 1. 資料結構 2. 演算法
: 再來學真正的程式碼
我不太知道是哪些人這樣說,麻煩你告訴我那些人在哪裡...
資料結構跟程式語言是直接相關的,是語言工具選擇如何處理它所面對的資料的方式
你不是直接使用某種語言所提供的結構,就是要自己實作那種結構
你沒有任何一種語言的撰寫能力,
連 sample code 的語法都看不懂,那些結構對你有什麼意義?
演算法則是透過程式語言來實作,讓語言工具來實現某種跳針式的執行過程.
如果你不會用任何程式語言寫段大家一起來跳針~跳針~跳針的 code,
那你看這些東西跟看四格漫畫有什麼差別?
Turing Award 得主 Niklaus Wirth 寫過一本書,
Algorithms + Data Structures = Programs
這句話是什麼意思呢?不是 學了演算法與資料結構就是會寫程式,而是
能在語言工具上運用演算法與資料結構的才能叫程式
所以你當然要先學會任何一種語言,
才有能力在那種語言上去建構你對演算法與資料結構的運用.
運氣挺好, 2018 年的現在,很多我們前一兩年還在 OX 第一種程式要學什麼的問題,
現在都已經獲得解決.
先找本便宜的 Python 的書把 for、 while 先學會,接著可以買一本這個回來刻
圖說演算法:使用Python
https://www.books.com.tw/products/0010779462
或
圖解資料結構:使用Python
https://www.books.com.tw/products/0010762466
同時你需更多的時間跟精神去找較進階的 Python 教材學懂 Class,
因為有些結構的實作須要會定義 class 的能力(學 C 的話就要會用 struct)
如果要自己實作某些結構,可能還需要讀一點數學,像是 array、hash 之類的.
其實很多演算法,都只需要概念的解說,以前教初學者的時候,
甚至有學員都不想聽我講怎麼做,只看我丟給她的一本小書,就自己一個個刻給我看了.
結果因為我要她用她學過但我自己不會的別種語言寫,於是我也看不懂她在寫啥...
只要會任何一種語言工具,你就可以把概念化為實作,
那些 sample code 甚至不必要,因為對初學者,有可能看半天還是不知道它為什那樣寫.
但若不會任何語言工具,那就只是在看圖說故事,那還不如去 momo 或 tinder 算了 (~誤