① 要想成為一名頂尖的程序員,要學習高等數學嗎
必然的,必須的。
頂尖的程序員除了懂寫代碼外還要懂各種演算法的應用。而應用的背景知識就是高等數學。如果只知道寫代碼褲磨,那麼還算不上頂尖的程序員,頂多算個中等的程序員。
舉個最簡單的例子,做圖像識別或人臉識別,就是對圖像進行處理。而圖像的本質就是矩陣,因此離不開線性代數的各種運算,特徵求解,規劃求解。
人臉識別中可能還涉及到神經網路的學習和試算梯度預算,就離不開微積分。
再舉個例子,密碼的編譯也離不開矩陣代數應用,無論是密文還是密文轉明文。
還有,文字索引,文本處理……是在太多太多了。以上的知識,還要變成代碼寫入你的程序中的。
所以,光從應用的角度來看,就離不開高等數學。要想成為頂尖的程序員,那就更要慧態學胡碧斗好高等數學。
② 怎樣能成為頂級的程序員
我是程序員。實習過兩家公司,說說我的觀察。
第一家公司有個技術總監,每次跟他聊天總是只感覺我差一點兒就能超過他的那個樣子,人很和藹,總是會說『我也要學一下』,然而恐怖之處在於無論和他聊什麼他都有那種『哦,這個我了解過一些,我們可以交流一下,共同學習』。無論什麼。
他很會照顧我,由於我不是科班出身的,他和我交流盡量不用術語,比如依賴倒置,他和我講的時候告訴我原理以及如何實現,並不會特意提這個名詞。
我和他聊過一些東西,從應用層到ASCII碼,從前端到GC,無所不知。而且他總是特別謙虛。
最後我走的時候說實話是很不捨得的。他拉著我說了很多,告訴我以後應該怎麼做,要多了解整個項目架構,不能只是做自己的工作。要學會幫助其他同事,解決他們的問題。要穩住自己。
我離開之後才發現,那家公司是多麼好。
第二家公司是個大公司。
我的lead,七零後。他周末在家還在學習,晚上會補作業到12點。我見過他寫lazyload,也見過他給iOS講性能優化。當然,還有非常高超的領導力。
他們寫的代碼並沒有上面說的特別優雅,我見過的,而且要說代碼的好看程度,比我寫得規范漂亮的應該也不多。他們有一個共同特點是很繁瑣,非常的繁瑣。我一度很不喜歡這種代碼,覺得很醜,而且很復雜。我問過以後終於發現和他們的差距,那叫做代碼的健壯性。
之後我再看他們寫的代碼,無論什麼情況都能扛得住,並能給出正確的錯誤處理。而我的代碼,簡短,有力,漂亮,滿是奇技淫巧,然而就是不耐操。
我的經歷所認識到的優秀程序員就是這樣:博學,謙虛,積極向上,良師益友,還有代碼十分健壯。