如何作一個優雅的程序員

前言

這裏築夢師,是一名正在努力學習的iOS開發工程師,目前致力於全棧方向的學習,但願能夠和你們一塊兒交流技術,共同進步,用SegmentFault記錄下本身的學習歷程前端

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


目錄
1.是否適合作程序員
2.創建我的目標
3.學習途徑
4.如何構建適合本身的學習體系
5.學習環境
6.學習方法
7.學習工具程序員

現狀

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

每次看到羣裏有人問程序員好很差當啊,以爲有眼緣我就會加上好友,連麥討論一下.算法

我爲何會這麼作呢,由於目前市面上所存在的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.輸出筆記,例如:全棧工程師開發入門筆記,該筆記按照文章輸出規範整理,每個知識點,均可以成爲一篇文章輸出,不整理好不寫入筆記,這就是個人財富.必定要漂漂亮亮的.

Github & 我的博客
這個東西必定要有吧,不只是我的經驗的體現,也是一個提升本身的途徑.

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

學習工具

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

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

學習工具每一個人都是不一樣的,都須要本身去尋找合適本身的,例如學習前端時,你們都推薦sublime text3,可是我本身會去尋找例如Atom、VSCode、PHPStorm的工具,每一個都配置一遍,在配置的過程當中又會涉及到brew、curl、wget等知識點,根據百度這些關鍵詞,我又會學到很多東西.

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

開始學習

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

當你學會了學習方法後,你會以爲東西學不完.
若是你沒有東西學不完的想法,說明你尚未找到合適學習方法哦.或者說,你不適合作程序員.

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

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

結束語

若是您對這篇文章有什麼意見或者建議,請評論與我討論.
若是您以爲還不錯的話~能夠點個贊鼓勵我哦.
若是您想和我一塊兒學習,請絕不吝嗇的私信我吧~
介個是個人我的博客,歡迎參觀哦~

相關文章
相關標籤/搜索