我多次聽(tīng)經(jīng)理或招聘人員說(shuō),優(yōu)秀工程師是可以與其他優(yōu)秀工程師交換的。他們可能會(huì)說(shuō),“首席工程師為這個(gè)項(xiàng)目選擇了 F# 語(yǔ)言,如果外面沒(méi)有太多的 F# 開(kāi)發(fā)者,那么有幾年經(jīng)驗(yàn)的優(yōu)秀開(kāi)發(fā)者應(yīng)該也還不錯(cuò)?!?/p>
我還聽(tīng)說(shuō)過(guò)一些這樣的言論,“我知道他們是前端人員,但我們現(xiàn)在需要他們做些后端工作。因?yàn)樗麄儽旧砗軆?yōu)秀,所以這沒(méi)什么大不了的。”
如果你相信這些蠢話,那我都可以把布魯克林大橋賣給你了。我還創(chuàng)立了下一個(gè)獨(dú)角獸公司,業(yè)務(wù)就是把冰賣給愛(ài)斯基摩人!我敢肯定,公司很快會(huì)有 10 億美元的估值!機(jī)會(huì)難得,快來(lái)投資吧~
好吧,不開(kāi)玩笑了,說(shuō)實(shí)在的,“優(yōu)秀的”軟件工程師可以交換,這樣的想法并不靠譜。我有時(shí)會(huì)對(duì)軟件工作感到疑惑,是不是我在簡(jiǎn)歷上寫,“我保持良好的記錄,不斷在新技術(shù)上開(kāi)拓馳騁”,然后我就能去任何想去的公司了?
我不敢相信今天要坐下來(lái)和你解釋這一點(diǎn),但是,現(xiàn)在讓我們從語(yǔ)言差異開(kāi)始說(shuō)起。實(shí)際上,我已經(jīng)將多種語(yǔ)言的代碼投入生產(chǎn),從 Scala 到 C#,從 Java 到 JavaScript。即使我能在幾周內(nèi)學(xué)會(huì)任何類 C 語(yǔ)言的的語(yǔ)法,(給別人可能需要更多時(shí)間,)我仍然清楚地知道,我不會(huì)用一種新的語(yǔ)言去開(kāi)發(fā)一個(gè)生產(chǎn)代碼庫(kù)。
那么行業(yè)或商業(yè)背景呢?我已經(jīng)涉獵在很多領(lǐng)域,包括健康衛(wèi)生、電子商務(wù)、教育和電信。我是否應(yīng)該認(rèn)為我有資格在社交媒體工作哪?那么制造業(yè)、航空航天、數(shù)字加密貨幣(Cryptocurrency)哪?我的領(lǐng)域究竟能拓展到哪一塊?在我被要求從 Web 過(guò)渡到移動(dòng)、桌面或物聯(lián)網(wǎng)時(shí),也發(fā)生了同樣的情況。
現(xiàn)在,讓我給你講個(gè)小故事。去年,在做后端 Java web 服務(wù)工程師的全職工作時(shí),我還參與了另一個(gè)團(tuán)隊(duì)的工作,他們要在 Ionic Framework 中做一個(gè)移動(dòng)應(yīng)用程序,并使用 Angular、TypeScript 和一些定制庫(kù)打組合拳。直到長(zhǎng)達(dá)八個(gè)月的項(xiàng)目臨近結(jié)束時(shí),我才得以“適應(yīng)”這種融合了 Ionic/Angular/TypeScript 的工作方式。實(shí)際上,“適應(yīng)”這個(gè)詞可能有點(diǎn)夸大其詞。但仍然困擾我的是,我要在控制器中公開(kāi)字段,因?yàn)樾枰谝晥D中顯示它們,或者常量應(yīng)該與其他變量一樣命名。
順便一說(shuō),如果你想在 JavaScript 中使用靜態(tài)類型(static typing),你很快就會(huì)發(fā)現(xiàn),這條路走不通。必須準(zhǔn)備好“任何”類型!不過(guò),我喜歡使用的 RxJs 訂閱。
在項(xiàng)目結(jié)束后,我愉快地撤了。我現(xiàn)在再也不會(huì)自稱為 TypeScript 或移動(dòng)開(kāi)發(fā)者了。這不是要在口頭上表達(dá)優(yōu)越性,而是一個(gè)簡(jiǎn)單的經(jīng)驗(yàn)問(wèn)題:八個(gè)月的時(shí)間不足以證明我在此方面的資質(zhì)。我敢打賭,任何全職編程的人都會(huì)同意我的看法。
一個(gè)花了幾年時(shí)間研究某種語(yǔ)言的開(kāi)發(fā)者,將能夠毫不費(fèi)力地用它思考。她會(huì)在腦海中隨時(shí)準(zhǔn)備好所有需要的資源來(lái)完成任務(wù),然后繼續(xù)投入下一個(gè)任務(wù)。她了解語(yǔ)言環(huán)境,可以輕松地將標(biāo)準(zhǔn)庫(kù)和第三方庫(kù)結(jié)合成一個(gè)具有內(nèi)聚性的新功能,就像一把鑰匙對(duì)應(yīng)一把鎖一樣,以此來(lái)輕松地解決問(wèn)題。然而,當(dāng)她不知道什么是可用的時(shí)候,她會(huì)重新造輪子,或者更糟的情況是,她會(huì)完全不知所措。
每一種語(yǔ)言都有著其獨(dú)特的習(xí)慣用語(yǔ)、構(gòu)建和依賴管理工具、框架、庫(kù)、在線社區(qū)、IDE 等一系列東西,這些東西在日常實(shí)踐中,對(duì)開(kāi)發(fā)者生產(chǎn)力的影響比我們想象的要大得多。
但是,所有的語(yǔ)言都一樣嗎?我是說(shuō),C# 和 C++ 的開(kāi)發(fā)者,到底有什么區(qū)別?“只是 # 和 ++ 的區(qū)別,哈哈,沒(méi)什么大不了的!”快,把說(shuō)這話的人扔去喂獅子!
我不是說(shuō)任何人都不應(yīng)該更換自己的語(yǔ)言、行業(yè)或設(shè)備。我只是說(shuō),程序員是不一樣的。一個(gè)以 F# 為主要語(yǔ)言編寫應(yīng)用程序的軟件團(tuán)隊(duì),不會(huì)從我的 Java 經(jīng)驗(yàn)中獲益,盡管我也花了大量時(shí)間寫 Scala。我只是說(shuō),我們不能找到那些“優(yōu)秀的開(kāi)發(fā)者”,然后出于奇思妙想,隨機(jī)地把他們拖到不同的團(tuán)隊(duì),并期望他們能夠發(fā)揮出應(yīng)有的效果。我是說(shuō),不要把所有“優(yōu)秀的”開(kāi)發(fā)者當(dāng)作是可以交換的。
可交換開(kāi)發(fā)者的神話是不現(xiàn)實(shí)的。人與人之間的不同無(wú)法消除,并愿每個(gè)人都能找到最適合自己的那個(gè)角色!
-
軟件工程師
+關(guān)注
關(guān)注
8文章
243瀏覽量
21404
發(fā)布評(píng)論請(qǐng)先 登錄


硬件工程師看了只會(huì)找個(gè)角落默默哭泣#硬件工程師 #MDD #MDD辰達(dá)半導(dǎo)體 #產(chǎn)品經(jīng)理 #軟件工程師

工程師經(jīng)驗(yàn)分享:社區(qū)之星 趙云 沉著穩(wěn)定才能做好技術(shù)

如何成為一名嵌入式軟件工程師?



硬件工程師的終極幻想:焊板子焊上人生巔峰!#半導(dǎo)體器件 #硬件工程師 #MDD辰達(dá)半導(dǎo)體
嵌入式軟件工程師就業(yè)好不好?
Testin云測(cè)獲智能化軟件工程工作組優(yōu)秀單位榮譽(yù)

不同時(shí)期的硬件工程師,最怕發(fā)生的事 #電子工程師 #硬件工程師 #內(nèi)容過(guò)于真實(shí) #YXC晶振 #揚(yáng)興科技
為什么嵌入式驅(qū)動(dòng)開(kāi)發(fā)工程師可以拿高薪?

當(dāng)你的工程師朋友失聯(lián)時(shí),別氣,ta真的是在忙工作 #搞笑 #電子愛(ài)好者 #硬件工程師 #晶振 #揚(yáng)興科技

評(píng)論