Time of Update: 2018-12-05
上一篇文章已經給出了"優秀開發人員"的定義,那麼現在我來說說成為優秀開發人員的頭一個重要因素:興趣。 因為物理學超級大牛老愛曾經說過:興趣是最好的老師。我對此深以為然。所以我們先從興趣這個話題聊起。 興趣這玩意是心理學層面的東西,據說人在本能上有一種"構建"的快感(例如小朋友喜歡搭積木就是)。有些人天生喜歡寫程式,就是因為能夠從中體會到構建的快感。鑒於心理學不是本部落格重點關注的話題,暫不再深入聊下去。 有興趣的開發人員和沒興趣的開發人員,差別怎麼就這麼大捏?這主要是因為有興趣的人,比
Time of Update: 2018-12-05
通過本系列上一篇文章,你應該已經搞清楚自己是否確實有興趣從事軟體開發工作。現在我們來聊一下開發人員的自學能力(終於開始介紹實質性的東東了)。 ★自學的重要性 為啥我把“自學能力”排到“興趣”之後捏?因為大伙兒都明白,IT這行知識的更新速度巨快。有很多新玩意兒在你讀書的時候還沒有發明出來呢?退一步講,即使某個新技術在你上學的時候已經發明出來,你的電腦老師也未必會教你(或許他/她自己也不懂)。再退一步講,即使你上學時的電腦老師比較牛,會把當時新出來的某個技術教給你,但是你將來工作中需要用到的
Time of Update: 2018-12-05
20.Given the following.public class SyncTestInner{ public static void main(String[] args) { Thread t = new Thread(){ Foo f = new Foo();{ f.increase(20); } }; t.start(); }}and
Time of Update: 2018-12-05
一般來說,優秀的開發人員往往具有較高的效率。我這裡提到的效率包括兩方面:“做正確的事”和“正確地做事”。並且“做正確的事”比“正確地做事”更加重要。 我們先來看一些反面教材。據相關研究機構統計,大部分人(80%以上)具有如下不好的工作習慣:先做自己喜歡的事情,再做自己不喜歡的事情先做緊急的事情,再做不緊急的事情先做容易做的事情,再做不容易做的事情先做自己瞭解、熟悉的事情,再做自己不瞭解、不熟悉的事情先做有趣的事情,再做枯燥的事情先做易於告一段落的事情,再做不易於告一段落的事情先做自己熟悉的
Time of Update: 2018-12-05
我在"如何成為優秀開發人員[2]:關於自學能力"中提到閱讀好的IT技術書籍的重要性。今天來聊一下技術書籍的評鑑方法。假設你剛下了某本電子書準備看,又或者逛書店看到某本紙版書準備買,但是吃不準該書的品質如何,那麼下面幾個招數可以幫你的忙。 第1招:看網上評論 首先,上一些權威的圖書網站,看看大伙兒的評價如何(要相信群眾的眼睛是雪亮的)。對於英文書籍,我一般上亞馬遜網站去看看;中文書籍則上豆瓣網。這兩個網站都提供星級評等,一般>=4星的評級都不差。(此招數對於正在逛書店的不一定適用,除
Time of Update: 2018-12-05
1.Given the following1.class MyThread extends Thread {2. 3. public static void main(String []args){4. MyThread t = new MyThread();5. t.run();6. }7.8. public void run(){9. for(int i=1;i<3;++i){10.
Time of Update: 2018-12-05
就像莎士比亞的“To be, or not to be, that is thequestion”始終困擾著哈姆雷特,對於“進程還是線程?”這個問題,也經常困擾著那些進行軟體架構設計的傢伙。所以今天打算聊一下我對這個問題的體會。假如你還搞不清楚線程和進程的區別,請先找本作業系統原理的書好好拜讀一下,再回來看帖。 由於這個問題很容易引發口水戰,事先聲明如下:多進程和多線程,無法一概而論地說誰比誰好。因此本帖主要描述特定情境(與我所負責的產品相關)下,進程和線程的權衡經驗,僅供大伙兒參考。
Time of Update: 2018-12-05
文章目錄 ◇規避敏感詞過濾◇規避肉眼審查◇傳遞加密資訊◇技術原理◇隱藏資訊的步驟◇提取資訊的步驟◇優點◇缺點◇技術原理◇隱藏資訊的步驟◇提取資訊的步驟◇優點◇缺點◇技術原理◇隱藏/提取資訊的步驟◇相關工具◇優點◇缺點
Time of Update: 2018-12-05
Velocity是一個基於java的模板引擎(template engine),它允許任何人僅僅簡單的使用範本語言(template language)來引用由java代碼定義的對象。作為一個比較完善的模板引擎,Velocity的功能是比較強大的,但強大的同時也增加了應用複雜性。這裡簡單Velocity指令碼的基本文法: 1、"#"用來標識Velocity的指令碼語句,包括#set、#if 、#else、#end、#foreach、#end、#iinclude、#parse、#macro等;
Time of Update: 2018-12-05
俺給大伙兒推薦的書,多半是有一定年頭的老書(比如《人月神話》、《你的燈亮著嗎?》、《1984》)。而今天要介紹的這本《中國人的性格》(洋名叫“ChineseCharacteristics”),則尤其古老——它是在一百多年前的清朝,由一個洋人傳教士寫的。可能有些同學會納悶:這麼古老的一本書,還能跟得上當今潮流嗎?會不會已經落伍?下面,俺就來解釋一下,為何此書值得一看。 ★作者其人 本書的作者是:亞瑟·史密斯。老實說,這傢伙的名氣不是很大,更多是靠著這本書而出名。他在清末到中國傳教,定置中國
Time of Update: 2018-12-05
AOP聯盟規範了一套用於規範AOP實現的底層API,通過這些統一的底層API,可以使得各個AOP實現及工具產品之間實現相互移植。這些API主要以標準介面的形式提供,是AOP編程思想所要解決的橫切交叉關注點問題各組件的最高抽象。Spring的AOP架構中也直接以這些API為基礎所構建。下面我我們來看看當前AOP聯盟發布的AOP相關標準介面。 AOP同盟API主要包括四個部分,第一個是aop包,定義了一個表示通知Advice的標識介面,各種各樣的通知都繼承或實現了該介面;aop包中還包括了一個
Time of Update: 2018-12-05
大部分人從來沒有明確地設定自己的發展目標,每天都是得過且過。等到幾年過去了,才發現自己這些年啥也沒學會,還是老樣子,然後就感歎時光飛逝、歲月如梭。因此,今天我們來聊一下如何設定個人發展目標。(如果你平時已經很善於定期設定個人發展目標並執行得很好,恭喜你,那麼本文章你可以略過) 先說說什麼是“個人發展目標”。顧名思義,就是和你個人的職業發展有關的目標,包括知識、技能、工作崗位等都可以被設定為個人發展目標。(由於本部落客要關注IT方面,因此我會以個人的技術發展為例來說明,但是這些方法也適用於其
Time of Update: 2018-12-05
★引子 前天,俺在《俺的招聘經驗[4]:通過筆試答題能看出啥?》一文,以"求質數"作為例子,介紹了一些考察應聘者的經驗。由於本文沒有政治敏感內容,順便就轉貼到俺在CSDN的鏡像部落格。 昨天,某個CSDN網友在留言中寫道:老實說,這個程式並不好寫,除非你背過這段代碼如果只在紙上讓別人寫程式,很多人都會出錯但是如果給一台電腦,大多數人都會把這個程式調試正確出這個題目沒啥意義只能讓別人覺得你出題水平低 首先,這位網友看帖可能不太仔細。俺在文中已經專門強調過了,評判筆試答題,"思路和想法"遠遠比
Time of Update: 2018-12-05
今天看到新聞說“微軟公司宣布裁員5000人”。不由得感慨:連最牛的(微軟手頭現金最多)公司都不得不裁員了。從去年9月幾大金融機構倒台到今天,也不過就4個月。它的影響已經波及到每一個行業(當然也包括IT業),產生的破壞性堪比“1929-1933”(號稱是史上最強的)的那次。面對這種情況,大夥該咋辦捏? 1、分析自己公司的情況 如果你是在大公司上班,公司倒閉的機率相對小一些。直接跳到第2條。如果你在中小型的公司,你得關心一下自己公司是否具有穩定的現金流(通俗說,就是能否賺錢),並且這個現金流
Time of Update: 2018-12-05
貌似有2個月沒寫技術帖了(政治帖倒是寫了不少)。今天,向各位程式猿同學介紹一個和網路通訊有關的開源項目——ZeroMQ(綽號 ØMQ,以下簡稱
Time of Update: 2018-12-05
在幾天前的“紐約客機哈德森河成功迫降”事件中,Twitter又一次拔得頭籌(為什麼說“又”捏?因為之前的孟買恐怖襲擊,Twitter已經搶先傳統媒體了)。在率先到達出事地點的救生艇上,賈尼斯·克魯姆斯同學(Janis
Time of Update: 2018-12-05
記得以前曾經有網友跟我們討論有關EasyJWeb的效率問題,大致意思是EasyJWeb用得少,沒有經過成熟項目的考驗,而struts應用案例比較多,所以用起更放心。我的看法是,EasyJWeb只是一個MVC架構,在一個J2EE應用中,MVC部分所承擔的任務是比較少的,真正影響系統效能的是系統中介層,即商務邏輯層與資料持久層。因此,有人問我,EasyJWeb及EasyDBO能否放心用於正式的商業項目中,我曾經的回答是:由於兩個項目都是測試階段,不建議使用,EasyJWeb基本不會出什麼問題(從
Time of Update: 2018-12-05
“雙緩衝區”是一個應用很廣的手法。該手法用得最多的地方想必是螢幕繪製相關的領域(主要是為了減少螢幕閃爍)。另外,在裝置驅動和工控方面,雙緩衝也經常被使用。不過今天要聊的,並不是針對上述的某個具體領域,而是側重於並發方面的同步/互斥開銷。 ★為啥要雙緩衝區 記得前幾天在介紹隊列緩衝區時,提及了普通隊列緩衝區的兩個效能問題:“記憶體配置的開銷”和“同步/互斥的開銷”(健忘的同學,先回去看看那個文章複習一下)。“記憶體配置的開銷”已經在介紹環形緩衝區的時候解決了,而今天要介紹的雙緩衝區,就是衝
Time of Update: 2018-12-05
這是一些新手問到一個問題,說是在介面後面能不能使用new操作符! 這是一些文法基礎知識,需要藉助於工具才能快速提高。能與不能,直接寫一個看看即可。 看例子: public interface Humans{ } 如果我們手中沒有Humans的具體執行個體類,又要在程式中用到一個。比如測試啊什麼的! Object obj=new
Time of Update: 2018-12-05
11.Which three are methods of the Object class?(Choose three.)A. notify();B. notifyAll();C. isInterrupted();D. synchronized();E. interrupt();F. wait(long msecs);G. sleep(long msecs);H. yield();(A.B.F). Java Doc12.Given the