低級程序員和高級程序員的區別

程序員 軟件 Google 數據結構 程序員精選俱樂部 程序員精選俱樂部 2017-08-26

軟件蠶食一切,未來屬於程序員。所以人人都想當程序員。但是並不是每個人都能當好程序員。在你做出決定前還是先看看自己能不能當好程序員吧。

低級程序員和高級程序員的區別

要記住的是,編程不是什麼精英才能幹的事情。

這個行業永遠都缺人。所以除非你一點都不喜歡編程,或者也沒有準備好看在錢的份上忍住這種不喜歡,否則都可以來編程。

低級程序員認為自己與高級程序員的區別, 主要是高級程序員任何功能都能編碼實現, 編碼速度快, 代碼無 bug. 正如一慣的那樣,低級程序員之所以低級,正是因為他們勉強能看到(或者根本看不到)事物的表象而看不到本質. 所以, 低級程序員總結出的一切東西, 你都可以大膽的忽略。

低級程序員和高級程序員的區別

編程的祕密

每個人在技術的成長過程中都有不同的經歷,對於我來說現在的總結大概是如此(ps:有興趣可以參考過去的那些語言)。

當我開始學習第一種語言LOGO時,我還小覺得很神奇,至少對於計算機還是保持神祕的。

當我開始學習C++時,由於作者對於其優雅的宣稱,我覺得C++確實很優雅、

當我開始學習Python的時候,我發現簡單才是我所要追求的。

當我開始學習Ruby On Rails的時候,我發現生成可以很強大,但是因為強大,所以沒有意思。

當我開始學習Django的時候,我發現這才是我想要的訂製。

當我開始寫博客的時候,我覺得比於HTML來說,Markdown才是適合我的。

當我開始寫下此文時,我開始覺得我應該試著去做點什麼。

於是我又回到了原點,開始迷茫我想要的是什麼?當我實習半年以後,我學到了更多的東西(實習半年後:正在變得高效),而我開始的時候我才在偶然的一次機會中才瞭解到,我們用的都是工具。只是,我們可以用工具創造出工具。

低級程序員和高級程序員的區別

【勇於去研究你不懂的代碼】

一般人都不願意去研究自己不曾接觸過的代碼,很多人都沒有嘗試就放棄了。

如果你經常去研究你沒有接觸過的代碼,你就會越來越熟悉不同的代碼結構和設計模式。現在人們很容易就接觸到優秀的開源代碼資源,你可以很方便的就下載下來做一些改動或者調試,去研究為什麼代碼可以這麼寫。

除了代碼之外,很多人對於陌生的工作內容也會感到恐懼。

每次換工作的時候,你可能都會遇到新公司的工作內容和以前工作的內容不一樣的情況,以至於剛開始的時候工作效率沒有以前那麼高。很多人甚至覺得,他們是不是騙了面試官。

【重視能夠節約時間的工具】

打敗人類的 AlphaGo 每天可以進行上百萬局的下棋訓練,我們人類一萬個小時的訓練卻需要10年之久。也就是說,電腦運行幾分鐘,可能就等於人類工作好幾年。

很多人也認為工具是很重要的,但是他們並沒有花時間去製作、整合自己的工具。

但是,Jonson 團隊最出色的員工耗費了他們 1/3 的時間在工具製作上,這些工具可以用來發布代碼,監控系統,以及能讓他們花更少的時間去做更多事情。

總之,不要花時間去做機器可以代替你去做的事情。

文檔能力

“文檔是第一生產力”,這一點在程序員的世界是毫無異議的。看看Spring,hibernate,Struts等最流行的開源軟件的文檔就知道,他們tutorial,他們的getstarted,他們的reference文檔寫的多麼的易懂。

如果要獲得更高的報酬,文檔是絕對關鍵的因素。有文檔就有溝通,就有交易。搞技術的容易忽視文檔的力量,也因為寫文檔十分困難,更多程序員選擇舒適區,習慣寫下代碼,但正因為如此,妨礙了不少程序員的進階。

解決BUG的效率差別

普通程序員可以利用搜索引擎(百度)尋找答案,經常性找不到好的解決辦法,然後更換技術方案!頂級程序員也利用搜索引擎(Google)尋找答案,一般bug都順利解決(其實跟前期框架選擇等關係非常大)。

低級程序員和高級程序員的區別

初級程序員認為自己與高級程序員的區別, 主要是高級程序員任何功能都能編碼實現, 編碼速度快, 代碼無 bug。 初級程序員之所以初級, 正是因為他們根本事情看不到本質.

高級程序員之所以高級, 在於他們認識到代碼的 bug 是不可避免的, 嚴謹的邏輯能力是高級程序員區別於初級程序員的最主要原因。

程序開發就想中國的武術一樣,分內力和招式。招式就是各種編程技巧和編程概念,通過練習可以學會。而內力就是數據結構和 算法了,招式可以影響你工作的速度,而且絕大多數情況下,不需要深厚的內力。內力可以決定的是你能解決問題的高度。

架構型

這類程序員比實現型更進一步,他們經驗豐富,對相關框架和工具等都很熟悉,“完成功能”“穩定性”“性能”這些已經不再是他們的追求,更優美的代碼、更合理的架構才是目標。

這類程序員代碼設計大多建立在對需求的詳細瞭解和對需求變更的預測上——可擴展性較好;代碼細節也儘量多的考慮邊界情況、性能——穩定高效;代碼命名和註釋都恰到好處——可讀性較高;同時在開發過程中他們會不斷重構,對代碼做減法——保證項目可持續發展;等等。

但由於考慮問題較多,單從“實現功能”階段來看,完成速度不一定會比“實現型”要快。只是到了項目中後期優勢才會慢慢體現出來。

“菜鳥”和“大神”

剛剛走出就業的程序員,技術是剛剛起步的基點。那下面我們就聊一聊有關技術 的東西。首先請您先想想這幾個問題。現在社會上有很多程序員,CSDN就是我們程序員的家,那您是否可想過程序員為什麼會有不同的水平?你又是哪一類的程 序員?“菜鳥”程序員和“大神”程序員差在哪裡?真是差在技術上了嗎?那不是差在技術上那差在了哪裡?

上面很多一連串的問題,沒有把你搞暈吧!那就聽我一一給您分析這個問題背後的答案。確切的說程序員分為“菜鳥”程序員和“大神”程序員。

一個程序員有多優秀,就得看他寫的代碼!程序員自己的代碼才是自己工作狀態的真實體現。

另外還有一點可以通過自身的學習來獲取一大進步。

分享給超過5萬的程序員朋友下載,這次我把所有資料重新梳理精簡,免費分享給大家 。

低級程序員和高級程序員的區別

究竟有哪些乾貨呢?先給你們一個目錄:

低級程序員和高級程序員的區別

免費領取資料途徑:公眾平臺 “程序員語錄"

相關推薦

推薦中...