能成為很牛的程序員嗎?
當(dāng)然可以。
我?guī)У挠?jì)算機(jī)專業(yè)研究生中就有本科階段是非計(jì)算機(jī)專業(yè)的,在經(jīng)過一段時(shí)間的系統(tǒng)學(xué)習(xí)之后,編程能力都能夠滿足進(jìn)課題組的要求,其中有的研究生還逐漸成為了課題組的中堅(jiān)力量,這就是一個(gè)很好的說明。
另外,我?guī)У捻?xiàng)目組中也有半路出家從事編程工作的,其中有的程序員已經(jīng)成長(zhǎng)為項(xiàng)目組的主力研發(fā)人員,技術(shù)能力突出且可以帶領(lǐng)新人了。這些都說明非科班出身的程序員也可以做的很好,程序員崗位雖然有較高的門檻,但是也不是高不可攀。
在我看來,非科班程序員要想在程序開發(fā)領(lǐng)域有較大的發(fā)展,需要具備以下知識(shí)結(jié)構(gòu):
第一,數(shù)學(xué)基礎(chǔ)。數(shù)學(xué)對(duì)于程序員來說非常重要,程序設(shè)計(jì)的核心就是算法加數(shù)據(jù),所以具有扎實(shí)的數(shù)學(xué)基礎(chǔ)能讓程序員走的很遠(yuǎn)。這些數(shù)學(xué)課程包括高等數(shù)學(xué)、線性代數(shù)、概率論、離散數(shù)學(xué)等,這其中概率論的應(yīng)用還是非常廣泛的。當(dāng)然,如果做應(yīng)用級(jí)程序員,對(duì)數(shù)學(xué)的要求并不高。
第二,專業(yè)基礎(chǔ)。專業(yè)基礎(chǔ)包括操作系統(tǒng)、編譯原理、數(shù)據(jù)結(jié)構(gòu)、計(jì)算機(jī)網(wǎng)絡(luò)、數(shù)據(jù)庫(kù)等內(nèi)容,這些內(nèi)容對(duì)程序員構(gòu)建編程思維非常重要。通常對(duì)于非計(jì)算機(jī)專業(yè)的研究生,我都會(huì)為他們列出一個(gè)書單,以上內(nèi)容就是書單中最常見的書目。
第三,英語。對(duì)于程序員來說,掌握英語還是非常重要的,尤其對(duì)研發(fā)級(jí)程序員來說。軟件開發(fā)需要交流,這個(gè)交流是沒有國(guó)界的,很多技術(shù)的開源社區(qū)非常活躍,如果英語差的話很難能夠參與到交流中,這對(duì)程序員的成長(zhǎng)是有一定影響的。
我做編程工作多年,對(duì)C、Java、Python等語言都比較熟悉,我會(huì)陸續(xù)在頭條上寫一些關(guān)于編程方面的文章,感興趣的朋友可以關(guān)注我的頭條號(hào),相信一定會(huì)有所收獲。
如果有編程方面的問題,也可以咨詢我。
謝謝!