日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

超级程序员神话

發(fā)布時間:2023/12/18 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 超级程序员神话 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
摘要:大部分的程序員在思想里都會某種程度的承認(rèn),承認(rèn)自己只是一個普通的程序員,但這世界上確實有一些超級程序員,在一個為企業(yè)開發(fā)應(yīng)用的程序員和一個為谷歌寫搜索算法的程序員之間,或和一個開發(fā)用來控制讀寫頭從磁盤扇區(qū)讀取數(shù)據(jù)的物理操作的芯片程序員之間,有真正的不同嗎?

上周我收到了一份郵件,一份讓我心緒不寧的郵件。

郵件的作者基本上認(rèn)為我在博客里和Pluralsight視頻節(jié)目里談?wù)摰亩际欠浅\顯的話題,但發(fā)現(xiàn)我卻虛偽的倡議面試內(nèi)容應(yīng)該設(shè)計的復(fù)雜些,應(yīng)該為“真正的程序員”或超級程序員而設(shè)計。

這份郵件基本上表達了這樣一種觀點:開發(fā)應(yīng)用程序的都不是“真正的程序員”,“真正的程序員”編寫的是有難度的東西,跟復(fù)雜的數(shù)學(xué)算法相關(guān)的東西。

真有超級程序員嗎?

我并不認(rèn)為這種對編程和軟件開發(fā)的認(rèn)識和理解是他獨有的,或是個別現(xiàn)象。甚至IT精英Scott Hanselman也稱呼自己并且認(rèn)為自己是欺世盜名的騙子。

Scott Hanselman的這篇文章讓我產(chǎn)生了共鳴,因為有時候我也有和他相同的感覺。

有時候,我很懷疑,我是否真的有能力解決真正有難度的問題。

讓我斗膽猜測一下,我猜測大部分的程序員在思想里都會某種程度的承認(rèn),承認(rèn)自己只是一個普通的程序員,但這世界上確實有一些超級程序員,他們在做一些諸如控制硬盤緩存或為谷歌建立搜索索引等非常復(fù)雜的算法問題。

好吧,不否認(rèn),當(dāng)然會有一些程序員正在寫一些代碼處理各種你我都不能理解的復(fù)雜問題,但他們跟我們這些余下的程序員究竟有多大區(qū)別呢?

在一個為企業(yè)開發(fā)應(yīng)用的程序員和一個為谷歌寫搜索算法的程序員之間,或和一個開發(fā)用來控制讀寫頭從磁盤扇區(qū)讀取數(shù)據(jù)的物理操作的芯片程序員之間,有真正的不同嗎?

在我回答這個問題之前…

讓我們花幾分鐘時間談?wù)勊麄兯鉀Q的問題。

你曾經(jīng)遇到過的需要去解決的最有難度的問題是什么?

你是如何著手去解決這些問題的?

到最后,當(dāng)你真正的解決了這個問題時,你是否覺得好像不是那么難?

當(dāng)你回顧這段經(jīng)歷,回頭來看這個問題時,你是否會發(fā)現(xiàn),現(xiàn)在看來,它其實是個非常簡單的問題?

你有很多疑問,我知道——可是我希望你在繼續(xù)往下閱讀前真正花時間思考一下這些疑問。

理解“認(rèn)知”和“現(xiàn)實”之間的差距。這是非常重要的。很多的程序員,包括我在內(nèi),都經(jīng)常分不清兩者之間的區(qū)別。

大家都知道,我們對一個問題的認(rèn)知經(jīng)常跟這個問題的真實情況有很大差距。當(dāng)我們還不理解一個問題時,我們會把這個問題想象的比它本身要復(fù)雜。但是,一旦我們理解了這個問題,我們會發(fā)現(xiàn)這實際上是一個很容易處理的問題。

讓我來給你一個現(xiàn)實的例子。看一看下面這個數(shù)學(xué)公式。

我們可以把在看這個公式的人分成兩類人。

  • 對高等數(shù)學(xué)有相當(dāng)了解的人,他們能立即認(rèn)出這個公式,能馬上知道它是干嘛的。
  • 從來都沒見過這樣一堆符號的人,他們的即時反應(yīng)會認(rèn)為這是某種復(fù)雜的算法,可能需要幾年的時間才能弄懂。
  • 也許我說的并不很準(zhǔn)確,但我想說的就是,在“會的人”和“不會的人”之間有一個清晰的分界線。

    我可以用你已經(jīng)熟悉的知識對這些符號做一個簡單的解釋。

    準(zhǔn)備好了嗎?

    這個公式跟下面這段代碼是等效的:

  • var?total?=?0;?
  • for(int?i?=?n;?i?<=?m;?i++)?
  • {?
  • total?+=?f(i)?
  • }?
  • 這說明了什么?

    我想說的是,在數(shù)學(xué)算法中,在編程中,在我們的日常開發(fā)工作中,只有少數(shù)一些問題能稱得上是有難度的問題,而且通常這些比較難的問題都能夠分解成更小的問題(有時候需要多次分解),直到最后你需要處理的只是一個很簡單的問題。

    我的這個博客的目的,我的Pluralsight視頻節(jié)目的目的,基本上都是告訴大家要把復(fù)雜的事情簡單化。我自己的生活也是這樣。

    如果你想成為一個成功的程序員,你必須自己要學(xué)會如何做到這些,它會是你能學(xué)到的最重要的一門技能。

    那么,現(xiàn)在來回答最初的問題——不,我不相信這世上存在超級程序員。我不認(rèn)為在企業(yè)應(yīng)用程序員和那些被視作在研究真正復(fù)雜問題或“真正的編程”的程序員之間有什么不同之處。

    但不要誤解我的意思,不要以為我是在說我不相信某些程序員會被其他程序員在技能高出好幾個數(shù)量級。我敢大膽的說,真正優(yōu)秀的程序員在效率是會比普通程序員高出10倍甚至20陪。

    我想說的是,我們有一個習(xí)慣,總是忘記:當(dāng)問題被分解成更小的問題后,所有的問題都變得如此簡單,而且所有的問題都能這樣去分解

    我想說的是,這個問題是一種能夠阻擋你進步成為一個真正優(yōu)秀程序員的問題,這是由于你自己的認(rèn)知上錯誤導(dǎo)致的,你會把目前看上去復(fù)雜東西當(dāng)作是不可理解的。

    我想說的是,當(dāng)你在開發(fā)一個對自己來說似乎是很容易的企業(yè)應(yīng)用時,你可能忘記了,對于那些對編程一無所知的所有你的朋友和家人來說,這是一個多么困難或幾乎不可能完成的事情。

    仍然不贊同我的觀點?

    很好,你有這樣思考的權(quán)利。

    但我給你準(zhǔn)備了一個難題。你想必一定是知道某位“超級程序員”了。也許你就是其中之一。如果是這樣,我們要聽你說說。請告訴我們一個非常有難度以至于其他的人有不可能理解的復(fù)雜問題。

    我并不是在挖苦你。我是很嚴(yán)肅的,如果你能夠證明我錯了,那就證明給大家看。我至今還未遇到過一個不能分解成簡單可理解的小問題的難題。


    總結(jié)

    以上是生活随笔為你收集整理的超级程序员神话的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。