聊聊轉行計算機(一)
考試考完了,寫點轉行計算機的經驗吧。
首先我要明確一點,計算機科學是一個成體系的科學,和數理化生一樣,想做出成績都需要牢靠的知識體系和技術積累。單純的想通過投機取巧的辦法進入一個好公司是不可行的,就算進去以後的發展也不會很好。所以打下紮實的基礎很重要。
首先我想討論一下吵了很久的問題,編程用什麼語言。我認為作為初學者,語言最好在C/C++/Java中選。很多人肯定要問為啥沒python沒有javascript呢?最主要的原因是為了找工作和學習的方便呀!你找工作做演算法題,面試官大部分要求用java或者C++做題,而且不管是美國還是國內,java和C的職位比python要多,至於你想做前端,學好了java以後再學javascript也沒啥難度。我是先學Java的,感覺現用現學javascript和python根本不是問題。但是我覺得先學C++可能更好,倒不是因為哪個快哪個慢的原因, 主要是C++有內存管理的內容,java學到後面也需要學內存管理還不如直接提前學好。我們以後學演算法,數據結構用到的教材大部分是以c或者java為基礎,所以學以上三種語言是最好的。Java 的話我推薦Java核心技術卷,還有java從入門到精通。think in java不適合初學者。當然,看博客也能學....
學會了以上一種編程語言以後是學數據結構以及演算法。我推薦普林斯頓的 《演算法》第四版(用Java),coursera上面也有配套免費課程。當然《演算法導論》也是經典,但是偽代碼太多,感覺要自己實現。學數據結構和演算法的時候可以開始刷題了,推薦leetcode,從easy開始做,實在做不出來看答案,但是看完要自己重新做一遍。
除了編程,數據結構,演算法之外最好學習點OS和計算機網路的基礎知識。OS裡面的線程,內存管理,計算機網路中的各種協議是必須要掌握的。
念一個CS master肯定比自學好,可是畢竟也要有更多時間金錢的付出。。。
推薦閱讀:
※當"老經驗"遇到"新場景"——學習方式的陷阱
※大學使命
※刷頂會必備 ?』?』 ? 2018年人工智慧頂會月曆
※學會與計算機對話:MDN是啥,了解一下?
※1-12 關於改行的問詢