有什麼好的習慣和工具可以幫助程序員提高工作效率?


工作快滿一年了,一直在思考這個問題,打算寫篇博客,現在這裡回答整理下思路吧:

核心思想,來自《卓有成效的程序員》: 鍵盤話你常用的操作和工具,盡量只用的鍵盤!

so,根據這個中心思想,我目前有如下一些想法:

  1. 查找:這是一類通用問題,可以理解為
    1. 查找文件:Everything,感覺很好用,制定好快捷鍵後基本不用再打開我的電腦了;
    2. 查找源代碼:SourceInsight+Grep, 這兩個工具可以直接搞定90%的代碼查找任務;
  2. 程序編寫/查看:
    1. 編輯器:windows下用GVIM以及vim plugin for vs,linux當然是vim;
    2. 小程序,寫了編扔的,例如要求對一個文件某些行做一些正則操作啊,以及多文件等,這些東西不必要用C#/C++等,直接AWK搞定;
    3. Notepad++作為查看文本是GVIM的良好補充;
    4. 工具箱,推薦GNUWIN,當然windows下的powershell也是很強大的;
  3. 熟悉工作環境的快捷鍵,例如我的環境是windows:
      1. win鍵+E:打開我的電腦;
      2. win鍵+R:打開運行窗口;
      3. win鍵+數字:切換任務欄上對應的程序;
      4. win鍵+向上箭頭:最大化當前窗口(向下最小化窗口);
      5. win鍵+左箭頭:窗口最大化到屏幕左側(類似可用右箭頭);
      6. win鍵+P:選擇演示模式(投影燈);
      7. win鍵+shift+向左(右):將窗口從一個監視器移到另外一個監視器;
      8. Alt+Tab:切換程序;

      暫時這些,繼續思考和尋找中,不斷提高效率和不做重複的事情,是程序員的天性,也是思考的好機會:)


多查英文資料


專註工作不超過3個小時


每天開始工作前列個任務列表,我習慣早上先從軟柿子開始捏,吃完午飯再和最難搞的死磕。

做事前(敲代碼前)把思路捋順了再敲

代碼敲不出了就回郵件去

但我一直覺得吧,成為瓶頸的一定不是敲代碼的速度而是思考的速度。


工具這一塊主要是個輔助,關鍵的還是自己能合理安排自己的時間,整理好自己的碎片時間能做很多事情,工作效率一方面是合理安排,另一方面是保持一個良好的心態工作,愉悅的心情能讓你的工作事半功倍。

個程序員,平時關注的就是跟編程開發相關的一些東西。

問題

平時有問題解決不了就去CSDN問,那裡有很多大牛,還有一些源碼,不過是要金幣的。

sdk服務

要是找sdk服務的話我就去DevStore,集成了從設計開發到運維服務的一系列服務,很方便,還有SDK配置過程和服務評測,相同功能的氪對比選擇,很實用。

新聞

平時關注新聞的話我會看鳳凰,新浪,IT之家,都是很好的新聞平台關注最新的互聯網時事新聞。

看書報
的話,是《程序員》和《電腦報》,都是很專業的,很不錯。

存儲

雲盤是很好的選擇,不用隨身攜帶,只要能上網就能找到自己所需要的東西,方便快捷。

訂閱

郵件的整理和信息的和搜集都會放在郵箱里,但是郵件的查看又是一件很繁瑣的事情,rss訂閱能解決你去一個一個網站上找信息的麻煩。


工欲善其事,必先利其器。所以,要在項目之前做足工夫;磨刀不誤砍材工。所以,我們又不能使用工作的時間來學習,實際上,工作的時間總讓人覺得不足。其實,軟體行業的加班文化是有其根源的,程序員花了大量時間來解決難題,而項目完成之後就把它一扔。下一個項目只是再次做這個循環而已。


intellij idea


斷網


機械鍵盤 + vim


1.lastpass管理密碼

2.ss+google+github

3.autofill填寫測試表單

4.有道雲筆記/印象筆記/為知筆記

5.segmentfault不懂就問

6.vps+amh快速搭建自己的測試平台

7.navicat用SSH通道遠程登錄免去phpmyadmin的煩瑣

8.寫項目前先用xmind畫個草圖

