怎么樣才能自學(xué)軟件開(kāi)發(fā)

軟件開(kāi)發(fā)

作者:舜雅寒 發(fā)布:2023-07-05 12:58 472瀏覽

回答 共1個(gè)

我就是工作之余自學(xué)開(kāi)發(fā),并靠技術(shù)賺到了人生第一桶金。大學(xué)畢業(yè)那年,我立了一個(gè)在30歲前賺到第一個(gè)100萬(wàn)的理想。畢竟對(duì)年輕人來(lái)說(shuō),未來(lái)的可能性是無(wú)限的,雖然完全不知道這100萬(wàn)究竟該從何而來(lái)。我的第一份工作是銷(xiāo)售,做得不好,沒(méi)有業(yè)績(jī)合同到期公司不再續(xù)約。

第二份工作是網(wǎng)站編輯,那時(shí)候玩命兒的干活,老板很器重我,不過(guò)工資從3000漲到5000之后也就沒(méi)再動(dòng)過(guò)了。這年我27,畢業(yè)時(shí)的理想早就忘了,當(dāng)時(shí)的目標(biāo)是公司賺錢(qián)后能給我分紅。當(dāng)時(shí)因?yàn)橐粋€(gè)活動(dòng),要做個(gè)專題頁(yè)。我跟老板說(shuō)讓我試試,然后抱著《HeadFirstHTML&CSSed2》看了一周,做了一個(gè)靜態(tài)頁(yè)面,結(jié)果還不錯(cuò)。做完這個(gè)專題頁(yè)后我就打算繼續(xù)學(xué)習(xí)網(wǎng)絡(luò)編程,當(dāng)時(shí)考慮是繼續(xù)學(xué)JavaScript還是PHP。后來(lái)選了PHP。但是可惜,到我離職時(shí)那本《》也沒(méi)看完,到現(xiàn)在都沒(méi)撿起來(lái)。我下一份工作就是朝九晚五的,最大的優(yōu)勢(shì)就是充足的業(yè)余時(shí)間。

因?yàn)楣ぷ餍枰邑?fù)責(zé)建設(shè)公司官網(wǎng),選了WordPress,然后找外包做定制。外包主要做插件實(shí)現(xiàn)后臺(tái)功能。頁(yè)面溝通過(guò)幾次結(jié)果都不理想,我就準(zhǔn)備自己來(lái)了。網(wǎng)上看了幾篇WordPress主題的教程,熬了兩個(gè)通宵做出來(lái)了。因?yàn)槲視?huì)HTML,一個(gè)簡(jiǎn)單的主題里PHP的部分就是文章循環(huán),我照著官方主題的代碼,對(duì)照著文檔一句句看,搞明白每個(gè)函數(shù)和參數(shù)的作用,就這么寫(xiě)完整個(gè)主題。在這個(gè)過(guò)程中我學(xué)會(huì)了查看文檔。會(huì)看文檔就具備了自學(xué)的第一個(gè)要求。后來(lái)我試著去給WordPress寫(xiě)插件,就是通過(guò)看文檔學(xué)會(huì)的(不過(guò)僅限官方提供的函數(shù),PHP還是沒(méi)掌握)。在寫(xiě)主題時(shí)為了追求效果,我開(kāi)始學(xué)JavaScript。還是從《HeadFirstJavaScript》開(kāi)始。開(kāi)始寫(xiě)幻燈,導(dǎo)航,標(biāo)簽頁(yè)切換等功能。其實(shí)在這個(gè)過(guò)程中,沒(méi)有人給我定任務(wù)和提要求,公司也沒(méi)人懂技術(shù)。一開(kāi)始只要有個(gè)網(wǎng)站能看就可以交差了。看著自己做的東西一點(diǎn)點(diǎn)成熟,那種滿足感是非常強(qiáng)的因?yàn)槲业谋韭毠ぷ鞑皇浅绦騿T,所以這些事都是在業(yè)余時(shí)間完成的。幾乎每個(gè)工作日的下班后,和每個(gè)休息日,包括春節(jié)(跟家里說(shuō)要去旅游過(guò)年不回家),我都在家寫(xiě)碼(反正沒(méi)有女朋友)。這是我想到的自學(xué)的第二個(gè)條件,自我驅(qū)動(dòng)。后來(lái)我知道了Node.js,React,Webpack…原來(lái)JavaScript的世界這么大。我就設(shè)計(jì)了一些可以幫助公司業(yè)務(wù)的產(chǎn)品,然后開(kāi)始邊學(xué)邊做。做出來(lái)的產(chǎn)品就用在公司業(yè)務(wù)上,很有成就感。

這可能是自學(xué)的第三個(gè)條件做有實(shí)際用途的東西。我所有的自學(xué)過(guò)程都是直接邊學(xué)邊做實(shí)際產(chǎn)品的,很少有單純?yōu)閷W(xué)習(xí)而做一個(gè)DEMO。做DEMO沒(méi)有那種成就感。而且照著教程做DEMO往往就是把代碼照抄一遍,自己上手還是抓瞎。這個(gè)過(guò)程中我學(xué)會(huì)了自學(xué)必要的幾個(gè)工具Google、StackOverflow、GitHub。

在寫(xiě)代碼的過(guò)程中我一直有一個(gè)困惑,不知道自己寫(xiě)的方式到底對(duì)不對(duì)。然后就開(kāi)始研究各種「最佳實(shí)踐」,知道了設(shè)計(jì)模式、編碼規(guī)范,知道了軟件工程化,知道了單元測(cè)試,知道了持續(xù)交付等等。每知道一個(gè)概念,我都身體力行地應(yīng)用在自己的工作中。雖然只有一個(gè)人,沒(méi)人檢查,也沒(méi)有公開(kāi)項(xiàng)目,我也會(huì)按照規(guī)范的Git工作流寫(xiě)碼和提交,做好各種測(cè)試,加了各種自動(dòng)檢查工具(GitHub的私人項(xiàng)目也加了各種Badge)。一旦發(fā)現(xiàn)有更好的代碼模式就進(jìn)行重構(gòu)。

最后我去了解了一下計(jì)算機(jī)專業(yè)的課程設(shè)置,開(kāi)始學(xué)習(xí)數(shù)據(jù)結(jié)構(gòu)和算法。最近對(duì)機(jī)器學(xué)習(xí)和智能硬件很有興趣。我認(rèn)為這是好的自學(xué)者應(yīng)有的習(xí)慣做一個(gè)對(duì)自己有要求的人,永遠(yuǎn)追求更好的代碼和工作方式。以上就是我利用業(yè)余時(shí)間學(xué)習(xí)開(kāi)發(fā)的過(guò)程。現(xiàn)在我認(rèn)為自己還不是一個(gè)好的程序員。我經(jīng)常為如何抽象函數(shù)而苦惱,經(jīng)常寫(xiě)到一半發(fā)現(xiàn)設(shè)計(jì)失誤不得不推倒重來(lái),至今也沒(méi)熟練掌握設(shè)計(jì)模式…而且年紀(jì)不小了,估計(jì)一輩子也無(wú)法以編程為職業(yè)。

不過(guò)我會(huì)一直寫(xiě)下去,因?yàn)榫幊淌刮铱鞓?lè)。而且編程讓我實(shí)現(xiàn)了自己遺忘已久的年輕時(shí)的理想。

10贊同

2023-07-05 12:58:20

推薦閱讀 RECOMMENDED READING