❶ 怎樣做一名高效率程序員
很多人問我,你怎麼效率那麼高,工作很忙,又要帶娃,還寫博客,還有時間運動。今天就寫寫這個話題:程序員如何提高工作效率
保持高工作效率,我覺得主要有一下4個方面,希望能對大家有幫助。
集中目標
工作列表
不論是開發還是設計,還是其他職業,工作列表都很重要,工作目標很明確。工作的時候才能格外專注,才不會走神。
用自己最熟悉的工具(我用Evernote),把待辦工作列表(今天要做什麼)記錄下來,很重要的一點是記錄分解後的小目標(分解任務也是一個很重要的能力)。同時也保持工作中產生的新的問題(任務),經常性地調整當前工作任務列表,根據重要性對這些任務進行劃分,經常想著那些最重要的問題。
專注目標
專注目標不是那麼容易做到的,需要學會分離與當前無關的任務/問題,工作中經常會碰到的問題可以首先尋找簡單可用可靠的方案,並將心中的疑慮記錄下來,集中成一個列表,工作之外翻翻書,系統思考和學習,而不會因為這個問題而叉開思路對相關的內容研究一番。總之,專注當前的任務,把新問題記錄下來,回頭再專心攻克。
學會避繁就簡,在基本功的增強後,會發現很多問題可以簡單閱讀或查找文檔,或瀏覽問題相關的庫的源碼解決;
學會簡化問題
無論是在廣義的工作方法/工作態度上,還是在針對具體問題上,很重要的一個個人能力就是化繁為簡了。化繁為簡是所有工作方法/軟體設計的核心。將那些可以砍掉的工作砍掉,做到盡可能地簡單。
從工作方法和態度上來講,真正需要去做的工作才值得去做,大力砍掉那些不應該在當前工作中處理的事情。例如不必要的優化,不必要的擴展性,不必要的性能,不必要的功能,可以不要的技術,不必要的流程,不必要的文檔,統統砍掉,一切可以沒有的全都不能有。
工作中也可能遇到非關鍵的難題,通常繞過它們,使用更簡單的方案就是了。糾纏於這些不重要的難題,最容易浪費時間。
從設計/實現來講,最好的方案就是最簡單直接、一眼就能看懂的方案。而且通常最簡單直接的方式,通常性能也最好。
基本功
基本功的內容十分復雜。
第一項基本功是對整個計算機體系的理解,對操作系統/虛擬機/資料庫本質的理解,對語言基礎類和庫的理解,這些是核心基本功。
第二項基本功是學習能力。通過快速閱讀核心文檔理解核心思想,然後其他的東西總是能從文檔中查到就行。細枝末節的東西,即學即用,學過就忘可也。
第三項基本功是文檔、代碼、資料的搜索和收集,技術問題建議大家用Google搜索,有意識的整理出自己的代碼庫。
工具
選擇工具核心標准,就是簡單樸素可信賴,如果一個工具出幾次詭異現象,那就乾脆丟掉它。
熟悉工具,實際上我們工作中,就是和各種各樣工具打交道,各種IDE,編輯器,版本管理工具,命令行終端,TODO工具等等。要想在工作中如行雲流水,一定要熟悉工具,包括工具快捷鍵,命令,原理等等。
寫自己工具,很多時候,我們需要重復的做一件事情,當你做第2遍,第3遍的時候,就應該想一想,能不能自動化,很多簡單的幾句shell就可以搞定,麻煩的一點的,可以先記錄下來。比如,我就寫了非常多的腳本:一個命令反編譯APK並查看源碼、提取當前版本號打git tag並提交等等。很多時候幾分鍾到幾十分鍾的事情可以壓縮到幾秒鍾完成,也避免了對工作的打斷。
❷ 程序員編程時心力交瘁,失去工作熱情怎麼辦
心力交瘁中
導讀:程序員在編程的時候因為心力交瘁,從而失去工作熱情的現象並不罕見。很多文章都可以成為這一方面的證據,證明這已經是IT行業一個普遍現象。因為我已經有處理過職業倦怠的經驗,所以我想要更深入地探索這個問題,幫助大家解決甚至預防它。
倦怠發生的原因
程序員比其他領域的專業人士更容易產生職業倦怠。至於為什麼會出現這種情況,我也沒有一個明確的答案,但我認為有四個主要原因
第一個是生理原因。每天坐在辦公桌前,面對著電腦,是不健康的,會讓人更加無精打采、昏昏欲睡。嗜睡還可能導致其他不良的生活習慣,如吃零食,抽煙,熬夜等。然後最終導致郁結於心,產生倦怠感。
第二個原因是,編程是認知高度密集並且壓力非常大的工作,會導致心理疲勞和損傷。
第三,有可能你現在已經精疲力竭了,因為正在做的工作耗盡了你的力量,並且收獲甚微。對此,唯一的解決辦法是離開一段時間,好好反省下――如果不考慮錢的因素,你希望做什麼樣的工作。
第四個原因不是我想出來的,是我在《Hacker News》的評論部分發現的。有一個人准確地描述了,「職業倦怠是由反復做大量犧牲,或努力完成高風險問題最後卻以失敗告終而導致的。這是伏隔核(nucleus accumbens)負面預測落差的結果。你的大腦需要理智地應對失敗。這一條說得真的太對了。在創建軟體的過程中,基本上沒有一天不是處在各種失敗和挫折中。
我本身也經歷過好幾次職業倦怠。雖然我沒有一次放棄編程,但偶爾我也會懷疑我選擇的職業是否正確。所以,從那時起,我開始注重策略化的工作方法,以保持長效的動力和生產力。我將在這篇文章中介紹我的一些開發習慣,以及一些可以預防或甚至消除倦怠的技術手段。
先從基本的開始。
吃好。不要以為做個素食主義者就萬事大吉了。試著逐漸用白開水代替蘇打,低糖飲食,多吃蔬菜,不要吃得過飽。還有最重要的是要持續下去。
睡好。這包括良好的睡眠質量和充足的睡眠時間。更好的睡眠環境,能夠讓我們一覺醒來倍感清爽。具體的一個技巧就是減少會讓人徹夜難眠的藍光照射。這可以通過安裝Flux,來調整計算機顯示器的色彩。
不要勞累過度。已經有很多證據表明,生產效率,即輸出,會在經過4個小時聚精會神的工作之後,急劇降低。像程序員這類認知高度密集的職業,要想長期保持高效,那是不可能的。
番茄工作法。這對於既要保持生產力,又要獲得一些必要休息的程序員,是一個既簡單又有效的方法。番茄工作法,即集中精神工作25分鍾,然後休息5分鍾,然後循環。如果在每次的工作時間都有一個特定目標,效果會更好。理想情況下,在休息時間里,應該去做一些遠離計算機的活動。如散步,俯卧撐等。當然你還可以在三次番茄工作法後,休息個30分鍾,效果也很好。
保持活性,保持前進。我本來想說的是――運動,但很多人有一種誤解就是,認為運動必須包括去健身房,或其他。但是在現實中,保持活性也可以通過用爬樓梯代替乘電梯,或者將汽車停放在一角,而選擇騎車上班,總之,其他在日常中就能運動的方式更易於實現,而不是讓人整天沉溺在電腦前。
更具體化的要點
實驗,玩,學,原型。這些事情能讓你在短期內獲益匪淺,並且迅速輸出。例如,以同樣的你慣用的方式,不斷地建立網站。但是,隨著時間的推移這會逐漸變得乏味,讓人提不起一點興趣。編程有部分也是工程,需要使用經過充分驗證的技術用於生產軟體。但它也可以讓你玩樂、實驗和嘗試新想法。將20%的時間消磨在技術上是避免職業倦怠最有效的策略之一。所謂消磨在技術上可以是嘗試新的庫,也可以是創造一些有趣的但與工作無關的東西,又或是學習一些自己以前不曾涉獵的內容,如函數式編程。
參加聚會,會議和收聽播客。編程會讓人感到孤單。和其他開發人員碰面,或在播客上聽他們的經驗,能讓你更在意和注重自己的工作。沒有人喜歡抱怨,但是分享或聆聽來自於其他程序員的奮斗經歷,以及他們如何克服困難的過程,能夠激勵你繼續前進。
打造良好的工作環境,千萬不要在工具上吝嗇。能快速編譯的PC,能讓你的時間不必浪費在沒有必要的等待上。確保有一個舒適的椅子、桌子和顯示器以及設置。如你在嘈雜的環境中工作,那麼買一個高品質的耳機,將噪音隔離開來。
掌握工具。良好的工具可以使得編程更加愉快,掌握這些工具能讓工作更加高效。這是眾所周知的一點,但我還是要再重復一遍。了解工具,如編輯器,操作系統,命令行中的所有快捷方式,可以為你節省很多時間。自動化日常任務可以加快進程,進一步遠離倦怠。
休息,涉獵其他方面。除了編程之外,還有許多有趣的活動。例如:體育運動,文化活動,sex,閱讀,樂高積木,社交活動,釣魚,烘焙,攝影等。如果你總是持續做一件事,如編程,那麼總有一天你會不可避免地心力交瘁。所以,做一些看似無關但實際可以重新點燃激情的工作,這些工作或許還能激發你新的想法和思路,就像那位傳奇的諾貝爾獎獲得者理查德費曼學習板擺動一樣。
考慮更換工作或啟動一個不同的項目。職業倦怠也有可能是因為你總是在做無趣,又耗費心力的工作,如整天微調現有的代碼庫。也有可能是因為你現在工作的項目已經不符合你的興趣,或你的價值標准。此外,如果你發現編碼再也激發不了你的激情,那麼也可以考慮相關領域,如信息架構,系統管理等,也許可以再次點燃你的激情。
將那些你可以順利完成的工作,整合為日常任務。這些工作包括測試代碼,寫注釋,改善變數命名等等,這些都可以釋放內啡肽,有助於恢復工作行為。這條技巧意在讓我們的大腦對我們做的工作更有積極性。
結論
世上並沒有治癒職業倦怠的仙丹妙葯,而且每個人的情況都不盡相同。所以,希望我上面列出來的這些我覺得有效的小貼士也能為你所用。
誠然,我們需要時間來培養新的習慣。但是吃得好,睡得好,鍛煉和好好照顧自己,能讓你感覺更好,從而幫助你在完成工作的時候做得更好,並保持對編程的熱愛。
❸ Java程序員初入職場時,應該注意些什麼呢如何快速適應職場
JavaSE是核心,那也是入門Java人員先要觸碰學英語的一部分。包含學習培訓自變數,基本數據類型,進制,轉義字元,操作符,分支語句和for語句,對二維數組、面向對象編程和錯誤處理等。
在理解了之上技術性以後,便可以開始自己工作之行了,對於新手盡早融入工作中,有如下提議:融入的工作頭一步,就是跟身邊的同事做好交道了,不用你多殷情,僅需你的所作所為不讓人反感,但是也無需多疑,你不是rmb,不太可能所有的人都喜歡你,維持一般的人際交往就行了,盡快融入團隊氛圍,與同事融為一體。工作上依舊還是得到工作職責為主導,作為一個Java初學者務必明確自己崗位工作職責,明確自己每日工作職責,隨後盡早把工作職責所需要的崗位技能學好,盡快上手工作,保證科學安排自身工作時間,高效的工作,也不耽誤新項目的進程。
❹ 學習編程語言過程中一些懶惰,心態怎麼解決
零基礎如何學習編程
心得筆記
自學編程2年來,加過n多群,泡過n多論壇,接觸過心懷激情的編程新人,遇到過沉著冷靜的技術大牛……編程,吸引了一批又一批的熱血青年,或許是為了理想,或許是心中的愛好,不斷有新人的加入,也不斷有人從編程中退出。編程的入場入口只有一個,出場的出口卻很多。自學編程的新人,有很大一部分卡在了入門上,對此,我想寫下對編程入門的一些拙見,權當拋磚引玉,或對或錯,還望同學們自己鑒定。
1.零基礎,打算自學編程,應具備哪些的知識看
答:
對於入門階段,對知識水平的要求並不算高,或者說很低,大家都應該聽說過xxx小學生編程如何如何這般這般怎麼樣之類的話題,這里,我們不談長期發展,只談如何入門。首先,我覺得你應該具備計算機的基本操作能力,如果說你連新建一個文件夾或者說從網上下載資料都不會,那麼你應該先買本《windows xx從入門到提高》看,然後再考慮編程這件事,如果你覺得對計算機的基本操作已經熟練後,請繼續向下看。
2.學編程應具備哪些條件看
答:
第一:硬體保證,首先你應該具備一台電腦,不管是筆記本還是台式,也不管性能高低,性能對前期學習編程幾乎無任何影響,就入門來看,操作系統還是首選windwos。
第二:有xx語言的入門本書,紙做的,具體xx語言是哪種語言,後面我們再討論這個問題。雖說現在鋪天蓋地的都是電子書了(保留這句話的確定性),到處是掃描版,還高清呢,但我還是推薦看紙做的書,好處有兩點,其一是便於攜帶,可以隨時翻閱;其二是避免眼疲勞,我不信你一直晚盯著顯示器看電子書眼睛不會酸;還有一點,尊重圖書作者的版權。
第三:時間保證,如果你每天都有一大堆事等著你去處理,先去處理那些事吧,處理完後把剩餘時間劃出一整塊的給編程,進行隨時可能被打斷的學習,在編程這塊,我不認為這是在用功學習,零碎時間去背單詞看應該是個不錯的選擇。
3.你確定要學編程看
答:
這個問題看起來有點多餘,但為什麼要提出這個問題看要知道,編程不是一朝一夕的事,如果你只是一時的沖動,或者僅僅是要完成心目中的某個小工具,並沒有長期寫程序的打算,這樣的話,編程不學也罷,畢竟編程從入門到能獨立寫軟體會有很長的一段路要走,中途一旦放棄就前功盡棄,並且已經浪費了你大把的寶貴時間,實在是得不償失。不過,你盡管吐槽說是這是你的業余愛好,有個愛好也挺好,那麼,繼續往下看吧。
4.如何才能入門看
答:
到底怎樣才能入門看其實,只要你有毅力,慢慢折騰個一年半載,肯定能入門,但寫這篇文章的目的就是為了把這個周期縮短些,不是嗎看所以,下面我就以個人的觀點來談談怎麼才能更快的入門,這里先籠統的介紹下,對於每點,後面單獨介紹。
–1>.去了解計算機的基本組成,計算機的發展史和編程的發展史,看起來和編程沒什麼關系,潛在的影響還是十分大的;
–2>.選擇一門簡單的語言作為入門語嚴;
–3>.學會使用搜索引擎;
–4>.知道如何看書;
–5>.要地像地個高手;
–6.>應具備的學習態度;
4.1:了解這些歷史的意義:
了解一些編程的實質遠比知道如何編程更有意義,不要在編程是怎麼回事的情況下就去學習編程,這樣對你的學習是十分不利的,作為一個編程愛好者,知道計算機的工作原理,這應該是一件再正常不過的事,你難道不想去知道嗎看
4.2>.選擇入門語言:
這個問題在入門階段一直是爭議十分大的問題,n多語言,n多推薦,到最後搞到新手一會聽說這種語言適合新手,於是學習這種語言,一會又有人說xx語言是垃圾、弱爆了,學了也沒用,之類的話,開始推薦你xxx語言,於是新手們又開始學習這種語言,搞到最後,什麼語言都沒搞懂,時間大把大把的流失,熱情消耗殆盡。要解決這個問題,首先要明白一個根本問題,怎樣挑選適合入門的編程語言看我推薦從難度這個角度來考慮,這門語言必須簡單易學,有趣,而且要有一定的熱度,有熱度才能有更多的人一起交流討論,翻開編程語言列表,發現有100多種編程語言,而且這個數還是在不斷增加的,這里我們一起來看下2012年5月份的編程語言排行榜,能進排行榜前20的,首先在熱度上都已經差不多了,現在要做的就是從排行榜里找到一門簡單有趣的語言。
2012年5月編程語言排行
對於上述的語言,這里不可能一個個詳細介紹,篇幅有限,最主要的是,這些語言的介紹只需要你打開搜索引擎(網路看谷歌看還是其他看隨便你嘍。),輸入這項語言的名字,搜索一下,就能看到他的詳細介紹了,如果你說你不會搜索,那麼,請返回第一個問題,一般來說,如果你去論壇提問什麼語言適合入門,得到最多的結果應該是C語言,沒錯,就是上述排行榜排行第一的那個,強烈推薦C語言入門的同學如果看到這篇文章可能會很想吐槽,因為這里筆者要推薦的不是C語言,筆者認為,Python語言對於零基礎更適合入門,很多人推薦C語言原因我猜測可能有兩個,一是全國大部分的高校的編程課C語言是都有開設的,也可以說是學習過C語言的用戶基數大,第二是C語言自身的強大,可謂是口碑好。基數大+口碑好,足以讓你得到的結果是C語言居多。
筆者是Python語言入門,接觸編程時完全是零基礎,現在接觸了C、接觸了C++、JAVA,Visual Basic 6,回味了下,如果讓我再次選擇一門入門語言,我絕對不會後悔選擇Python,建議每位同學去網路搜索下Python,看下是否真的簡單易學,並且強大,如果你想快速寫GUI(圖形用戶界面 )的軟體,Python有一大把圖形庫供你選擇,不像C語言,半年下來,還是停留在黑框框里,大大打擊了初學者對軟體開發的信心,對於寫游戲,Python也是絕對不會讓你失望的,pygame模塊為你提供簡單快速的游戲開發,Pygame是 跨平台 Python模塊,專為電子游戲設計。 包含圖像、聲音。 雖說沒法和Direct X相比,但對於新手來說,獨立寫個2D游戲不也是一件很愉快的事嗎看
對於Python,筆者就不再詳細介紹了,只是推薦,具體選擇什麼語言,決定權還是在你手裡,無論是C語言也好,Python語言也罷,下面所介紹的學習方法都是適用的。
4.3>.學會使用搜索引擎:
之所以推薦使用搜索引擎的目的是培養更好的獨立解決問題的能力,通常來說,剛學編程時,可能我們有時候連使用什麼軟體作為編程環境都不知,或者下載安裝了編程環境卻不知如何使用,這時搜索就派上大用場了,跑到搜索引擎里輸入地xxx 使用教程地,結果就出來了,簡直太方便了。
而且,新人都喜歡加很多xx語言的編程群,而且大都是挑人多的加,一旦編程中出現了一點小錯誤,就立馬到群里提問,這是一個很不好的習慣,假如說群里有人在線,為你解決了這個問題,那麼你獨立解決問題的能力就降低了一分,假如沒人在線,你就可能面臨著等待,或者把問題放這,不去管它,這樣積累的後果你是知道的,最好的方式就是動用搜索引擎,不需要等待,還可以鍛煉獨立解決問題的能力,何樂而不為看還有一點,許多新人反應說許多知識搜索不到,我很負責任的說,不是搜索不到,是你不會使用搜索引擎,至少我現在在編程上還沒有遇到過搜索不到某個知識點的情況,對於搜索的使用技巧,如果你還不知道,去搜索吧。
總之,有問題,就要去搜索。
順便說句,加很多群不是一個好習慣,群里並不能讓你學到太多知識,他的功能在於能找到一群有共同話題的朋友,真實的情況是大多時間都在時一起閑扯一些與編程無關的話題。
4.4>.知道如何看書:
無論是電子書還是紙做的書,都會有頁碼(txt看當我什麼都沒說過),要做好學習的計劃,每天看多少頁看這倒不是,不要忽略目錄這個好東西,先認真看下一本書的前言和目錄,了解本書的知識點的分布,這樣有利於更快的融入這本書,然後按章節作學習計劃,按頁來你就不怕把一個知識點切成兩半看筆者看書時第一遍喜歡瀏覽,也就是走馬觀花的看,花一上午或一下午從頭把書悠閑的翻一遍,不求記住知識點,只求記住幾個名詞,知道書裡面有這些東西,給大腦一個模糊的印象。
從第二遍開始認真看,不放過任何一句話,碰到不明白的名詞,沒關系,搜索解決。看書要及時復習,推薦逗看五退三地(筆者自造的詞)式看書,也就是說一次看五頁,下次看書式再向後退回三頁,這樣可以起到很好的復習效果,遇到確實看不懂的地方,也不要停留太長時間,很有可能當你繼續向下看,再返回這個問題時,發現你已經可以理解了,這種情況很常見。
代碼是一定要親手調試一遍的,要親手輸入一個字元一個字元的輸入,不是機械的復制粘貼,復制粘貼的後果就是你自己感覺學的差不多都理解了,然後到你上機親手寫代碼時,要麼寫不出來,要麼一運行報錯一堆。所以,書上的每段代碼都要親自調試(再次強調:學編程,就必須得要親手實踐,不要想著走捷徑,捷徑在哪看有捷徑我早走了。)
對於代碼報錯,作為新手,正常的不能再正常的一件事,這里說兩點,注意單詞的拼寫錯誤和符號是不是在英文狀態下輸入的;還有就是堅持自己找出代碼錯誤,堅持,代碼報錯不求人,自己解決。
4.5>.要地像地個高手:
在寫這幾個字的時候我還是在擔心等等這句話會不會造成誤解,像個高手,並不是讓你打腫臉充胖子,而是一種激勵自己學習的一種方法,具體就是,要多幫助其他新人,幫助別人可以提高自己的話就不說了,在論壇或群,你可能遇到新人們各種各樣的問題,要麼代碼報錯自己檢查不出錯誤,或者想解決某個問題卻找不到方法等等,諸如此類的問題,如果你能解決,一定要記得解答一下,不斷這樣下去,你在你的圈子裡說話就會越來越有分量,別人也就更信任你的能力,正式由於這種信任,也漸漸使你背負上了一種高手的責任感,別人請教問題我能不會看即使出於虛榮心,我們也得不斷學習,維護我們在別人心中高手的形象,這樣也就達到了刺激自己不斷學習的目的。
但是需要記住幾點;
一:不要誤導其他新人,自己不確定的知識不要回答;
二:對於那些弱爆了的問題,你已經回答過很多遍了,如果別人沒指明讓你回答,那麼就把這個機會讓給別人吧,確實沒必要再在這些弱爆了的問題上浪費時間;
三:每天冒泡回答問題的時間不要過長,否則會影響到你的正常學習進度;
四:發現自己錯了就要勇敢承認,等高手出來吐槽時只會讓你更難堪,不要以為新手好忽悠,當新手有天成為高手時,他會記得當初是誰在挖坑讓他跳;
(悄悄告訴你:假如有人問題你確實不知道的知識,而你覺得這個問題你能解決的時候怎麼辦看咳咳、有點事,離開一下,一會再回答你。這時候,不用說了,抓緊時間去翻書、上網搜索,高手的形象不能丟哇!)
4.6>.需要具備的態度:
–①:恆心看專注看相信自己看每當看到有人告訴新人學習方法講要有恆心,要學會堅持不懈之類的我就想吐槽,做什麼事不需要這樣的態度看編程,要有激情,要有想像力,不局限於書本上的知識點,大膽實驗,嘗試把已經學習的話知識點組合成新的知識點,就拿C語言的鏈表來說,幾乎所有的C語言入門書都把鏈表作為單獨的一個知識點,如果說所有的書都取消鏈表這個知識點,當你學完指針、結構體、再告訴你malloc函數的用法,你能想到可以組合成鏈表這有趣的知識點么看
–②:學會穩定自己的情緒,當在論壇或群意見不合,或者有人無理取鬧時,不要動怒,立即潛水,因為沒必要動怒,誰對誰非,旁觀者自然能看到,有個詞,叫冷暴力。
人往高出走,盡量和高手混在一起,盡管在高手眼裡你可能會僅僅是個菜鳥,但這樣做確實有利於你提高自己,有壓力才有動力。需要叮囑一點:永遠不要指望技術大牛經常出現在xx群,高手在哪裡看高手多半都在寫程序,會有時間泡群看
筆者的閱歷,暫時只能提出這么多建議了,不管建議是好是歹,也算是表達出了心中一直想對新同學們想說的話,所有準備踏入編程這片天空的同學,祝你們學習愉快,早日實現心中的那份夢想。
最後,引用《黑客防線》上的一句話,作為本篇文章的結束語,這句話我一直記在心中:程序員是值得尊敬的,程序員的雙手是魔術師的雙手,他們把枯燥無味的代碼變成了豐富多彩的軟體。
Mr.Wid
❺ 程序員久了,會很敏感,因為小事煩躁,怎麼回事
程序員的煩躁來源於壓力。程序員缺少宣洩情緒的出口,每天基本都是在處理問題,面對工作、生活各方面的壓力,沒有很好的疏解途徑,造成了心理負擔