你是否應該成爲程序員?你應該如何學習?

前言

這裏築夢師,是一名正在努力學習的開發工程師,目前致力於全棧方向的學習,希望可以和大家一起交流技術,共同進步。

本文閱讀建議
1.一定要辯證的看待本文.
2.在看完本文後總結適合自己的學習體系以及學習方法.
3.覺得哪裏不妥請在評論留下建議~
4.覺得還行的話就評論鼓勵下我吧~

目錄
1.是否適合做程序員
2.建立個人目標
3.學習途徑
4.如何構建適合自己的學習體系
5.學習環境
6.學習方法
7.學習工具

現狀

每次我曾經的同學打電話向我詢問程序員這個行業怎麼樣,我都會很耐心的講上一個半小時,談人生談理想,並判斷他是否適合程序員這個行業.

每次看到羣裏有人問程序員好不好當啊,覺得有眼緣我就會加上好友,連麥討論一下.

我爲什麼會這麼做呢,因爲目前市面上所存在的QQ交流羣,一大半都是培訓機構的人建立的,忽悠你去培訓,還有小部分羣,只要你進羣問,XXX學了好不好找工作啊,全部都是勸退:不好!轉行吧!

這往往就會改變一個人的想法,也就改變了一個人的人生,有技術的沒空引導新人,沒技術的只會吹水誤導新人.

所以,我將我之前每次都會進行的長篇大論,總結成爲本文,供各位想要入行或者轉行的大學生或者其他職業的你們借鑑.


是否適合程序員

首先,判斷自己是否適合程序員這個職業.

在校大學生&應屆畢業生

1.是否計算機相關專業?
如果不是計算機相關專業,判斷自己是否會適合程序員或者計算機工作的學習.例如:打字速度,不會厭倦電腦,獨立鑽研的能力.

2.是否在學習C語言等計算機課程還算得心應手?
數學和英語能力,以及計算機基礎學的是否紮實,都決定了以後你能達到的高度上限,如果你學的並不紮實,不用擔心,你只是會比別人慢一點到達同樣高度而已,只要努力學習.

3.是否對着程序員這行或者計算機語言有着濃厚的興趣?
我個人看法,學習能力是一方面,在勤能補拙的基礎上,往往興趣卻是能支持你在程序員道路上越走越長的核心.

社會人士&其他職業

1.是否是發自內心的學習?
不是單純的因爲程序員行業工資高,而是想來學一門技術的.單純把程序員當成掙錢的工具,會限制你以後能到達的高度.怎麼限制?可能沒有興趣兩年以後就轉行了這種程度.

2.是否適合程序員行業?
掙錢的行業很多,不只程序員,程序員大多996模式,自己是否適應長時間在電腦前工作?

3.是否有着改變人生的想法?
往往社會人員進行轉行時要比應屆畢業生有着更大決心,否則你不會在這條路上走太遠,你需要比大學生更有耐心和毅力進行學習.

程序員需要謙虛、好學、內斂、成熟的人,因爲不僅需要不斷的學習,還需要人際交流、靈活變通、獨立解決問題、主觀意識.你纔可以達到一般程序猿到達不了的高度.

高工資是需要不斷學習的,而不是空口白話就有的高工資


建立個人目標

那麼在判斷自己適合程序員行業以後,我們就來指定一個目標吧~沒有目標的程序員和鹹魚有什麼區別?

我爲什麼當程序員呢,我想做一個自己的應用,很不巧,我也是一名非科班出身的人,經過自己的努力學習,成爲了一名程序員.怎麼樣的學習呢,跟高考強度一樣的歷練吧~

個人目標:

首先按照三月內、半年內、1年、2年、3年、5年指定人生規劃.
例如:本人在三月內要進行XX語言的學習,半年內讀什麼書、1年內做到XX級別的開發.
個人規劃一定要切合實際,要需要一定的努力才能實現.

個人目標可以是車子,房子,票子.一定是要循序漸進達到的目標,規劃則是實現目標的過程.

做不做的到是一回事,敢不敢想又是另一回事.這麼說吧,去上海工作的事情,就是我上學想都不敢想的事.現在我隨時都可以去上海找工作.


學習途徑

規劃了個人目標以後,我們可以開始程序員的學習了.那麼怎麼進行學習呢,我是一個小白,我怎麼知道該學習什麼呢.找個人帶帶嗎?

自學:

自學往往需要一個良好的學習環境,以及高效的學習方法,往往需要大量的時間成本,大量時間成本最適合大三大四的學生,在最後的兩年進行自學,完全可以達到畢業後尋找工作的程度.

但是你要做到不被寢室的人干擾哦.
自學大概需要2年的時間成本,社會人士0基礎可能需要更長.請慎重考慮

找人帶:

相對社會轉業人士,往往迫切的需要投入程序員行業開始賺錢.那麼怎麼辦呢.這時候就體現你的人脈了.

首先尋找自己人脈中的程序員,看看有沒有更好的推薦以及實習機會.找到人帶,往往是最好的途徑,可由於目前互聯網經濟快速發展,程序員並沒有空帶實習.大公司都喜歡培養985 211的迎接畢業生.

