在博客裏分享的是我在知識星球發的一篇文章,繼續在這裏分享下,也是昨天在豬豬羣裏對一位網友的回答吧。程序員
兩個問題,一個是學歷重要嗎?一個是怎麼判斷本身適合不適合作個程序員?編程
首先,學歷重不重要?
固然重要。是門檻,是門面,是學習能力的體現。緩存
我是個大專生,在這方面吃了不少虧,尤爲在先找工做的時候。我相信若是有看到這篇文章而且學歷不高的兄弟,在找工做的時候應該有跟我相同的感覺。
若是給我再讀一次書的機會,我相信本身不會比別人差。
由於我在工做中的不斷自學,在每一個小團隊中的超越,變成核心人物,都經常讓我頗有優越感。
因此學歷重要嗎?其實也沒那麼重要,在我帶過的項目裏,碩士生大專生本科生,2:5:3這樣子,許多大專生的能力不見得比碩士生差。多線程
那麼,什麼最重要?
自學,不是在學校的考試學習,是主動解決問題的自學能力。
興趣,只有興趣才能讓你超越別人,產生成就感,有動力自學。
專一,解決一個事情一個bug就是要跟它幹,不死不休。
堅持,對以上。編程語言
有時候,有沒有解決問題時,愈來愈興奮?
恭喜你,我們踏入了學會編程語言到程序員的門檻了。學習
第二個問題,怎麼判斷本身適合不適合作個程序員?
在解決問題的時候,有沒有其餘人都放棄了,你仍是搞到不想睡覺就想解決它。
有沒有作夢的時候都在想解決方案?
好,上面都有。
那麼,解決問題時有沒有很好的思路而不是無頭蒼蠅?
能不能get重點去百度谷歌?
會不會試錯?
會不會點到源碼裏看?
有沒有仿造過輪子並學以至用?線程
以上的能力都很重要,可是,我以爲最重要就是兩點,
有沒有思路?會不會試錯?
有沒有思路?會不會試錯?
有沒有思路?會不會試錯?設計
思路靠什麼?
靠日誌分析,靠靈光一閃,靠猜。
猜?什麼鬼?
我我的理解,猜是對這個代碼爲何這麼寫,爲何這樣設計的一種解讀?而後咱們再去看看它的內部實現,是否是這個思路?是否是更優美?
爲何能猜對?
用一個成語來講,叫見多識廣。
這又涉及到廣度與深度的問題了,再也不展開。調試
而後,會不會試錯?怎麼試錯?
我以爲有兩個點,一個是調試,跟蹤源碼,會watch變量值,合理打印過程日誌,到達報錯點更換寫法,暴露對象內部值。
另外一個是傻瓜式辦法,也是我在出現各類詭異問題的時候(環境、緩存、多線程……),最常使用的方法,試着倒退或跳躍刪除代碼,直到正確的爲止。這個方法反過來,在產品上來講,又叫MVP(Minimum Viable Product,即「最小化可行產品」。固然,咱們這裏討論的不是產品和運營,而是代碼。日誌
就這麼多吧。
下面是個人星球,歡迎你的加入。