6月14日【上?!块_源中國 OSC 源創(chuàng)會第 25 期 現(xiàn)在報名? 相信有許多的人在糾結(jié),到底是選擇C/C++,還是JAVA,還是C#,或者是PHP還是ASP呢?有人說底層語言被比較好,可是我們發(fā)現(xiàn),其實底層語言的從業(yè)人民不怎么多,萬一我選擇了找不到工作怎么辦?然是我選擇PHP或者ASP,可是有人說這些語言不入流,過幾年就OVER了,那我是不是還要選擇呢?或許有許許多多的人像我這樣糾結(jié)的,今天我想說的是,你再為選擇什么語言,而猶豫不前,你就是蠢貨! 今天聽了OOP群里面高手的一些話,另外看了下面一個前輩寫的文章,有些鄙視自己。以前幾年時刻為選擇一個既能找到好工作,又能工資高,前途比較好,并且永恒的語言而努力,結(jié)果今天看起來比較好笑,比較的蠢。如果有這樣疑惑的人,請看下下面的文章,要是沒有疑惑的,請繞道,因為你已經(jīng)達到了更高的層次,看了以免耽誤你的時間!一下是文章: 我剛開始寫程序那會,十分在意于各種編程語言之間的比較。每次自己使用的語言被別人說三道四,心里就跟打翻了五味瓶一樣,很不是滋味。 同樣情況下,換成那些在知識技術(shù)上過硬或業(yè)內(nèi)稍有所成就的人,一般都會心平氣和,有理有據(jù)地跟別人爭辯。心里壓根兒不會感到絲毫冒犯,更不會突然覺得自己缺胳膊少腿似的低人一等。反倒是那些新手們,沒有技術(shù)又眼高手低的半吊子,一番胡亂瞎扯后,就恬不知恥地開始罵娘。 為什么有些程序員這么糾結(jié)于編程語言呢? 我們都知道,作家所描寫的故事無論多么跌宕起伏,精彩絕倫,人物勾畫的再怎么惟妙惟肖,躍然紙上,都跟緊握在手中的筆沒有任何關(guān)聯(lián)。 說到底,筆和紙只是他們所熟悉的一種表達工具。就算改用石器,降低的也只是寫作效率,而非他們的創(chuàng)作功力。 “A tool is only as good as the person using it.” 那同樣的道理適用于程序和編程語言嗎? 答案是肯定的。 如果把編程語言也簡單地看作工具。那么,靜態(tài)和動態(tài)語言,只是對運行速度和開發(fā)效率之間進行取舍; 面向?qū)ο缶幊?OOP)和函數(shù)式編程(FP)各有所長,因此選擇時脫離不開實際業(yè)務(wù)的需求與運用場景。 大多數(shù)時候,真正區(qū)分程序員技術(shù)高低的往往是像常用算法,數(shù)據(jù)結(jié)構(gòu)這樣基礎(chǔ)的 ‘硬知識’,還有對硬件工作原理的整體了解程度。只要肯多花時間學(xué)習(xí)琢磨與實踐,多少都是可以做出成就來的,完全沒必要過分留意語言之間的比較。 但這也正是問題的根源所在。日常生活中,人們嚴重低估了自己對天性的掌控能力,錯誤地以為成就很大程度上是跟某樣?xùn)|西掛鉤。但事實上呢?并非如此。 Nobel-winning psychologist Daniel Kahneman “生活中你想的每一件事,都沒有你想的那么重要?!?/p> 這是諾貝爾獎得主丹尼爾·卡納曼教授對他提出的 “聚焦幻覺”所作的總結(jié),他還舉了個例子: “教育程度是決定收入一個重要因素,最重要的因素之一。但它并沒有大多數(shù)人以為的那么重要。假設(shè)每個人都受到完全相同的教育,收入差距只會縮小不到 10%。當你聚焦于教育時你忽略了無數(shù)其他決定收入的因素。有些人受的教育程度相同,但收入有天壤之別?!?/p> 按照這邏輯繼續(xù)做推斷,想必天賦也沒印象中那般重要。即使重要,可能也起不了作用了,因為: “以大多數(shù)人的努力程度之低,根本輪不到去拼天賦?!?/p> 看到這,你可能覺得我在偷換概念; 覺得程序員之所以這么在意程序語言,框架這些東西的比較,完全是由于他們對技術(shù)的熱愛,就像賽車手對速度的執(zhí)著一樣。還有你看 F1,賽車的硬件難道跟賽車手的成績沒半點關(guān)系嗎? 同一賽道上,給你一輛世界上最快的賽車,非專業(yè)車手的你確定比的過坐在跑車里的舒馬赫? 不在技術(shù)研究著如何進步,反而對工具挑三揀四,吹毛求疵。整日妄想著能找到一種萬能的語言,以此一勞永逸。這不是在思想上偷懶嗎? 是抱怨自己的不努力容易些還是抱怨周邊環(huán)境的影響容易些? PS: 關(guān)于編程語言那段,講得未免有點籠統(tǒng)?,F(xiàn)在很多動態(tài)語言的運行速度基本與靜態(tài)語言持平,甚至超越。不像幾年以前的天差地別。而像 Go 這樣新生代的高性能靜態(tài)語言,在開發(fā)效率上一點也不輸 Python 和 Ruby。最后,每個人都有自己的思考模式,所以找對合適的語言來表達自己的思維也很重要。但無論如何,不要習(xí)慣性地把工具當作你天性缺陷的遮羞布。 PPS: 用了很多成語,對語言的把控能力還有待提高。 作者的原題目我看的是萬能語言,我看起來有些不和文章意思,又因為今天有些感悟,所以整理下此文章,另外發(fā)表個人的見解。如果把C/C++比作斧頭,那么JAVA就是刀刃比較厚的刀,PHP和ASP就是薄刃的刀,PHP和ASP一般只能用來切青菜,做一些WEB開發(fā),而JAVA可以做WEB開發(fā),也可以做應(yīng)用程序,C/C++可以做應(yīng)用程序,也可以更加底層的東西。在此說明的是,不是說PHP和ASP不能做應(yīng)用程序,而是相對來說不怎么適合,試問有人拿著薄刃的刀去砍柴呢? |
|
來自: KentProgram > 《編程人生》