<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    人在江湖

      BlogJava :: 首頁 :: 聯系 :: 聚合  :: 管理
      82 Posts :: 10 Stories :: 169 Comments :: 0 Trackbacks

    不確定“再見理想”是“再見了,理想”還是“再次燃起理想”,稀里糊涂地對這句話有感覺。作為程序員,總會有自己的技術價值觀和技術理想。工作七年多,開始癢了。

    程序員的生活總是喜憂參半,出入體面的寫字樓,在小小的cubicle里虐殺腦細胞;偶爾有條件小資一下,常被工作、生活壓力逼得點燈熬油;有時候想,這么辛苦,不論做什么行業都會做的好,是不是入錯行了?手放在鍵盤的時候,又享受投入思考的快感。或許注定是個程序員,限于天賦,或許注定是個庸庸碌碌的程序員。

    前端時間因為跑到鄉下,沒法上網,網癮一上來撞墻流鼻涕,百無聊賴開始勾畫價值觀和技術理想。人總追求快樂,每天清醒的十六個小時中,——程序員可能有十八個小時,至少有八小時花在工作上,所以,為了過得快樂,工作一定要快樂。如果當前的工作注定沒法使你快樂,就趕快結束它。畢竟,多數時候,拼命工作不如拼命找工作來得實在。程序員當然不算光鮮的職業,但確實挺費腦子,如果你智商低于110,換個軟件公司也注定痛苦,還是直接換個行業吧。

    工作的基本原則是要保持身價,何為身價?不是你現在月薪多少,而是你現在跳槽,能拿多高的offer。這跟很多因素有關,主要因素包括

    1.你當前薪水——HR往往參考這個給你定薪水;

    2.你的資歷——畢業的學校,工作年限,外企工作年限,你當前的title,在當前公司工作了已經幾年…

    3.你在面試中的表現——能發揮多少技術水平,英語對答如何。

    像我這種身價的本來沒資格討論身價,但誰叫這是我的blog,我的地盤聽我的呢.挨個亂噴一下。

    1. 關于當前薪水

    假如你跟我一樣笨,沒有別的好辦法,就只能多投入精力工作。在以前的博客 與神對話 里也提過一個程序員對于產品的價值。每天上班8小時,每天多專注一點,日積月累,做的事情會多很多,對自己的提高也會多很多。加薪或許是水到渠成的事,如果不順利,要么跟領導談談,或者直接閃人。無論如何,不要抱怨。善于抱怨的人表示他還不夠強。你需要尊重權利,包括他人的權利和自己的權利。

    2. 關于資歷

    如果你畢業于名校,學歷又好,一畢業自然就能進大公司。如果你還在江湖三流公司混,就得每天想著早點換工作。工作年限不總算是資歷,好公司的工作經歷才有用。要記得換工作是有成本的,我工作七年多,現在的工作是第五份工作,所有公司都詬病我不stable,這樣的資歷很難騙取信任,教訓??!聰明的你肯定想到簡歷作假,但好公司都有reference check的,我還是勸你別冒險。

    3. 面試

    千萬記住,一定要預先做好充分的準備才能參加面試。對于一個java程序員來說,面試之前要翻一遍類似于Thinking in Java的書,背一遍設計模式,復習sql,復習mvc框架,復習Hibernate,復習Spring, 復習Servlet spec?;蛟S還有其他的,web service之類的。你可以想象,真要復習一遍,起碼要三個月,這就是我認為換工作之前至少要預留出來的準備時間。機會有限,僥幸心理出去碰運氣純粹是浪費機會。平時工作總有局限,看書是最有效準備面試的途徑。

    上面說的都是不登大雅之堂的事情,有熱情的程序員總想成長為高手,我當然也有這樣的愿望。問題是你認為什么樣的人算是高手,每個人心里會有不同的答案,關鍵是找出你和理想之間的差距并盡量縮短它。高手一定不僅僅是技術超群的,高手必然有高手的胸懷。

    自己有時候會考慮一些工作和技術上的原則,想到哪兒敲到哪兒吧。

    關于工作:

    作為程序員,你要關心產品。這沒什么可說的,這是職業道德問題。

    作為程序員,你要尊重QA。工作越久,就越覺得QA對產品非常重要,程序員很多時候陷在具體的技術問題中,太多精力被牽扯住了。好的QA讓程序員心安,能夠有助于控制風險. QA應該有做最后決定的權利,所以QA需要對產品有很好的insight. 而且好QA需要明白,測試不是找bug的游戲。

    關于技術:

    effective java 和 Refactor書都是總結各種編程原則的書,那些熟為人知的原則不說,我只說我的理解

    static: Joshua在effective java里強調盡量使用static method。這肯定是沒錯的[這句話說錯了,請看下面T.H.E的評論。他說的很有道理。我是做應用的程序員,不暴露API給其他產品,所以一直都覺得IDE里移動static method沒成本。但如果寫Service層給未知產品用的話,耦合class的確有危險]。太看重這一點,就容易轉到一個誤區——多使用static field. 而static field有時代表了封裝的問題,需要謹慎。

    exception: 包括Thinking in java的Bruce, Martin Fowler等很多人都對checked exception不感冒。自己也思考了一下,你當然能舉出checked exception的應用場景。你可以說某個方法它拋出checked exception是為了讓caller處理exception.但你說的是讓“這個caller”處理它。從重用的角度說,你并不預知所有被調用的情況,所以不能排除一些情況下這個checked exception并不能得到特別的處理。這個想法更本質的原則是,寫底層程序的時候,要裝作不知道caller是怎么使用它的,哪怕是你自己調用它。

    重復代碼:所有程序員都對重復代碼表現出深惡痛絕的樣子。但我覺得,重復代碼不是定性問題,而是個定量問題??梢赃@樣考慮:三行代碼反復出現在三個不同的文件里,甚至在不同的package里,這算重復代碼么?四行代碼呢?十行代碼呢?曾經聽到一個高手說,編程的核心在于重用。我不反對這個說法,但我更傾向于說,編程的核心在于可維護性。對于重復代碼,大段的重復肯定要消滅的,三五行的重復不是不可以存在,但是要盡量把它圈在一個小范圍里,比如一個包,或者文件,或者方法里。有時候刻意追求“不重復”,反而讓程序變得別扭。

    技術存在的價值在于能夠解決現實問題。你可以對技術狂熱,但不能忘了這個客觀事實,技術需要實現商業價值,需要最求投入產出比。最最根本的原則,是pragmatic

    posted on 2011-01-30 18:17 人在江湖 閱讀(3196) 評論(9)  編輯  收藏 所屬分類: life

    Feedback

    # re: 七年之癢,再見理想 2011-01-31 09:22 T.H.E
    "static: Joshua在effective java里強調盡量使用static method。這肯定是沒錯的。"
    哪里有提到盡量使用static method? 還望指正  回復  更多評論
      

    # re: 七年之癢,再見理想[未登錄] 2011-01-31 09:47 greatghoul
    其實有些時候,換工作是情非得以。。。  回復  更多評論
      

    # re: 七年之癢,再見理想 2011-01-31 11:56 liujg
    看來我只能改行了。。。  回復  更多評論
      

    # re: 七年之癢,再見理想[未登錄] 2011-01-31 21:44 vcycyv
    @T.H.E
    呵呵,對不起,是我搞錯了。但我的確覺得應該多用static method. non-static和static 混雜在一起往往表示OO的不好。但是可以static的時候不寫static不表示OO的好,那只是掩蓋了問題。那么不如加上static聲明,一方面不需要實例化類就能調用,比較方便。另一方面容易揭示OO的問題,這很實際。這里需要注意的是,一個方法沒用使用成員變量,不表示一定應該加static關鍵字,因為有可能是為了繼承和多態的考慮。但我感覺,絕大多數情況是可以安全地加static的,就算最后遇到多態需求可以重構。
    你很敏銳,謝謝,如果我的理解有什么錯誤,請指正。  回復  更多評論
      

    # re: 七年之癢,再見理想 2011-02-01 09:23 T.H.E
    @vcycyv
    存在必合理這點還是需要肯定的. 特別是工具類, 常量一般都是使用static method. 但過多的使用static method會使整個系統內的模塊與模塊間對實現類強依賴. 這樣大大增加了代碼的耦合度, 首先破壞了OO設計原則"高內聚, 低耦合".
    以上都是從吹nb的層面討論, 舉些實際的例子來看使用interface而不是static method的好處.
    系統中一個模塊對外暴露出來的功能"接口"(這里指的是廣義接口"), 如果是static method, 會造成其他模塊對該類強依賴. 一旦內部邏輯或者覺得需要重構(類位置發生變化, 重命名等到), 依賴它的模塊全部要重新編譯. 小的系統還好大型系統成本太高.
    但如果對外暴露的是interface, 通過static的"工廠方法"(這個到是effective java里推薦的呵呵)獲得實例, 通過實例的method訪問, 靈活度就非常高了. 可以看到開源框架基本上都是暴露interface給用戶(osgi的bundle, log4j的log等等), 都是為了降低耦合度.  回復  更多評論
      

    # re: 七年之癢,再見理想 2011-02-01 22:12 vcycyv
    @T.H.E
    "系統中一個模塊對外暴露出來的功能"接口"(這里指的是廣義接口"), 如果是static method, 會造成其他模塊對該類強依賴. 一旦內部邏輯或者覺得需要重構(類位置發生變化, 重命名等到), 依賴它的模塊全部要重新編譯. 小的系統還好大型系統成本太高. " —— 這是我之前沒有考慮過的角度,你說得很有道理,領教了,多謝!
    我同意不應該過多地使用static method  回復  更多評論
      

    # re: 七年之癢,再見理想 2011-02-02 13:42 xylz
    工作也有“七年之癢”?這是程序員之癢還是工作的?顯然我還沒有達到這個層次。  回復  更多評論
      

    # re: 七年之癢,再見理想 2011-02-08 08:38 凌晨風
    程序員自我自我價值觀太強了  回復  更多評論
      

    # re: 七年之癢,再見理想[未登錄] 2011-02-22 14:00 Frank
    好文章,學習了,一看就是自己的切身經驗  回復  更多評論
      

    主站蜘蛛池模板: 丝袜足液精子免费视频| 精品一区二区三区免费视频 | 一区二区三区亚洲视频| 亚洲国产精品成人| 亚洲黄色三级视频| 亚洲乱妇熟女爽到高潮的片| 无码天堂va亚洲va在线va| 伊人免费在线观看高清版| 免费v片在线观看视频网站| 高清国语自产拍免费视频国产| 免费国内精品久久久久影院| 亚洲AV综合色区无码一区| 亚洲色在线无码国产精品不卡| 国产精品高清免费网站| 在线免费观看中文字幕| 亚洲va久久久噜噜噜久久狠狠| 成人性生交大片免费看中文| 色www永久免费视频| 精品在线观看免费| 美女网站免费福利视频| 亚洲乱码日产一区三区| 亚洲AV无码一区二区大桥未久| 18女人水真多免费高清毛片| 亚洲午夜激情视频| 亚洲日本天堂在线| 亚洲国产成人五月综合网| 国产色无码精品视频免费| 亚洲白色白色在线播放| 久久中文字幕免费视频| ZZIJZZIJ亚洲日本少妇JIZJIZ| 日韩电影免费在线观看网站| 亚洲欧洲视频在线观看| 国产成人青青热久免费精品| 亚洲人成网站18禁止| 亚洲国产高清在线一区二区三区| 国产成人精品一区二区三区免费 | 亚洲愉拍99热成人精品热久久| 亚洲日韩AV一区二区三区中文 | 国产福利视精品永久免费| 久久久久亚洲精品美女| 国产特黄一级一片免费|