想到了再補充......


有個小軟體,能夠通過編程來解決日常中一些重複性的操作:https://github.com/name5566/merry


1 思想和模式,軟體工程。多讀書吧。

2 svn git等版本管理工具。

我不太會vim不會emacs,用好這些工具用好鍵盤確實能大幅提高局部最優工作效率,但是我覺得最關鍵的並不是這些工具,軟體工程上的東西才是大道。


win下開發兩年多,IDE一直是vs系列。

1.搜索工具:everyting。

記得在小眾軟體上看過關於它的變形版,覺得個人搜索使用用它足夠了。支持基本正則,很方便。

2.文件夾管理工具:clover。

多文件夾集成,支持文件夾書籤。類似並且高級的有QDir和Total Commander,個人覺得這兩個有點功能太多,反而反鎖。我使用clover有個習慣用法是將桌面保存成書籤,這樣雙屏操作的時候省去了一鍵返回桌面另一個屏幕的東西也被隱藏的苦惱。

3.文本編輯器:

(1)xml csv txt使用notepad++。

個人覺得notepad++查看xml比較合理。搜索功能也還可以。不過和UE相比,看個人喜好吧。

(2)log文件和超大文件使用emeditor。

我用的也是基本功能,基本功能和notepad++很類似,包括快捷鍵。但是它有個巨大的好處,就是打開大的文本文件不會卡死,且速度快。從此,打開200多M的log再也不愁了。

(3)看小程序,自己寫demo結構使用sublime text。

答主14年用vs10,16年又用vs08,都是一把辛酸淚,看網上的代碼或者自己這個偽代碼還是習慣sublime text這樣的編輯器,字體配色,很舒服。

4.必應詞典:

答主英語四級447分的選手,大部分辭彙都靠它了。而且同行們得承認,tnnd,很多辭彙不查詞典,你真的推測不出真實的含義。另外,靈格斯詞庫太老了,金山的劃屏取詞關不了,有道詞典的默認快捷鍵竟然F8被佔用,不能忍。而且必應詞典的網路釋義做的真不錯很有用。

5.印象筆記:

配圖是比較老的版本了。現在的最新版界面比這個友好很多。

說一下印象筆記的幾個優點吧:(1)一鍵格式化所有文件-&>快捷鍵:ctrl + shift + space。(2)一鍵格式化代碼,超級贊!-&>快捷鍵:ctrl + shit + l。(3)截圖隨便粘貼。(4)很贊的,谷歌瀏覽器插件,直接保存網頁內容到筆記!(5)-&>-&>我唯一的付費軟體,一個會員一年96塊,每個月有1個G的雲空間,各種怕丟的文件類的東西都肆意的網上放了。

其實核心問題就是,隨時隨手整理,進行分類、備份,告別格式化很重的word,同時隨時隨的保存網頁,告別瀏覽器書籤。

當然,有同行可能會說有道筆記和為知筆記。這個仁者見仁智者見智吧,我覺得自己習慣就好。

6.雜項:

(1)vista switch,針對win自帶快捷鍵alt + tab的一個插件,單屏幕使用比較方便,從使用雙屏幕工作後就卸載了。

(2)altRun,快捷鍵是alt + r,可以自定義快捷啟動,快捷路徑,有了clover之後,這個也就廢棄了。不過使用起來還是不錯的。

(3)listview,功能很強大,但是答主喜歡everything,而且覺得listview在附加進程的時候影響我的操作習慣,所以廢棄了。

(4)虛擬桌面,如果電腦內存在開發模式下也很充足的話可以使用,但是內存不足的話就算了。

7.為了尊嚴:

機械鍵盤。

講真?茶軸的cherry確實在打字較多的時候比較舒服,其他的並沒太大感覺。

一年那麼多天摸著這個鍵盤,我們被稱為屌絲,買個好點的鍵盤,為了自己內心的所謂的尊嚴吧。

番外篇:針對everything和必應詞典的兩個系統級快捷鍵,everything-&>alt + f。必應詞典-&>alt + q。大家可以嘗試自我感受下,我覺得很方便。都是快捷開啟關閉的。我是不會告訴你們,alt + w的快捷鍵我給了微信的。這也是我很喜歡這兩個工具的原因。

說明:

