你需要掌握多種語言嗎?
我剛剛斷送了我的事業(yè)胖替。嗯研儒,別人就是這么對(duì)我說的。
我的同事們知道了我要離開公司独令,大多數(shù)對(duì)此表示理解端朵。讓他們不解的是,我目前就職的公司是一家 Windows 商店记焊,我們用 C#.net 寫代碼逸月,而我要入職的崗位要求在 Linux 環(huán)境下進(jìn)行開發(fā)栓撞,以 Java 為主要的編程語言遍膜。他們認(rèn)為編程語言的改變會(huì)讓我丟失多年的編程語言經(jīng)驗(yàn),許多人贊同我同事們的觀點(diǎn)瓤湘。
編程語言有上百種瓢颅。有些編程語言十分常見,例如 Java弛说、C#挽懦、 PHP、 Ruby木人、 Python信柿、Javascript 等冀偶,而有些編程語言則處于邊緣地帶或者是新興的,例如 Awk渔嚷、Go进鸠、Julia、Rust等形病。面對(duì)這么多的選擇客年,你如何知道應(yīng)該重點(diǎn)關(guān)注那種語言呢?因此漠吻,我開始思索量瓜,你真的需要掌握不止一種編程語言嗎?
九個(gè)掌握多種語言的理由
1.對(duì)于同一個(gè)問題绍傲,你可以有多種解決方法。掌握不同的編程語言之后欺劳,你會(huì)有更多的選擇唧取。畢竟如果你只有一把錘子,一切看起來都像是釘子划提。
2.你具有更多賣點(diǎn)枫弟,因此你會(huì)有更多的工作機(jī)會(huì)。有時(shí)鹏往,學(xué)習(xí)第二種語言能加倍工作機(jī)會(huì)的數(shù)量淡诗。然而,這取決于你所學(xué)習(xí)的語言種類伊履。無論如何韩容,你將會(huì)有更多的合適機(jī)會(huì),從而增加求職能力唐瀑。
3.這表明你具備學(xué)習(xí)新語言的能力群凶。潛在的雇主知道你并非死板或者慣守成規(guī)的人。
4.學(xué)習(xí)是有趣的哄辣。學(xué)習(xí)新的事物會(huì)讓你的頭腦保持興奮请梢。這將有助于你在新領(lǐng)域的成長和提高。
5.你將掌握技術(shù)動(dòng)態(tài)力穗。你了解業(yè)界的發(fā)展趨勢毅弧,并能借此獲利。你的技能也不會(huì)過時(shí)当窗。
6.這將提醒你為什么熱愛你的「主」語言够坐,或者如何將事情做得更好。有時(shí)候,只有嘗試過新語言元咙,才會(huì)知道主語言是何等的優(yōu)秀梯影。你會(huì)更加欣賞自己最愛的語言。同時(shí)庶香,新語言可能會(huì)有一些驚人的特性光酣,讓你深覺相見恨晚。
7.你會(huì)成為更加優(yōu)秀的程序員脉课。學(xué)習(xí)新的語言救军,能夠提高在所有語言間都通用的技術(shù)能力,例如設(shè)計(jì)和創(chuàng)建算法或者處理不同數(shù)據(jù)結(jié)構(gòu)的能力倘零。
8.你可以在工作中選擇最佳的工具唱遭。顯然,并不存在完美的語言呈驶;一些語言在特定情境下會(huì)比其他語言更好拷泽。掌握了多種語言,你可以在工作中選用最佳的工具袖瞻。
9.這表明你是學(xué)習(xí)能力強(qiáng)的人司致。沒有任何事情比掌握第二語言更能證明你的學(xué)習(xí)能力。
九個(gè)不想掌握多種語言的理由
1.掌握一種語言更加簡便聋迎。通常脂矫,集中精力和全心投入才能精通某一事物。如果你在不同的語言之間切換霉晕,精通一門語言的概率將降低庭再。掌握一種語言也有助于你集中精力。
2.大多數(shù)人僅需一份工作牺堰,大部分公司僅采用一種語言拄轻。在你受雇之后,掌握多種語言不一定會(huì)有所幫助伟葫。有時(shí)候恨搓,你只要掌握項(xiàng)目所用的語言,就夠了筏养。
3.總有一些東西值得學(xué)習(xí)斧抱;有時(shí)候,這意味著要更深入地學(xué)習(xí)一種語言撼玄。
4.大多數(shù)情況下夺姑,專家能提更高的薪資要求墩邀,因?yàn)槿藗兏敢鉃閷<抑Ц陡嗟男剿泼汀<s翰·森梅茲在其視頻《我不確定成為一位專家》中談到了為什么通才并不總是最好的。
5.即便你僅掌握一種語言,仍有可能成為偉大的開發(fā)者荔茬。開發(fā)者的成就與掌握的語言種類沒有任何關(guān)系废膘。重要的是你創(chuàng)造的是什么。僅掌握一種語言慕蔚,你可以花更多的時(shí)間進(jìn)行創(chuàng)造丐黄。
6.你僅需學(xué)習(xí)數(shù)目有限的軟件開發(fā)工作。大多數(shù)語言只有屈指可數(shù)的一些工具孔飒。切換語言往往意味著轉(zhuǎn)換不同的工具灌闺。只掌握一種語言,你可以更快地精通相關(guān)的工具坏瞄。這將有助于提高你的生產(chǎn)力桂对。
7.這更易于推銷自己。只掌握一種語言鸠匀,你其實(shí)已經(jīng)將自己細(xì)分了(即便不是通過選擇)蕉斜。
8.你可以憑借任何一種語言解決大多數(shù)軟件問題。不管有多少人告訴缀棍,大多數(shù)語言可以解決任何問題宅此。如果解決問題是你的主要目標(biāo)(本應(yīng)當(dāng)是),掌握更多的語言并不一定有助于實(shí)現(xiàn)這個(gè)目標(biāo)爬范。
9.精通一種事物比淺嘗十種事物更好父腕。
這不是一個(gè)非黑即白的問題。和大多數(shù)問題一樣青瀑,最佳的解決方法是取中庸之道——總有一片灰色地帶侣诵。如果你是初學(xué)者,那么學(xué)習(xí)一種語言狱窘,并將其應(yīng)用到前十多個(gè)項(xiàng)目中會(huì)比較容易杜顺。在此之后,我建議你成為一位T形軟件開發(fā)者蘸炸。
什么是 T 形軟件開發(fā)者躬络?
一位「T形」軟件開發(fā)者具備某一特定領(lǐng)域的深層知識(shí),并且是一種語言的專家搭儒。T 的垂直線代表了這一點(diǎn)穷当。此外,他們會(huì)繼續(xù)廣泛學(xué)習(xí)另一種技能淹禾,T的水平線代表了這一點(diǎn)馁菜。
那么,這和軟件開發(fā)铃岔,特別是編程語言的學(xué)習(xí)汪疮,有什么關(guān)系呢?我建議你精通一種編程語言,這將成為你以后的生計(jì)智嚷,并用于解決大部分問題卖丸。你應(yīng)當(dāng)盡你所能掌握這種語言。在此基礎(chǔ)上盏道,你可以學(xué)習(xí)對(duì)工作有益的第二種語言或者技能稍浆。假如你不知道應(yīng)當(dāng)學(xué)習(xí)什么技能,參考我上個(gè)帖子《發(fā)現(xiàn)你將要學(xué)什么》。
A T-shaped software developer is a jack-of-all-trades, but a master of one.
T形軟件開發(fā)者是萬事通,但是卻精于某一項(xiàng)技能峭弟。
成為T形軟件開發(fā)者后,你將靈活地掌握多種語言为鳄,同時(shí)具備某個(gè)領(lǐng)域?qū)<业膬?yōu)點(diǎn)。
應(yīng)當(dāng)掌握哪種編程語言腕让?
一個(gè)常見的問題是孤钦,應(yīng)當(dāng)學(xué)習(xí)哪種語言〈客瑁或者說偏形,假如你是初學(xué)者,應(yīng)當(dāng)首先學(xué)習(xí)哪種語言觉鼻。通常俊扭,我會(huì)選擇有一定歷史的語言作為主要語言。這種語言應(yīng)當(dāng)用于多個(gè)行業(yè)坠陈,并且有廣泛的使用群體和大量的開發(fā)工具萨惑。Java、C#仇矾、net庸蔼、Ruby、Python贮匕、Swift 是符合上述標(biāo)準(zhǔn)的少數(shù)語言姐仅。
Tiobe 軟件根據(jù)上述標(biāo)準(zhǔn)跟蹤軟件語言的流行性,并編入索引中刻盐。點(diǎn)擊此處可查看完整的編程語言榜單掏膏。該索引每月更新一次,前20名的語言都是不錯(cuò)的選擇敦锌。未來10年馒疹,這些語言還會(huì)流行嗎?我不確定乙墙。但這些語言在未來四年內(nèi)還是很可能保持流行的颖变,這對(duì)任何準(zhǔn)備著手的項(xiàng)目都是夠用的生均。
是否掌握多種語言取決于你的目標(biāo)
你準(zhǔn)備開始新項(xiàng)目或事業(yè)嗎?或許你僅需掌握一種語言悼做。
你想改變行業(yè)或者引領(lǐng)科技潮流嗎?或許你需要掌握多種語言哗魂。
你想在一家企業(yè)固定工作嗎肛走?或許你只需掌握一種語言。
你準(zhǔn)備從事前沿項(xiàng)目嗎录别?或許你需要掌握多種語言朽色,因?yàn)榘l(fā)展趨勢總是不斷變化的。
老實(shí)說组题,在決定是否要掌握多種語言時(shí)葫男,并沒有正確或者錯(cuò)誤之分。最終還是需要你自己下決定崔列。
你掌握了多少種語言梢褐?你擅長的領(lǐng)域是什么,你是如何通過興趣擴(kuò)展擅長的領(lǐng)域的赵讯?在評(píng)論中與我們分享吧盈咳。
(編譯自:https://dzone.com/articles/do-you-need-to-know-more-than-one-language)
OneAPM 為您提供端到端的 Java 應(yīng)用性能解決方案,我們支持所有常見的 Java 框架及應(yīng)用服務(wù)器边翼,助您快速發(fā)現(xiàn)系統(tǒng)瓶頸鱼响,定位異常根本原因。分鐘級(jí)部署组底,即刻體驗(yàn)丈积,Java 監(jiān)控從來沒有如此簡單。想閱讀更多技術(shù)文章债鸡,請(qǐng)?jiān)L問 OneAPM 官方技術(shù)博客江滨。
本文轉(zhuǎn)自 OneAPM 官方博客