最快的方法是快速入門一門語言,然後找一個實習工作,看看人脈當中有沒有這個機會.
如果沒有,而且又想轉行的,只能考慮下面這個了.

培訓:

首先說明一下,我並不推薦培訓,爲什麼這麼說呢.

個人看法:很多人都覺培訓機構坑,是因爲培訓機構根本不會看你適不適合程序員這個行業,就會把你拉去學習,有些人對計算機一竅不通,聽說高工資,被拉過去以後交了錢也學不會,這就是培訓機構被罵的原因.培訓機構只想掙錢,並沒有在人上面進行把關.

如果你覺得自己的確適合程序員這個行業,而且還有着刻苦學習,克服困難的毅力,那我只能勉強同意你來培訓機構進行學習.

如果沒有,你還是選擇別的行業吧,程序員真的不是隨便培訓一下,你就很厲害了.

在培訓機構,還有一個重點就是,你不能被老師灌輸思維,一定一定一定要有自己的理解和體會,不然出來也是廢物.

培訓機構的學習氛圍還是不錯的,大家都是交錢過來學習的,而不會在那裏玩遊戲.玩遊戲註定被淘汰.
培訓機構也有好壞,這裏小提幾個:黑馬,小碼哥,老男孩,兄弟連等.其他那幾個知名,耳熟能詳的不推薦,你懂我意思吧.


如何構建適合自己的學習體系

好吧好吧,不管怎麼樣,你都已經選擇程序員這條路了,那麼我就告訴你,我是怎麼學習的吧.


學習方向

首先,程序員這個行業分爲很多子行業,每個子行業都是一門程序語言.大致列一下主流語言和行業,大家可以評論補充下:

前端:HTML5
後端:Java、PHP
移動開發: 安卓(Java) iOS(Objective-C)
遊戲開發:Unity3D
雲計算:Spark
服務器運維&人工智能:Python
網絡安全:C/C++

語言有很多,這裏只列舉了我所知道的.
選擇一門自己喜歡的工作語言進行學習,當你學習一門語言,熟悉之後,建議學習第二門語言,成爲複合型人才.

當然,剛開始只是開發工程師,在你技術成熟以後,你可以考慮架構師、技術經理、產品經理進行轉型.


學習環境&設備

那麼確定了學習方向,我們就準備一下學習環境吧.

首先一定要有一臺趁手的電腦,工慾善其事必先利其器.

如果經濟允許的話,個人推薦使用Mac電腦進行開發,但是這樣成本可能會有點高哦,所以經濟不允許就使用一臺高配置的PC筆記本電腦.

配置只會影響到你的學習速度,以及學習體驗,越好的筆記本在你不打遊戲的前提下,只會提高你的工作效率以及學習效率.

系統的話,推薦裝一個Linux系統,優雅的開發都是在基於Linux系統下的.別問我爲什麼,我只挺Shell.

設備有了,就準備一個適合學習的環境吧,如果你是大學生,那麼請你不要受同宿舍打遊戲的干擾,適當的遠離他們,你的人生就越完整.

不要等到25歲了和人家20歲程序員交談時:我20歲的時候還和寢室的人一起打遊戲呢.

如果你在家自學的話,那麼你需要提前和家裏人說清楚,你需要什麼樣的環境,多久時間,不然一直被嫌棄,你反而會失去學習的動力,因爲你在家裏算閒人.

如果你在培訓機構,那麼請你勇奪第一,你在培訓機構都當不了第一的話,那麼你註定會被淘汰.做不做到是一回事,想都不敢想,你就輸了.

QQ羣,微信羣,少加.或者自己去尋找高質量的交流羣,什麼叫做高質量?一般的交流羣,大致分爲三種人:培訓機構打廣告的,程序員勸退師,招聘外包接項目,吹水裝逼的.

高質量的羣就是:嚴格的羣規,小部分時間吹水,大部分交流技術.

重點:在確定了自己的路線後,不要被他人的風言風語所影響,努力學習,讓那些不以爲然的吹水貨們刮目相看,實力是證明自己的最好方法


學習方法

那麼,學習環境有了,本文的重點來了,學習方法,是一個很重要的事.

程序員這個行業,有很多前人巨人鋪路,網上有很多的資源,可是大多數人卻不以爲然,覺得網上沒東西,沒幹貨,是因爲學習方法不對.
首先我要把我在網上看到好的方法,分享給大家~在這裏要感謝一下Keegan小鋼的文章,教會了我如何學習,下列方法結合了本人體會總結.

學習方法:

1.學習力
學習力不同於學習能力,而是將知識資源轉換爲知識儲備的能力,你看了多少書、文章,這是你的知識總量(閱讀量),但不是你擁有的.你能夠講出來的知識,就是你所擁有的.

2.目標學習法
學習一定要找到難度適中,需要一定時間學習才能理解的知識.而且以後能用的上.
從遇到的問題出發,從能實踐的領域出發去找適合的認知材料。
不要一上來就閱讀數據結構、算法導論這種聖經類的書籍,而是一步一步來.