以上工具就是一個windows程序員的習慣,沒有軟廣,也沒有討論「」php是最好的語言的意思「」。

聲明:圖片均來自百度,侵刪。


我大程序猿日理萬碼,沒有鐵打的的身子,哪能鎮住產品汪和女漢子。最根本的提升效率方法就是保證精力充沛,no no no,你需要的不是紅牛,是習慣性的身體練習。

當然,你要罵我了:我大程序猿泡妹子的時間都用來寫碼了,你丫讓我練習身體?

摸勻了臉上的口水,我會這麼回答:首先,你穿跑步鞋上班,越貴越好。然後,一定走出公司吃飯,往遠里走。第三,下午6點到公司健身房跑十分鐘,吃個飯再回去加班(淚目)。


因為你的問題裡面有「程序員」的限定,那麼我說一下程序員工具的使用。你需要選擇一個適合你的,並且不斷熟悉各種功能,技巧和提高效率。

比如,編程的時候需要一個編輯器,我從一開始選擇Vim,先學會基本的命令,慢慢發現需要查找函數/變數的定義,調用關係,就結合ctags和cscope一起使用。然後我發現需要快速定位到文件的不同位置,就學習了Vim大範圍移動的一些高級技巧。然後我發現需要高亮標籤等等功能,就增加了一些插件。同時,學會了mX和『X的快速打標籤和移動到標籤的功能。後來發現需要列編輯的功能,就研究和掌握了一些Vim的列編輯功能。堅持用了幾年Vim,感覺越來越順手,工作效率也得到了很大提高。


Vim,Windows 開發visio studio有插件,Mac上用Xvim


建議您使用辦公管理軟體

將工作新建為魚骨任務設置任務完成時間 魚骨會通知您按時完成任務

任務協作

協作工具+管理工具

目標管理,結果導向

用任務驅動內部協作,區別於郵件和聊天群

隨時分派任務給同事、查看自己分配的任務進展情況

任務數據是員工績效考核的依據

項目管理

— 協同式項目管理,項目經理創建項目任務,項目成員按時更新任務進展,大幅度減少項目經理的協調工作,項目成員可查看項目整體進展,信息同步,減少溝通成本。

— 企業可自定義項目的分類,進展,狀態

— 支持項目的立項,結項審批

— 投影模式用於項目會議

敏捷開發——產品、研發、測試整體化協作工具

產品看板

歸集產品、運營需求,支持按業務優先順序提交研發、定義產品版本和版本需求,記錄版本發布歷史,分階段多泳道管理Story、分Sprint管理研發任務,Bug高效集中管理。

Story看板

進入研發的需求(Story)待辦(Backlog) 可自定義研發階段、泳道、衝刺 ( Sprint )周期,還可自定義看板任務卡片展示內容。

Task看板

當前衝刺 ( Sprint )的需求 (Story)管理 快速拆分研發任務到項目成員

負責人看板

查看成員工作狀況 快速調整任務分配

還有日程管理、文檔管理、即時通訊、同事圈、財務審批、人事行政等……

歡迎試用!好用的任務管理,項目管理和敏捷開發軟體,提升企業執行力!


eclipse 集成cdt jdt pde subversion git 作為編程環境, 編程環境就像上面說的,盡量使用鍵盤搞定,不要使用滑鼠,各種操作盡量使用快捷鍵。

使用xmind 來管理思路, 對於一個熟練的程序員,瓶頸確實不是敲擊代碼的速度,而是思考的速度或者說你設計的速度以及設計的好壞。


找一個順手的編輯器。品牌、能力不限,唯一一個必須的:在絕大多數情況下可以全鍵盤操作。

滑鼠操作是打斷思路的罪魁禍首。


感覺這和 如何戒煙?怎麼樣減肥?是一類問題,還是靠個人毅力。


推薦閱讀:

如何高效練習吉他爬格子基本功?
為什麼政府機關至今無法實現無紙化化辦公?
Tim Cook 是怎麼做到早晨三點起床,然後以飽滿的精力持續工作一整天的?
在人生的任何時候(尤其是年輕時)都要儘力做到自律/高度自律嗎?

TAG:程序員 | 軟體開發 | 習慣 | 編程語言 | 效率 | 程序 |