※ 引述《camry2009 (camry)》之銘言:
: 然後我該怎麼增進自己實力比較好? 一直刷題嗎?如果要,題目該刷哪一種的?
: 有點迷惘的感覺...希望前輩們可以給我一點方向 感謝!
來講一些你現在可能聽不懂的,但是10年後可能會懂的觀念
1:電腦就是個器物,要以器物學的觀點來看待並了解電腦這個東西
包含器物的概念,器物的實現方式,器物的使用方式
1.1:去找個MCU,寫個最簡單的燈號控制的小程式(用C寫),
對於硬體基本概念的建立非常有幫助
2:當你摸清電腦這個器物的概念(基本架構)、實現方式(數位邏輯概念)、
使用方式(程式開發)之後 下一步就是對於心靈世界的探討,
包含我們如何看待事物 看待事物的觀點、條理、以及抽象的方式
2.1:程式設計表面上看是一種技術,實際上是一種思維方式
尤其是對於事物的整理及抽象方式,是重點中的重點
2.1.1:有一本書「計算機科學的哲學」,也是市面上唯一的一本,
在講這種觀念的書 可以去圖書館借來看看
2.2:事物要如何整理、如何抽象,其實並沒有一個通則,它會隨著事物的本性、場合
以及你的需要,而有所不同。在這邊要腳踏實地,
不要去相信會有什麼萬用的萬靈丹(ex.~~)
一旦被拐,你的想法就會陷入作繭自縛的窠臼中。
2.3:不同的事物都會有各自不同模式模型,
該Domain的型態才是決定該Domain最適模式的因子。
要開發什麼領域的程式,不要偷懶,
就要去知道該程式領域的知識(Domain Knowledge)
Ex. Protocol, spec, 演算法, lib 的功能及用法,
作業系統, 資料庫, SQL…etc.
3:當你摸清以上兩點的時候,你就出師了,技術將不受限於任何的平台或語言的牽絆
3.1:「形而上之謂道,形而下之謂器」。工具不重要,思維方式才是重點
3.2: 工具一直在變,C\P 值低。體系觀念永遠不變,C\P 值高。要知道投資報酬
選對池塘才能釣到大魚
4:IT 是一個技術的領域,也是一個商業的領域。
既然是商業,就會有商業的利益與商業的宣傳,
對於這些宣傳,要有懷疑的態度,不要照單全收,
如果有能力的話,最好能明辨是非,看看反面的說法
5: 程式開發,怎樣做最快? copy + paste 最快
不要看不起 copy + paste
那些標榜功能強大,又酷又炫,可以快速開發程式的工具
追溯到最後,也只不過都是基於 copy + paste 作法的變形物質而已
(問問自己,有沒有用框架,有沒有用繼承,它們就是啦!)
copy + paste 不完全是壞事,尤其是對於不問過程,只看結果的業界來說
copy + paste 可能是你增加程式開發效率,釋放沉重負擔的最重要手段
Code 是要自己寫,還是用 Google 去找範例比較快?
刷 Leetcode,那是應付考試用的
業界與學校是不同的
到了業界,對於已經有答案的東西,誰還會讓你去花美國時間,重新發明輪子
有效率與沒有效率,這是一個很實際的問題
但新手與老手的差異在於
對於所 copy + paste 內容,瞭不瞭解,有沒有完全掌控的能力
工具再怎麼好用,終究是會碰到限制與瓶頸
這個時候,還是那句老話
程式設計的基本功,總是要腳踏實地,下功夫去搞清楚的
程式開發的技術債,不管早晚,終究是要還的
以上,供您參考