A. 頂級的程序員是怎麼樣的
頂尖程序員常說:「這個我以前寫過一個模塊,我找找,很快。「簡直是沒有對比就沒有傷害!
有人認為,普通程序員用復雜的代碼解決簡單的問題;而高級程序員能把復雜的問題簡單化並用簡潔的代碼去實現。在w3cschool看來,頂尖程序員和普通程序員至少在以下6個方面大有區別。
1、文檔能力
「文檔是第一生產力」,這一點在程序員的世界是毫無異議的。看看Spring,hibernate,Struts等最流行的開源軟體的文檔就知道,他們tutorial,他們的getstarted,他們的reference文檔寫的多麼的易懂。
如果要獲得更高的報酬,文檔是絕對關鍵的因素。有文檔就有溝通,就有交易。搞技術的容易忽視文檔的力量,也因為寫文檔十分困難,更多程序員選擇舒適區,習慣寫下代碼,但正因為如此,妨礙了不少程序員的進階。
2、解決BUG的效率差別
普通程序員可以利用搜索引擎(網路)尋找答案,經常性找不到好的解決辦法,然後更換技術方案!頂級程序員也利用搜索引擎(Google)尋找答案,一般bug都順利解決(其實跟前期框架選擇等關系非常大)。
3、表達能力
表達能力決定了你所做的技術的影響范圍,決定了你的影響力,決定你的威信,決定了你的報酬。普通程序員和頂尖程序員的表達能力差別非常大,這主要還是取決於他們格局的不同。良好的溝通能力讓你理解產品經理的設計思路,讓你更好的展現自己的特長。
對於累積人脈,當你的閱歷越來越豐富,人脈對你的幫助也越來越明顯。
4、優雅和美觀的抽象能力
普通程序員和頂尖程序員之間的區別在於優雅和美觀的抽象能力。好的系統通常是要做到兩個方面才合格,其一是好用,其二是好看。但是令人遺憾的是,普通程序員僅僅從實現的角度進行堆砌。頂尖程序員往往能夠更進一步,經常會去思考用戶在操作這個功能的時候,到底還會做什麼事情。
所以,頂尖程序員和普通程序員區別就是是否擁有用戶意識,是否敢於直面用戶。好用,好看一直是軟體能夠被普遍採用的前提,因此,我們有必要學會抽象優雅。
5、面對如何開源社區態度
普通程序員幾乎沒有在開源社區混,這也導致經常對新技術發展關注度低。而頂尖程序員則是擁抱開源社區。
6、面對功能點
普通程序員:立馬開始構思自己如何實現腦海里出來一個方案。
頂尖程序員:發現功能點很普通github上面早已經有非常多的解決方案,著手根據業務選擇一個最適合最優的方案
B. 程序員的核心競爭力是什麼為什麼
終於有一個問題可以好好說說我遇到過的彎路了。我認為程序員的核心競爭力如下:1. 整合現有資源的能力,什麼時候造輪子,什麼時候不造輪子,什麼情況下利用公司自己的輪子,什麼情況下利用開源的輪子。2. 產品發展方向的規劃能力,一個技術類的框架,產品,平台,需要程序員明確什麼問題是要解決的,什麼問題是不要解決的,產品相對其他競爭產品的優勢在哪些方面。3. debug能力,有了線上問題,可以一擼到底,無論問題在哪裡,操作系統,文件系統,虛擬機,框架,等等,都可以定位問題所在。4. 文檔、pr能力,作出了產品,可以迅速了解優勢所在並推廣5. 編碼習慣,比如嚴謹的持續集成,測試樣例先行,之所以說是習慣不是技巧,是因為好的編碼習慣,可以持續為團隊帶來更大收益,而好的編碼技巧沒有那麼大的效果。切忌以下行為:1. 長時間調研沒結果,學習了很多框架,做法,無法認真對比優劣,這就是不能抓住核心的問題2. 被需求牽著鼻子走,失去了產品的規劃方向,或是走到哪算到哪,做出來的東西因為臃腫的需求越做越繁瑣3. 隨口亂說release時間,總是失約
C. 作為剛入職的java程序員,一年時間內如何提升自己的實力,更有競爭力
可以從以下幾個方面入手:
第一:學習Java虛擬機知識。要想系統深入的了解Java語言中的各種概念就需要了解JVM(Java虛擬機)的體系結構和設計模式,JVM是Java語言的容器,Java語言的所有特性都是由JVM所提供的,所以系統的學習JVM對於理解Java語言具有重要的意義,尤其在未來面對一些系統級問題時會更加自信。
第二:提升代碼量。對於初級程序員來說,要想提升自己的編程能力,一個最為有效直接的方式就是提升代碼量。一方面可以通過崗位任務來完成,另一方面可以通過自主實驗來完成。提升代碼量的過程不僅能夠加強自己的編程能力,也能提升自己調試程序的能力。
第三:圍繞主攻方向展開學習。Java程序員往往都有一個自己的主攻方向,比如Web開發、大數據開發等等。對於Web開發來說應該圍繞Web組件的開發來逐漸展開自己的知識面,包括Web容器的理解、框架的理解、前端處理過程的理解(JavaScript)等。對於大數據方向來說,應該從理解大數據平台開始(Hadoop、Spark),進而掌握平台提供的Java API。
Java中可以系統學習的內容非常多,比如並發機制、事務處理機制、安全機制、消息傳遞機制、分布式處理機制、資源管理機制等等,這些內容都需要進行深入的了解。
D. 游戲unity3d程序員和其它各種類的程序員比起來,這幾種程序員工作強度怎樣,比如時間,工作量等等
全部程序員都沒有太多可比性,天下烏鴉一般黑。但和Unity3D程序員比起來,就沒那麼黑了,下面那Java程序員來對比一下:
就業面不如Java廣大。
待遇不如Java程序員,那個工資就沒別人高。
加班比Java程序員要多。
另外,與Java還有一點不同,這個Unity3D方面的知識對於其它領域再就業幾乎沒任何用。
最後,前景方面更是不如Java程序員,記得在Unity3D前有個比Unity3D還火的引擎(是誰這里就不賣廣告了),那時那個引擎的招聘就和現在的Unity3D如出一轍,後來這個引擎死了。那麼問題來了,假設Unity3D死了,搞Unity3D程序的還談什麼工作強度、工作量。
E. 從哪些點上可以體現一個程序員的實力
對於一個程序員來說,剛上任的新手,如果能夠將工作任務高效地處理,證明其工作能力還是具備一定的基礎的,企業大可繼續留任試用。如果這個程序員不僅能夠在短時間內高效處理工作內容,且對於工作的細節也十分地考究,充分全面地考慮,必然也代表其工作思維和普通員工不同。一個程序員如果對於工作只是在應付差事,那麼必然其能力也不會好到哪裡去,因此,一定要觀察期對待工作態度是否認真,然後進行其能力的初步判斷。
F. 程序員未來前景如何大齡程序員出路在哪裡
年齡大的普通程序員,將來的出路無非就是以下三個:
1、穩定地待在一家公司,有一定產出效率,成為一顆螺絲釘,不出彩也不出醜,就像之前棉紡廠的工人那樣,直到這家公司不行了,找另一家,繼續做個普通一兵。其實這事兒和幾十年前的工人一樣,只是時代不一樣,職業的名字變了。
2、尋找相對優勢,到稀缺你技術、能力、經驗的地方,找到存在感。比如一線城市回退到二線、三線;比如互聯網頂級公司的普通程序員進入小公司;比如互聯網行業的普通程序員進入傳統行業有軟體部門的公司。
3、轉行,想干什麼干什麼去,很多人認為,一個 35 歲以上的程序員相比較一個 20來歲的畢業生,精神狀況、身體狀況必定是不如剛剛大學畢業的年輕人,所以要盡早轉行。那麼問題來了,程序員是吃青春飯的嗎?程序員的職業發展到底如何呢?
首先,我覺得時至今日,相比其他職業,程序員仍然是一個投入產出比比較高的職業。程序員不是一個「吃青春飯」的職業,而是一個常青的職業。程序員其實也並沒有我們想像中那麼累,很多互聯網公司的工作環境、工作氛圍、員工福利都是非常不錯的:彈性工作,定期團建,免費健身;一日三餐、零食飲料應有盡有。對於頭腦靈活、思維敏捷,但還沒有明確職業目標的理工科畢業生而言,把程序員作為職業生涯的起點,應該會是一個不錯的選擇。以北京為例,應屆畢業起薪在 8000-10000 元,比其他職業高出不少。程序員現在小蜜蜂雲工作了解很多遠程可辦公的,全職兼職都是有的,可供的選擇還是比較多的。
程序員在職業生涯第一個階段,通常是 3-5 年。這個階段要以職業探索為主,腳踏實地寫好每一行代碼。只有快速學習和成長,掌握過硬的專業技能,這樣才能在職場立足,走好未來的路。現在程序員的職業領域已經細分到了令人發指的地步,比如:大數據工程師、雲計算工程師、某某語言工程師、系統架構師、web 前端工程師、嵌入式軟體工程師、資料庫開發工程師等等。
G. 程序員干不到40歲
計算機在中國的普及只有二十多年,所以最老的一批程序員也才四十多歲。因為招生的擴大化和普及化,40歲的程序員數量只有現在年輕人的十分之幾,大部分都是管理型的(少數能力和口才差的成為草根甚至被淘汰)。如果是前端、APP、大數據AI等新興領域,40歲以上的人很少。從技術和身體的角度來說,程序員55、60歲退休是沒有問題的。戰鬥力不會比30歲的人差。學習新技術可能會慢一點,但是經驗可以彌補整體效率。一般來說,稍微過時的技術開發性價比最好。研究表明,程序員的高峰期在50歲左右。參考下圖。我見過一些國外IT公司的高層,幾乎都是大鬍子老頭和中層管理人員,而且都以四五十歲為主。在一些傳統企業,主要的程序員都在四十左右。互聯網類的比較年輕,但還是比國內大。
H. 程序員的工資為什麼那麼高
根據《2018年中國程序員生存狀況報告》,年薪 5w 以下的程序員僅占 6.2%,且年齡都在 25 歲以下,工作年限只有 1-2 年;大多數程序員年薪在 9-30w,平均月薪達到 10k 以上,這相比於其他行業已算是高薪;年薪 40 萬以上平均年齡為 36 歲。
為什麼程序員普遍高薪?
1、程序員是IT行業的核心競爭力
it 行業自誕生以來,一直是資本的寵兒。近年來,多數風投都進入了互聯網公司,這是一個循環,資本看好,就會出現更多的創業者。創業公司越多,就需要越多的技術人員。所以,這個行業總體上是不缺錢的,有能力給程序員開高薪。
2、程序員的門檻相對比較高
這個門檻不是指學歷,而是很多人倒在入門的路上,因為零基礎入門時總會遇到挫折,很容易讓人放棄,能真正堅持學完然後做這一行的人,相比別的行業來說還是少很多。
3、程序員的不可替代性
軟體技術公司最主要的開銷就是人力開銷,人才是最重要的組成部分。軟體開發不是工廠,很難量化,沒辦法做到流水線工程。有些關鍵的崗位人才一旦流失,就會對公司產生巨大的損失,這也是程序員值錢的一個原因。當然前提是技術實力過硬,如果只是打雜或者混日子的,那就另當別論了。
未來,程序員會持續高薪
在所有職業當中,程序員是增長得最快的。很多傳統工作類型已經漸漸被取代了,正是因為程序員把這些工作內容自動化了,這個趨勢肯定會繼續下去。
軟體行業的變化會遠遠超過幾次工業革命的變化。傳統行業被軟體化需要程序員來實現和維持。未來幾十年內,需求只會越來越大,與其它行業的工資差距也會越來越極端。
站對了風口,豬都能飄,更何況是工資?
I. 作為高齡的程序員,跟同行人還有競爭優勢嗎
本文會給你一些Java工程師職業發展規劃的思考,也給很多二三十歲對職業前途迷茫的同學一些建議。希望通過這篇文章,能幫你梳理一下程序員,讓你知道如何規劃我們的程序員,從20歲初出茅廬到40歲老碼農的半條命。
首先我們來看看a 程序員三四十歲的時候有什麼可以捍衛我們的核心競爭力。要理解這個問題,就要從反面來看。在職業發展過程中程序員犯過哪些錯誤,導致他們在職業生涯中後期缺乏競爭力?
適合老年人的幾種職業發展途徑程序員看了以上內容,大家都知道問題所在,接下來我們來討論一下:什麼樣的老年人程序員能被各種30多歲甚至40多歲的公司青睞?
(1)成為技術大牛,掌握公司核心技術
第一種方式是掌握自己行業的各種技術,即使離開這家公司,也是其他公司的對象。我舉個例子。比如你一直在互聯網行業工作,負責並經歷過很多大型互聯網公司的核心系統架構設計。對於一個互聯網系統,如果你想支持1億用戶,有什麼技術挑戰,如何設計,你都經歷過這些過程。如何支持每秒10萬個並發請求,如何設計系統支持數百億的數據存儲。你知道這一切。那麼這個時候,你就有了核心技術。
即使你現在的公司不要你,你也會被其他公司完全爭奪,因為很多公司需要大規模系統、高並發經驗、海量數據經驗的架構師。
一千人的部隊很容易得到,但一個人很難找到。很容易招到很多工資20-30 K的高級工程師,把一個模塊做好。但是很難招聘到一個能掌控全局,在貴公司掌握復雜大系統的資深架構師。這樣的人很有價值,很多公司都需要。
這個時候你雖然三十多歲了,但是因為你有核心的技術能力和核心的結構能力,你是公司技術的最後一道防線,很多崗位對你來說都是不可或缺的。再舉個例子,比如大數據領域。現在你已經工作了10多年,有了深厚的技術基礎,可以完全優化大數據領域的各種系統,比如hadoop、spark、hbase、kylin、elasticsearch等等。遇到問題可以從源代碼層面推斷解決,可以修改開源項目的源代碼進行二次開發。
那麼這個時候,你就有了核心技術。未來大數據會發展得越來越好,因為各個行業都有大量的數據,很多公司需要最好的專家來解決自己的大數據問題。所以,即使你已經40歲了,但是你已經積累了多年的核心技術能力,任何一家公司都需要一個像你這樣的頂尖牛人來坐鎮,解決各種技術難題。
所以如果想往這個方向走,建議一定要從20多歲開始規劃自己的技術學習和職業發展。大家一定要想好自己想學什麼技術,想學多深,想在什麼樣的公司積累經驗,腳踏實地的走好每一步。到你三四十歲的時候,雖然年紀大了,但是已經積累了足夠的技術能力,你的核心技術會像「九陽沈工」一樣保護你的身體,讓你留在職場,保持熱度。
(2)深入業務,成為業務領域的專家型人物
第二條路線,可以考慮成為某個業務領域的專家。你可以在一些業務絕對難且深、業務極其復雜、行業持續發展、業務領域的知識持續保值的領域進行深度挖掘。比如電信、金融、銀行、保險、金融、ERP等等。在這些領域的公司里,你不僅可以做技術工作,還可以注意積累這方面的業務知識。就像電信系統和ERP系統一樣,業務極其復雜,包含了很多東西。如果能持之以恆,深入挖掘各種商業知識和商業體系,成為這方面的商業專家也是很有價值的。為什麼這么說?因為對於很多特定的行業來說,沒有高水平的技術是可以做出一個系統的,但是最好的業務專家對其進行控制是絕對必要的,這樣才能設計出一個與特定行業相對應、業務極其復雜的系統。所以很多同學,如果走傳統行業的系統發展方向,可以考慮多關注業務積累,將來成為頂尖的業務專家。這樣,即使你40歲了,行業也需要一個像你這樣的「老專家」繼續支撐公司的業務發展。
(3)帶領團隊:踏上技術管理之路
另一種方式是走技術管理的道路,相信大家都懂。作為任何公司的老闆,他都需要技術經理,技術經理需要懂技術,但不是特別精通,但必須有很強的團隊管理能力。作為團隊經理,你需要有駕馭公司大技術方向的能力,有足夠的行業人脈和資源去招募和組建合適的技術團隊。另外,你應該能夠制定出技術團隊的工作流程和規范,在團隊之間定義和分配責任,讓每個團隊能夠有效合作,最終成功支持公司的業務發展。這個管理就兩個字,其實背後的知識很棒。要把幾十個甚至幾百個不同的人擰成一根繩子,保持強大的戰鬥力,做好公司的配套工作。其實這里很難,考驗一個管理者的水平。如果可以從幾個人的小主管,到幾十人的技術負責人,再到幾百人的高級技術經理。
如果你能朝這個方向發展,其實到了40歲,你就會有相應的競爭力,因為很多老闆需要你豐富的技術管理經驗來掌控公司的技術團隊。當然,說實話,真正能做好技術管理的人很少。尤其是我們有技術背景的學生,普遍比較內向害羞,不太會交際。所以對於大多數普通工程師來說,個人還是推薦技術專家或者業務專家以上的路線,機會比較多,更適合大多數人。
(4)轉換其他崗位或行業
如果有人說,我對技術沒那麼熱情,想當專家,又討厭整天在業務上工作,沒有做技術經理的天賦,怎麼辦?然後30多歲的時候可以考慮寫代碼,做點別的。比如考慮轉型為產品經理?考慮做互聯網運營?還是考慮做軟體銷售?也就是說,你可以考慮考上一定的技術背景,轉型到技術行業的其他崗位,在其他崗位積累經驗,成為一個不可或缺的人。更何況在北上廣工作了10年,積累了一定的資金,在老家買了房子,然後回老家做生意,比如開餐館什麼的。這也是一種方式,只是這個因人而異。畢竟每個人的網路資源都不一樣。
總結
最後一句總結:無論選擇哪種方式,首先要想清楚自己想成為什麼樣的人。你需要仔細想想,有了10年以上的工作經驗,你會積累哪些核心競爭優勢。然後仔細考慮這些優勢是否是剛畢業的年輕人絕對不可替代的,其他公司的高級職位是否一定有你這樣的人。把這些事情考慮清楚,剩下的就是繼續朝著自己的目標前進。在此期間,你可能會感到困惑,甚至懷疑最初的決定。但還是那句話:相信自己,不要忘記自己的主動心態,用眼淚完成自己選擇的路!我最不想看到的就是,30多歲的我,只能「用」各種技術,十幾二十種技術,什麼都能用。但是沒有技術深度,沒有競爭力,只是一些使用上的經驗。
如果是這樣的話,剛畢業的年輕人可能在一到兩年內學會如何使用這些技術,也許在關鍵時刻可以取代你。這些傢伙只是沒有經驗,但是他們可以加班來彌補,而且他們要求的工資比你低很多。希望每一個程序員兄弟都有美好的未來和生活。程序員這條路充滿了困難、障礙和挑戰。但它也充滿機遇,需要不斷的學習和進步。最後引用最近很火的電影《哪吒》的台詞來結束全文:我的命運由我決定!
J. 程序員這個職業好不好
首先職業不分貴賤高低,但分薪水高低,幸福感高低,程序員這個職業前幾年很不錯,但是最近幾年不行了,各種加班996,奮斗者協議,導致程序員這個職業的幸福感漸漸下降,同時由於資本的減少,互聯網企業的崗位漸漸縮水,不如從前資本注入厲害的階段。
程序員實際上對比同行業職位,並不是很有優勢:
對比產品經理,程序員是幹活的,要修改就得修改,薪水還有可能沒成品經理高。
對比測試專員,程序員是幹活的,有bug就得修復,薪水還跟人家差不多。
對比游戲策劃,人家下班了,程序員還在幹活,薪水還沒人家多。
對比原畫師,高端原畫師一幅畫十幾萬到幾百萬,人家休息了,程序員還在寫代碼。
對比銷售職業,天天打電話看上去很辛苦,很低端,一個月成上幾單就破萬了薪水,很多程序員還達不到,同時銷售下班了,程序員還在工作。
其他:就不一一對比了,程序員的加班和程序員的收入實際上不成正比,同時對比其他同行業的職位,薪水浮動並不大,還幹活較多,所以程序員還不算一個高薪職位。
程序員職位並不是高薪,與其他行業基本差不多:
試問產品經理,ui設計,美工,游戲策劃,項目經理,哪個職業在一線城市不是超過8k的,程序員的職位和其他職位的薪水也大致相同,基本一線6-30k,二線4-10k,三線4-8k,其他行業不也是這樣嗎,醒醒吧!
程序員如果算上加班工資到15k,那麼一個房地產銷售一個月賣出去3-5套房子,就達到這個水平了,而且還不用加班。
註:客觀思考問題,不要以訛傳訛,要有明辨是非的能力,不要聽信所謂高薪,以實際思考對比就會有相關的差異。
程序員這個職業好不好:
喜歡的人會覺得好,不喜歡的人會覺得不好。
職業不是說好壞的,而是在於能夠提升生活質量,加班嚴重生活質量下降,這樣的職業我覺得不好。
註:以上僅個人觀點,僅供閱讀思考問題,無其他意圖,如有受益可以採納,感謝!