我猜,你點(diǎn)開這節(jié)內(nèi)容很可能是因?yàn)闃?biāo)題 “為什么你覺得學(xué)編程好難?”,請(qǐng)?jiān)试S我無(wú)恥地笑一下:)
在開始正題之前我想先簡(jiǎn)單說一下我自己的經(jīng)歷。我是一位在軟件開發(fā)行業(yè)摸爬滾打了十幾年的資深屌絲,我接觸過的編程工具從匯編、C、C++、VB ,一直進(jìn)化到 C#、Java、jQuery、Bootstrap、HTML5 ,以及最近幾年很火的 Python、Vue.js 等等。
前幾年我出版過一本微信公眾號(hào)企業(yè)開發(fā)方面的書,讀者反饋還不錯(cuò)。至于其它技術(shù)相關(guān)的系統(tǒng)架構(gòu)、并發(fā)、異步、分布式,以及 10 年創(chuàng)業(yè)公司掛板的心路歷程等等,由于與本專欄內(nèi)容無(wú)關(guān)就暫且按下不表了,我們有機(jī)會(huì)再聊。
在這十幾年的工作中,我有幸與一千多位面試程序員產(chǎn)生過交集,帶過數(shù)百位程序員新手,他們當(dāng)中有研究生實(shí)習(xí)生、大學(xué)應(yīng)屆畢業(yè)生、各類 IT 培訓(xùn)學(xué)校的培訓(xùn)生,當(dāng)然還有半路轉(zhuǎn)行的等等。
在與他們共事的過程中,我發(fā)現(xiàn)了一個(gè)很有趣的現(xiàn)象,有的同事一點(diǎn)就透、甚至無(wú)師自通,另一部分同事則在代碼評(píng)審被打回修改多次后,卻總還是提交讓人難以理解和 Bug 遍野的代碼……
為了解決這部分同事編寫代碼的效率和質(zhì)量問題,我曾經(jīng)想了很多辦法,比如定期組織內(nèi)部學(xué)習(xí)高質(zhì)量源代碼,期望達(dá)到 "讀碼百遍其義自見的效果"。我還嘗試過建立各種高度封裝的開發(fā)框架,盡量減少程序代碼編寫量,畢竟少寫少錯(cuò)對(duì)吧。
然而冷冰冰的現(xiàn)實(shí)結(jié)果擊碎了我滿懷期望的憧憬,現(xiàn)實(shí)結(jié)果告訴我這一切都是 "然并卵"。
直到有一天,一個(gè)軟妹子前端程序員無(wú)助的眼淚和委屈的傾訴,讓我一下子開了竅。他們不是不想編寫出優(yōu)雅的代碼,他們只是在編程的時(shí)候沒有清晰的思路。
所以他們采用了一種非常牛逼的 “搜索編程大法”(當(dāng)不知道怎么辦的時(shí)候,他們會(huì)去搜索引擎找別人的代碼片段,然后一個(gè)一個(gè)嘗試,哪個(gè)改一改能正常運(yùn)行得到結(jié)果,OK ,這段代碼就寫完了)。
我想,正在看這篇文章的你,不是這樣的吧:)
沒有思路,沒有思路,沒有思路。何解?
其中一種可能的解法,就是在公司內(nèi)部培養(yǎng)新人程序員時(shí),我教給他們的編程思路梳理方法 “分類拆解法”。目前看來這個(gè)方法效果不錯(cuò),特別是對(duì)我們公司的前端新人來說。
在公司近 3 年招聘渠道并沒有大調(diào)整的情況下,實(shí)習(xí)生的淘汰率降低了近 70% ;開發(fā)小組在同樣人數(shù)的情況下,開發(fā)同樣規(guī)模的項(xiàng)目工期縮短了 30% 左右(雖然開發(fā)成本并沒有降低,畢竟程序員很多,好的程序員仍然是稀 [hen] 缺 [ gui ] 的)。
“分類拆解法” 是我決定開設(shè)本專欄的一個(gè)主要原因,也是本專欄我認(rèn)為最有價(jià)值的內(nèi)容之一。
專欄的另一個(gè)核心價(jià)值是實(shí)戰(zhàn)商業(yè)項(xiàng)目 “會(huì)員制社交電商小程序”,包括:
- 如何一步一步完成整個(gè)項(xiàng)目的設(shè)計(jì)、開發(fā)、上線;
- 如何使用這個(gè)實(shí)戰(zhàn)項(xiàng)目作為你的小程序和 GitHub 作品,增加你的面試競(jìng)爭(zhēng)力;
- 當(dāng)然還包括可以直接用于商業(yè)用途的完整源代碼。
如果你是:
- 畢業(yè)后想從事軟件開發(fā)的大學(xué)生
- 正在參加培訓(xùn)機(jī)構(gòu)培訓(xùn),想找軟件開發(fā)工作的同學(xué)
- 想自學(xué)轉(zhuǎn)行軟件開發(fā)的職場(chǎng)人士
- 剛進(jìn)入軟件開發(fā)行業(yè)的新人
- 有商業(yè)計(jì)劃構(gòu)思,想自己開發(fā)小程序啟動(dòng)創(chuàng)業(yè)的人
或者正在到處找藥方。
或許,可以來試試這一劑肯定不能藥到病除,但的確可以減輕癥狀的小秘方。
下節(jié)預(yù)告
下一節(jié),我們先來具體談?wù)?“分類拆解法”,之后再進(jìn)入微信小程序開發(fā)的具體內(nèi)容。因?yàn)檎麄€(gè)專欄內(nèi)容都是以 “分類拆解法” 為基礎(chǔ)方法論的,整個(gè)實(shí)戰(zhàn)項(xiàng)目?jī)?nèi)容也是完全按照分類拆解法來一步一步實(shí)現(xiàn)的。