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 閱讀(2380) 評論(2)  編輯  收藏 所屬分類: 翻譯非技術

          評論

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

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

          主站蜘蛛池模板: 甘泉县| 锡林郭勒盟| 辉南县| 扶余县| 高唐县| 原阳县| 西昌市| 陕西省| 长沙县| 沂源县| 章丘市| 恩平市| 安陆市| 迁安市| 康乐县| 腾冲县| 巫溪县| 广汉市| 靖宇县| 山丹县| 南充市| 新巴尔虎左旗| 宾川县| 中宁县| 江津市| 镇赉县| 延安市| 通山县| 锡林浩特市| 淮安市| 福贡县| 延边| 澄江县| 石河子市| 龙泉市| 松溪县| 册亨县| 开鲁县| 太谷县| 东山县| 沈丘县|