你憑什麼做好一個程式設計師?

妖生發表於2019-05-31

在部落格裡分享的是我在知識星球發的一篇文章,繼續在這裡分享下,也是昨天在豬豬群裡對一位網友的回答吧。

兩個問題,一個是學歷重要嗎?一個是怎麼判斷自己適合不適合做個程式設計師?

首先,學歷重不重要?
當然重要。是門檻,是門面,是學習能力的體現。

我是個大專生,在這方面吃了很多虧,尤其在先找工作的時候。我相信如果有看到這篇文章並且學歷不高的兄弟,在找工作的時候應該有跟我相同的感受。
如果給我再讀一次書的機會,我相信自己不會比別人差。
因為我在工作中的不斷自學,在每個小團隊中的超越,變成核心人物,都常常讓我很有優越感。
所以學歷重要嗎?其實也沒那麼重要,在我帶過的專案裡,碩士生大專生本科生,2:5:3這樣子,許多大專生的能力不見得比碩士生差。

那麼,什麼最重要?
自學,不是在學校的考試學習,是主動解決問題的自學能力。
興趣,只有興趣才能讓你超越別人,產生成就感,有動力自學。
專注,解決一個事情一個bug就是要跟它幹,不死不休。
堅持,對以上。

有時候,有沒有解決問題時,越來越興奮?
恭喜你,我們們踏入了學會程式語言到程式設計師的門檻了。

第二個問題,怎麼判斷自己適合不適合做個程式設計師?
在解決問題的時候,有沒有其他人都放棄了,你還是搞到不想睡覺就想解決它。
有沒有做夢的時候都在想解決方案?
好,上面都有。
那麼,解決問題時有沒有很好的思路而不是無頭蒼蠅?
能不能get重點去百度谷歌?
會不會試錯?
會不會點到原始碼裡看?
有沒有仿造過輪子並學以致用?

以上的能力都很重要,但是,我覺得最重要就是兩點,
有沒有思路?會不會試錯?
有沒有思路?會不會試錯?
有沒有思路?會不會試錯?

思路靠什麼?
靠日誌分析,靠靈光一閃,靠猜。
猜?什麼鬼?
我個人理解,猜是對這個程式碼為什麼這麼寫,為什麼這樣設計的一種解讀?然後我們再去看看它的內部實現,是不是這個思路?是不是更優美?
為什麼能猜對?
用一個成語來說,叫見多識廣。
這又涉及到廣度與深度的問題了,不再展開。

然後,會不會試錯?怎麼試錯?
我覺得有兩個點,一個是除錯,跟蹤原始碼,會watch變數值,合理列印過程日誌,到達報錯點更換寫法,暴露物件內部值。
另一個是傻瓜式辦法,也是我在出現各種詭異問題的時候(環境、快取、多執行緒……),最常使用的方法,試著倒退或跳躍刪除程式碼,直到正確的為止。這個方法反過來,在產品上來說,又叫MVP(Minimum Viable Product,即“最小化可行產品”。當然,我們這裡討論的不是產品和運營,而是程式碼。

就這麼多吧。
下面是我的星球,歡迎你的加入。

你憑什麼做好一個程式設計師?

相關文章