❶ 應該怎麼管理程序員
我是一個非常能忍耐的人,非常能忍。事情是這樣的,去年春天,由於上一個東家戰略失誤,導致我們部門被裁(悲劇啊),只好另尋他路,恰逢舊日總監空降到現在這家公司做老總,於是我就名正言順的過來做嫡系部隊。可等俺入職後,才發現這家公司水很深啊……。溜須拍馬的人比比皆是,竭盡所能討好領導,有些話我聽著都覺得臉紅心跳,胃部翻騰。此為公司第一陣營:諂媚,技術不精,管理不強,但是嘴上功夫了得,總能討得公司一把手二把手歡心,無所不用其極,堪比現代「和珅」。這一層人比較少,金字塔尖嘛。公司第二陣營:埋頭苦幹,一心只讀「聖賢書」,兩耳不聞「窗外事」。這是一群被極度剝削的新人,新時代的農奴,工資在公司墊底,升職沒他們,加薪更別想,技術沒人帶,基本處於群龍無首狀態,每天得過且過。這一層人最多,是整個公司的金字塔底,任憑黃沙蓋臉,毫無怨言。公司第三陣營:技術「大牛」,是的,這群人一般都是個小頭頭了,管理著為數不少的第二陣營,愛好鑽研技術,溝通能力基本為0,未接受過正規化訓練,一件事情要反復說多次方能「略懂略懂」,平時對自己手下不管不問,老子研究高深演算法,你們還是自己看書學習吧。好吧,我來了之後就有了第四陣營:不服管教派。 先說說幾件小事:1.剛來的時候,安排我進了一個開發中的項目組,讓我寫一個圖片處理和加水印的模塊,圖片處理,其實就是根據用戶上傳的圖片(像素很大,不適合網頁展示),壓縮成各種尺寸並加上網站logo水印,兩天後,我寫了一個通用的介面,傳入圖片的原始地址,水印地址並輸入要生成的尺寸就可以了,給了他們一個打好的jar包。入口參數都用「中文」注釋好了,可後面一直到一個月後,還是老是被問介面怎麼用。2.其二,因為存儲的圖片很多,很大,項目組決定用分布式存儲,選了Hadoop,這任務又被委派給我了,我一看,哥也沒搞過啊,but,難不倒哥。上官網查文檔,上google查資料,經過幾天的折騰,終於把分布式集群搞好了,那個時候公司就一個運維,只會裝系統搭路由,linux系統安裝和配置都是俺自己搞的,系統搞好後死活上不了網,又把機器從頭到尾檢查了一遍,去問運維,說我DNS地址設錯了,試了好幾個包括他給我的都不行,我不死心,去問運維,聊天的過程中無意間知道公司上公網是用路由過濾MAC地址的,果斷讓他查路由規則,我三台伺服器的MAC地址沒有一台在允許列表當中,oh,my god。好了,下面繼續講Hadoop,搭建好環境,寫完程序介面後就把圖片遷移到集群上,跑的還算穩定,就是讀取文件的時候有點延遲。後來哥有事請假兩天,打算回來解決延遲問題,可當我打開電腦興沖沖的連接Hadoop時,timeout了,What the hell did they do?去問經理,說是我離開後伺服器出問題了,項目組又沒有人會,就把圖片遷移回Apache,Hadoop集群關閉了。這尼瑪!不是坑爹嘛!!!!公司「元老」們對我的到來表示非常的不歡迎,項目組兩個月後就把我T出來了,讓我自立門戶,領導還專門關照我組建一個項目團隊時刻准備為公司沖鋒陷陣,這尼瑪,整個團隊就我一個光桿司令。以上只是技術的,一個對互聯網一竅不通,對編程壓根不懂的副總搞了一套CMMI作為管理手段,大會小會一個周要開三天,還有N多管理上的事情,不一而足,以至於我來兩個月後就想離職走人。後來想想,就這么走了太特么懦夫了,我要組建自己的團隊。於是乎招兵買馬,從招聘、帶人,制定項目規范、代碼規范,學會了js,struts(以前做軟體,沒摸過這些,慚愧……),從去年年中的1個人道現在的6個人,我的項目組成型了。 好了,不扯閑話了,轉入正題。我有182的身高,80kg的體重,我會一些拳擊,練了五年田徑,可是我從來不跟人拳腳相向。在生活里一直信奉「人不犯我,我不犯人,人若犯我,先讓兩個回合」的至理名言,可是今天早上上班打開郵件,我就不淡定了。 公司新推出了績效考核,特別強調要量化量化再量化,最極品的是要量化「每周」寫的代碼行數。其實呢,大家都懂的,工作上按時把工作計劃里的工作完成,保證正常上線,其實就OK了。可這位副總,不懂不說,還特別不信任員工,不捨得權力下放。不知道去進行內部團隊的構建工作,偏愛相信外面什麼培訓老師,今天早上,竟然在郵件里,赫然把外面老師考核項寫在績效模板里,還佔了20%的比重。一個根本不在公司,沒和項目組成員進行溝通交流,連我們做什麼項目都不知道的所謂「老師」,竟然要給我們績效考核的「工作能力」和計劃能力打分,真是奇葩啊!!此郵件一出,「和珅」們拍手叫好,高呼領導英明,堅定的站在公司領導這邊堅決執行新規定;「農奴」和「大牛」們依然擺出關我屁事的姿態,只是農奴看書的時候把頭埋的更低了,大牛們在寫代碼的間隙,會抬頭眺望窗外,若有所思。作為不服管教的一撮人,自然是強烈的反對,再聯想來了一年了,公司對加薪一事只有書面提過,CMMI文檔還躺在SVN里。我覺得快要達到爆發的臨界值。其實,我們程序猿都是很善良的,真的為了公司的項目可以整日加班,挑燈夜戰,只是,時間長了,付出和回報不成正比,心也就冷了。俺帶人時間不長,不過也總結了一些方法和道理,雕蟲小技,眾位莫笑。1.團隊要規范: 從項目使用工具到代碼規范,最好統一,有利於項目集成和維護。一個項目立項到結項,編碼、測試、日誌、監控、文檔……,每個環節都很重要,關系著項目質量和進度,從這些環節抓規范,建立起一套良性體系,不論是對於成員還是項目本身,都是好處多多的。在項目組不忙的時候,適時的安排一些項目組會用到的技術進行鑽研,寫成文檔並做簡短的培訓分享,對技術總結,口頭表達和書面總結能力的提升都是有益處的。2.成員管理: 對於新手,要用正確的方法積極引導,鼓勵他們多動手,不要埋頭看書,畢竟看書和實際寫代碼差別還是很大的,每次帶新人我都戰戰兢兢,一開始的習慣很可能影響到他們今後職業生涯,每每想到這點,肩上壓力倍增。對於老手,要善於發揮他們的長處,以此帶動項目組其他成員,共同進步。平時要多關心了解組員,讓他們覺得項目組就像家一樣,大家都是兄弟,在攻堅克難的時候,這種團結有愛的環境對於解決問題有奇效。在公司損害到成員利益的時候要堅決和成員站在統一戰線。3.工作流程: 編程是一件需要專注去做的事情,所以在日常工作中,在不影響項目進度的情況下,流程越簡單越好,繁雜不合理的流程會讓項目進度嚴重拖延,且打擊團隊士氣。4.對於公司: 真的希望有些對這個行業不懂的老總能看到,不要再用你的一家之見來做出錯誤的管理決定,殘害手下的員工了。這個行業和傳統行業不同,不是請幾個講師就可以把公司管理好的,那是狗屁。每年請講師花幾萬,從裡面拿出一部分獎勵給工作出色的員工,效果要好的多。而且我們這個群體非常善良,你不提加薪,我們很多時候都不好意思提,真的。可是程序員也是人,人心易冷,那些新人累死累活工作一年多,還拿著兩千露頭的工資,每天還在喊著讓他們加班趕進度,可能嗎,對了,現在加班費都沒,晚上加班連晚飯都不提供一頓,我只能呵呵?即使你把人留在辦公室,心早已不在了。今天牢騷到這里吧,只要我在公司一天,就不能讓這些不合理的東西影響到我的組員,我會戰斗到底。最後,最近研究學習Swing,得到園子里不少大牛(不加引號的哦)的幫助,俺心裡十分感激,等俺學成歸來,一定出個專輯,好好報答各位園友。 多謝各位建議,小弟俺現在待遇還不錯(算是嫡系優待吧),只是看不慣那些「和珅」黨,並試圖找出自己的管理之道作為對公司亂搬亂套管理模式的回擊,畢竟手下還有六七個人,我走了就真的沒人帶這些兄弟了,他們也不會自己爭取利益,真的是很善良的小兄弟,所以在我吃飽喝足的情況下,不能讓兄弟們挨餓受氣。
❷ 程序員男生有什麼特點
在廣大社會人士眼裡,程序員就是一個迷之群體:高收入,賺得多 ,花得少,低調的有錢人,新時代隱形富豪!
他們大多出沒於北京後廠村、上海張江科技園、深圳南山科技園和廣州天河軟體園。
在外人眼裡,他們整天盯著電腦悶聲敲鍵盤,屏幕上閃現一串串極具神秘氣息的外文字元。要是放在人群中,那就是一道亮眼的光!他們低調、質朴的氣場很快就會暴露自己。比如著裝:冬天穿沖鋒衣,大紅大紫的高飽和度顏色,兜多,能塞進各種電子產品,面料不容易粘灰,既保暖透氣又防風防雨,恍惚間你會以為是快遞和外賣小哥。
❸ 對於程序員,編程經常遇到的那些符號,比如{}[]:;"'<>,.等,都必須用小拇指打出來嗎
我以前都沒注音過哦,看個人習慣吧。{}我是用無名指和小指,()我是用中指和無名指,左手小指shift,<>是用右手中指無名指,右手小指shift
❹ C++ 編程過程中,有哪些常犯的壞習慣,哪怕對於多年經驗的程序員也會出現
大家都知道,編程是一個非常用腦並要求非常細心的一項工作,在編程過程中,哪怕一個非常不起眼的小細節,比如一個標點符號,都會讓整個程序崩潰。
先說在編程時,盡管經驗老道的程序員也會犯一些常見的小問題。
說好聽的叫拒絕改變,說不聽的叫不思進取。而這個也是許多經驗豐富的程序員常犯的壞習慣。當然,還有很多,在這里我就不一一說明了。。。
❺ 一個優秀的程序員需要養成哪些良好的習慣
1. 理解編程語言的原理,遵循編程規范,並且能夠寫出有效的代碼,並學會優化代碼。
2. 估算解決問題所需要的時間,為自己定一個時間限制,加強程序自測試。
3. 做好版本控制,並及時備份代碼,經常檢查代碼,還要回顧以前寫過的代碼,看看能不能有新想法。
4. 動手編碼之前,先做好分析和設計。
5. 對項目文件歸類保存。可以把項目文件放到SOURCE、HEADERS、MAKE、EXES等不同的文件夾中。
6. 制定驗收規則,優秀出色的程序一定會編寫技術測試腳本,因為他們清楚要是省略了這一步會嚴重後果。
7. 重視,但不過於注重程序的設計模式。
8. 養成耐心、冷靜的好習慣,多向優秀的程序員學習。
❻ 要做程序員需要學會什麼
其實簡單來說,程序員的工作就是使用編程語言,根據需求寫出一個程序。
但是,在這個過程中,涉及如下幾個方面:
使用的編程語言 程序員需要選擇一門或者多門語言來編程,不同的語言適合編寫不同的程序,目前主流編程語言包括,java、JavaScript、Python、C++、php以及其他小語種等等,每種編程語言適合開發的程序有所不同。目前從程序應用分來,主要可以分為三類a 企業應用,主要用於解決企業業務。各種企業管理後台系統,銀行系統,公安系統,圖書管理系統等等。
b 互聯網應用,面向互聯網用戶,為互聯網用戶提供各類服務。比如現在的京東淘寶各類電商系統等。
c 移動應用,各類在移動端使用的APP,有面向互聯網用戶的APP,也有面向企業內部的APP。
目前相對而言,在移動應用和互聯網應用方面,資本投入比較熱的風口,程序員的薪資較高。企業應用,發展了很多年,相對平穩。
2. 明白需求,實現需求
需求就是編寫程序的要求。一個程序要編寫成什麼樣子,具備哪些功能,都是由需求來具體說明。程序員要需要能看懂需求文檔,並且能准確地使用編程語言,根據需求中的要求來編寫成程序。企業開發的項目,往往會由該程序的架構師提供一個程序框架,程序員在該框架的規范下進行編程,實現需求的功能,以確保程序的規范、可讀,以及可維護性。
3. 日常工作寫程序
一個軟體開發一般流程是產品經理根據用戶需求做一個項目出來,然後UI設計師做一些圖片設計,前端開發編寫頁面,後台開發編寫核心編程,然後介入一些大數據和人工智慧,通過測試之類上線實施,後期還有運維進行相關維護。
程序員一般大多指的是前端和後台寫代碼程序的開發人員,除了編寫代碼,可能還需要通過介面和其它系統對接,實現系統間的數據交換。像單體測試,是程序員對自己寫好的程序單元進行測試,檢測這個程序單元數據輸入和數據輸出是否符合預期等等。測試出來的問題,需要修改正確,然後再測試,直至沒有問題。和同事共同開發的時候也需要聯合測試,以及用戶測試過後如果存在BUG繼續進行修改。
❼ 編程語言會影響程序員的性格嗎
編程到底會不會影響程序員的性格?用我同桌當活生生的例子。見仁見智了,我覺得可能有些程序員會在編程的影響下變得比較沉默、話少、性格內向、不善與人打交道,不是有句話調侃程序員的么,什麼錢多話少死的早?大概就是對我同桌來說應該是錢少話多死的早吧。畢竟作為一個破碼農,每個月工資也不多,經常加班,嘴比較貧,還比較懶。當然,一般是對熟人比較貧,對剛認識或者陌生的人也是話少嘴不貧。當然,以上都是開玩笑的。
至於編程對我同桌的性格有沒有影響,想來是有的。以前做事的話是想到什麼就去做什麼,現在會先把要做的事在腦子里過一遍,想清楚前後順序和對效率的影響,是謀定而後動吧,哈哈。主要是懶,想要讓效率更高一點,省出時間玩玩游戲什麼的。
嗯,生活中的話,還比較討厭一些突發事件或者說例外。在你寫好的程序里,如果大部分人都測試通過了,而有些手機的機型或者說系統或者說個人所導致的無法在開發環境復現的bug,會讓你很惱火,因為你不知道該怎麼去解決它而又不能忽視它。還有和以前相比,會更富有耐心一些,畢竟各種需求變更,代碼bug總是讓你改了一遍又一遍。整理東西的話,也會放的看起來更美觀一些,畢竟敲代碼的時候,編碼規范和個人的一點強迫症都會使得你把代碼變得更為漂亮更為整齊。
❽ 程序員的 職業素養
程序員因其致力於程序開發、設計、維護、編程等這一特殊領域,使其天生具備了堅定的職業信念、超強的職業知識技能、良好的職業行為習慣等職業素養。
簡介:
程序員(英文Programmer)是從事程序開發、維護的專業人員。一般將程序員分為程序設計人員和程序編碼人員,但兩者的界限並不非常清楚,特別是在中國。軟體從業人員分為初級程序員、高級程序員、系統分析員,系統架構師,測試工程師五大類。
崗位職責:
1、對項目經理負責,負責軟體項目的詳細設計、編碼和內部測試的組織實施,對小型軟體項目兼任系統分析工作,完成分配項目的實施和技術支持工作。
2、協助項目經理和相關人員同客戶進行溝通,保持良好的客戶關系。
3、參與需求調研、項目可行性分析、技術可行性分析和需求分析。
4、熟悉並熟練掌握交付軟體部開發的軟體項目的相關軟體技術。
5、負責向項目經理及時反饋軟體開發中的情況,並根據實際情況提出改進建議。
6、參與軟體開發和維護過程中重大技術問題的解決,參與軟體首次安裝調試、數據割接、用戶培訓和項目推廣。
7、負責相關技術文檔的擬訂。
8、負責對業務領域內的技術發展動態進行分析研究。
職業認證:
考試介紹:
軟考程序員考試屬於計算機軟體水平考試(簡稱軟考)中的一個初級計算機職稱考試。對於軟考程序員考試並無學歷及資歷條件限制,更無論年齡、專業與資歷。一年可報考軟考程序員考試兩次,但一次考試只能報考一種資格,因此報考了程序員考試則無法再報考軟考其他級別或科目的考試。同時軟考程序員考試採用筆試形式,考試實行全國統一大綱、統一試題、統一時間、統一標准、統一證書的考試方式。
通過國家統一組織的考試,資格考試分為:程序員級(原初級程序員)、軟體設計師(原高級程序員)以及更高水準的:信息系統項目管理師、系統分析師(原系統分析員)、系統架構設計師、網路規劃設計師、系統規劃與管理師。
考試目標:
通過本考試的合格人員能根據軟體開發項目管理和軟體工程的要求,按照程序設計規格說明書編制並調試程序,寫出程序的相應文檔,產生符合標准規范的、實現設計要求的、能正確可靠運行的程序;具有助理工程師(或技術員)的實際工作能力和業務水平。
1、CVEQC認證持有者已經通過了中國職業教育資格認證指導中心組織的培訓和相應的考試,具有相應的專業技能和知識。
2、CVEQC證書可作為勞動者崗前培訓、在職培訓、提高培訓、繼續教育的培訓認證;也是勞動者「先培訓、後就業,先培訓、後上崗」的憑證。
3、CVEQC證書是中國職業教育資格認證指導中心頒發的專業技能證書。標有證書序列號、證書編號、培訓者及證書持有者身份證號碼,並蓋有全國職業教育管理委員會、中國職業教育資格認證指導中心的證書專用章。
4、 證書證明參加培訓及證書持有者具有系統地接受崗位技能培訓的經歷,證書在全國范圍內有效。
二、報考條件:凡遵守中華人民共和國憲法和各項法律,恪守職業道德,具有一定計算機技術應用能力的人員,均可根據本人情況報名參加相應專業類別、級別的考試。[1]
考試要求:
(1)掌握數據及其轉換、數據的機內表示、算術和邏輯運算,以及相關的應用數學基礎知識;
(2)理解計算機的組成以及各主要部件的性能指標;
(3)掌握操作系統、程序設計語言的基礎知識;
(4)熟練掌握計算機常用辦公軟體的基本操作方法;
(5)熟練掌握基本數據結構和常用演算法;
(6)熟練掌握C程序設計語言,以及C++、Java、Visual Basic中的一種程序設計語言;
(7)熟悉資料庫、網路和多媒體的基礎知識;
(8)掌握軟體工程的基礎知識,了解軟體過程基本知識、軟體開發項目管理的常識;
(9)了解常用信息技術標准、安全性,以及有關法律、法規的基本知識;
(10)了解信息化、計算機應用的基礎知識;
(11)正確閱讀和理解計算機領域的簡單英文資料。
相關書籍:
很多程序員響應,他們在推薦時也寫下自己的評語。 以前就有國內網友介紹這個程序員書單,不過都是推薦數 Top 9的書。
其實除了前9本之外,推薦數前30左右的書籍都算經典,筆者整理編譯這個問答貼,同時摘譯部分推薦人的評語。
下面就按照各本書的推薦數排列。
1、《代碼大全》 史蒂夫·邁克康奈爾
2、《程序員修煉之道》
3、《計算機程序的構造和解釋》
4、《演算法導論》
5、《重構:改善既有代碼的設計》
6、《設計模式》
7、《人月神話》
8、《計算機程序設計藝術》
9、《編譯原理》(龍書)
崗位分類:
世界上第一位程序員是英國著名詩人拜倫的女兒AdaLovelace,曾設計了巴貝奇分析機上解伯努利方程的一個程序。她甚至還建立了循環和子程序的概念。由於其在程序設計上的開創性工作,AdaLovelace被稱為世界上第一位程序員。美國國防部開發的ADA語言就是為紀念這位世界上的第一位程序員而命名的。
計算機科學發展到今天(21世紀初期),程序員從事的人群很多,分工也不相同,從大的方面可以分為以下幾類:asp程序員、jsp程序員、delphi程序員、php程序員、powerbuilder程序員、C程序員、linux程序員、net程序員、vb程序員、java程序員、javascript程序員、C++程序員、Python程序員、android程序員、iOS程序員。
職業要求:
一般的程序員都有四年的在專業領域的學習,需要一個在程序領域的學士學位獲得者,不論是數學方面的還是工程方面的都是可以的。
大約有20%的人在這一領域的計算機科學和工程學擁有更高的學位。還有很小一部分程序員是自學的,盡管一些專業性的學校或者綜合大學可以提供,但是也需要一些別的途徑來提供相關的人才。盡管學歷是比較重要的,但是公司經常把重點放在應聘者的工作經驗上,很多剛從大學畢業的大學生雖然有引人注目的學位證書,但是他們找不到工作是因為他們缺乏經驗。一個程序員雖然沒有正規的學歷,但是如果一個人擁有程序設計的深厚知識背景或者豐富的工作經驗的話,那麼他的機會要比有學歷的應屆畢業生大得多。所以要盡量抓住有用的工作和實習機會,這樣的話在畢業後你就會發現,多實習讓你有更多的經驗,在找工作的時候就有更多的機會。
對於職業程序員,另外一個重要的方面就是,程序員需要不斷提升自己的業務技術,他的技術必須一直保持在一個較高的水平,並且要不斷發展,程序員也要尋找貿易的機會,要參加研討會,在周刊上發表文章和接受職業教育,這些使程序員在自己的領域中分級或者不斷並排前進。
素質要求:
團隊精神和協作能力:
團隊精神和協作能力是作為一個程序員應具備的最基本的素質。軟體工程已經提了將近三十年了,當今的軟體開發已經不是編程了,而是工程。獨行俠可以寫一些程序也能賺錢發財,但是進入研發團隊,從事商業化和產品化的開發任務,就必須具備這種素質。可以毫不誇張的說這種素質是一個程序員乃至一個團隊的安身立命之本。
文檔習慣:
文檔是一個軟體系統的生命力。一個公司的產品再好、技術含量再高,如果缺乏文檔,知識就沒有繼承,公司還是一個來料加工的軟體作坊。作為代碼程序員,必須將30%的工作時間用於寫技術文檔。沒有文檔的程序員勢必會被淘汰。
規范化的代碼編寫習慣:
知名軟體公司的代碼的變數命名、注釋格式,甚至嵌套中行縮進的長度和函數間的空行數字都有明確規定,良好的編寫習慣,不但有助於代碼的移植和糾錯,也有助於不同技術人員之間的協作。
測試習慣:
測試是軟體工程質量保證的重要環節,但是測試不僅僅是測試工程師的工作,而是每個程序員的一種基本職責。程序員要認識測試不僅是正常的程序調試,而要是要進行有目的有針對性的異常調用測試,這一點要結合需求理解能力。
學習和總結的能力:
程序員是很容易被淘汰的職業,所以要善於學習總結。許多程序員喜歡盲目追求一些編碼的小技巧,這樣的技術人員無論學了多少語言,代碼寫起來多熟練,只能說他是一名熟練的代碼民工(碼農),他永遠都不會有質的提高。一個善於學習的程序員會經常總結自己的技術水平,對自己的技術層面要有良好的定位,這樣才能有目的地提高自己。這樣才能逐步提高,從程序員升級為軟體設計師、系統分析員。
擁有強烈的好奇心:
什麼才是一個程序員的終極武器呢,那就是強烈的好奇心和學習精神。沒有比強烈的好奇心和學習精神更好的武器了,它是程序員們永攀高峰的源泉和動力所在。
日常工作:
確認通過審查方案的目標,輸入數據,分析師,監事,和客戶的輸出要求的項目要求。
安排項目要求在編程序列分析要求;准備工作流程圖和使用計算機知識的能力,題材,編程語言和邏輯圖。
編碼工作流程的信息轉換成計算機語言的項目要求。
通過輸入編碼信息的計算機程序。
確認程序操作進行測試,修改程序序列和/或代碼。
准備寫操作指令供用戶參考。
保持歷史記錄,通過記錄方案的制定和修訂。
維護客戶的信心和保護保密的業務。
技能/資格:一般的編程技巧,分析信息,解決問題,軟體演算法設計,軟體性能優化,注重細節,軟體設計,軟體調試,軟體開發基礎,軟體文檔,軟體測試。程序員其實分為很多種,大家開發的語言可能不盡相同,但是都是有他們的共同點。
❾ 頂級的程序員是怎麼樣的
頂尖程序員常說:「這個我以前寫過一個模塊,我找找,很快。「簡直是沒有對比就沒有傷害!
有人認為,普通程序員用復雜的代碼解決簡單的問題;而高級程序員能把復雜的問題簡單化並用簡潔的代碼去實現。在w3cschool看來,頂尖程序員和普通程序員至少在以下6個方面大有區別。
1、文檔能力
「文檔是第一生產力」,這一點在程序員的世界是毫無異議的。看看Spring,hibernate,Struts等最流行的開源軟體的文檔就知道,他們tutorial,他們的getstarted,他們的reference文檔寫的多麼的易懂。
如果要獲得更高的報酬,文檔是絕對關鍵的因素。有文檔就有溝通,就有交易。搞技術的容易忽視文檔的力量,也因為寫文檔十分困難,更多程序員選擇舒適區,習慣寫下代碼,但正因為如此,妨礙了不少程序員的進階。
2、解決BUG的效率差別
普通程序員可以利用搜索引擎(網路)尋找答案,經常性找不到好的解決辦法,然後更換技術方案!頂級程序員也利用搜索引擎(Google)尋找答案,一般bug都順利解決(其實跟前期框架選擇等關系非常大)。
3、表達能力
表達能力決定了你所做的技術的影響范圍,決定了你的影響力,決定你的威信,決定了你的報酬。普通程序員和頂尖程序員的表達能力差別非常大,這主要還是取決於他們格局的不同。良好的溝通能力讓你理解產品經理的設計思路,讓你更好的展現自己的特長。
對於累積人脈,當你的閱歷越來越豐富,人脈對你的幫助也越來越明顯。
4、優雅和美觀的抽象能力
普通程序員和頂尖程序員之間的區別在於優雅和美觀的抽象能力。好的系統通常是要做到兩個方面才合格,其一是好用,其二是好看。但是令人遺憾的是,普通程序員僅僅從實現的角度進行堆砌。頂尖程序員往往能夠更進一步,經常會去思考用戶在操作這個功能的時候,到底還會做什麼事情。
所以,頂尖程序員和普通程序員區別就是是否擁有用戶意識,是否敢於直面用戶。好用,好看一直是軟體能夠被普遍採用的前提,因此,我們有必要學會抽象優雅。
5、面對如何開源社區態度
普通程序員幾乎沒有在開源社區混,這也導致經常對新技術發展關注度低。而頂尖程序員則是擁抱開源社區。
6、面對功能點
普通程序員:立馬開始構思自己如何實現腦海里出來一個方案。
頂尖程序員:發現功能點很普通github上面早已經有非常多的解決方案,著手根據業務選擇一個最適合最優的方案
❿ 程序員等級劃分:看頂級高手如何編程
有腦子,很聽話,很認真,但基礎不好,代碼有局限性 這類型的程序員大多是工作一到兩年的程序員,但和上面的不同,他們很有腦子思路很好,而且很聽經理的話,做東西很認真,做不完了自己會加班寫,學新的東西也很快,但是有一點不好的是,他們有很多理由說自己沒時間學習基礎,這些人一般是在學校沒有學好,出來之後後悔了,學起來很認真,由於學了些新的知識,起點高,看不起基礎的東西,從不想著沒事去看看編程基礎,看看演算法,看看數據結構,總是以為我都能做出這樣的項目了,還看那些小東西會很丟人的,於是在公司從不看回家更不想看,時間長了,技術會有很大的局限性,對某一塊技術很不錯,但是對其它技術不怎麼好,於是在接到一個項目時,總喜歡使用自己現有的,會的技術去實現,轉了一圈又一圈總算是把東西寫出來了,而且還是加班完成了,但是代碼的性能,穩定性,和效率上差的很遠,擴展性也談不上,時間一長,項目一多起來,就會出現多次反工,因為需求是會不斷變化的,於是自己的代碼也要變化,感覺很是理所當然,一個項目沒事,接手的多了就麻煩了,新項目剛到手,老項目就出問題了,不是這里有點小毛病就是那個功能要升級,於是新項目放下,著手改老項目,手上能有三四個項目時,就會忙個不停,改的多了,沒辦法再改了就得重新設計,或是直接說這個功能實現不了。 其實在這個階段的朋友很有潛力的,只要花點心思補習一下自己的技術缺陷,多看看高手的代碼,寫之前想一下,設計一下,自然事半功倍,千萬不要有眼高手低的心態。 真正的高手Nb人物是怎麼工作的------------程序員 1.不隨便改變需求 他們不會主觀的改變一些東西,不管是對還是錯,如果要改的話他們會在開會時,或是私下跟你提出來,通過後再改,否則會按需求辦事 2.不寫沒有思想的代碼 在寫功能時會加上一些人性化的功能,比果加個小圖標,加一些驗證,處理一些操作習慣,加加快捷鍵,處理好Tab順序,等這些,不用你說,他們自己會處理好。 3.不寫沒有遠見的代碼 他們在寫代碼時會想,不會是單純的實現功能,他要想,如果別人也要用這個方法怎麼辦,以後要改的時候怎麼辦,代碼這樣寫是不是合理,是不是會影響性能,然後才會」吝嗇「的出手。 4.不寫不負責任的代碼 我們寫代碼一是為客戶用,二是方便其他人看,不單單是自己維護,要對自己的代碼負責,從自己手上出去的代碼代表的就是自己的臉,代碼不好,人家會「打臉」的。他們不願意挨打所以他們負責。 高手在編程效率方面可能並不比普通程序員快多少,因為他們會吝嗇自己敲下的每一行代碼。這種「吝嗇」有兩方面的含義,一是項目的架構性和整體性考量,二是從性能和優化的角度進行Coding。其實,這里所映射的是一個開發者的技術視野。 有多位技術專家強調項目執行時的全局觀。面對一個項目,即使是團隊中的普通一員,也要力求從項目整體架構的角度審視開發需求,對各個模塊、介面和通信做最優化的預想和配置。這樣可以從全局審視整個項目的技術布局,預判可能出現的問題。 在確定了整體之後,落實到具體的模塊實現,每一行代碼不但有上下文的考量與規劃,還要具備模塊間的整體布局。這是模塊內的技術視野,比如介面的定義、注釋的可讀性、代碼的執行效率等。當你寫下一行代碼前,要考慮它是否會對整個系統造成影響,是否方便其他介面進行調用,這些都是一個開發高手的「技術潛意識」。 據一些經常帶領入門級開發者的技術經理介紹,多數人只考慮自己所負責的模塊進行開發,缺乏一個全局性的技術視野和對代碼性能苛刻的態度,這樣雖然能按交付日期完成項目,卻對項目質量和開發者的自我提高有很大阻礙。 開發高手是代碼閱讀者。大多數技術專家的代碼閱讀量是普通程序員的百倍,代碼閱讀的時間比寫代碼的時間要長得多。 多數程序員只把程序開發當成一份工作,他們在乎平台的前景、語言的優劣、報酬的高低;他們不願為一個技術點反復鑽研,不願為一個bug精心測試,不願為自身技術水平的提高多花時間。而開發高手往往具有單純的技術夢想,願意為技術付出自己全部的時間。