之前流行這樣一句話:一流程序員靠數學,二流程序員靠算法,三流程序員靠邏輯,四流程序員靠SDK,五流程序員靠Google和StackOverFlow,六流程序員靠百度和CSDN。低端的看高端的就是黑魔法!
其實雖然也曾為了應付考試學過C語言,為了找份工作也曾自學過一段時間的前端。但我還是算不上一個程序員,充其量算是在在門口最終沒有踏進去的門外漢吧。因此,對于程序員的水平高低我也不好做更多評價。
C語言我已經忘得差不多了,說到前端,我也是不再會寫代碼了,對于基礎得一些語言我或許還能夠看得懂吧!我只學了點前端入門課程,html、css和js,當初也能夠看著教程自行寫下一些簡單的靜態(tài)頁面吧,也根據word樣式給自己寫下了一頁A4版的網頁簡歷。
之后就很長一段時間沒有接觸代碼了。后來,我想自己做一個個人網站,選擇了織夢的網站框架和模板,但是網站經常出bug。不得已又去看了一些織夢仿站教程,有時候也會去百度或者是根據自己的理解對網站進行一些樣式或者排版上的小改動。
我可能真的連個七流程序員都算不上吧,哈哈。程序員哥哥們,你們覺得自己停留在第幾層啊,不放留下個薪資待遇讓大家羨慕一下呀!
看如何分配時間。
普通級coder分配了任務后,上來不管3721就開始碼代碼,邊碼邊想,然后就是邊改,導致一個需求他們反復寫反復改。這種就是典型的時間投入產出太低了。
大神級coder領到任務后,會思考很久,遲遲不動手,等他們動手的時候,基本一遍就結束了,最多測試時候改改bug。
這種分配時間的差異會導致什么后果?就是我們常說的,編出的軟件是否具備可維護性,可擴展性,效率,架構是否合理。這些都是大神級coder花那么多時間思考的點。
那么話說回來,如果從普通的coder晉升為大神級的coder呢?其實兩者之間還是有很多段位的,普通的coder,可以先成長為高級的coder,然后是專家級的coder,最后才是大神級的coder,當然了,大神這種字眼在我看來太神圣,所以我覺得很少有人可以成為大神級的coder,比如linux的創(chuàng)始人我覺得才配得上大神級的coder。
coder在成長的過程中可以自己多看看優(yōu)秀的項目,思考別人如何構建一個好的項目的,從架構到細節(jié),多看多思考多總結,自己慢慢就會成長了,慢慢的你腦子里的貨多了,你才會在動手之前多思考一下,腦子里什么都沒有,可不是一上來就動手嘛。
普通的程序員和大神級程序員的差別,大于人和猴子的距離。
基本是普通人和神人的區(qū)別。
普通級關注語言優(yōu)劣,關注于編程環(huán)境,跟蹤,測試工具。兩小兒辯日,可以爭個面紅耳赤。
大神級關注目標問題本身。融會貫通,什么舊語言新語言都得心應手。
普通級用工具運行程序,寫完了調試。
大神級用腦子運行,運行完了寫程序。
普通級滿紙注釋,在注釋里找程序。
大神級程序可以當注釋讀。
普通級以技巧自居,話里有話,意猶未盡。
大神級大道至簡,短小精悍又貌似笨拙。
普通級腦子里能裝幾千行,再大些的項目手忙腳亂。
大神級腦子里不裝程序,但知道需要的東西在哪里。
普通級寫著寫著,亂了,就想重寫。
大神級寫了不需要再改。
普通級加新東西走街串巷。
大神級加新東西只改一個接口。
普通級發(fā)布前測試,然后拼命禱告。
大神級寫完已經是測試好的,隨時可以發(fā)布。
最主要的,普通級寫著寫著就覺得自己是架構師了,不需要寫具體的程序了。只想著辦大事。
大神永遠對程序有癮。
能辦大事的,小事也能辦好。
關注本人頭條號,有驚喜z
內行看門道,外行看熱鬧。普通的程序員和大神級別的程序員,有著很明顯的本質區(qū)別。
一。思維能力。大神級別的程序員通常都是思維活躍,基礎理論扎實而豐富,經驗非常老道。學習能力和見解能力,造詣非常高。這些能力的背后,本質上取決于思維能力。也可以體現在數學、邏輯、算法、架構等等具體的考核方面。
二。做事能力。大神級別的程序員做事和普通程序員不同,大神級別的程序員擁有全局觀,會把需求充分吃透,考慮到將來的擴展能力,甚至考慮到移植性。普通程序員只是表面的理解需求,趕緊上馬敲代碼,把功能做出來就算完事。
三??偨Y能力。大神級別的程序員通常都會總結、提煉、歸納。普通程序員通常都是做完就完事了,不屑于總結,如果工作上必須總結則應付了事。
普通程序員如何成長為大神級別的程序員呢?說句比較客觀的話,大多數程序員都成長不到大神級別的程序員那樣高度。根據我的觀察,一是靠天賦,二是靠努力。天賦這個東西,基本上是與生俱來的。努力嘛,當然是靠后天的爭取。通常都是不斷地學習、總結、再學習、再總結,如此循環(huán)。需要一個由量變到質變的過程,需要經歷很多項目的磨煉,需要經過歲月的洗禮。
其中有一條至關重要,就是站在巨人的肩膀上,可以看得更遠。學習總結,需要消化為自己的知識,需要轉化為自己的見解。這樣才能真正地成長,而不是僅僅的拿來主義。
大神程序員和普通程序員,最顯然的區(qū)別就是大神程序員有自己的出色業(yè)績。比如有自己的產品,或者有自己的架構或代碼。一直被別人使用和模仿,但幾乎都很難超越。
不是所有普通的程序員都能成為大神級別的程序員,但是大神級別的程序員都曾經是普通的程序員。
好比建造房屋,普通程序員會搬磚,會填坑,大神級的程序員不僅會搬磚還會造磚,更知道房屋如何設計,采用什么樣的工程結構等。普通程序員的水平停留在知道怎么使用一個某一個組件或工具上,大神級的程序員對于每一個組件的原理都搞的比較清楚,運用的時候收放自如,此外自己能根據系統(tǒng)業(yè)務需求,實現一些定制化的組件。
作為一個一直稱自己是初級程序猿的普通碼農,我來回答一下你的這個問題。
首先,客觀的工程師等級分類。
我引用吳軍博士關于工程師五個等級的分類。
第五級:能獨立解決問題,完成工程工作。
第四級:能指導和帶領其他人一同完成更有影響力的工作。
第三級:能獨立設計和實現產品,并且在市場上獲得成功。
第二級:能設計和實現別人不能做出的產品,也就是說他的作用很難取代。
第一級:開創(chuàng)一個產業(yè)。
可以看出,隨著等級的不斷提升,從獨立解決問題,到開創(chuàng)一個產業(yè),從本質上來說,區(qū)別在于是否有足夠的影響力影響到更多的人,以及承擔更多的職責。
真正的大師不是自己個人是大師,而是讓更多的普通人成為大師。
第二,思維方式的不同。
普通的程序員可以看到工程項目的當前一隅,大神級程序員不僅能夠搞定當前的技術難題,提出更多的可復制的改進方法,更能夠應對未來更多的難題,不斷總結經驗教訓,將視野投注到宏觀上。
如果說普通程序員活在過去,或者是活在當下,那么大神級別的程序員則是活在未來,不斷思考未來的技術難題。
我們一直在問自己一個問題,五年之后技術會發(fā)展到何種地步,如何運用五年之后的整體技術架構去更好地服務于客戶。這些思考看上去有點虛無縹緲,不切實際,但是在當前這個未來以來是社會和世界,多思考一步,多行動與實踐一步,也就有機會多成長一步。
第三,知識體系不同。
總是談代碼如何寫的程序員,可能是一個好的程序員,但往往無法成為頂尖的程序員。
在代碼之外,還有許多信息工程、軟件工程需要掌握的知識。
編程其實是一件比較復雜的事情,因為你以為自己編寫的代碼運行正常,其實機器的邏輯不是你簡單想得那樣。即使是馬丁福勒這樣的大神,也沒有把握保證編寫的代碼能夠沒有八阿哥。
所以,要有足夠的耐心進行調試,不斷的吸取新的技術知識,并且運用數學思維、物理、邏輯、生物學等跨學科思維去幫助自己更好的解決技術上的難題。
大神級別的程序員,往往有著普通程序員所沒有的知識維度、對技術的理解力與深度。
總結一下。
我分別從工程師的等級、思維方式以及知識體系三個方面闡述我所理解的普通程序員與大神級程序員的不同,希望對你有所幫助。
最后,對于技術,沒有快速精通,只有快速入門。
無它,唯手熟爾。
謝謝。
同一個功能,普通程序員實現它可能需要100行代碼,但是大神級的可能只需要20行。
從用戶感知來說 沒那么多反人類的錯誤
普通程序猿寫的代碼條理和邏輯經?;靵y,別人閱讀起來往往會一頭大幾圈,而大神級的猿往往可以用很簡短的幾行代碼實現普通猿幾十幾百行的代碼。
普通程序猿就是參考別人的代碼,相當于代碼搬運工,而且寫的代碼容易出現bug,考慮不太全面,經常是出了bug才想到如何去解決或者才想到原來還要預防這方面的問題,寫的代碼可復用不高,容易累贅等問題。
大神級別的程序猿一般都會從根本上解決問題,反正普通程序猿的所有缺點對于大神級別的人來說都是不存在的。