編程中,有哪些好的習慣一開始就值得堅持?

嗨,小夥伴們你們好,我是沉默王二,就是那個吹本身既有顏值又有才華的傢伙。今天這個話題我以爲仍是值得和你們探討的,由於好的編程習慣對程序員的職業生涯真的很是重要。java

記得我在學駕照的時候,遇到一哥們,以前開過車,屬於無證駕駛的那種。可是,這哥們科目二居然掛了四次,第五次有沒有過我不知道,由於我科目三都考過了,那哥們還在練科目二。教練真氣的不輕,每天扯着嗓門喊:「你那個腦殼瓜子特麼能不能不要鑽到車窗外面看,把車窗玻璃給我搖上去,裏面難道看不到鏡子嗎?」git

我在排隊等車期間真的觀察過,尤爲是側方停車的時候,這哥們老是有意無心把腦殼伸出窗外看,玻璃搖上去的時候都能磕到車窗上,看得我都替他捉急。教練說這哥們以前開車的時候養成了這個壞習慣,如今想改就是改不過來;報了 VIP 也沒用,最後一次看天意吧,實在是沒招了。程序員

不是我吹牛,我科目二就考得挺順利,一次性過,倒車入庫的時候感受都要壓線了,但憑藉着兩週時間養成的好習慣硬是過了。github

那接下來我就來分享三個好習慣,自我感受良好地認爲,值得全部的小夥伴們借鑑。web

0一、代碼必定要規範

任何編程語言都有本身的一套規範,好的規範能讓代碼更易閱讀,能讓 bug 沒有容身之處。你好比說,Java 類的命名應該遵照如下規則:面試

  • 必須以大寫字母開頭
  • 最好是一個名詞,好比說 System
  • 儘可能不要省略成單詞的首字母

來看個例子:編程

public class Writer {}

再好比說,方法的命名應該遵照如下規則:微信

  • 必須以小寫字母開頭
  • 最好是一個動詞,好比說 print()
  • 能夠包含多個單詞,第一個單詞的首字母小寫,其餘的單詞首字母大寫,好比說 actionPerformed()

來看個例子:app

void writeBook(){}

遵照這些規則就像是在馬路上遵照交通規則同樣,不然後果不堪設想。以前給小夥伴們安利過兩個 IDEA 插件,一個阿里巴巴的開發規約,一個 SonarLint,它們在提升代碼質量上面的效果槓槓的,我本身一直在用。編程語言

還有就是阿里出品的 Java 開發手冊,必定要把上面羅列的條目刻到腦子裏,至少放一份在桌面上吧,活學活用。

我以前在日企的時候,公司內部就有一份編碼規約,關於 ActionScript 方面的,詳細程度能夠和阿里的開發手冊媲美,只不過沒有對外開放。好多年過去了,雖然規約上面的內容忘得一乾二淨,但它給個人印象深入——就像初戀女朋友同樣,容顏早已忘卻,背影卻時不時涌上心頭(逃。

0二、學會閱讀源碼

源碼是香,但我不建議新手一上來就閱讀源碼,由於很容易勸退。就好像文章開頭提到的學駕照同樣,若是一開始就從科目三練起,那多半會在路上完蛋。

閱讀源碼以前,技術儲備必定要到位。也就是說科目三練習以前,科目一的理論知識要過關,科目二的基本技巧要掌握,若是說方向盤都不會打,油門剎車都不會踩,檔位都不會掛,那教練不被嚇出心臟病纔怪。

一旦你的技術功底達到必定程度後,想要更上一層樓,閱讀源碼就變得勢在必行了。由於閱讀源碼有如下好處:

  • 解決 bug。若是 Google、Stack Overflow 上搜不到答案,那麼閱讀源碼幾乎就是惟一可行的解決辦法了。

  • 知其因此然。好比說,你想知道爲何 String 類是不可變類,那就必須鑽一鑽源碼才能明白。

  • 學習。爲何大牛們都會推薦 GitHub,就是由於它上面的項目都是開源的,源代碼是能夠直接閱讀的。

  • 改造。不少時候,咱們已經拿到了一個輪子,但須要對它進行一些改造才能知足需求,那就必須在改以前閱讀源碼,不然,輪子可能會被改形成錘子。

知道閱讀源碼的好處了吧?那有小夥伴可能要問,怎麼去閱讀源碼呢,有哪些技巧呢?我來分享一下本身經驗:

  • 先閱讀文檔。知道庫是幹嗎的,知道類是幹嗎的,知道方法是幹嗎的,知道變量是幹嗎的。

  • 打斷點,進行調試。代碼之間會有不少調用關係,若是隻看不動手和源碼幹一架的話,極可能不知道代碼之間是如何銜接的,經過調試就能夠看清楚整個源碼之間的脈絡。

  • 分享閱讀源碼後的心得。所謂好記性不如爛筆頭,寫下來可不僅是爲了分享本身閱讀源碼後的喜悅之情,更重要的是,當你忘的差很少時筆記能夠喚醒你的記憶。

0三、獨立思考並解決問題

個人技術交流羣裏有過那麼一個小夥伴,一年多時間過去了,幾乎沒什麼成長,遇到問題就往羣裏羣裏扔,或者直接私信發給我。我發現,如今問的問題和一年前問的問題真差很少,無非就是形式上發生了一些變化。

這說明什麼呢?這名小夥伴沒有學會獨立思考,沒有學會觸類旁通。人最珍貴的財產其實不是錢,而是思考的能力,對吧?腦子是越用越靈活的,不用呢,就真的會生鏽。

一旦你學會獨立思考,那麼你解決問題的能力真的是會提高一個很高的檔次——從一名合格的程序員蛻變爲一名優秀的程序員的關鍵節點。在我上大專的兩年時間裏,成長真的特別慢,由於遇到問題我就想着問同窗啊,問老師啊,結果是同窗和老師進步了,我仍是原來的我。

等到大三去實習後,一切就悄然改變了,領導忙得很,壓根就沒有工夫幫你解決一些雞毛蒜皮的小問題。再者,真很差意思,不能把底褲漏給領導看啊,沒辦法,我就只能本身硬着頭皮上。

硬上的次數多了,真的發現,原來本身不經過別人的幫助也可以把問題解決掉。漸漸地,隨着時間的推移,我在團隊裏面開始顯山露水了。

那怎麼才能培養獨立思考的能力呢?按照胡適先生所說的,就是質疑一切,而後提出假設,最後去求證。

你好比說,Java 程序員都知道 String 類是不可變的,那假如說它是可變的呢?會是什麼樣子,研究完你就會明白,原來一個不可變類是這樣設計的啊,本身也能搞個不可變類了!

0四、最後

若是以爲文章對你有點幫助,請微信搜索「 沉默王二 」第一時間閱讀。本回答已收錄 GitHub,傳送門~ ,裏面更有大廠面試完整考點,歡迎 Star。

我是沉默王二,一枚有顏值卻靠才華苟且的程序員。關注便可提高學習效率,別忘了三連啊,點贊、收藏、留言,我不挑,嘻嘻

相關文章
相關標籤/搜索