『壹』 程序員都有哪些強迫行為
來源:知乎
程序猿可能是所有工種當中強迫症最多的群體,由於一個不經意的大小寫字元疏忽或者空格字元的差異,都可能導致嚴重的BUG或程序失敗,所以很多程序猿在工作當中慢慢養成了近乎偏執的編程習慣,也就是強迫症。程序猿都會有哪些常見的強迫症行為?今天,小慕就帶大夥兒來梳理一下,看看你有沒有中招!
1、注釋變態
注釋一直以來都是一個最具爭議性的編程問題。有人認為要有清晰的注釋,有人認為好的程序是自解釋的,無需注釋。對大多數程序猿來說,除了遵循公司的注釋標准,通常僅僅在特別重要或者不好理解的語句上才會注釋。但是總有那麼兩種牛掰的人,一種是在每個可注釋的地方都有注釋,另一種就是在任何時候都不寫任何注釋,你問他為嘛這樣,他會輕描淡寫地來一句「我習慣了」,好吧,習慣與強迫症不分家。
2、字體強迫症
小慕曾經見過一個程序猿,由於長時間的編程生涯,患上了編程字體強迫症。每次看到別人的代碼總會欠揍地用他那大碴子味十足的口音來這么一句:「哎喲~看的我兩眼昏花啊,你能換個好看點的字體嗎?」對編程字體有著超強悍偏執的強迫症傾向――必須把每個編輯器、終端的字體調節成他自己喜歡的Monaco字體才能安心編程,所以無論是在mac還是windows編程,他首先要做的第一件事情就是替換字體。Emmmmm這確實是件非常重要的事,因為小慕也是這樣的人??.
3、IDE聖戰
江湖沒有爭斗的話還叫江湖嗎?還會有大蝦出現嗎?使用什麼樣的IDE,可能是與編程人士交流最危險的話題。這里Vim黨、emac黨、VS黨、IntelliJ IDEA黨、Sublime黨甚至還有notepad黨,可以說是熱鬧非凡。
選擇什麼樣的IDE已經成為程序猿們的一種信仰,你可以鄙視我的編程,但你不能侮辱我選擇的IDE,等等,背景還得再調成我喜歡的顏色。如果你不是一個隨便的人,如果你必須使用某種已經習慣的IDE才能安心做碼農,小慕恭喜你,你已經踏進強迫症大門,成為IDE聖戰江湖裡一名忠誠的勇士了!
4、空格強迫症
如同男孩子從小到大都在女孩堆兒里玩,長大後容易變成婦女之友一樣,如果你寫Python程序寫的多了,很有可能會患上空格強迫症,以致於在寫任何其他語言程序的時候,都喜歡把縮進由TAB換成空格。其實在除了Python之外的大多數語言里,兩者是可以通用的,不過在接觸Python以後,他們更喜歡用空格。
5、不斷的beautify code
完美主義者,Beautiful code強迫症,每隔一分鍾就使用編輯器的格式化代碼功能美化代碼;總覺得還可以用更好的代碼,不斷地推翻已有成果從頭來過。狂熱的完美代碼愛好者,如果沒有滿意的代碼,整個項目就無法往前推進,為了這點兒追求,熬夜趕項目進度幾乎是這類程序猿的常態。「看成敗人生豪邁,只不過是從頭再來」就是他們的激勵之歌。
小慕一直覺得完美主義沒有錯,如果一定要說有錯,那就是過於追求完美導致的拖延症並發症!如果你是個視金錢若糞土的程序猿,可以忽略工資的存在(因為總是拖延項目進度,被BOSS扣光了),小慕支持你在代碼的江湖登峰造極,令狐沖不就是憑借一套獨孤九劍獨步武林、娶了江湖美女任盈盈嘛,你一定會更強!
6、不斷手動CTRL+S
曾經寫代碼過程中斷電或者系統崩潰,好不容易寫的代碼功虧一簣,從此留下後遺症,極其沒有安全感:總是擔心萬一系統崩潰怎麼辦,萬一斷電怎麼辦,設置成每隔10S就自動保存,在寫任何長一點的代碼的時候,包括網頁,都會下意識地使用CTRL+S手動保存。這沒毛病,可問題是必須按三次CTRL+S才能安心!一段代碼下來,無數次CTRL+S,堪比曾經被學校老師忽悠著買的復讀機啊!這可真是就算是自帶保存功能的編輯機器都無法拯救的強迫症!
7、專屬背景強迫症
如果一個程序猿買衣服一直買黑色的,配飾是黑色的,使用的物品也是黑色的,那麼他的IDE的背景一定也是黑色的。除了黑色背景,他會找不到寫代碼的狀態。所以,好多程序猿在寫任何代碼之前,一定要把任何IDE的背景調成專屬的背景色才可以,一點點色差都不行。其實,不僅程序猿,很多人也都這樣的症狀吧?電腦桌面壁紙只覺得現在這張最好看,換了電腦也要把電腦桌面壁紙換成自己習慣的,這也是背景強迫症的表現。
8、多餘空白不能忍
代碼一定要美觀,不能有不相關的因素出現,包括空白。看著別人發過來的代碼,內心無比痛楚糾結,暗暗叫罵,「怎麼會有這么多空白?寫代碼的程序猿在想什麼?」必須移除多餘空白才能滿意。雖然不移除對程序沒啥影響,但對心情有極大影響。這樣的習慣絕對是完美強迫症的一種,不要狡辯,狡辯就是掩飾,掩飾就是事實,強迫症的帽子你戴定了,沒有商量的餘地。
9、嚴格遵循80欄字元限制強迫症
不能容忍任何一行語句的長度超過80字元限制,如果顯示器的分辨是2k的,也不能容忍編輯器後面有大量的空白。這種大屏幕電腦高解析度電腦顯示器,一行可輸入的字元數遠高於80字元時,那對這些程序猿簡直就是地獄般的折磨;在語句長度不超過80字元與不能有太大留白之間百般糾結,千方取捨,萬般痛苦地做決定。即便某些情況下分行存在技術難度,也執著的尋求解決方案,永遠相信自己一定能夠找出解決方案。
其實,在程序猿的世界裡,有強迫症都很正常啦,適度適量的強迫症是工和嚴謹的表現,是在與Bug的長期斗爭中而形成的,甚至程序猿們可以驕傲地高聲呼喊,沒有強迫症的程序猿不是好程序猿。
不過話又說回來,有些強迫症益於工作,也有些會拖累工作,取捨適當方是完美的關鍵,這其中火候的把握可以說是一門需要自己慢慢探索的一門藝術了。
『貳』 程序員的工作和生活狀態是什麼樣的
這個按照個人能力和公司的要求不一樣,活的也就不一樣。有的人比較拼,敢於承擔更多的責任,那麼就在辦公室的時間比較長。有的人愛玩/有家等等原因,就沒有那麼多時間放在工作上了。除此之外,還取決於你對工作的態度。有的人拖延症嚴重,那麼就是每天加班在趕白天沒有做完的工作;有的人沒有拖延症,那麼在順利的情況下總能給自己留出不短的時間,看你怎麼分配。畢竟項目經理在預估研發周期的時候,都不是卡的很死,會給很多不可預料的事情留出一定的額外時間。下面舉三個例子
同事A研發Leader
項目組內所有的關鍵節點基本都是交給他做的,家裡兩個孩子。基本都能按時完成所有工作,去年還抽時間考了項目管理師。從來沒有由於個人原因拖延過整體的項目計劃。今年公司級優秀員工。
同事B研發轉項目經理
本科剛畢業三年,單身。做事認真,身兼數職,基本上和他能有點關系的,他最後都會成為事情的主導。同時作為一個90後,去年一年他看了50多部電影,我們公司附近所有的大小餐廳都去吃過,公司羽毛球隊的主力。業餘生活十分豐富多彩。
同事C測試
研究生畢業4年,單身,妹子。做事幾乎沒啥激情,工作僅處於能夠完成的階段,4年內基本沒有看到什麼成長。業余時間也沒有什麼可以說的,以宅為主。之前曾經和經理商量是不是再招一個測試替換她。這是三個同事。實際上,同事C的事情的空間性是最大的。但是實際上她的工作完成度在我們看來是最差的。而A和B的工作壓力非常大,但是很多事情並沒有落下。所以,程序員的日常生活與工作是什麼樣的,看你對待生活的態度。在這件事上,和別人無關。
『叄』 為什麼很多程序員都喜歡熬夜,而且感覺在後半夜工作效率異常高
不管我是不是程序員做什麼工作也好,其實我都是個夜間活動物種,夜貓子一個,可能是大學期間通宵習慣了,白天沒有精神,只要是到了晚上12點就精神百倍,兩眼發光的這種,我相信很多小夥伴都跟我一樣吧。
『肆』 編程究竟難在哪
1. 難在思路的構建
你學了很多語法,很多 API,但是當給你一個實際問題,讓你通過編程實現,不是簡單地羅列 API 即可完成,而是需要你對問題進行分析,理清解決問題的邏輯,然後再通過各種演算法、數據結構和 API 等進行編程實現。
2. 做出來容易,做好難
當你解決了思路構建的難點,解決了一個問題,但是你是否使用的最好的方法,這就是所謂的做出來容易,做好難。
寫的程序能夠解決問題且沒有 bug 是基本要求。這里的做好不是指功能正確,而是寫的程序容易理解,能夠很容易讓其他接手的程序員(水平不差)看懂為什麼這么寫。
正確是現在怎麼寫不會挖坑害將來的人,現在怎麼寫能讓別人1年後看你代碼時候不可能理解錯你現在的意圖,現在怎麼寫能在別人將來犯錯的時候提示他你錯了。
編程是給未來的未知人講故事,你無法知道將來這個人是誰,他都懂什麼,他經歷過什麼,這個系統將來已經是什麼樣子了。我們需要在這種無知,缺乏信息的情況下做決定,從千萬種把這件事做出來的方法里,選出你覺得最能把這個故事給講好的那種方式,把故事寫下來。
編程是一種溝通,用程序跨越時空之溝通則是一門屬於程序員的特有的藝術 —— 阿萊克西斯
3. 規范性好,有良好的可擴展性
並且程序的可擴展性,規范性高,後期維護難度小。整體功能實現的過程中,各種情況考慮規范。其實學習編程和學習其他內容一樣,沒有什麼太大差別。心態放好,用對方法,你就能夠學好。重要的是學知識的人是什麼樣子,而不是學的是什麼。
在這給你一些學習編程的建議,希望對你有用。
1. 讓編程成為一個習慣
想要培養一項技能的最好的辦法,就是將他融入到我們的生活並成為我們的愛好。其實說白了,就是讓這個愛好成為一個習慣,一天不去做這件事情,都會覺得少了什麼。在不知不覺中,這個習慣會像滾雪球一樣積累起來。
對我來說,養成這種習慣首先就是要對「拖延症」說不。比如,你想鍛煉下自己的寫作能力時,但是沒有好看的本子,沒有好的靈感,沒有安靜的環境....總之就是找各種理由一拖再拖,最後就不了了之了。
為自己設定一下,每周拿出幾天,每天拿出幾個小時,編程學習就這樣慢慢步入正軌。
2. 將每天的學習過程拆分成小塊
對待編程學習,我們沒必要像健身狂人那樣一口氣做到筋疲力盡。與其直接編程2小時,我們完全可以先做40分鍾、然後休息5分鍾,整個過程重復4次。很明顯。
『伍』 要做程序員需要學會什麼
其實簡單來說,程序員的工作就是使用編程語言,根據需求寫出一個程序。
但是,在這個過程中,涉及如下幾個方面:
使用的編程語言 程序員需要選擇一門或者多門語言來編程,不同的語言適合編寫不同的程序,目前主流編程語言包括,Java、JavaScript、Python、C++、php以及其他小語種等等,每種編程語言適合開發的程序有所不同。目前從程序應用分來,主要可以分為三類a 企業應用,主要用於解決企業業務。各種企業管理後台系統,銀行系統,公安系統,圖書管理系統等等。
b 互聯網應用,面向互聯網用戶,為互聯網用戶提供各類服務。比如現在的京東淘寶各類電商系統等。
c 移動應用,各類在移動端使用的APP,有面向互聯網用戶的APP,也有面向企業內部的APP。
目前相對而言,在移動應用和互聯網應用方面,資本投入比較熱的風口,程序員的薪資較高。企業應用,發展了很多年,相對平穩。
2. 明白需求,實現需求
需求就是編寫程序的要求。一個程序要編寫成什麼樣子,具備哪些功能,都是由需求來具體說明。程序員要需要能看懂需求文檔,並且能准確地使用編程語言,根據需求中的要求來編寫成程序。企業開發的項目,往往會由該程序的架構師提供一個程序框架,程序員在該框架的規范下進行編程,實現需求的功能,以確保程序的規范、可讀,以及可維護性。
3. 日常工作寫程序
一個軟體開發一般流程是產品經理根據用戶需求做一個項目出來,然後UI設計師做一些圖片設計,前端開發編寫頁面,後台開發編寫核心編程,然後介入一些大數據和人工智慧,通過測試之類上線實施,後期還有運維進行相關維護。
程序員一般大多指的是前端和後台寫代碼程序的開發人員,除了編寫代碼,可能還需要通過介面和其它系統對接,實現系統間的數據交換。像單體測試,是程序員對自己寫好的程序單元進行測試,檢測這個程序單元數據輸入和數據輸出是否符合預期等等。測試出來的問題,需要修改正確,然後再測試,直至沒有問題。和同事共同開發的時候也需要聯合測試,以及用戶測試過後如果存在BUG繼續進行修改。
『陸』 程序員有哪些強迫症
數數永遠從0開始數……