前言
這里筑夢師,是一名正在努力學習的iOS開發工程師,目前致力于全棧方向的學習,希望可以和大家一起交流技術,共同進步,用簡書記錄下自己的學習歷程
本文閱讀建議
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別上了,微信別上了,沒什么用,好好學習,你的人生就更加完整.
當你學會了學習方法后,你會覺得東西學不完.
如果你沒有東西學不完的想法,說明你還沒有找到合適學習方法哦.或者說,你不適合做程序員.
區塊鏈理解嗎,大數據是什么,人工智能怎么做,機器學習呢?不學習會被淘汰哦~
余生,請君不留余力的學習.
結束語
如果您對這篇文章有什么意見或者建議,請評論與我討論.
如果您覺得還不錯的話~可以點個喜歡鼓勵我哦.
如果您想和我一起學習,請毫不吝嗇的私信我吧~