六星源課堂:程序員要會幾種語言,如何成為一名合格的程序員?

一個程序員的職業(yè)生涯,如果只掌握一門編程語言,往往是要被其他同行看不起的。雖然我比較不贊同這種看法,但是我的內(nèi)心很誠實(shí),行動表明,我也喜歡學(xué)一門“第二語言”。
雖然我學(xué)習(xí)了“第二語言”,但不代表我就贊同程序員要學(xué)習(xí)多門編程語言的這種說法。有人會問:“既然你不認(rèn)同,為什么要學(xué)第二門編程語言呢?”。

其實(shí)道理很簡單,那就是我不想和別人分享我的“私活”!這話又從何說起呢?其實(shí)說起來很簡單,容許我先介紹解釋一下!
我是一名CSharp程序員,有的時候會有一些人私下找我給他們做項(xiàng)目。但是,我是后端程序員,可別人找你做“私活”的時候,往往要求你幫他們把前后端都給做了。
所謂“私活”就是程序員利用業(yè)余時間幫別人寫代碼賺取第二收入的工作,也就是程序員的兼職。
此時,如果你想要接下這個“私活”的單子,要么你就得找會前端的人跟你“組隊”,要么你就得前后端都會!很多項(xiàng)目很簡單,可能就幾百上千的傭金。此時如果你找人“組隊”就很不劃算了。
所以,我為了不讓別人跟我分享“私活”的傭金,就把前端相關(guān)的編程語言也給學(xué)了。其實(shí),這跟好學(xué)無關(guān),其實(shí)就是“自私”。
但是,如果拋開“私活”不談,程序員到底需要掌握幾門語言合適呢?我的答案是——最多三門!這得從國內(nèi)的編程環(huán)境說起!
其實(shí),很多程序員都認(rèn)為,程序員就應(yīng)該跟我們看到的那些大公司程序員一樣,各司其職。一個好的研發(fā)團(tuán)隊?wèi)?yīng)當(dāng)有產(chǎn)品經(jīng)理、研發(fā)經(jīng)理、程序員、測試、運(yùn)維、實(shí)施......,再大一點(diǎn)的公司分工更加的細(xì)。
但是,這個世界并不是由大的單位組成的,而是由一個個小的單位組成的,換言之,大公司只占了國內(nèi)軟件、互聯(lián)網(wǎng)公司的一小部分。其實(shí),絕大部分的小的軟件或者互聯(lián)網(wǎng)公司的研發(fā)團(tuán)隊分工其實(shí)沒有那么明確。

比如我所了解的絕大部分的小的軟件或者互聯(lián)網(wǎng)公司,他們都會要求程序員前后端都會。因?yàn)槌绦騿T工資本來就高,一個人能干多個事情,會給公司節(jié)約很多用人成本。所以,當(dāng)一個程序員在小公司里被要求前后點(diǎn)都會,也就不奇怪了!
如此說來,程序員可能至少要會兩門編程語言,分別是后端的編程語言以及前端的編程語言。
比如我是個CSharp后端程序員,我不光會CSharp,還會前端三樣(HTML、CSS、JavaScript)。
有人會說:“你這不是四門嗎?”。
其實(shí)前端三樣是伴生關(guān)系,會任何一樣不會另外兩樣,會被人笑話的。所以,往往程序員會將這三種編程語言歸為一類。
此時,如果你沒有額外的追求,到這里也就足夠了。但是前面說了,程序員需要掌握的編程語言數(shù)量最多三門。那么,上面說的道理,多出一門又是什么意思呢?
其實(shí)道理還是小公司的道理!前后端一個程序員去做,是為了節(jié)省公司的人力成本。但是,公司可能不僅僅只是將前后端合并來節(jié)省人力成本,也有可能會將不同編程語言的后端交給一個人去做。
比如說,我曾經(jīng)任職的一家公司的主要開發(fā)語言是CSharp和Java。因?yàn)镃Sharp和Java兩種編程語言之間有很多共性,所以我們公司很多程序員在兩種語言之間可以自由切換。于是就造就了我們公司很多程序員掌握了兩門后端編程語言、一門前端編程語言!
如此說來,編程語言會得多豈不是越好?非也!
掌握過多的編程語言無疑會分散程序員對一門編程語言的專業(yè)度!也會分散程序員的精力!
這其實(shí)就跟金庸小說里,周伯通的“雙手互搏術(shù)”道理是一樣的。一般來說,常人無法做到兩手同時畫圓,更別說一手畫圓,一手畫方了!分散精力的后果,就是對于工作不夠?qū)W?,很容易出岔子?/p>
我更不建議程序員在初期就去學(xué)習(xí)多門編程語言!因?yàn)槌绦騿T在初期主要的發(fā)展方向其實(shí)就是鞏固自己的編程能力,以及獲取更多的編程經(jīng)驗(yàn)。此時,如果涉足的編程語言多了,無疑會對自己的成長產(chǎn)生添加額外的負(fù)擔(dān)。
即使是周伯通,“雙手互搏術(shù)”也不是一天兩天練成的!所以,我的建議是,如果你是一個初入職場的程序員,最好還是專心提升自己的編程能力,等待個兩三年,當(dāng)你能夠不依靠別人就可以去實(shí)現(xiàn)你想要實(shí)現(xiàn)的大部分軟件功能的時候,你再去嘗試去學(xué)習(xí)第二、第三門編程語言!
以上就是本次分享的全部內(nèi)容,想學(xué)習(xí)更多Python技巧,歡迎持續(xù)關(guān)注六星源課堂!