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