程序員轉(zhuǎn)語(yǔ)言難嗎?
轉(zhuǎn)語(yǔ)言本身不難,但轉(zhuǎn)語(yǔ)言帶來的影響可能會(huì)讓你比較難。因?yàn)榫幊痰谋举|(zhì)是通過編程指令指揮計(jì)算機(jī)工作,至于你是用什么語(yǔ)言并沒有影響,就像你平時(shí)交流講哪國(guó)語(yǔ)言其實(shí)都一樣,能達(dá)到交流目的就行。但轉(zhuǎn)語(yǔ)言可能帶來的后果可能會(huì)有點(diǎn)難。
為什么轉(zhuǎn)語(yǔ)言不難因?yàn)楣I(yè)界現(xiàn)有的語(yǔ)言除了匯編,常見的像java,C++,python,golang基本都屬于高級(jí)語(yǔ)言。
所謂高級(jí)語(yǔ)言其實(shí)是相當(dāng)于計(jì)算機(jī)底層只能理解0101這種二進(jìn)制數(shù)據(jù)機(jī)器碼來講的。高級(jí)語(yǔ)言編寫的程序需要最終翻譯成0101才能被計(jì)算機(jī)所理解并執(zhí)行。
所以其實(shí)換語(yǔ)言編程其實(shí)對(duì)計(jì)算機(jī)理解你的程序并沒有太多問題,只要換用對(duì)應(yīng)的翻譯器(術(shù)語(yǔ)叫做編譯器)翻譯成機(jī)器碼即可。
在編程技能這方面,由于編程所使用到的知識(shí)你在學(xué)校或者平時(shí)編程的時(shí)候已經(jīng)教過或者用到過了,像數(shù)據(jù)結(jié)構(gòu)、算法、數(shù)據(jù)庫(kù)、離散數(shù)學(xué)、計(jì)算機(jī)網(wǎng)絡(luò)、計(jì)算機(jī)組成原理等等,所以換語(yǔ)言影響也不大。這也是為什么大學(xué)在教授編程的時(shí)候,有些學(xué)校教C++,有些學(xué)校教JAVA,但其實(shí)最終工作時(shí)用到的可能千差萬別,因?yàn)橹灰莆蘸镁幊淘恚Z(yǔ)言可能跟寫作文換支筆一樣簡(jiǎn)單。
換語(yǔ)言不只涉及到編程如果你是資深的程序員,并且以寫代碼謀生,那么換語(yǔ)言可能對(duì)你會(huì)有比較大的影響。具體體現(xiàn)在:
你原有語(yǔ)言的編程技能并不能瞬間轉(zhuǎn)移到新語(yǔ)言,因?yàn)椴煌Z(yǔ)言使用技能的習(xí)得都是花時(shí)間積累的。編程原理是一樣,但經(jīng)驗(yàn)可能并不一樣。就好比你中文學(xué)得很好,但學(xué)英文也需要重新下苦功才能像中文一樣運(yùn)用自如。如果你換用新編程語(yǔ)言謀生,可能面臨需要暫時(shí)忍受初期的低收入。因?yàn)樵谝约夹g(shù)論長(zhǎng)短的IT技術(shù)領(lǐng)域,只有高技能才配得上高收入。當(dāng)然,如果你是內(nèi)部轉(zhuǎn)崗之類的,可以不受影響。如果你不只是換了編程語(yǔ)言,而且是大方向的轉(zhuǎn)變,那就可能影響更大了。比如你從客戶端開發(fā)轉(zhuǎn)向服務(wù)端開發(fā),那么你原語(yǔ)言積累的經(jīng)驗(yàn)?zāi)軌驈?fù)用的可能性會(huì)更低。因?yàn)槌藢?duì)兩種語(yǔ)言本身的熟悉度差別之外,客戶端關(guān)注的指標(biāo)比如安裝包大小,啟動(dòng)速度,磁盤占用大小等等,可能并不是服務(wù)器主要關(guān)注的。相比于比如從C++客戶端轉(zhuǎn)向OC客戶端,客戶端原本的性能調(diào)優(yōu)經(jīng)驗(yàn),圖片優(yōu)化經(jīng)驗(yàn),安裝包啟動(dòng)速度等經(jīng)驗(yàn)是相通的。所以,如果你只是換種語(yǔ)言完成簡(jiǎn)單的編程功能,上手其實(shí)是很快的,但要精深,都是需要時(shí)間刻意練習(xí)的。