1、成為大牛,基礎要很扎實很扎實。不能小看基礎,很多流行的框架什麼的,其實都是從基礎起來的,你理解了基礎,很多東西都可以理解的。
2、多讀源代碼,官方的。有問題,直接找官方,最快最佳最直接。
3、有一定的條理,做事情,就是要有條理性,會分解,把復雜的問題簡單化。簡單化,就是0和1一樣的簡單的那種。
可以深耕的領域,其實,這個看你目前所在的行業,做自己熟悉的最好,java目前比較適合的是後台、金融、互聯網方面。
2. 如何成為編程開發技術大牛
首先確定自己的位置:
一、菜鳥
第1 層樓屬於地板層,邁進這層樓的門檻是很低的。基本上懂計算機的基本操作,了解計算
機專業的一些基礎知識,掌握一門基本的編程語言如C/C++,或者Java,或者JavaScript,...,
均可入門邁進這層。
二、大蝦
從第1 層爬到第2 層相對容易一些,以C/C++程序員為例,只要熟練掌握C/C++編程語言,
掌握C 標准庫和常用的各種數據結構演算法,掌握STL 的基本實現和使用方法,掌握多線程編程
基礎知識,掌握一種開發環境,再對各種操作系統的API 都去使用一下,搞網路編程的當然對
socket 編程要好好掌握一下,然後再學習一些面向對象的設計知識和設計模式等,學習一些測
試、軟體工程和質量控制的基本知識,大部分人經過2~3 年的努力,都可以爬到第2 層,晉升
為"大蝦"。
三、牛人
由於"大蝦"們經常被一些疑難問題給卡住,所以有了"大蝦"們只好繼續學習,他們需要將原
來所學的知識進一步熟練掌握,比如以熟練掌握C++編程語言為例,除了學一些基礎性的枯和州C++
書籍如《C++ Primer》,《Effective C++》,《Think in C++》,《Exception C++》等之外,更重要
的是需要了解C++編譯器的原理和實現沒蔽機制,了解操作系統中的內部機制如內存管理、進程和
線程的管理機制,了解處理器的基礎知識和代碼優化的方法,此外還需要更深入地學習更多的數
據結構與演算法,掌握更深入的測試和調試知識以棚灶及質量管理和控制方法,對各種設計方法有更好
的理解等。
學習上面說的這些知識不是一揮而就的,不看個三五十本書並掌握它是做不到的。以數據結
構演算法來說,至少要看個5~10 本這方面的著作;以軟體設計來說,光懂結構化設計、面向對
象設計和一些設計模式是不夠的,還要了解軟體架構設計、交互設計、面向方面的設計、面向使
用的設計、面向數據結構演算法的設計、情感化設計等,否則是很難進到這個樓層的。
主要還是多接觸,多看書,多編碼,多自己動腦子解決問題,多幫助別人,積累經驗
3. 如何成為一個優秀的程序員
講幾個小的方面吧。
批評還是啟發?
代碼審查是一個不錯但很少用的想法。在一個團隊里,優秀的程序員另一個任務就是要指導經驗比你少的程序員,但是主要以指導和啟發為主,不是貶低和公開批評,因為消極的態度不利於接下來團隊合作的開展。
學會分享
搞編程的沒有去逛一些論壇都不好意思說自己是干編程這個行業的。優秀的程序員往往會在這些論壇幫助別人,而實質上,輸出就是最好的學習。在一個團隊中也是一樣,幫助他人解決問題收獲更多,你也將不斷地得到成長。
勞逸結合
每天工作 24 小時不會讓你更有效率!不少程序員年紀輕輕就有腰椎盤突出、頸椎病、肩周炎、腰肌勞損、圓肩駝背等職業病。程序員們需要加強鍛煉,運動不僅僅可以加強肌肉的力量和耐力,而且也能夠活動身體的各個關節,有效緩解長時間保持一個動作導致局部肌肉過勞。
另外,編程是一項艱苦的腦力勞動活;有時你的大腦確實需要休息一下,休息是為了更好的工作。否則,你的工作質量將大打折扣。業余時間養成一項自己的個人愛好,確保自己可以放鬆並沉浸其中。如果是球類運動,效果更好,它將讓你保持旺盛的精力和活力。
不要閉門造車
留意網路各種平台,學習新語言和框架、參與討論以及看看同行在干什麼。多關注業界在干什麼,這將讓你的視野更加廣闊,不致於為了編程而編程。
4. Java紼嬪簭鍛樺備綍鍙樺緱鏇村姞鐗涳紵
瀵笿ava紼嬪簭鍛樻潵璇達紝濡傛灉鍏朵粬浜虹О璧炰綘鏄澶х墰綰т漢鐗╋紝閭d箞灝卞緱鐪熷績鐨勪負浣犻紦鎺岋紝榪欎篃灝辮〃鏄庝綘鍦↗ava鎶鏈鐣岀殑姘村鉤宸茬粡灞炰簬涓婁箻鐨勩傚逛簬涓涓狫ava紼嬪簭鍛樻潵璇達紝濡傛灉涓嶆兂璁╄嚜宸卞彉寰楁洿鐗涳紝閭d箞灝變細榛橀粯鏃犱負錛屽鉤搴+騫沖焊=娌¢挶銆佹病鍓嶉旓紝鎯沖繀浣犱篃涓嶆効鎰忚嚜宸辨垚涓鴻繖鏍風殑Java紼嬪簭鍛樸傚寳澶ч潚楦熶粙緇岼ava紼嬪簭鍛樺備綍鍙樺緱鏇村姞鐗?
Java紼嬪簭鍛樺備綍鍙樺緱鏇村姞鐗?
1.閲嶈嗗︿範
鍏跺疄寰堝氫漢閮界煡閬擄紝褰撲笅鐨勮嚜宸辮繃寰椾竴鑸鑸錛岃佹兂鑷宸辮繃寰楁洿濂斤紝閭d箞灝卞緱鍔鍔涘︿範錛屽繀欏諱粠鑷韜閲嶈咼ava瀛︿範銆備絾鏄寰堝氫漢閮藉仛涓嶅埌錛屽氨濂芥瘮寰堝欽ava紼嬪簭鍛橀兘鐭ラ亾鑷宸辮佸彟澶栬姳鏃墮棿鍦↗ava鐨勫︿範涓婏紝浣嗗氨鏄娌℃湁鍔炴硶浠樺嚭琛屽姩鍦↗ava鐨勫︿範涓婏紝鎵浠ヤ綘蹇呴』瑕佹敼鍙樿繖涓鐜扮姸錛屾瘮濡傚氱湅鐐逛功綾嶃
2.淇濇寔鎬濊
寰堝欽ava紼嬪簭鍛樻棩澶嶄竴鏃ラ噸澶嶇潃鍚屾牱鐨勫伐浣滐紝鐪嬩技姣忓ぉ閮藉緢蹇欙紝鍏跺疄鏃╁氨宸茬粡涓уけ浜嗚嚜宸辯殑鎬濊冿紝閬囧埌闂棰橈紝灝辨兂浠ュ墠鏄鎬庝箞澶勭悊鐨勶紝浠庢潵娌℃湁鎯蟲兂鏈変粈涔堟柊鐨勫勭悊鏂瑰紡娌℃湁銆傚苟涓斿緢澶氫漢浠庝笟寰堝氬勾錛岄亣鍒伴棶棰橈紝涓嶆槸鑷宸卞厛鎬濊冿紝鑰屾槸鎯崇潃鍏堢櫨搴︿竴涓嬶紝鐒跺悗鎸夌収鐧懼害鐨勬柟娉曟潵銆
3.浼樺寲鎶鏈
浣犳墍鍋氱殑涓鍒囧噯澶囷紝浠ュ強杞蹇甸兘搴旇ユ槸鍥寸粫鐫浼樺寲浣犵殑Java鎶鏈銆傛瘮濡傚潥鎸佸︿範Java錛岄偅涔堝氨鑳藉熷氬氫簡瑙d竴浜涙柊鐨凧ava鎶鏈錛屼笉鏂娣卞叆Java鐨勫︿範錛岃繖瀵逛綘涓嶆柇鐨勪紭鍖朖ava紼嬪簭鏈夊緢澶х殑甯鍔┿備紭鍖朖ava鎶鏈涓嶆槸涓澶曚竴鏈濊兘澶熷畬鎴愮殑錛岄渶瑕侀暱涔呯殑鍧氭寔錛屼綘涓嶆柇灝濊瘯鐫浼樺寲錛岄偅涔堜綘灝變細鍙樺緱瓚婃潵瓚婄墰銆
5. 作為一個程序員如何優雅的賺錢
本人10年開冊羨發培訓經驗拿姿配,期間經歷了JavaWeb,Android,H5,大數據,PHP等多個不同的方向的開發,也做過軟體培訓公消指司的金牌講師,很有興趣回答你這個問題。
如果一個程序員可以優雅的掙錢,也不是不可以,可以從兩個方向進行突破。
1.成為行業內的技術大牛
當你成為大牛之後,薪資自然就高了,也可能不用非要在一線進行開發了,做個架構或者技術指導,相對來說就可以輕松賺錢了。
另外當名氣足夠大的時候,隨便出去做個技術講座,演講或技術指導,出場費就得幾千幾萬,比純做技術好的多。
你也可以寫書,寫教程,寫博客,錄視頻等,只要內容寫的好,隨便一賣,就能輕松躺著掙錢。
當然這都是基於技術很6的條件上。
2.在別的方面進行突破
如果自己的技術不行,那就想辦法在別的方面突破吧,比如接點私活,自媒體什麼的。
我從事開發培訓10年,擅長JavaWeb,Android,H5,大數據,PHP等多個不同的技術方向。後續我會寫一系列關於互聯網技術方面的文章,感興趣的朋友可以
6. 技術大牛是如何煉成的
如果回答對樓主有幫助,給個採納好不,謝謝啦
破侖說:不想當將軍的士兵,不是好士兵。無論你在做開發、測試、運維,你都是一個技術人員,而我相信,每個技術人員的心中,都有一個成為技術大牛的目標,這個目標鞭策著每一位有夢想的人,去努力和改進自己。 夢想總是在現實面前有過一度的彷徨,因為你會發現,真正的工作和心中的理想狀態天壤之別,不是一碼事。當你面對的是,天天加班寫業務代碼,每天都有執行不完的測試,扛機器接網線敲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)交流分享,發現自己的不足之處。與人交流分享,既需要我們將一個知識點進行系統化的梳理,並且考慮各種細節,這會促使我們進一步思考和學習。同時,聽的人可以有不同的理解,或者有新的補充,這就令知識技能體系變得更加完善。後記無論結果怎樣,當我們談論過程的艱難與樂趣之時,是否可以不去計較自己是否付出太多?因為一個真正熱愛技術的人,只會勇往直前,不忘初衷,堅持到底!