3.快速學習法
當我遇到一個自己不會的知識點時,我會進行百度,進行泛讀,充分結合各個大神的文章,進行理解,重點是自己個人的理解.做筆記.辯證的看待每個人的文章,然後提煉到自己的筆記裏.
遇到難點時,我會詢問列表裏的大神,是否在工作中也是這個做法.得到答案.
整理以後,可以用自己的話描述出這些知識點.
在講的過程中,就會發現自己的話有瑕疵,就會去尋找正確的說法,不斷修正自己.

4.輸出倒逼輸入
如何提高鞏固自己的實力,也是本人最喜歡的一個學習方法,在整理自己的筆記之後,嘗試把自己的筆記轉成文章輸出出來,放在博客,簡書或者CSDN等技術論壇上.
在輸出的同時,在追求完美的同時,就會發現自己的不足,蒐羅各種知識點,結合自己的理解.
最後變成自己的輸出文章.這就是輸出倒逼輸入.完美的文章逼着自己學習更多的知識.

5.快捷鍵&筆記
那麼高效的開發,爲什麼推薦Mac呢,因爲快捷鍵太方便了,我會將常用的終端,文本編輯器設置快捷鍵,快速調用.
關於筆記,我本人會開啓三個筆記窗口,使用的是Omni outliner.

1.自學筆記,該筆記針對並記錄在書中的問題,以及書中重點.
2.視頻筆記+學習日誌,該筆記針對每天的學習中遇到的問題,以及在各個視頻當中汲取的知識點的筆記.
3.輸出筆記,例如:全棧工程師開發入門筆記,該筆記按照文章輸出規範整理,每一個知識點,都可以成爲一篇文章輸出,不整理好不寫入筆記,這就是我的財富.一定要漂漂亮亮的.

6.壓力學習法
說一個在高質量羣聽到的把,我97年在羣裏算年齡小吧,但是當我得知比我小6個月,已經在16年拿到了16K 15薪的時候,那個壓力,雖然我不喜歡攀比,但當你知道,很多人都比你強的時候,你自己就會很冷靜,時刻明白自己還要努力很多.就不會把時間放在娛樂上.
就是壓力,讓我現在可以把一整天的精力都放在學習上,而不是打遊戲,看電影,環境很重要.

Github & 個人博客
這個東西一定要有吧,不僅是個人經驗的體現,也是一個提高自己的途徑.


搜索引擎用法
HTML開發 + "空格" + 知識點
JS開發 + "空格" + 效果實現
XXXX開發 + "空格" + "你想搜索的"
重點關注簡書、CSDN、github等技術網站的結果


學習工具

學習工具呢,因爲本人是Mac系統,所以就先在這裏說一下概念,以後有好的軟件會更新.

學習工具的概念呢,就是電腦中所有利於提高你開發效率和學習效率的都是學習工具,不利的都可以卸載掉.做一個成熟的程序員~

學習工具每個人都是不同的,都需要自己去尋找合適自己的,例如學習前端時,大家都推薦sublime text3,但是我自己會去尋找例如Atom、VSCode、PHPStorm的工具,每個都配置一遍,在配置的過程中又會涉及到brew、curl、wget等知識點,根據百度這些關鍵詞,我又會學到不少東西.

總之就是學習成本、時間成本的相互調配,請選擇適合自己的工具和學習方法很重要.

開始學習

在這裏,並不是抵制玩遊戲,我也玩遊戲,但是我勸你在有穩定的工作實力之前,卸載掉你電腦上的遊戲,手機上的遊戲,QQ別上了,微信別上了,沒什麼用,好好學習,你的人生就更加完整.

當你學會了學習方法後,你會覺得東西學不完.
如果你沒有東西學不完的想法,說明你還沒有找到合適學習方法哦.或者說,你不適合做程序員.

區塊鏈理解嗎,大數據是什麼,人工智能怎麼做,機器學習呢?不學習會被淘汰哦~

餘生,請君不留餘力的學習.

結束語

如果您對這篇文章有什麼意見或者建議,請評論與我討論.
如果您覺得還不錯的話~可以點個喜歡鼓勵我哦.
如果您想和我一起學習,請毫不吝嗇的私信我吧~

介個是我的個人公衆號,歡迎參觀哦~

寫在最後

大咖的話:

“最近有很多想學習編程的朋友問我有沒有什麼好的編程資料!因爲最近今年我都在認真蒐集有價值的編程資料,技術資料,只爲幫助那些想學習編程而不知道從哪開始的朋友。

下圖就是(部分資料截圖):

如果編譯器是人,對你的代碼會有啥反應?網友:會吐。。。

以上價值3萬元的資料,絕對比羣裏那些漫天飛的資料強多了。今天決定免費分享,用來感謝大家的支持

免費獲取方式:

 添加大咖VX:“cquan123456”,即可免費領取,不需要任何條件,只爲幫助有需要的朋友!一定要備註:“大咖,你真帥(CSDN)”否則不能通過!

歡迎留言分享!

發佈了9 篇原創文章 · 獲贊 63 · 訪問量 12萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章