※ 引述《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 算了 (~误