原文鏈接:https://medium.com/always-be-coding/abc-always-be-coding-d5f8051afce2
具體建議:
- 練習(xí),練習(xí)疙挺,再練習(xí)唯卖!代碼寫的越多逛绵,獲得大就越多手趣。心里有明確大目標阁最,嘗試某些新的領(lǐng)域(可能是自己沒有用過的技術(shù))虑润,對自己設(shè)定一個小小的目標成玫。Github是一個不錯的管理平臺。
- 至少掌握一門多范式語言拳喻。掌握一門語言不僅是知道它的語法哭当,更重要的是通過大量的代碼練習(xí)和相關(guān)文章的閱讀,知道語言背后的故事(或者說是陷阱)和行業(yè)所推薦的最佳實踐冗澈。原作者推薦的語言有:Java钦勘,C#,C++亚亲,PHP彻采,Python,Ruby捌归。
- 了解復(fù)雜度的概念肛响。這里通常是指時間復(fù)雜度。常見的排序方法時間復(fù)雜度必須熟知惜索,這里有一份清單终惑。其它需要了解的算法還有迪杰斯特拉,F(xiàn)loyd-Warshall门扇,旅行推銷員雹有,A*,布隆過濾臼寄,廣度優(yōu)先遍歷霸奕,二分查找,多路合并吉拳,冒泡/選擇/插入排序质帅,原地快排,桶排序留攒,索引排序等等煤惩。(原文是
Dijkstra’s, Floyd-Warshall, Traveling Salesman, A*, bloom filter, breadth-first iterative search, binary search, k-way merge,bubble/selection/insertion sort, in-place quick sort, bucket/radix sort, closest pair and so on.
)這里有一篇推薦文章 - 造輪子。用最基礎(chǔ)的語句實現(xiàn)語言內(nèi)置的某些常用數(shù)據(jù)結(jié)構(gòu)炼邀。包括動態(tài)數(shù)組魄揉,鏈表,棧拭宁,隊列洛退,環(huán)形隊列瓣俯,哈希表,集合兵怯,優(yōu)先隊列彩匕,二叉搜索樹(紅黑樹,AVL)媒区。
- 解決基本問題驼仪。熟練解決基本編程問題。推薦網(wǎng)站有LeetCode袜漩,TopCoder谅畅。有選擇的去強化遞歸,模式匹配噪服,貪婪,動態(tài)規(guī)劃胜茧,圖算法粘优。
6.讓編程變得簡單。編程前明確目標呻顽,編程后保證代碼可用雹顺。白板編程和線上編程都應(yīng)該被反復(fù)練習(xí)。白板編程注意事項
原作者的幾個建議:
- 掌握C廊遍,C++嬉愧,Java,PHP喉前,Python没酣,Ruby中至少一門,了解Scala卵迂,Haskell裕便,Lisp中至少一門。
- 熟知常見數(shù)據(jù)結(jié)構(gòu)见咒,動手去實現(xiàn)當中的某些偿衰,了解它們常見操作的時間復(fù)雜度。
- 解決編程問題改览,一些教程 清單或者清單
- 將學(xué)習(xí)成果以實際項目展示出來下翎。github上有實際的項目。