ou-zhou
提到“程序員”“互聯網行業”,很多人的第一印象就是“高薪”“白領”。作為這個時代高收入職業的代表,越來越多的外行人希望加入計算機行業。可作為非本科非計算機專業的小白,到底有沒有機會,搖身一變,成為“碼農”呢?我的回答是,雖然難度不小,但是能!
什麼是“編程”?
我們想象一個場景,有一個富豪,他有一個勤勞能幹的僕人。富豪每天會給僕人下達指令,讓僕人為自己服務。久而久之,富豪覺得每天都下達指令太麻煩了,於是寫了一本《工作指南》,其中包括“當氣溫高於30攝氏度時,打開空調”,“每天早上8點叫我起床,並遞上一杯咖啡”等等等等。有了這本《工作指南》,富豪不需要每天指揮僕人,僕人就可以很好的為自己服務了。
在編程的世界裡,富豪其實就是程序員,僕人就是我們的電腦,而那本《工作指南》就是程序員所編寫的程序。程序員編寫程序,計算機執行程序為我們服務。
那什麼是“編程語言”?
顧名思義,編程語言其實就是一種語言,是人類給計算機下達命令的語言。也許你聽說我Java,C,C++,他們都是編程語言,大體的思路是類似的,只是寫法不同。
關於編程語言,很多初學者有一個誤區,就是編程語言懂得越多越好,懂得越透徹越厲害。這句話是片面的。對於編程語言瞭解程度深當然是好的,但是編程思維,架構設計能力,bug定位能力往往更是大神與眾人的區別所在。這就好比一個人精通8門語言,但不代表能寫出傳世的作品。語言只是工具,細膩的語言組織能力和巧思才是寫出優秀作品所必須的。
外行人想學編程,可能嗎?
是可以的,只是相比於專業人員,需要付出更多的努力。
首先,就是需要學習編程語言,適合初學者的編程語言有C或者Python。不必過於糾結從哪個開始,畢竟編程語言只是工具。快速瞭解什麼是編程,推開編程世界的大門才是最主要的。很多初學者就敗在了這一步上。因為編程語言中有很多基本概念,對於初學者是很難理解的。比如循環,比如指針,這些令人頭疼的概念往往會對初學者造成很大的打擊。但是我的建議是,堅持住,書讀百遍,其義自見。當你慢慢將這些惱人的概念吃透的時候,你會發現,原來編程是這麼回事啊!有了編程的思維,後面的學習會越來越順。入門難,但入了就不難了!
另外,我不建議急於吃透一門編程語言。上面說了,編程中最重要的不是工具,而是編程的能力,而怎樣才能獲得編程的能力呢?一個字,練!不停的練習!當你學會了簡單的運算符,就去試著做一個簡單的計算器。只有不停的練習,才能提升編程的能力。而且練習是最容易帶來成就感的,當你的程序成功運行時,那種欣喜是非常巨大的。練習才能推動學習的進行。
那要學多久?
這裡只談我未經證實的想法。我認為一個外行人在脫產的情況下,從0開始學習編程,大概需要1年到1年半的時間,可以獲得一個程序員的職位。時間安排如下:
第一個月的時間,學習一門入門的編程語言。不要求掌握語言的高級用法,只要會寫中等難度的邏輯即可。這時候你對於編程應該已經初窺門徑,能夠寫出一些簡單的小工具,比如簡單的計算器。
2~3月的時候,你已經不滿足於簡單的計算器了,你開始嚮往更多東西,比如優美的頁面。這時你會接觸到更多知識,比如html,網絡通信協議,前後端概念等等。這時候不要害怕嘗試,多去玩,多去試,在嘗試中豐富自己的知識面,並瞭解自己的興趣方向是什麼,想要學的技術是什麼。
4~6個月的時候,就是你需要深耕的時候了。對於你想要學習的技術進行深度學習。當半年期結束的時候,你所期望的結果,應該是對於某一塊領域有著不錯的理解,可以寫出簡單的功能,例如,可以搭建一個有前端有後端但功能非常簡陋的小網站了。
從第7個月開始,建議你在腦海中構思一個項目吧!例如,一個簡單的論壇,一個類似於淘寶網的一個網站。別要求自己做出一個真正的作品,而是完成一個產品的過程中,不斷髮現自己的不足,查漏補缺。如果你有了心儀的公司,那麼針對這個公司的業務來做一個項目是最棒的!
當你覺得自己可以去嘗試面試的時候,給自己一個月的時間來準備面試。首先要去針對公司的崗位要求對於基礎知識進行“臨時抱佛腳”。很多公司都有“面試造原子彈,工作造手槍”的傳統,所以針對面試進行刷題是必不可少的。另外作為一個無學歷無背景的小白,唯一能夠支撐你的能力證明的,就是你的作品,所以在這一個月時間內,好好打磨你之前的那個作品吧!作品非常重要!另外,不要害怕失敗,從失敗的面試中吸取經驗,迎接下一次面試。
最理想的情況,是你有一個行業內的朋友,在這一年多的過程中時不時的給你一些建議,防止你走彎路。
對於公司的選擇
很遺憾,這個行業是殘酷的。如果你沒有學歷沒有專業背景,進入大廠的概率幾乎為零。所以可行的方式是,從一個小公司開始,入了行,在工作中不斷積累經驗和技術,通過跳槽實現人生的騰飛。最後,祝你通過自己的努力,實現自己的理想!
抵制神化少兒編程,抵制機構向家長販賣焦慮,讓少兒編程迴歸簡單快樂的本質。我是和小朋友一起快樂編程的王休休。歡迎您在今日頭條以及西瓜視頻關注“我是王休休”。
我是王休休
建議你有計劃的學習
- Java SE的基礎知識學習
- 學習簡單的網頁製作,html,css,JavaScript等
- 學習JavaWeb知識,數據庫連接以及Sql編寫
- 學習Java開源框架,spring系列,Mybatis等
- 做幾個小項目練手
- 面試,多看網上的面經