John Jiang

          a cup of Java, cheers!
          https://github.com/johnshajiang/blog

             :: 首頁 ::  :: 聯系 :: 聚合  :: 管理 ::
            131 隨筆 :: 1 文章 :: 530 評論 :: 0 Trackbacks
          你不是全面的專家
              對于軟件開發,干的時間越長,就越感覺自己懂的知識少,似乎要學習的知識還有很多很多。最近恰在DZone上看到一篇小文,作者談到是否有必要成為全面的專家。道理其實很淺顯,大家也都懂,我只是隨手翻譯一下罷了。(2013.06.30最后更新)

              編程不僅僅是寫代碼--而是要處理一大堆抽象。從0和1開始,到處理器,內存地址,底層的網絡協議,數據結構,再上升到網絡服務,組件框架和用戶界面。這一過程,就是從乏味的底層抽象,到更有趣的可用且可維護的抽象。
              我們被歸為"高級開發者"。對于某些人來說,這就意味著我們在所有的抽象層面都是專家。如果不是這樣,那么我們就不夠好。我不傾向于贊同這種觀點,而這并不只是為了證明我并不是在所有抽象層面上都是專家。
              這基本上就是一種折衷--要么你專注于某些層面,然后變得對它們十分精通,要么,你這也學學,那也干干,然后對哪一樣也不精通。接下來你會爭辯到,在多數領域的某些方面你應該達到專家級。但隨著時間的推移,這些專業知識將會變得冗余。如果我今天把應用設計與框架方面的知識丟到一邊,而去鉆研算法或TCP編程,那么由于技術更新,三年后我可能就不再精通之前的那些領域了。
              存在抽象的原因之一就是防止你陷入底層細節的深淵。如果沒有這些抽象,我們就不可能寫出合格的軟件。而我們可能需要做的就是專注于更高層,因為低層已經被處理好了。將底層編程當作某種深奧藝術可能只是為了顯擺,但事實上它并非什么深奧藝術,只是有對底層編程的需求罷了。
              當然,這就不是說通過學習JQuery,Rails和Spring就能使你變成最好,而不需要知道其它東西了。你要盡可能地熟悉你所專長層面之下和之上層面的工作原理。一般地,因為所有抽象都會"泄露",所以你不能忽略應用程序所消耗的內存,當需要快速訪問時,你最好使用Hashtable,TCP連接可能被防火墻阻隔,盡管你不需要編寫析構函數,不需要實現Hashtable,或者了解TCP。但了解其它層面的工作原理并不會使你成為那方面的專家,其實你也不必成為那種專家。
               為什么我要寫這些呢?因為很多公司(包括大公司)中的人們傾向于認為專家就應該在所有層面上都達到專家級,尤其是在底層方面。在面試時會問你很多底層的細節問題,好像你一生都在從事數據結構和網絡編程方面的工作,你當然不是那樣,但這并不意味著你不是一名專家。
              不做全方位的專家是一件很好的事情,只需要在若干層上達到專家級就行了。但你必須了解更低層和更高層領域的工作原理,這樣當有需要時,你也可以成為那一層的專家。
          posted on 2013-06-30 21:02 John Jiang 閱讀(2387) 評論(2)  編輯  收藏 所屬分類: 翻譯非技術

          評論

          # re: 你不是全面的專家(譯) 2013-07-05 15:21 俄羅斯認證
          專家就是專家呀  回復  更多評論
            

          # re: 你不是全面的專家(譯) 2014-05-02 15:51 ZT文萃
          專家是相對而言的。  回復  更多評論
            

          主站蜘蛛池模板: 大宁县| 南木林县| 嘉义县| 阳原县| 湾仔区| 秭归县| 临武县| 米脂县| 嘉黎县| 绍兴市| 驻马店市| 通山县| 石台县| 汝阳县| 阳信县| 诸城市| 凤凰县| 望奎县| 华池县| 潼南县| 广丰县| 杂多县| 镇雄县| 金坛市| 海林市| 江达县| 佳木斯市| 银川市| 上高县| 丰原市| 普兰店市| 富民县| 云林县| 上栗县| 那坡县| 勐海县| 姚安县| 仲巴县| 泸西县| 南江县| 武汉市|