在IT工程師和培訓(xùn)機(jī)構(gòu)遍地都是的時代,似乎入行并不是那么難,但是市場的魚龍混雜,讓學(xué)習(xí)的人望而卻步,擔(dān)心入坑,所以很多人無從選擇就選擇了自學(xué)。至于培訓(xùn)的話,該如何選擇在《這8招,幫助10余萬初學(xué)者看清IT培訓(xùn)機(jī)構(gòu)內(nèi)幕,防止入坑》文章中我們也詳細(xì)的解說了,今天我們著重給自學(xué)編程的朋友一些建議。 1、選擇什么語言 于想要踏入這個行業(yè)的同學(xué)而言,第一個問題便是,應(yīng)該選擇什么語言去學(xué)習(xí)? 是世界上最好的PHP語言還是語言之母的C?還是堅挺20年左右的Java?選PHP,上個非誠勿擾第一輪就被美女們刷了,選擇C吧,萬一自己太笨學(xué)不會怎么辦。 對于初學(xué)者而言,在選擇合適的入門語言時至少需要考慮兩點(diǎn): (1)是否能適用于構(gòu)建你想要的應(yīng)用。如果你的目標(biāo)是創(chuàng)建一個運(yùn)行在IPhone上的APP,那么最好選擇 Object C 或者 Swift,學(xué)習(xí)web開發(fā)可以選擇PHP 或者JAVA。實際上我們?nèi)匀豢梢杂脜R編做出網(wǎng)頁,但是這樣做成本高昂。 (2)是否容易學(xué)習(xí),在滿足第一點(diǎn)的條件下請盡量選擇容易學(xué)習(xí)的語言。容易不僅僅指語法簡單,包括環(huán)境搭建、部署等都需要考慮在內(nèi),以及能不能容易找到好的學(xué)習(xí)資料,因此盡可能的選擇主流語言。 別忘了非常重要的一點(diǎn),學(xué)習(xí)編程語言還包括平臺提供的API,比如Win 32 之于C++/C#/VB,以及周邊的庫和框架(這些庫、框架和工具能在上面說的技術(shù)圖譜中找到)。IT歷史上甚至出現(xiàn)框架和庫引領(lǐng)編程語言走向的情況:JQuery 和Angular 改變了前端開發(fā)的思想; Rails 搶走了Ruby的名氣;而SSH三大框架一度代表了Java世界。 編程語言分布占比 其實你的萬般糾結(jié)都是自己給自己設(shè)定的。首先你要明白你自己的需求,根據(jù)自己的需求去學(xué)習(xí)相對應(yīng)的技能。比如需要學(xué)習(xí)SSH 三大框架和Java的Java技術(shù)棧;為服務(wù)器web開發(fā)而生的PHP技術(shù)棧;在移動開發(fā)領(lǐng)域流行的IOS、安卓技術(shù)棧等。當(dāng)然這里面有一些重合和共用的技術(shù)也需要學(xué)習(xí),比如版本管理器Git、SVN就是每個合格的工程師需要去學(xué)習(xí)的。 如果你真的不知語言的作用,可以參考文章《Java壽命僅剩20年?入門究竟該學(xué)啥?資深大牛告訴你》,文章中有各種語言詳細(xì)的應(yīng)用。 2、選擇何種學(xué)習(xí)方式 在這個便捷的網(wǎng)絡(luò)時代,自學(xué)可選擇的方式非常豐富。除了在網(wǎng)絡(luò)上收集資料、閱讀干貨外,還可以向一些前輩咨詢了自學(xué)的方法。 網(wǎng)絡(luò)上流傳的編程學(xué)習(xí)方式有: 看書 觀看視頻教程 閱讀官網(wǎng)文檔 讀源碼 觀看視頻教程,市面上雜亂的教程較多,不知該如何篩選有價值的;閱讀官方文檔和源碼,不太適合初學(xué)者,適合入門 以后的技能提升??偟膩碚f,只剩下看書這條路了,雖然課本的知識都比較陳舊且基礎(chǔ),但是也算是比較中肯的方法了,只能先入門再說,咨詢了很多大牛,推薦一些學(xué)習(xí)的經(jīng)典之作。 然后直接開啟啃書模式,發(fā)現(xiàn)看完書之后對很多專業(yè)概念有所理解,然后根據(jù)某些教程對環(huán)境進(jìn)行配置之后,在這個過程中,新手的你可能會碰到很多問題,環(huán)境配置失敗等等,這期間你無數(shù)次想放棄,解決完這些問題之后,自己把例題中的代碼抄上,然后小黑窗成功輸出,成就感滿滿的。 可是新的問題又會出現(xiàn),比如大多數(shù)的Java書籍,教完你基礎(chǔ)語法知識和秋水仙數(shù)的求法后就結(jié)束了,并沒告訴你接下來能干什么。為此感到非常困惑,失去了后續(xù)的Java學(xué)習(xí)方向。 這就是為什么很多人自學(xué),但卻堅持不下來的原因,沒有方向是最令人困惑的,可能到這里你對自己產(chǎn)生懷疑就放棄了,覺得自己做不了,其實不是你做不來,只是這個領(lǐng)域太過龐大,知識量也太過龐大,而初入行業(yè)的你根本看不全,會覺得像一個無頭蒼蠅一樣。實際上,要點(diǎn)在于能否找到合適的入門途徑,再加上一點(diǎn)點(diǎn)堅持和思考。比較可惜的情況是一些人沒能找到適合自己的學(xué)習(xí)方法,并在糾結(jié)和碰壁后失去信心,然后沮喪的認(rèn)定自己并不適合干這行。學(xué)編程很多時候就是一個趟坑的過程,但不是每一個坑都有必要趟,寫這篇文章的目的是希望能夠幫助初學(xué)者盡量少趟一些坑。 3、如何規(guī)劃學(xué)習(xí) 首先初學(xué)者要具備一些非?;A(chǔ)的知識,這些知識在你踏上工作崗位后能被實際的用到,比如計算機(jī)運(yùn)行原理、網(wǎng)絡(luò)的傳輸、常用數(shù)據(jù)結(jié)構(gòu)和算法等。這部分屬于計算機(jī)科學(xué),也是應(yīng)該被計算機(jī)專業(yè)本科課程涵蓋的。 當(dāng)然每個學(xué)校專業(yè)設(shè)計都不一樣,甚至采用的教材名字也不一樣,僅供參考。 大學(xué)計算機(jī)科學(xué)課程往往包括:《高等數(shù)學(xué)》、《離線數(shù)學(xué)》、《電子電路》、《數(shù)據(jù)結(jié)構(gòu)》、《程序設(shè)計》、《計算機(jī)組成原理》、《編譯原理》、《計算機(jī)網(wǎng)絡(luò)》、《軟件工程》、《數(shù)據(jù)庫原理》等。有些學(xué)校會有一些額外的課程,例如《通信原理》、《匯編語言》、《線性代數(shù)》、《C語言》、《Java 語言》等。 盡管IT行業(yè)知識更迭非???,但是基礎(chǔ)知識并不容易過時,因此有大量的資料可以選擇。我見過很多工作之后的朋友,無論是學(xué)習(xí)什么語言的,大多在工作一年多兩年的時候都會憂桑自己大學(xué)不好好學(xué)習(xí),正如那句話忘記在哪里看到的話所說,“你所學(xué)過的知識,讀過的書,都沉淀在你的生命力,在未來的某一天就會用上”。 學(xué)習(xí)資料可以選擇從計算機(jī)經(jīng)典叢書系列開始,比如佛羅贊和莫沙拉夫的《計算機(jī)科學(xué)導(dǎo)論》,甚至可以閱讀一些計算機(jī)科普類讀物例如《穿越計算機(jī)的迷霧》。另一種直觀的方式是觀看大學(xué)精品課和去跟慕課課程。 除此之外,還需要了解實際應(yīng)用于設(shè)計軟件或者開發(fā)網(wǎng)站中的實踐類知識,包括某個特定語言以及周邊的庫、框架和工具等。 我們可以把特定需求中用到的語言、庫和框架以及其他的工具稱為技術(shù)棧,在技術(shù)選型上通常也是被這樣考慮的,HR常常會根據(jù)技術(shù)棧來尋找需要的工程師。 雖然已經(jīng)聽到不下5個人聲稱是靠閱讀官方文檔或者看源碼學(xué)會編程的,而且認(rèn)為觀看視頻教程見效太慢。但這個思想對初學(xué)者很危險,不得不承認(rèn)閱讀文檔和源碼能更準(zhǔn)確找到自己想要的信息,這對深入技術(shù)原理非常有用,但視頻能比文字傳達(dá)出更豐富的內(nèi)容,有更直觀的演示和細(xì)致的講解,我想沒有比這個更適合初學(xué)者了。 最后的建議 非科班出身的工程師入門是有一定痛苦的,沒有機(jī)緣遇到高人指點(diǎn),如何選擇合適自己的學(xué)習(xí)方式并自我管理是很重要的一方面。學(xué)會之后,可以嘗試去實現(xiàn)自己的一些idea,當(dāng)做一個小項目來開發(fā),有了一些項目實踐后去找一個公司實習(xí)會容易的多?!奥斆鳌睆膩聿皇沁@個行業(yè)的門檻。 而且,大學(xué)課程主要定位在上面說到的計算機(jī)科學(xué)基礎(chǔ)知識,而市面上的培訓(xùn)機(jī)構(gòu)主要是告訴你在怎么在實際工作中運(yùn)用,所以大學(xué)和培訓(xùn)機(jī)構(gòu)都有他們的價值。存在即是合理,這么多種語言的存在也是合理的,都有各自的價值。 在這個行業(yè)有大量優(yōu)秀的工程師,從他們身上我能看到聰明不是學(xué)習(xí)編程成功的關(guān)鍵,堅持和勤于思考才是。 |
|
來自: 昵稱47445467 > 《待分類》