I've only recently come out of my burnout, despite it happening years ago. It sucks. It sucks bad. But looking back, I can see many of the causes crystal clearly, that weren't so apparent at the time. Here's a list:
Let's face it. Business wants you to make the best product you can "for our customers". You put off fun features for the sake of missing a deadline. You plan and analyze and break a project into sets of deliverables that then must be coded by a monkey (you). You demo it, gather feedback, iterate. All without thinking anything for yourself.
But newsflash: you started programming because you thought it was fun, why not keep programming because it's fun? Take that little extra time to put in a feature you want. Challenge yourself a little bit in doing something you didn't think you could. Show it to everyone you know, and don't just ask for feedback, but brag about what you've done.
You know Docker? It sucks. Who would trust their production environment to a new, unstable, toy. Go? Do I look like I want to write every library myself? Everything I need is already in PyPI. This project I'm working on is so caught up in office politics, it's never going to work. Jenkins? 2008 wants their tech back.
It's really easy to fall into the "being critical" trap. It's easy to tell other people what the "wrong" choice is. I imagine it's because as software engineers, our job is so find faults in our applications and fix them. And if we don't find them, someone else finds them for us.
But I don't think we need to be negative about our job, decisions that are being made (even if it's not our decision) and what we're working on. Some of the best projects I've worked on worked out that way because we had a great, positive team. We enjoyed showing up every day to work, told each other when we did awesome things, held back heavy-handed criticism and phrased it in a productive manner.
So you're an uber expert in Java + Spring + Hibernate. Nobody can touch your python skillz. Every personal project you do should be in these, because all that matters is the business side of things, right?
Wrong.
While it definitely makes good business sense, you should prototype, play around, and become an expert in new tech, even if it's unvetted. While this might seem like obvious advice (it's repeated alllll the time), it becomes a lot harder to do as you grow more experienced.
Otherwise known as "chasing butterflies". Getting bored with what you're working on? Have an itch? Time to dust off that resume!
This is bad, bad, bad.
When you have several short employments, it can usually help boost your salary quite a bit, but you are robbing yourself of:
So how do these contribute to burnout? Your career stagnates, you don't develop your skills as deeply (only breadth), people dont trust you'll stay employed for a while, and you're constantly having to prove yourself.
"You don't have to work a lot of hours, but some people choose to." You want to impress your boss. Hell, you want to impress yourself. So you go die-hard to meet an impossible deadline. You delivered the project on time, with all the extra features you wanted. You are the hero. High fives all around. And if you're lucky, you'll get that bonus.
That's great the first time. But how about the second. And the third. It's a bomb, and you dont know how short the fuse is.
In short, it's easy to burnout. Do these 5 things, and you can burnout too.
1.鍦╢inder涓嬶紝copy eclipse鐩綍涓嬬殑Eclipse.app(鍦╢inder閲屾槸鐪嬩笉鍒癮pp榪欎釜鍚庣紑鍚嶇殑錛屽繀欏葷敤Command+i錛屾墠鑳界湅鍒拌繖涓悗緙鍚?鏂囦歡鍒?#8220;搴旂敤紼嬪簭”
2.鐒跺悗錛岀偣鍑誨彸閿紝閫夋嫨“鏄劇ず鍖呭唴瀹?#8221;
3.淇敼eclipse.ini鏂囦歡
淇敼鏂囦歡鐨勫紑澶撮儴鍒?/p>
鍘熷鍐呭涓猴細
-startup ../../../plugins/org.eclipse.equinox.launcher_1.3.0.v20130327-1440.jar
--launcher.library ../../../plugins/org.eclipse.equinox.launcher.cocoa.macosx.x86_64_1.1.200.v20130521-0416
淇敼鍚庣殑鍐呭涓猴細
-startup /Users/johnny/work/eclipse/plugins/org.eclipse.equinox.launcher_1.3.0.v20130327-1440.jar--launcher.library /Users/johnny/work/eclipse/plugins/org.eclipse.equinox.launcher.cocoa.macosx.x86_64_1.1.200.v20130521-0416
鎴憁ac鐨勭敤鎴峰悕johnny錛屽湪鎴戠殑鐢ㄦ埛鍚嶄笅鏈変釜work鐩綍錛屾垜鎶奺clipse鐨勫師濮嬬洰褰曟斁鍦╳ork涓嬮潰銆?/p>
榪欐牱灝卞彲浠ュ湪“搴旂敤紼嬪簭”涓嬶紝鍚姩eclipse浜?/p>
@import url(http://www.tkk7.com/CuteSoft_Client/CuteEditor/Load.ashx?type=style&file=SyntaxHighlighter.css);@import url(/css/cuteeditor.css);
from:
濡傛灉浣犳兂浠庡埆鐨?Git 鎵樼鏈嶅姟閭i噷澶嶅埗涓浠芥簮浠g爜鍒版柊鐨?Git 鎵樼鏈嶅姟鍣ㄤ笂鐨勮瘽錛屽彲浠ラ氳繃浠ヤ笅姝ラ鏉ユ搷浣溿?/p>
1). 浠庡師鍦板潃鍏嬮殕涓浠借8鐗堟湰搴擄紝姣斿鍘熸湰鎵樼浜?GitHub銆?/p>
git clone --bare git://github.com/username/project.git
2). 鐒跺悗鍒版柊鐨?Git 鏈嶅姟鍣ㄤ笂鍒涘緩涓涓柊欏圭洰錛屾瘮濡?GitCafe銆?/p>
3). 浠ラ暅鍍忔帹閫佺殑鏂瑰紡涓婁紶浠g爜鍒?GitCafe 鏈嶅姟鍣ㄤ笂銆?/p>
cd project.git
git push --mirror git@gitcafe.com/username/newproject.git
4). 鍒犻櫎鏈湴浠g爜
cd ..
rm -rf project.git
5). 鍒版柊鏈嶅姟鍣?GitCafe 涓婃壘鍒?Clone 鍦板潃錛岀洿鎺?Clone 鍒版湰鍦板氨鍙互浜嗐?/p>
git clone git@gitcafe.com/username/newproject.git
榪欑鏂瑰紡鍙互淇濈暀鍘熺増鏈簱涓殑鎵鏈夊唴瀹廣?/p>
錛?鑷姩淇濆瓨鍔熻兘
濡傛灉浣犲凡緇忎慨鏀逛簡涓涓枃浠訛紝浣嗘槸榪樻病鏉ュ緱鍙婂瓨鐩樹綘鐨勮綆楁満灝辯艦宸ヤ簡錛岄偅涔堜綘鎵鍋氱殑淇敼灝卞緢鍙兘浼氫涪澶便備負浜嗛伩鍏嶈繖鏍風殑涓嶅垢鍙戠敓錛孍macs 浼氬畾鏈熷皢姝e湪緙栬緫鐨勬枃浠跺啓鍏ヤ竴涓?#8220;鑷姩淇濆瓨”鏂囦歡涓傝嚜鍔ㄤ繚瀛樻枃浠剁殑鏂囦歡鍚嶇殑澶村熬鍚勬湁涓涓?#8220;#”瀛楃錛屾瘮濡備綘姝e湪緙栬緫鐨勬枃浠跺彨“hello.c”錛岄偅涔堝畠 鐨勮嚜鍔ㄤ繚瀛樻枃浠跺氨鍙?#8220;#hello.c#”銆傝繖涓枃浠朵細鍦ㄦ甯稿瓨鐩樹箣鍚庤 Emacs 鍒犻櫎銆?br />
鎵浠ワ紝鍋囧涓嶅垢鐪熺殑鍙戠敓浜嗭紝浣犲ぇ鍙互浠庡鍦版墦寮鍘熸潵鐨勬枃浠訛紙娉ㄦ剰涓嶆槸鑷姩淇濆瓨鏂囦歡錛夌劧鍚庤緭鍏?M-x recover file<Return> 鏉ユ仮澶嶄綘鐨勮嚜鍔ㄤ繚瀛樻枃浠躲傚湪鎻愮ず紜鐨勬椂鍊欙紝杈撳叆 yes<Return>銆?/p>
錛?鍏朵粬
浜屻乪macs緙栬緫鍣ㄧ殑鐣岄潰
1. 緙栬緫鍖?br />
鐢ㄦ潵榪涜鏂囨湰緙栬緫鐨勫尯鍩熴?/p>
2. 鍥炴樉鍖?br />
濡傛灉 Emacs 鍙戠幇浣犺緭鍏ュ瀛楃鍛戒護鐨勮妭濂忓緢鎱紝瀹冧細鍦ㄧ獥鏍肩殑涓嬫柟縐頒負“鍥炴樉鍖?#8221;鐨勫湴鏂圭粰浣犳彁紺恒傚洖鏄懼尯浣嶄簬灞忓箷鐨勬渶涓嬮潰涓琛屻?/p>
3. 鐘舵佹爮
涓夈乪macs鎵鑳芥彁渚涚殑宸ヤ綔鐜
emacs鎵鎻愪緵鐨勮繖浜涘姛鑳斤紝閮芥槸鍏堝敜璧蜂唬琛ㄦ鍔熻兘鐨勬ā寮忥紙mode錛夈俥macs鐨勬ā寮忥紝鍒嗘垚涓昏妯″紡錛坢ajor mode錛変笌嬈¤妯″紡(minor mode錛夈傛瘡涓嬈″彧鑳戒嬌鐢ㄤ竴涓富妯″紡錛岃屼笖涓繪ā寮忔槸蹇呴』瑕佺殑銆傚湪涓涓富妯″紡涓嬶紝淇勫彲浠ユ惌閰嶄竴涓互涓婄殑嬈¤妯″紡銆備嬌鐢ㄦ瑕佹ā寮忕浉褰撲簬鍚敤浜嗚嬈¤妯″紡鎵瀵瑰簲鐨勬彃浠躲?/p>
鍥涖乪macs鍛戒護
錛?鍩烘湰鍏夋爣鎺у埗
錛?緙栬緫鍛戒護
錛?鏌ユ壘涓庢浛鎹?/p>
錛?鏂囦歡鎿嶄綔
錛?緙撳啿鍖?/p>
錛?紿楀彛
Emacs 鍙互鏈夊涓獥鏍鹼紝姣忎釜紿楁牸鏄劇ず涓嶅悓鐨勬枃瀛椼?/p>
錛?浣跨敤甯姪
錛?鍦╡macs涓繍琛宻hell鍛戒護
錛?Dired鍔熻兘
錛?emacs閰嶇疆鏂囦歡
emacs閰嶇疆鏂囦歡閫氬父浣嶄簬璁$畻鏈虹殑 $HOME 鐩綍錛屽鏋滄槸 MS Windows (Windows 2000, Windows XP浠ヤ笂)錛岄粯璁ゆ槸 c:\Documents and Settings\username\Application Data\錛岃繖涓傜敤浜?Emacs22 浠ヤ笂鐨勭増鏈侲macs21 榛樿鐨?$HOME 鐩綍鍦?C:\ 銆傚綋鐒朵篃鍙互閫氳繃鐜鍙橀噺 $HOME 閲嶆柊璁劇疆錛屾諱箣鍦ㄦ瘮杈冨ぇ浼楀寲鐨勬搷浣滅郴緇熶腑錛屼綘閮藉彲浠ラ氳繃C-x C-f ~/.emacs 鏉ョ紪杈戞偍鐨勪釜鎬у寲閰嶇疆鏂囦歡銆?/p>
rectangle(鍒?妯″紡緙栬緫 鍜宔macs shell錛堟憳鎶勶級
涓嶆暍鐙韓錛屼笌澶у鍒嗕韓銆備篃鍙互鍦‥macs涓敤C-x C-h鍒楀嚭鍏ㄩ儴鍛戒護錛屾煡鎵綜-x r c錛屾墍鏈夊垪妯″紡鍛戒護閮芥槸浠-x r寮濮嬬殑
C-x r C-@ point-to-register
C-x r SPC point-to-register
C-x r + increment-register
C-x r b bookmark-jump
C-x r c clear-rectangle
鍏堢敤C-space鎴栬匔-@璁句竴涓猰ark錛岀Щ鍔ㄥ厜鏍囧埌鍙︿竴鐐癸紝浣跨敤C-x r c鍙互娓呮mark鍒板厜鏍囧鐨勭煩褰㈠尯鍩燂紝璇ュ尯鍩熺暀涓嬬┖鐧姐?br />
C-x r d delete-rectangle
鍒犻櫎鐭╁艦鍖哄煙錛屼笉鐣欑┖鐧斤紝鍚庨潰鐨勫瓧絎﹀墠縐?br />
C-x r f frame-configuration-to-register
C-x r g insert-register
C-x r i insert-register
灝嗘煇涓瘎瀛樺櫒鐨勫唴瀹規彃鍏ユ煇澶?br />
C-x r j jump-to-register
C-x r k kill-rectangle
灝辨槸鍓垏鏌愪釜閫夊畾鐨勭煩褰㈠尯鍩燂紝鐢–-x r y鍙互璐翠笂
C-x r l bookmark-bmenu-list
C-x r m bookmark-set
C-x r n number-to-register
C-x r o open-rectangle
鍦ㄩ夊畾鐨勭煩褰㈠尯鍩熸彃鍏ョ┖鐧?br />
C-x r r copy-rectangle-to-register
灝嗛夊畾鐨勭煩褰㈠尯鍩熷鍒跺埌鏌愪釜瀵勫瓨鍣?br />
C-x r s copy-to-register
C-x r t string-rectangle
鍦ㄩ夊畾鍖哄煙鎵鏈夊垪鍓嶆彃鍏ュ悓鏍風殑瀛楃
C-x r w window-configuration-to-register
C-x r x copy-to-register
C-x r y yank-rectangle
綾諱技浜庣煩褰㈠尯鍩熺殑綺樿創錛屽氨鏄皢鍒氱敤C-x r k鍓垏鐨勭煩褰㈠尯鍩熺矘璐磋繃鏉?br />
C-x r C-SPC point-to-register
鎽樿嚜錛?a href="link.php?url=http://chandlewei.blogbus.com/logs/15583440.html">http://chandlewei.blogbus.com/logs/15583440.html
鍦?Emacs 閲岄潰鍚屾椂鎵撳紑澶氫釜 shell 浼氳瘽錛?br />
閫氳繃閲嶅懡鍚峴hell鎵鍦ㄧ紦鍐插尯鐨勫悕瀛楀彲浠ュ紑鍚涓猻hell
E-x shell
E-x rename-buffer shellA
E-x shell
榪欐椂灝卞紑鍚簡涓や釜涓嶇浉騫茬殑shell錛歴hellA 鍜?shell*
涔熷彲浠ラ氳繃鍏朵粬鏂瑰紡鏉ュ紑鍚痵hell錛屼緥濡傦細
1. M-x eshell 寮鍚疎macs Shell
2. M-x term 寮鍚痩inux緇堢錛屽彲浠ユ寚瀹氫綘瑕佺殑緇堢SHELL銆備絾鏄繖涓彲鑳戒細鎷︽埅浣犵殑EMACS鍛戒護銆?br />
鏁寸悊浣犵殑灞忓箷錛?br />
閫氳繃C-c C-o鍙互娓呴櫎涓婃鍛戒護鐨勮緭鍑猴紝鐗瑰埆鏄浜巆at鎴杁mesg榪欑浜х敓澶ч噺杈撳嚭鐨勫懡浠ゃ?br />
璇︾粏鏂囩珷錛?a href="link.php?url=http://www.ibm.com/developerworks/cn/aix/library/0811_yangbh_emacs2/index.html">http://www.ibm.com/developerworks/cn/aix/library/0811_yangbh_emacs2/index.html