『壹』 技術大牛是如何煉成的
如果回答對樓主有幫助,給個採納好不,謝謝啦
破侖說:不想當將軍的士兵,不是好士兵。無論你在做開發、測試、運維,你都是一個技術人員,而我相信,每個技術人員的心中,都有一個成為技術大牛的目標,這個目標鞭策著每一位有夢想的人,去努力和改進自己。 夢想總是在現實面前有過一度的彷徨,因為你會發現,真正的工作和心中的理想狀態天壤之別,不是一碼事。當你面對的是,天天加班寫業務代碼,每天都有執行不完的測試,扛機器接網線敲shell命令,你也許會懷疑,這是我想要的人生嗎?接下來,就讓我們帶著疑惑,去尋找答案!三大誤區誤區一:拜團隊技術大牛為師,給你開小灶首先,不可否認,大牛的確有能力將你鍛煉培養成另一位大牛,但是,無論是單獨給你開小灶,還是培訓整個團隊,時間成本消耗過大,因此,一般沒有大牛願意這樣做。其次,很多人都認為不懂就問是個好習慣,但是你忽略了很多問題大牛是不屑回答的,比如像「jvm的-Xmn參數如何配置」這種上網能找到答案的問題,只會浪費他人以及自己的時間。最後,大牛是個極具小眾的群體,因此,直接請教和輔導的機會非常少,即使有幸參加過幾次真正大牛的培訓,也不太可能讓你嫣然一變,成為技術大牛的。總而言之一句話,以自己為主,系統且有針對性的進行學習;然後再以請教學習為輔提升自己。誤區二:不斷重復,停滯不前首先,要認清一個事實,寫不好業務代碼和只把業務代碼寫好的程序員,在技術大牛的世界裡,沒有什麼本質的不同。如果光是沉浸在一個基礎技術里積累學習,那麼毫無疑問,這是你的慣性和惰性在束縛著你前進,打破它,不斷向更大的挑戰邁進,最終成為他人眼中的大牛。誤區三:大環境的不公與碎片化時間首先,大多數人都在抱怨中國的環境對於自己可能性的扼殺,並認為很多本來能成為大牛的人才被現實埋沒,不可否認,這個理由具有一定的客觀性,因為環境的確可以改變一類人的發展和命運。但是,如果我們轉過身來自問,是否自己真的已經傾盡全力?我相信,總是存在一些人,借著社會不公的理由,給予自己偷懶的借口;畢竟,大牛還是會有的,萬一就是你呢?其次,如果你抱怨現如今社會的碎片化時間,不能有整段時間提供自己深入學習,那麼,是否先改變自己的一個觀念,那就是碎片化時間也可以深入學習。而未來,利用碎片化時間學習將可能成為一種趨勢。正確的做法1、盡量多的嘗試當你每次都做得更多,隨著時間的發展,將會是這樣,產品討論需求找你、測試有問題也找你、老大對外支撐也找你,於是,你就成了這個系統的「專家」了。要想有機會,那就得與眾不同,努力做到更多。怎麼做得更多呢?可以從以下幾個方面著手:1)熟悉不止你負責的更多業務,熟悉不止你寫的更多代碼。好處:需求分析的時候更加准確,能夠在需求階段就識別風險、影響、難點問題處理的時候更加快速,因為相關的業務和代碼都熟悉,能夠快速地判斷問題可能的原因並進行排查處理方案設計的時候考慮更加周全,由於有對全局業務的理解,能夠設計出更好的方案2)熟悉端到端比如說你負責web後台開發,但實際上用戶發起一個http請求,要經過很多中間步驟才到你的伺服器(例如瀏覽器緩存、DNS、nginx等),伺服器一般又會經過很多處理才到你寫的那部分代碼(路由、許可權等)這整個流程中的很多系統或者步驟,絕大部分人是不可能去參與寫代碼的,但掌握了這些知識對你的綜合水平有很大作用,例如方案設計、線上故障處理這些更加有含金量的技術工作都需要綜合技術水平。3)自學一般在比較成熟的團隊,由於框架或者組件已經進行了大量的封裝,寫業務代碼所用到的技術確實也比較少,但我們要明白「唯一不變的只有變化」,框架有 可能要改進,組件可能要替換,或者你換了一家公司,新公司既沒有組件也沒有框架,要你從頭開始來做。這些都是機會,也是挑戰,而機會和挑戰只會分配給有準備的人。以java為例,大部分業務代碼就是if-else加個資料庫操作,但我們完全可以自己學些更多java的知識,例如垃圾回收,調優,網路編程等,這些可能暫時沒用,但真要用的時候,不是google一下就可以了,這個時候誰已經掌握了相關知識和技能,機會就是誰的。2、盡量做到更好世界上沒有完美的東西,你負責的系統和業務,總有不合理和可以改進的地方,識別這些「不合理」和「可改進」的地方,並且給出解決方案,然後向主管提出,一次不行兩次,多提幾次,機會,就是自己去爭取和把握。例如:重復代碼太多,是否可以引入設計模式?系統性能一般,可否進行優化?目前是單機,如果做成雙機是否更好?版本開發質量不高,是否引入高效的單元測試和集成測試方案?目前的系統太龐大,是否可以通過重構和解耦改為3個系統?阿里中間件有一些系統感覺我們也可以用,是否可以引入 ?3、盡量動手實踐光看不用效果差例如:學習了jvm的垃圾回收,但是線上比較少出現FGC導致的卡頓問題,就算出現了,恢復業務也是第一位的,不太可能線上出現問題然後讓每個同學都去練一下手,那怎麼去實踐這些jvm的知識和技能呢?Netty我也看了,也了解了Reactor的原理,但是我不可能參與Netty開發,怎麼去讓自己真正掌握Reactor非同步模式呢?看了《高性能MySQL》,但是線上的資料庫都是DBA管理的,測試環境的資料庫感覺又是隨便配置的,我怎麼去驗證這些技術呢?框架封裝了DAL層,資料庫的訪問我們都不需要操心,我們怎麼去了解分庫分表實現?怎麼辦?1)系統化的學習這個是第一階段,看書、google、看視頻、看別人的博客都可以,但要注意一點是「系統化」,特別是一些基礎性的東西,例如JVM原理、Java 編程、網路編程,HTTP協議等等,這些基礎技術不能只通過google或者博客學習,一般做法是先完整地看完一本書,有了全面的了解,然後再通過google、視頻、博客去有針對性地查找一些有疑問的地方,或者一些技巧。2)自己動手豐衣足食這個步驟就是解答上文提到的疑惑,也就是自己去嘗試搭建一些模擬環境,自己寫一些測試程序。例如:Jvm垃圾回收:可以自己寫一個簡單的測試程序,分配內存不釋放,然後調整各種jvm啟動參數,再運行的過程中使用jstack、jstat等命令查看jvm的堆內存分布和垃圾回收情況。這樣的程序寫起來很簡單,簡單一點的就幾行,復雜一點的也就幾十行。Reactor原理:自己真正去嘗試寫一個Reactor模式的Demo,不要以為這個很難,最簡單的Reactor模式代碼量(包括注釋)不超過200行(可以參考Doug Lee的PPT)。自己寫完後,再去看看netty怎麼做,一對比理解就更加深刻了。MySQL:既然有線上的配置可以參考,那可以直接讓DBA將線上配置發給我們(注意去掉敏感信息),直接學習;然後自己搭建一個MySQL環境,用線上的配置啟動;要知道很多同學用了很多年MySQL,但是連個簡單的MySQL環境都搭不起來。框架封裝了DAL層:可以自己用JDBC嘗試去寫一個分庫分表的簡單實現,然後與框架的實現進行對比,看看差異在哪裡。用瀏覽器的工具查看HTTP緩存實現,看看不同種類的網站,不同類型的資源,具體是如何控制緩存的;也可以自己用Python寫一個簡單的HTTP伺服器,模擬返回各種HTTP Headers來觀察瀏覽器的反應。3)交流分享,發現自己的不足之處。與人交流分享,既需要我們將一個知識點進行系統化的梳理,並且考慮各種細節,這會促使我們進一步思考和學習。同時,聽的人可以有不同的理解,或者有新的補充,這就令知識技能體系變得更加完善。後記無論結果怎樣,當我們談論過程的艱難與樂趣之時,是否可以不去計較自己是否付出太多?因為一個真正熱愛技術的人,只會勇往直前,不忘初衷,堅持到底!
『貳』 你見過最厲害的程序員是怎麼樣的
以前曾經做過十餘年的編程,見識過不少程序員,其中有兩位是比較厲害的。
第一位,J同學,非科班出身,糧食專業畢業的,之後在一個食品廠工作,因為比較清閑,於是他突發奇想,想考某個211的計算機研究生,就去買了書來看,但是要實踐啊,他又沒有計算機,就有空總去公司的電腦室蹭機器用,電腦室的人,就讓他幫忙開發一個工資管理系統,不知道是不是想為難他,結果他研究生是沒考上了,但是經過一個月的摸索之後,居然把工資系統給做出來了。讓電腦室那些科班畢業的人臉上掛不住啊!
之後他就斗膽去了一個國內知名的企業應聘程序員,居然還給應聘上了,慢慢做到了華南區的技術總監,再後來他幾個同事出來創業,高新挖走他。
他這個人就是傳說中的怪俠,非常低調,樸素,不按時上班,不按時下班,工作效率非常高,愛抽煙,請教他什麼問題,他一時想不出來的話,就去外面抽根煙,煙抽完了,回來就會有答案,反正非常神奇。
第二位,B同學,科班出身,211大學計算機研究生,當時是他的導師跟我們單位有來往,推薦過來的,我面試的他,惜話如金,聽說他C語言非常厲害,但是當時我們做項目需要PB,他說他不會,我就說,那給你一個星期的時候,你回去學習一下,再來面試。一個星期後,再過來,給他一個小模塊,很快就做出來,非常棒,之後,項目的技術難題,大部分都是他解決的。平時,他也不怎麼跟我們來往,但是有事就做,也不打 游戲 ,按時上班,按時下班,非常討厭加班。
遇到技術問題,下班後打電話給他,他不接的。有一次,我們第二天系統要上線,大家都在忙著測試,加班,他到點就走了,領導追到電梯門口,問他,XX哥,你走了,他說了一個字,是,就進電梯了。後來也是被高薪挖走,聽說到現在40歲也還沒結婚。
我們公司有一位非常厲害的程序員,基本上一個人當做一個排兵力使用。也就是說一個人寫代碼的效率基本上抵得上10+人的能力,一年隨隨便便寫個幾十萬高質量的代碼。這種人對編程語言的理解已經到了登峰造極的地步,且能夠靈活自如地使用。
在自己編碼能力強的同時,對架構的理解能力也是超強,一個大的系統能夠很快地進行模塊拆分,快速的定義不同模塊間的交互介面,可以快速的安排任務下去。
另外代碼的質量基本上沒地說,導致跟著他的測試人員幾乎發現不了Bug,這哥們在寫代碼的同時基本上順手就把單元測試寫好了,代碼質量高的簡直出奇。
當然了,至於學習什麼新的開源框架或者新的技術架構,基本上就是2-3天的功夫,就可以全面掌握。
目前為止,公司一直當做寶一樣供著。
我見過最厲害的程序員,是在2001年入職的一間香港電路板公司的電腦部經理,他也是最值得我尊重的程序員,那他最厲害的地方在哪裡呢?
編程語言只懂Foxpro DOS版本,但所有的ERP流程,英文、管理方法說得滴水不漏,有一次和財務的同事聊天,才知道他的月薪達8萬多。
很多程序員最怕大老闆提問題,但在他的眼裡,大老闆提問題就是一個商機,多多少少都要老闆加工資加設備。 高情商的表現就是無論下屬或老闆通通管理得服服帖帖,包括我自己,甚至老闆還沒有說話就己經知道老闆的心思了。
老闆分配的編程任務應期三天完成,絕對不過4天。軟體開發效率的提高,自然要依賴下屬心甘情願的加班付出才行,做到這一點,真的是難能可貴。
最厲害也是我最佩的一點就是,40多歲了頭發還沒有一點白的跡象,每天高效率的工作,下班後就拋開工作的煩惱,盡情桑拿按摩享受。
我認為最厲害的程序員不是編程技術,而是如何利用編程技術,不知道你認不認同?
應該是讀研時的學長,精通Java和Python,畢業後進去微軟研究院工作。
當時和他在一個項目組,他獨立完成了教學平台語言分析模塊,NLP 模塊。我們團隊任何問題都能很快給出解決方法,前端後端都擅長。
當時我剛接觸Linux,他就已經把Linux作為工作學習唯一的選擇。經常用terminal 操作,敲起代碼太帥了
誠邀,本人在杭州華為研究所工作,之前在一家創業公司工作過,公司里一個工作10年的大神,撐著整個創業公司,老闆總能拿到某些項目源代碼,不同語言的,c c++ .net java總之很多,給他,一禮拜就可以全懂了,所有語言基本都是1禮拜搞定(玩代碼的都知道精通一門語言後學其他的特別容易,不外乎面向對象的,面向過程的,然後就是各種API )上手做項目,之前很多不懂的問題問他都可以從本質上分析得很明白,主要是基本上看幾眼就可以知道哪裡錯了。或者大概方向,我後來去華為,都是他建議的,現在還在那公司的他聽說是技術總監了,應該不怎麼敲代碼了。
核心的代碼總是有那一兩個程序員來實現的。比方說現在微信的一開始的核心代碼。
比方說Linux的核心代碼, 都是由林納斯·托瓦茲編寫的, 並且為了能夠讓開源社區的人一起進行開發, 又編寫了Git版本控制。當你不滿意某個軟體或者系統的時候, 能夠自己實現並製作出更好的也許就是厲害的程序員吧。一直到現在很多的系統分支都是來源於Linux的內核。
最後如何成為最厲害的程序員, 還是要學習基礎核心的知識, 操作系統, 數據結構, 演算法, 編譯原理, 計算機網路, 在這個基礎上學習編程都是為了更好地實現自己的心中所想。為什麼這樣寫, 這樣寫會產生什麼效果。 為什麼Golang最近這么熱, 為什麼鴻蒙會被看好, 它又和其他的有什麼區別, 就可以自我判斷, 而不是見風就是雨。
最後希望自己也成為那個最厲害的程序員。
很久以前,我用win98的時候有次我系統崩潰了,因為我是電腦白痴,我朋友給我介紹了一個高手來幫我修電腦。
他看了一下電腦,問我有沒有98的盤,我說沒有。
他想了一下,叫我把固定電話拿給他,我想修電腦要電話干什麼,但人家是高手,我也不好說什麼,就把電話拔下來給他了。
他把電話線空著的一頭接在電腦的一個插孔內,然後進入dos,就開始在電話上不停的按著鍵,他按鍵的速度異常快,但是只按0,1兩個鍵,我搞不懂這有什麼用,但也不敢問,看了半個多小時,他還是不停的按這兩個鍵,我徐徐的有些困,我問他這東西要搞多久,他說要幾個小時,我給他倒了杯茶,就一個人去隔壁睡覺了。
醒來的時候,一看已經過了4個多小時,我起身到隔壁,看見他正在98裡面調試,過了一會兒,他說,你試試,我坐上椅子用了一下,真的好了,我當時也不懂電腦,謝過人家就走了。 後來我慢慢對電腦有了了解,終於了解,原來當時那位高手是用機器語言編了一個98系統,我後來問我朋友那位高手的下落,我朋友說前幾年去了美國之後,杳無音訊....
五年前有幸在一家軟體公司做產品經理。小的軟體公司。坐標西安。招人還挺不好招的。雖然給的薪水還不錯。但是真心不好招人。這種小軟體公司沒有名氣。真正牛逼的人都不來。
百試幾百人,包括做產品和前端的也算在裡面。光程序員這塊。有百分之六十的投簡歷的都是從某培訓機構出來的。所以的項目經歷。和待過的公司都是一模一樣,有明顯的人為的痕跡。
但是後來實在沒有人手。招了一兩個,差。差。差。真是差到極點
後來又經人推薦,招了一個,說是做安卓開發的。結果連個軟體的心跳包都調不好。軟體的升級這塊都搞不定。最後還是我這個外行,逼著他。一點一點卡,才把軟體升級這塊稍微搞上路了。
說出來真是讓大家笑話,華為的外包中軟國際。有個孩子實在忍受不了裡面的虐待,在裡面工作了一年半。然後跳到我們公司。這個孩子,才是稍微讓人可以用一下。就是起碼。你給他的工作。他能完成。其他的人都是在摸魚。因為這個公司的老闆以前也不是做手機軟體這塊。沒有資源,不認識人。
他是做電腦PC軟體,到後面做BS系統多一點。其實這種沒有技術含量,找的別人的框架。去修改。
普通人見不到最牛逼的程序員,最牛逼的程序員,一定是在最牛逼的軟體或者互聯網公司的深宮後院裡面。還沒出世的。就像當初的張小龍,史玉柱,裘伯君一樣。
你現在能看的牛逼的,感覺牛逼的。都是因為你不懂這個。你才覺得牛逼。包括前幾年比較活躍的黑客們,製造一些病毒。這都不是牛逼。包括熊貓燒香的李俊,普通人覺得他可牛逼了。但是真正的他出來後,去金山 360這種公司,提鞋別人都不要。
因為搞破壞不是牛逼。也不是自己水平有多牛逼。
我來講一個我見過最厲害的程序員。
這個程序員是我第一份工作碰到的大牛,我的第一份工作在中興通訊成都研究所,當時是做操作系統研發的。
我們當時經常會做一些培訓和技術分享,那時候我才入職3個月,我發現公司里有個人每次技術分享時候,就很多人去聽,並且會議室爆滿,連站的地方都沒有,然後我有次也去聽了一下, 第一每次目睹大牛的風采,因此操作系統是最底層的研發工作,會涉及到內核這塊知識,而linux內核知識特別抽象,看書根本很難看懂,但是這個大牛能把很難的東西講的很容易理解,並且在會上面對大家的提問總是能對答如流,實在是厲害。
而後我通過公司里的老員工才了解到,這位大牛是自學成才的,他的文化程度才初中,破格錄取到中興通訊,當時是操作系統部門的技術專家,他都能自己編寫操作系統,對各硬體都非常了解,也出了很多書。可見興趣是最好的老師,讓他能夠在程序員中發光。
必須是ACM大神,樓天成,樓教主。不了解他的可以網路之。是個天才一般的存在。
幾年前清華大學找同學玩,他那時是清華軟體學院的學生,突然說要帶我去見他的偶像,還說是最後的機會了,我們跑去計算機學院,當時博士正在答辯,通過在場的同學找到了他,他很靦腆的千呼萬喚始出來。他們兩在那裡交流了半個多小時,最後互留了EMail,我跟他聊了些我專業的內容,他還蠻好說話。 後面還通過這位同學認識另一位ACM屆大神,上海交大的戴文淵。我對編程略有了解,主要還是崇拜天才。
『叄』 初級程序員、中級程序員、高級程序員最大的區別是什麼
程序員之間也是存在很大的區別,他們之間最大的區別主要表現這這個方面,跟大家分享一下。
能力。一些程序員剛剛進入一個單位,學習的東西還不多,他們的能力差距要比老員工差很多。
經驗。有的程序員,自身的能力是提升上去了,但是,由於呆的時間相對比較短,經驗還不是很足,面對一些疑難雜症,還是不能解決。
薪資待遇。因為能力不同,所以獲得的回報也是不一樣的,一般高級程序員的薪資都是非常高的,畢竟他們能夠解決很多困難以及復雜的問題。
當然,除了這幾個方面之外,還有一些也是有差距的,比如說頭發,思維以及工齡等等。
『肆』 程序員中的大牛都是從很早就開始接觸編程的嗎
發現「大牛」這個詞的定義是不同的。對計算機的更透徹的理解,他們知道代碼對計算機做了什麼。他們能准確地找出問題所在,它可以通過優化系統功能或語言標准庫來解決一些特殊問題。他們的身影可以在各大開源社區的主流項目中找到。所以我們先來講個小故事吧:
有一對情侶朋友.她 和 他...
那一年,她9歲,他11歲…
當她九歲的時候,在家裡有第一台學習機器,他九歲時有了蘋果II。
其次,興趣和天賦,這兩件事可以使你事半功倍,但基本上停止在事半功倍。我不認為一個人寫寫一遍demo就能勝過別人完成一個項目的經驗
再次,時間,就算別人寫20年,你至少寫10年才能達到同樣的水平吧?
『伍』 有哪些話一聽就知道一個程序員是個水貨
其實如果要嚴格說起來,工作經驗少於一年半的程序員基本上可以算是「假」的程序員。這里的「假」可以這樣來理解。
你的編程能力只有復制粘貼的水準
剛工作的程序員大致可以分為兩類人:1 高校畢業;2 培訓班出身。對於第一類的人來說,在讀書期間老師和學校教的內容都是基礎內容,而且要學的內容非常的多。但學校只讓你學廣,並沒有讓學生專研一門學科。畢竟學校並不能保證每個學生對某個方向一定感興趣,只能把基礎知識教給學生。讓學生自己去選擇自己感興趣的方向,自己自學。所以在校期間對於大部分學生來說,實戰能力基本為零,都是像剛重生在新手村,無知茫然,這也是許多企業愛招應屆生的原因。開始工作,基本只能靠谷歌、靠網路上網找代碼,復制粘貼。這段時間就比誰找代碼能力強了。而對於培訓的人來說更是如此。不要看你在培訓期間學習了非常多的編程知識,好像做了非常多的練習,甚至還自己寫了一個實戰項目。但這些都是在短時間內,靠著培訓老師手把手帶你們寫的。你只管跟著老師走就好,不懂的問下老師就行。你根本就沒有過自己的思考,就只懂:好!今天老師叫我們寫這個代碼!我們就寫!換個角度來看,培訓機構就像富士康工廠一樣,批量製造編程機器,沒有自己的思維。
想要擺脫「假」程序員的身份,你只有努力提升自己的編程水平,讓自己有更好的能力。在工作上能靠自己的實力,去完成分配的任務。你只有這樣才能提升,才能突破薪水的瓶頸,達到更高的層次。