沒想到,最后進了一個 996 的行業(yè),就TM離譜...
哈嘍,大家好,我是月亮。一個工作n年的老程序員啦,平時在公號上給大家分享一些心得體會/有趣的工具,每周更新~
今天月亮想和大家聊一下,我是怎么從一個什么都不會的計算機專業(yè)的小白,成功入門軟件開發(fā)的。
普遍現(xiàn)象
很多計算機專業(yè)的學(xué)生,畢業(yè)前夕會面臨的一個尷尬情況就是:快要畢業(yè)了,才猛然醒悟,自己貌似啥也不會。
起初月亮以為是自己大學(xué)太差的原因,才導(dǎo)致自己和大學(xué)同學(xué)有這樣的困惑,但后來參加工作,遇到了來自五湖四海的同事,其中絕大多數(shù)人,他們的學(xué)校都比月亮就讀的學(xué)校更好。
他們中的大部分人,剛畢業(yè)時居然都有同樣的感受,自己似乎什么都不會...
如果你現(xiàn)在、或者曾經(jīng)也有同樣的困惑。那么不要著急,大部分普通學(xué)校的計算機學(xué)生剛畢業(yè)時能力都非常有限,大家都是一樣的。
而月亮稍微幸運一點,在畢業(yè)時稍微感覺自己還是學(xué)到了一些東西,起碼能夠勝任一些基礎(chǔ)的開發(fā)工作。雖然當(dāng)時能力也不強,但是我相信自己一定能找到一份軟件開發(fā)的工作。
那么我是怎么學(xué)會軟件開發(fā)的呢?
復(fù)盤下來,我認為自己做對了3件事情。
學(xué)會從網(wǎng)上找教程
在我的編程學(xué)習(xí)之路上,可以說學(xué)校的課程幾乎沒有對我產(chǎn)生任何的幫助,全是靠自學(xué)的。
甚至學(xué)校的課程,對我學(xué)習(xí)編程造成一些心理障礙,我甚至都懷疑自己究竟適合做軟件這行嗎?我怎么聽不懂老師講課呢?
我們是從大一下學(xué)期開始學(xué)習(xí)編程的,從C語言開始學(xué),然后是Java,一年的課程下來,我只會照著教科書抄兩段循環(huán)語句,能夠運行成功、不報錯,就謝天謝地了。
當(dāng)時我很疑惑,就憑學(xué)校教的這些內(nèi)容,我們出去能找到相關(guān)的工作嗎?一年學(xué)下來,我連這兩門語言到底能做什么都不知道,我不知道Java可以做網(wǎng)站開發(fā)、Android開發(fā),不知道學(xué)C可以做嵌入式...
就這樣,學(xué)習(xí)一年之后我們開了Android開發(fā)課程,可我連Java基礎(chǔ)都沒有學(xué)明白,這些課程自然也學(xué)不懂了。
當(dāng)時我很擔(dān)心,照這種情況發(fā)展下去,到期末肯定只有掛科了,搞不好最后連畢業(yè)證都拿不到。
我想,這樣肯定不行,就算畢業(yè)不能找到軟件開發(fā)的工作,起碼畢業(yè)證我得拿到,否則大學(xué)幾年的時間就真的是完全浪費了。
抱著死馬當(dāng)活馬醫(yī)的心態(tài),我想,現(xiàn)在網(wǎng)絡(luò)這么發(fā)達,網(wǎng)上會不會有軟件開發(fā)的相關(guān)教程呢?
我就拿著手機搜:Android開發(fā)學(xué)習(xí)軟件。
當(dāng)時也不太會用搜索引擎,隨便胡亂搜索了一通,從結(jié)果來看,還是很幸運。
沒花多少時間,就找到了一款A(yù)pp,里面只有三套視頻教程,一套叫做java4Android,另兩分別叫做Android開發(fā)教程、Android開發(fā)(第二版)(Android的兩套大概是這個名稱,記不太清楚了)。
這幾套教程給我的大學(xué)生涯帶來了轉(zhuǎn)機,讓我知道了可以使用搜索引擎來找教程,找到那些自己當(dāng)前的學(xué)習(xí)能力能夠消化的教程。
java4Android這套教程,現(xiàn)在我都保存在我的電腦上,這是一套非常適合Java入門學(xué)習(xí)的教程,雖然講師一再強調(diào),這一套教程是為了Android入門錄制的,不適合Java web開發(fā)者學(xué)習(xí)。
但是在我看來,只要是Java入門,都可以學(xué)習(xí)這套教程,教程的特點就是:深入淺出,我這樣的小白都能聽懂。
這套教程給我?guī)砹诵判模布m正了我的一些錯誤想法:
- 原來我是能夠?qū)W會編程的!之前一直學(xué)不會,完全是老師的教學(xué)方法有問題,畢竟全班30多號人,能學(xué)會的只有倆,這問題就完全出在老師身上了。
我甚至覺得,讓學(xué)習(xí)一學(xué)期的我去帶新手入門,都一定能做得比學(xué)校的老師更好,多年以后我仍然深信這一點。
- 學(xué)習(xí)Android開發(fā),不會C也沒關(guān)系,只要會Java基礎(chǔ),就能快速上手。
就這樣,我無意中在正確的道路上踏出了第一步:
學(xué)會自己找教程。
拆解目標(biāo),持續(xù)拿到正反饋
上面的課程十分簡單易學(xué),但是對于在學(xué)校廢柴了幾年的學(xué)生來講,已經(jīng)沒有足夠的自制力讓自己專心學(xué)習(xí)了。
而且當(dāng)時我記得自己很多時候都很焦慮,焦慮期末掛科、焦慮畢業(yè)證、焦慮畢業(yè)后的工作...
雖然當(dāng)時才大二,但是我已經(jīng)開始為自己畢業(yè)的工作發(fā)愁了。
有了能學(xué)懂的教程,但是我不保證自己能持續(xù)地堅持學(xué)習(xí)呀,這可咋辦?
好在才大二,我還有很多時間,所以當(dāng)時我選擇不要逼自己太緊,每天完成一點學(xué)習(xí)任務(wù)就行。
我給自己定的目標(biāo)是,每天只學(xué)習(xí)30分鐘,時間一到就可以休息了,不要有太多的壓力。
現(xiàn)在來看,當(dāng)時的策略很正確,如果我當(dāng)時采用每天學(xué)習(xí)2、3個小時的策略,有極大的可能,我會堅持不下去,半路就選擇放棄了。
在2、3個小時里,接收大量的陌生概念,一般人很難消化,尤其是長期不學(xué)習(xí)的人。
即便是每天30分鐘,我還是感覺到了困難,因為學(xué)習(xí)編程,單單只是看是不行的。學(xué)習(xí)了一兩周,我就發(fā)現(xiàn),好像前面的內(nèi)容我已經(jīng)忘記了...
忘了咋辦?我只能用最笨的辦法,再回過頭去再看一遍,第二遍再看的時候,就非常輕松了。
在這個過程中,我慢慢地就找到了信心。
“哈哈,也沒想象中的那么難嘛,我當(dāng)時咋會聽不懂呢?”
“真是太簡單了?!?
就這樣,我給自己定下了能夠完成的目標(biāo),并且持續(xù)去做,甚至周末我還允許自己休息,可以不用學(xué)習(xí)。
無意中,我做對了第二步:
把目標(biāo)拆解到足夠小,讓自己能夠持續(xù)地完成目標(biāo),在這個過程中持續(xù)地獲得成就感,正反饋就形成了。
大量練習(xí)非常重要
現(xiàn)在,我還差一個關(guān)鍵的步驟沒有完成,當(dāng)我完成這一步的時候,我開始廢寢忘食地學(xué)習(xí)編程了,每天想的都是學(xué)習(xí)更多的內(nèi)容,豐富自己的知識儲備。
學(xué)習(xí)編程,不只是要上課,更重要的是進行大量的練習(xí),只有你自己寫得多了,才能慢慢理解到:面對一個新的需求,代碼應(yīng)該怎么寫。
當(dāng)時每次課堂最后,都留有簡單的練習(xí)題,讓學(xué)習(xí)者進行鞏固,我自然也跟著去完成了。
我記得,在學(xué)習(xí)一兩個月之后,課程來到了IO流(文件操作)的階段,學(xué)完之后,演示了一個文件復(fù)制的例子。
具體操作為:執(zhí)行main函數(shù),調(diào)用一小段自己寫的代碼,把一個txt文件給復(fù)制一份。
文件操作,對我來說是一個全新的概念,我當(dāng)時只能照著屏幕,把代碼給敲到編輯器里,然后就執(zhí)行成功了,我記得自己操作成功時還小小的興奮了一下。
“看,編程有什么難的,不就這樣嘛~”
當(dāng)時自己寫一遍,只是為了完成任務(wù),我已經(jīng)完成了。
但是,腦子里突然冒出了一個念頭:我能不能做到不抄代碼,憑記憶自己給寫出來!
我想,大概需要多重復(fù)幾遍,也許能做到... ...
于是,我又給自己定了一個小目標(biāo):每天把這段代碼抄一遍。
事實上只過了三天,我就能把這段代碼背著寫出來了,為了能盡快完成這個小目標(biāo),我每天大概抄兩三遍,加上就只有一小段,很快就完成了。
這件事帶給了我很大的成就感,即便已經(jīng)過去很多年,但是我依然記得當(dāng)時自己很興奮!
我在這個階段學(xué)到的東西是:
想要真正掌握編程技能,必須要大量地練習(xí),寫得多了,自然就知道應(yīng)該怎么寫了。
從那之后,學(xué)習(xí)編程對我來講,已經(jīng)完全不是問題了,我開始投入更多時間去主動學(xué)習(xí),總算不再覺得自己什么都不會,并且開始確定了自己以后的就業(yè)方向:就干軟件開發(fā)了!
并且也相信自己肯定能做到!雖然底子差,但還有很多時間可以去學(xué)習(xí)!
月亮想說
上面這一段經(jīng)歷,對月亮來說非常寶貴,這可以說是我人生的一個轉(zhuǎn)折點。
以前我從來不知道應(yīng)該怎么自學(xué),但是你瞧,在上面這段經(jīng)歷里,月亮不就已經(jīng)學(xué)會自學(xué)了嗎?
雖然我也是后來才意識到,原來從那個時候開始,我就已經(jīng)開始摸索著進行自學(xué)了呀。
自學(xué),是我大學(xué)時期最大的收獲,當(dāng)你掌握自學(xué)之后,學(xué)習(xí)什么技能都沒有問題的。
希望月亮今天的分享,能夠給大家?guī)硪恍﹩l(fā),咱們下期再見呀~
關(guān)于讀者群
了不起的程序員讀者群開放啦!??!
歡迎各位讀者進群,群內(nèi)以聊天學(xué)習(xí)摸魚為主,不定期分享好玩有趣的優(yōu)秀工具。
進群方式:公眾號后臺回復(fù)進群,按提示操作即可進群。
各位了不起的老鐵們,最近公眾號改版了,大家記得星標(biāo)了不起的程序員,第一時間收到原創(chuàng)優(yōu)質(zhì)推薦哦