1. 普通的程序員和大神級的程序員有什麼區別
你好,普通程序員只能做一些重復簡單的事情,大神級程序員可以解決普通程序員解決不了的難題,還可以給普通程序員建框架。
2. [探討]優秀程序員和一般程序員差別在哪
還記得研發頻道此前發表過的一篇《白班程序員 VS. 夜貓子程序員》嗎?在這個世界上有兩種程序員,我們稱之為:Day Programmers(白班程序員)和Night Programmers(夜貓子程序員)。本文我們將探討優秀程序員和一般程序員有哪些差別,看看您是屬於那一種?來自知乎網上的大牛們各抒己見,一起來看下他們是如何區分的。創業者郭凜:如果純以編碼能力來看,可分為五類1. 拷貝型拷貝型選手就是傳說中的「代碼拷貝員」了,他們對實現功能幾乎沒有思路,所作的事情就是從網上或是之前其他團隊成員寫的代碼中拷貝出片段,然後放到項目中,如果運行項目出現了期望結果,則表示任務完成。這類人只會改代碼,卻不會寫代碼。他們大多對編程毫無興趣,只是希望以此糊口而已。2. 新手型當產品有功能需求時,由於經驗有限,程序員並不完全知道要如何實現這個功能,需要通過學習、尋找資料等方式來解決問題。這種情況下的編碼過程,程序員的主要目標是「完成功能」,那麼很難有多餘的心思去考慮邊界條件、性能、可讀性、可擴展性、編碼規范等問題,因此代碼bug可能較多,穩定性不高,常常會發生開發花費1個月,改bug卻要改上好幾個月的事情。3. 學習型這類程序員對所在領域的語言已經比較了解,對於一般功能可以有較為清晰的實現思路,給出需求時可以通過自己的思路來實現,並且會一定程度上考慮邊界條件和性能問題。但僅此而已,他們對可讀性和可擴展性考慮很少,也沒有項目級別的考慮,主要是希望通過實現代碼來練手或是學習。這類程序員最大的表現在於喜歡「創造代碼」,即使有現成的實現,他們也希望自己來實現一套,以達到「學習」的目的。他們不喜歡復用別人的代碼,看見項目中別人實現了相類似的功能,他們會以「需求不同」的借口來自己重新實現一套。這類人一般來說對技術有著較為濃厚的興趣,希望能夠通過項目來進行學習。從項目的角度來說,這種做法最大的麻煩在於開發周期可能較長(相比直接使用現成的實現),並且會使得項目代碼膨脹,影響未來的維護。但這類程序員由於有興趣,如果好好培養或許會成為明天的牛人。4. 實現型這類程序員一般有較為豐富的經驗,由於寫得太多,因此不再追求「創造代碼」來進行學習,同時對所在領域可能涉及的很多第三方框架或是工具都比較熟悉,當接受到產品需求時,對功能實現方案已經瞭然於胸,因此他們可以快速的實現需求,並且對邊界、性能都有一定程度的考慮。因為能夠快速實現需求功能,經常會被團隊評價為「牛人」。但他們一般僅僅停留在「完成功能」級別上,對代碼的可讀性、可擴展性、編碼規范等考慮較少,對項目總體把握也較少(例如控制項目膨脹、方便部署等架構級別的東西)。這類程序員最大的表現在於喜歡「開發項目」,卻不喜歡「維護項目」。他們產出的代碼最大的問題就是維護較為困難,可能過上幾個月回頭看自己的代碼都會暈頭轉向。因此即使是自己寫的代碼,仍然不願意維護,一般會苦了後來人。因為介面設計的缺乏,當需求變更時,發現代碼要改的東西太多,然後抱怨需求變化,卻很少認為是自己的代碼問題。這樣的項目如果經過長時間的變更維護,最終會變得難以維護(一般表現在需求變更響應時間越來越長)甚至無法維護,最終要麼是半死不活,要麼是被推倒重來。5. 架構型這類程序員比實現型更進一步,他們經驗豐富,對相關框架和工具等都很熟悉,「完成功能」、「穩定性」、「性能」這些已經不再是他們的追求,更優美的代碼、更合理的架構才是目標。這類程序員代碼設計大多建立在對需求的詳細了解和對需求變更的預測上——可擴展性較好;代碼細節也盡量多的考慮邊界情況、性能——穩定高效;代碼命名和注釋都恰到好處——可讀性較高;同時在開發過程中他們會不斷重構,對代碼做減法——保證項目可持續發展等等,但由於考慮問題較多,單從「實現功能」階段來看,完成速度不一定會比「實現型」要快。只是到了項目中後期優勢才會慢慢體現出來。知乎刪代碼工程師 安江澤:創造型、管家型、學院派、鍾表型、折騰型1. 創造型/創新型以創造/創新為樂的程序員。以新的方法解決現有問題,發明方法解決尚未解決的問題。問題本身並不限於技術領域。矽谷很多技術創始人具備這類的品質。雖然他們創業後都不再全職寫代碼,但他們這種品質貢獻了他們事業的第一步。2. 管家型以管系統演化為樂的程序員。有潔癖,有強迫症,容不得系統有一點的瑕疵。如果你招聘了一個程序員/架構師,2-3年後你的互聯網產品再也沒有在可見/可擴展性上遇到瓶頸,他多半是這種程序員。3. 學院派型通常在CS某一領域擁有博士學位,或者深受他們的影響的人。對該該領域興趣濃厚,通常參與企業核心競爭力相關的研發工作。當然,也有一部分也具備第一種特質,中途去改變世界去了。4. 經驗型在行內具有多年豐富的經驗,可承擔責任,考慮全面。團隊擁有了這種人,通常會少走很多彎路。但面對新的挑戰還是要和其他人站在同一起跑線上的。5. 鍾表匠型喜歡並擅長把一個系統從里到外研究通透的人。分享出來都是從里到外讓人垂涎欲滴的干貨。很多後端工程師都是這種類型。6. 折騰型擅長「折騰」,方案沒有最好的,只有最難的。興趣廣泛動手能力強,通過折騰留下很多技術積累。想用哪一塊的新技術?先問問他把,8成他很久前就已經玩過了。7. 肉盾型哥甲高血條長,加班如同切菜一般,逼急了不睡覺也行。只伸手要過兩件東西:原型和咖啡。適合打閃電戰。當然,可能事後要打打後勤重構下代碼。iApp4Me創始人、iOS開發者郝培強:七大標准 邏輯思維很重要優秀程序員的標准:要懂邏輯,這點其實挺難達到,很多很不錯的程序員其實邏輯能力不行,所以我覺得限制了他們更深一層次的發展,或者說限制了他們解決特別復雜問題的能力。要有分析能力。這也是解決復雜問題不可或缺的能力。要會自學,技術發展速度很快,如果沒有自學能力會被淘汰的。所以在中國英語要好,不然看不懂最新的技術走向。要有良好的時間管理習慣和意識。要有耐心,肯於付出。要有良好的工作習慣。會看且勤於看文檔。產品管理、IT項目管理 何明璐:優秀程序員具有較明顯的自戀和偏執特徵對編程有濃厚的興趣,由興趣能驅動自己的探索和鑽研精神,優秀程序員一般喜歡用業余時間探索和自己琢磨點東西,研究點開源框架和源代碼,關注新技術,喜歡研究和探索演算法,邏輯方面的內容。優秀程序員一般比較懶於做重復的事情,對於重復事情有獨有的程序員思維,即通過程序或其它自動化方式解決重復問題,而留更多時間去思考。優秀程序員更多的會從簡單功能實現,花哨的界面轉移到對安全,性能,可擴展等底層架構的關注。優秀程序員一般有較明顯的自戀和偏執特徵,有較為希望獨自工作的特徵,比較難於被非技術背景管理者駕馭,高度強調自我能力價值的被認可,而且很多優秀程序員並不是好教練。優秀程序員一般有較為扎實的演算法,數據結構等理論知識的基礎。這些讓他們在迅速進入新領域的時候快人一籌。總結:不管是優秀程序員還是一般程序員,小編認為只要你喜歡思考,愛學習,對編碼有興趣,那麼你就是最好的。當然掌握技術才是硬道理,套用別人的一句話「不想當CEO的程序員,不是好的產品經理」。程序員們,加油吧!
3. 普通程序員和大神程序員,到底有啥區別「渡一教育」
眾所周知,雷軍本就是一位超級厲害的程序員。他曾經這樣評價自己的編碼水平:「我沒寫過詩,但是有人評價我寫的代碼像詩一樣優雅。」
好吧,有被凡到。
盡管很多人曾因為雷總過於濃密的發量而懷疑他作為程序員時的水平。但是從雷總的語氣中我們可以感覺到他對於自己編碼能力的自信。
不得不承認,同樣是程序員,普通程序員和大神的差別是巨大的。
當普通程序員嘗試重構一個簡單的模塊
當大神級程序員重構代碼
普通程序員做的多線程
大神級程序員做的多線程
是否過於真實?剛入門的小白程序員流下了羨慕的淚水。。。
另外,據不權威調查顯示,大神程序員的生活作息遠不同於普通人類,基本上是晝伏夜出。果然,大神早已非正常人類,不食人間煙火。有圖為證(第一列是時間,第二列是代碼行數。)
這是FFmpeg的作者FabriceBellard的編碼時間表,能看出來,越到晚上靈感越強啊。額,不過,這位大佬是會睡著睡著覺靈感突發蹦起來提交代碼的嗎……
而這是LiveJournal的作者BradFitzpatrick在memcached項目上的時間表。
典型的夜貓子,晝伏夜出,每天只睡四個小時。
仁慈的獨裁者,Python之父Guidovan Rossum同樣是一位暗夜使者。
美好的一天從下午開始,夜晚才是靈感的源泉。不過大佬好像真的不用睡覺的。。。。
而在夜行者之上,更有一種恐怖存在,他們宣告了永動機是可以實現的,因為他們自己,就是永動機。。。
「世界上最好的語言」php的創始人RasmusLerdorf,便是其中翹楚,這是他在php-src項目上的提交時間:
果然是大佬,白天正常工作,晚上更加興奮。果然,真正的大神都是突破人類身體極限,完全不用睡覺的。
當然了,以上這些呢不過是一些極端案例,他們雖然是真正的大神,小渡也絕不建議小夥伴們學習這種作息習慣。不然很有可能,技術沒學到,發量卻比大神還少。。。
而在日常的工作中,大神對於小白的碾壓更是全方位無死角。
註:reinventing the wheel 重新發明輪子
果然,大神的工作都是獨出心裁的。
額,不過這么一看嘛,菜鳥和大神好像差不多。。。。
大神的反應總是波瀾不驚的,好像沒什麼成就感。。。
離譜。。。。
笑出自信,笑出強大!
看到大神們種種不同凡響的表現,小夥伴們有沒有心生嚮往?不要灰心,只要努力,假以時日你一定也能像雷總那樣,寫出詩一樣優雅的代碼。
要想真正的成為大神,要腳踏實地,有的放矢,為自己設立目標,不斷向目標逼近。
至少要做到以下幾點:
程序員之所以被稱為「大神」,顧名思義便是在專業領域他們無所不能。所以,大神之路第一步就是補全自己技術上的短板,項目出現任何技術難題時,只要自己出馬便能發現問題所在,從而找到解決方法。
多隆就是這樣一位全能的大神,「只要有技術上的困難,找多隆,沒有解決不了的」這是在阿里技術人員內部流傳的一句話。
對於編碼技術,多隆便是武俠小說中已臻化境的絕頂高手,從2003年到2007年,搜索引擎工作一直都是多隆一個人負責,但這不是他所有的工作,因為他解決問題的能力是驚人的。
多隆一個人能頂一個團隊,別人做事可能要成立一個項目組,而他從頭到尾都是自己一個人,即使他負責的事情以前從沒有接觸過。
阿里研究員畢玄曾舉例說:「五彩石項目多隆完成了商城搜索的mp邏輯,當時如果沒有多隆,整個項目需要延後2周;還有一次,淘寶session框架調用session_tair故障,一堆人(應該有10人+)一起排查問題,從6:00排查到第二天的6:00,最後多隆查到了問題。」
而達到如此境界,與多隆自身的特質分不開。當他沉浸在他的程序世界時,外界的人和事很難干擾到他。他不擅交際,也不玩什麼社交網路,一般很難在公眾場合見到他,只要能不參加的會議、采訪,他都不會參加。
就算去,他也常常會帶上筆記本。據說他也曾經帶著筆記本去outting,在車上寫代碼……
而且盡管被同事們頂禮膜拜,多隆依然謙遜,他說:「我就是個寫代碼的,很普通」。
從多隆身上我們也能看到,想要成為大神,首先就是要靜下心來沉住氣,認真研究代碼,不斷學習進步,完善技術,讓自己不再有短板。
理想是最好的指引者,對於技術行業尤其如此。
很多人在成為程序員之初,都抱有改變世界的想法,想像著運用自己的編程技術來為未來的世界增添色彩。而真正能將這種想法堅持到底的人可謂是鳳毛麟角,但這恰恰是成為大神程序員的重要特質。
支付寶OB資料庫團隊的隊長陽振坤就是這樣一位典型的理想主義者,在他的職業生涯中遭遇了太多的挫折和失落,但他始終保持著一個技術人員的初心,堅持理想,不曾退讓。
陽振坤曾是北大的學術明星,北大本碩博一路念完留校任教,不但破格晉升教授,還成為北大首批「長江學者獎勵計劃」特聘教授之一。他的理想就是攻克分布式系統難題,建成中國技術人自己的分布式資料庫。
在加入網路之後,他集中一切精力來進行資料庫的開發,然而盡管他主導的分布式系統在性能上已經超過了開源系統,網路仍然以成本太高為理由解散了他的團隊。
隨後他加入阿里,陽振坤繼續做分布式資料庫研發,他的團隊從零發展到十幾人,搗鼓出中國第一個分布式資料庫,他們給它起了個名字叫OB。
然而,同樣因性價比的問題,陽振坤和他的OB團隊在阿里坐了冷板凳。這一彼時僅有十幾個人的團隊曾在長達三年多的時間里,孤獨而邊緣。
很多同事都說,「如果陽老師願意妥協,放棄OB,轉去做開源系統的技術優化,早就撥雲見日了。」
但是,那顯然不是他想做的事情。
不過相比於網路,阿里對於「無用」的創新有更大的包容,OB最終被並入了支付寶。彼時的支付寶,面臨著一個世界級的難題:雙11的交易量呈幾何級增長,未來勢必還將繼續呈幾何級增長,可是支付寶當時用的甲骨文資料庫早已經承受不了這么龐大的數據量。
為了應對雙11這天的數據,只能再花數億千萬人民幣的價格去購買主機,可在交易恢復常態時,昂貴的主機旋又陷於長期閑置狀態,這樣未免得不償失。
因此OB這一還未正式上過「戰場」的資料庫,被支付寶高層認定是解決雙11支付峰值這一世界級難題的「鑰匙」。OB最終也不負眾望,幫助支付寶攻克了這一難關。
2016年5月,時任螞蟻金服董事長彭蕾親自將支付寶內部最高榮譽——CEO大獎「勛章」戴在了以陽振坤為首的OB團隊成員的脖子上。
從陽振坤的身上我們可以感受到,理想或許會讓我們一時間陷入困境,但如果我們堅持下去,會帶給我們更大的回報。
這是老生常談,卻也是最重要的一點。這是每一個想要突破自我的人所必備的特質,也是每一個大神程序員依舊在堅持的習慣。
即使多隆在阿里早已封神,但是他仍然每天醉心於編程的世界,研究各種代碼,不斷強化完善自己的技術。
即使陽振坤和他的OB團隊已經為取得了阿里的最高榮譽,他們仍然在每一次維護和升級中不斷地為OB資料庫做出新的改進和嘗試,向著更高遠的目標進發,他們期待著有朝一日OB可以超越IOE,成為世界上最棒的分布式資料庫。
每一個大神,都是由小白蛻變而成的。大神若不再努力,早晚會跌落神壇,泯然眾人。而小白們只要堅持學習,不斷提升自己,終有一日也會成為自己曾經仰望的大神。
每個大神的「封神之路」都有各自的精彩,但是也有著共同點,那就是:專注、熱愛、持之以恆。當然,每個領域的大神都是極少數,我們大多數人可能用盡全力也趕不上天賦異稟的人的輕松一步。
但是我們努力不是為了趕上任何人,而是為了成為心目中那個更好的自己。
就像現在正拼搏在殘奧會賽場上的殘疾健兒們,他們早就喪失了和正常人一樣生活的能力,但不妨礙他們依舊熱愛生活,依舊為了夢想去拼搏,去創造正常人都難以企及的記錄。
所謂奧運精神不光會激勵賽場上的運動員,也會時刻提醒我們每一個平凡的人,向著心裡的頂峰奮力沖刺。
保持心中那份對於夢想的執著和渴望,我們終將會突破自我。加油,未來的大神。
4. 初級程序員、中級程序員、高級程序員最大的區別是什麼
程序員之間也是存在很大的區別,他們之間最大的區別主要表現這這個方面,跟大家分享一下。
能力。一些程序員剛剛進入一個單位,學習的東西還不多,他們的能力差距要比老員工差很多。
經驗。有的程序員,自身的能力是提升上去了,但是,由於呆的時間相對比較短,經驗還不是很足,面對一些疑難雜症,還是不能解決。
薪資待遇。因為能力不同,所以獲得的回報也是不一樣的,一般高級程序員的薪資都是非常高的,畢竟他們能夠解決很多困難以及復雜的問題。
當然,除了這幾個方面之外,還有一些也是有差距的,比如說頭發,思維以及工齡等等。
5. 初級程序員與高級程序員的差別在哪兒
初級多在寫代碼,高級多在設計代碼;
初級多在解決一個問題,高級多在解決一類問題;
初級多在考慮技術問題,高級還要參與業務上的需求;
初級工程師只管接需求,導致自己忙不過來,高級工程師會砍需求, 用自己得經驗告訴產品這個需求不需要,告訴設計師這個交互沒必要;
初級工程師可能做完一個項目就完了,高級工程師可能會封裝幾個組件,整理一個腳手架出來。
還有很多很多,初級工程師和高級工程師差距不僅僅是代碼質量上,而且其他能力上,解決問題的能力,抽象問題的能力!
現在要想成為了一個中高級程序員,有一個機會,黑馬程序員全新推出了項目視頻,java、Python、大數據都有哦,想學習的小夥伴,去看看吧!
6. 程序員分哪幾種,分別要學什麼知識,工資怎麼樣
一、程序員的分類
程序員從事的人群很多,分工也不相同,從大的方面可以分為以下幾類:asp程序員、delphi程序員、php程序員、powerbuilder程序員、C程序員、linux程序員、net程序員、vb程序員、java程序員、javascript程序員、C++程序員、Python程序員、ABAP程序員、android程序員、iOS程序員。
二、所學的知識與必備技能
1、熟練開發軟體
做為一名程序員至少熟練掌握兩到三種開發工具的使用,這是程序員的立身之本,其中C/C++和JAVA是重點推薦的開發工具,C/C++以其高效率和高度的靈活性成為開發工具中的利器,很多系統級的軟體還是用C/C++編寫。而JAVA的跨平台和與WEB很好的結合是JAVA的優勢所在,而JAVA即其相關的技術集JAVAOne很可能會成為未來的主流開發工具之一。其次,能掌握一種簡便的可視化開發工具,如VB,PowerBuilder,Delphi,CBuilder,則更好,這些開發工具減小了開發難度,並能夠強化程序員對象模型的概念。另外,需要掌握基本的腳本語言,如shell,perl等,至少能讀懂這些腳本代碼。
2、熟悉資料庫
很多應用程序都是以資料庫的數據為中心,而資料庫的產品也有不少,其中關系型資料庫仍是主流形式,所以程序員至少熟練掌握一兩種資料庫,對關系型資料庫的關鍵元素要非常清楚,要熟練掌握SQL的基本語法。雖然很多資料庫產品提供了可視化的資料庫管理工具,但SQL是基礎,是通用的資料庫操作方法。
3、了解操作系統
要想成為一個真正的編程高手,需要深入了解操作系統,了解它的內存管理機制、進程/線程調度、信號、內核對象、系統調用、協議棧實現等。要懂得網路協議TCP/IP。網路技術已改變了軟體運行的模式,從最早的客戶/伺服器結構,到今天的WEBServices,再到未來的網格計算,這一切都離不開以TCP/IP協議棧為基礎的網路協議支持,深入掌握TCP/IP協議是非常必要的。至少,需要了解ISO七層協議模型,IP/UDP/TCP/HTTP等常用協議的原理和三次握手機制。要明白DCOM/CORBA/XML/WEBServices存在的意義。DCOM/CORBA是當前兩大主流的分布計算的中間平台,DCOM是微軟COM(組件對象模型)的擴展,而CORBA是OMG支持的規范。XML/WebServices重要性不言而喻,XML以其結構化的表示方法和超強的表達能力被喻為互聯網上的「世界語」,是分布式計算的基石之一。
三、薪資待遇
程序員的薪資待遇分檔次,大致情況是這樣的:
初級軟體工程師(0-3年開發經驗),平均月薪(3000-8000)
中級軟體工程師(3-5年開發經驗),平均月薪(5000-12000)
高級軟體工程師(5年+開發加2+管理),平均月薪(10000-90000)
一般只有剛畢業的初級工程師說的是月薪,中高級基本是年薪。
也有剛畢業就簽的年薪的。這個是大致范圍就這樣,也有少部分低於3000或高於90000的 具體差別要看自己的,畢業院校,專業學歷,專業能力,外語能力,職稱等級,綜合能力,以及所在城市還有自己的選擇等。但最主要的是看專業能力的。
7. 普通的程序員和大神級的程序員有什麼區別
8. 程序員分為哪幾種
程序員分為4種,分別是:
1、asp程序員、delphi程序員、php程序員、powerbuilder程序員、C程序、1員、linux程序員、net程序員、vb程序員、java程序員、javascript程序員、C++程序員、Python程序員、ABAP程序員、android程序員、iOS程序員。
4、計算機行業,初級的叫程序員,中級的叫軟體設計師,高級的叫系統分析師。