-
1 # 碼向未來
-
2 # 衛Java
進過BAT,去過獨角獸,對於你能力肯定不用多說了,技術多半是難不倒你了。對於年薪50w,我只能說只是時間問題,拿阿里來說可走技術專家路線或者管理崗位,50w不在話下
另外以你的經驗和人脈,靠軟體技術吃飯要麼去搞培訓要麼去創業,純打工的出路越往後不是很理想啦。
以上是我個人建議!~
-
3 # 程式設計師小葛
如果是進過BAT,去過獨角獸,這個履歷可以說是不錯的了,年薪要超過50w並不算是一件特別難的事情,主要就是自身能力的提高了。
自身的能力又分為了軟素質和硬素質,硬素質方面由兩部分組成:一是對技術的理解、二是對業務的理解。軟素質方面就比較抽象,包括自己的溝通能力、業務敏感度、敬業精神等等。
當我們的這些綜合能力達到一定的水平時,那麼50w也就來了,甚至更高也不是夢想。那又如何提高我們的綜合能力呢?
如何提高對技術的理解想要提高對技術的理解,這就需要我們在工作之餘去看更多的技術類的文章和書籍了,並且將其應用到我們的工作中。如果我們在大廠,那麼很多新技術瞭解以後,其實有很多的機會可以應用,畢竟大廠能夠提供給程式設計師比較寬鬆的開發環境,有很多試錯的機會。但是如果在小公司,自然資源就不那麼多了,也不會在工作上給員工提供太多試錯的空間,那麼我們就可以去做一些開源專案,並且釋出出去,和更多的程式設計師進行交流,從而來發現自己的問題,提高自己。
當然,我們學習技術,不能只是針對技術的深度進行了解,還是要擴寬自己技術的寬度。作為Java的程式設計師,瞭解大資料的架構、AI的架構、甚至瞭解一些其他語言,雖然不一定要做這方面的開發,但是當有了一定的理解後,當我們以後遇到問題時,可能能夠作為一個解決方案。
如何提高對業務的理解作為一個程式設計師,我們不能只是理解技術,要知道技術是為了業務服務的。因此,當我們到了一定階段的時候,一定是能夠作為一個業務專家,說出自己對於某種業務場景的理解。
作為程式設計師,我們都希望自己能夠有一天能夠成為架構師,而架構師就必須對業務有非常深入的理解後,才能夠做出符合業務的架構。
業務的提高,就需要我們在日常的工作中,能多的從產品或者運營方面獲得反饋,或者在遇到問題的時候更多的和產業、運營溝通,透過時間的積累來慢慢提高。
也因此,業務能力的提高,一定需要伴隨良好的溝通能力,沒有人能夠一句話不和別人說,就把業務理解了。
那軟素質中,我個人覺得最重要的就是敬業精神我個人其實非常不喜歡加班或者996,不過,我也不是一個看點就走的人。
我覺得,對自己的工作負責,對自己的事負責,是一個員工最基礎的素質。因此,我會對自己的工作有計劃的進行安排,每天的工作每天做完,7點做完自然就7點下班,8點做完自然就8點下班,這不需要誰來告訴我要加班或者不加班。
當然,如果因為我的工作除了一些小問題,導致今天晚上需要熬到很晚才能解決,那也沒法,自己的鍋一定要自己背。
這種對工作負責的態度,也會成為你的成長的階梯。至少我現在看到了,認識的那些年薪百萬的人,沒有一個是輕輕鬆鬆都幹到這個位置的,每個人身上,都存在那些敬業的閃光點。
當這些素質我們都具備的時候,也都做得不錯的時候,自然待遇就是水到渠成的事了。
-
4 # Java架構進階阿南
與這相似的問題,已經有很多碼農有問過我,作為一個工作十餘年的架構師我只想說:“如果你不能拼爹,或者不想拼爹,最好的方法是拼實力。”合抱之木,生於毫末;九層之臺,起於壘土;千里之行,始於足下。
所以,你必須要從基層做起。當然,所謂的基層,並不是端茶倒水,但多一些體驗,總是無害的。
前兩年的時間,應當主要打好基礎的累積,認清職業現狀和社會經濟發展趨勢,適應工作後的生活,對心靈浮躁的洗滌。
這一階段最大的敵人是自身的態度,切忌不可眼高手低,牢記一句話——“心比天高,命比紙薄。”腳踏實地,一步一個腳印,為未來做好鋪墊。
跳槽工作的前兩年,最好不要輕易跳槽。在這個階段的跳槽,主要有兩方面的弊端:
對於個人成長 跳槽的目的無非兩點,更好的發展空間,或更高的待遇。跳槽到適應的週期太長,而年輕則應該是全速向前的階段。到了新的崗位,一切又得重頭再來,熟悉新的業務,新的技術,融入團隊。薪資待遇 很少有在前兩年跳槽的時候就能有很大漲幅的(50%+)。所以這時候在跳槽上花心思是一件很費腦又收益不大的事情。無論在職業的哪一個階段,如果跳槽沒有較大的薪資漲幅,跳槽都是需要謹慎考慮的。除非聯合創始人身份加入,降薪跳槽的事情千萬不要有,畢竟拿多少錢做多少事,沒有利益不太可能會有源源不斷的動力輸出。
三到五年這個階段,已有一技之長,又有廣泛涉獵,應當尋求突破了。
1,架構師內功心法(設計模式)
Proxy代理模式Factory工廠模式Singleton單例模式Delegate委派模式Strategy策略模式Prototype原型模式Template模板模式Decorator裝飾器模式Observer觀察者模式2,架構師審美觀(品味經典,分析原始碼)
AOP原始碼解析IOC原始碼解析Mybatis原始碼SpringSpring5 Framework體系結構Spring5環境搭建Spring5概述3,架構師必備技術棧(這裡主要列舉高併發場景分散式解決方案實戰)分散式主鍵生成方案Session跨域共享實戰分散式事務解決方案實戰分散式鎖解決方案實戰分散式單點登入 SSO實戰分散式排程任務實戰分散式配置中心4,次世代架構技術(微服務架構)
基於分散式思想下的RPC解決方案Dubbo應用及原始碼解讀SpringBootSpringCloud應用及原始碼解讀Docker虛擬化技術5,架構師築基專題(這裡主要列舉併發程式設計進階、JVM效能調優知識點)
雖然有的人基礎好,起步高,但這些並不是一成不變的。接下來的這幾年的努力,最足以拉開人生的差距。
王健林說:
定個小目標,先掙一個億。
這樣的目標可能還是過於宏大了,但每一年,薪資以1.5倍速增長,並非遙不可及。
假設你從應屆生畢業時月薪為8k,兩年工作下來14k。從第三年起,到第五年,每年翻一番,就是:
21k32k48k (年薪58萬) 似乎也沒有多少,對於大多數人來說這樣的小目標不算太難實現的。假設這三年如果只有30%的平均漲幅,那麼就是:
18k24k30k (年薪36萬) 14k 相同的起薪,20%的差距,就有22萬之多。所以這一階段的發展需要多付出些精力,不可荒廢。差不多,五年的光景,足以讓你略有小成。
最後文章中涉及到的技術點,需要清晰大綱圖的可以關注我,私信【資料】獲取免費領取方式!希望我這些分享可以幫助在這個行業發展的朋友和童鞋們,在論壇部落格等地方少花些時間找資料,把有限的時間,真正花在學習上,所以我把這些資料,分享出來。相信對於已經工作和遇到技術瓶頸或者寫部落格碼友,在這份資料中一定都有你需要的內容。
-
5 # Java架構師丨蘇先生
怎樣學習才能從一名Java初級程式設計師成長為一名合格的架構師,或者說一名遭到BAT瘋搶的架構師。
那麼遭到BAT瘋搶的架構師應該有怎樣的技術知識體系,這不僅是一個剛剛踏入職場的初級程式設計師也是工作三五年之後開始迷茫的老程式設計師經常會反思的問題。希望這篇文章會是你看到過的最全面最權威的回答。
一: 程式設計基礎不管是C還是C++,不管是Java還是PHP,想成為一名合格的程式設計師,基本的資料結構和演算法基礎還是要有的。下面幾篇文章從思想到實現,為你梳理出常用的資料結構和經典演算法。
1-1 常用資料結構
陣列、連結串列、堆、棧、佇列、Hash表、二叉樹等
1-2 演算法思想
演算法時間複雜度和空間複雜度的分析計算
演算法思想:遞推、遞迴、窮舉、貪心、分治、動態規劃、迭代、分枝界限
1-3 經典演算法
經典排序:插入排序、氣泡排序、快排(分劃交換排序)、直接選擇排序、堆排序、合併排序
經典查詢:順序查詢、二分查詢、二叉排序樹查詢
1-4 高階資料結構
B+/B-數、紅黑樹、圖等
1-5 高階演算法
圖的深度優先搜尋、圖的廣度優先搜尋、拓撲排序、Dijkstra演算法(單源最短路徑)、霍夫曼編碼、輾轉相除法、最小生成樹等
二:java語言基礎誕生不過二十餘年的Java語言憑藉其跨平臺、面向物件、適合於分散式計算的特性,廣泛應用於Web網站、移動裝置、桌面應用中,並且已經連續多年穩居TOBIE程式語言排行榜前列,最近更是登上冠軍寶座。Java有哪些優秀而又與眾不同的地方首先一定要清楚。
2-1 基礎語法
Java語法格式,常量和變數,變數的作用域,方法和方法的過載,運算子,程式流程控制,各種基本資料型別及包裝類
2-2 重要:集合類
Collection以及各種List、Set、Queue、Map的實現以及整合關係,實現原理
Collections和Arrays
2-3 其他JavaAPI
String和StringBuffer,System和Runtime類,Date和DateFomat類
java.lang包
java.util包(集合類體系、規則表示式、zip,以及時間、隨機數、屬性、資源和Timer等)
java.math包
java.text包(各種格式化類等)
java.security包
2-4 面向物件、面向介面
物件的三大特性:封裝、繼承和多型,優缺點
如何設計類,類的設計原則
this關鍵字,final關鍵字,static關鍵字
物件的例項化過程
方法的重寫和過載;方法和方法的引數傳遞過程
建構函式
內部類,抽象類,介面
物件的多型性(子類和父類之間的轉換、父類紙箱子類的引用),抽象類和介面在多型中的應用
2-5 JVM記憶體模型、垃圾回收
2-6 關於異常
Throwable/Error/Exception,Checked Exception vs. Unchecked Exception,異常的捕捉和丟擲,異常捕捉的原則,finally的使用
2-7 多執行緒
執行緒和程序的概念
如何在程式中建立多執行緒,執行緒安全問題,執行緒之間的通訊
執行緒的同步
死鎖問題的剖析
執行緒池
2-8 IO
File及相關類,位元組流InputStream和OutputStream,字元流Reader和Writer,以及相應緩衝流和管道流,位元組和字元的轉化流,包裝流,以及常用包裝類使用
分析IO效能
2-9 XML
熟悉SAX、DOM以及JDOM的優缺點並且能夠使用其中的一種完成XML的解析及內容處理;這幾種解析方法的原理
2-10 一些高階特性
反射、代理、泛型、列舉、Java正則表示式
2-11 網路程式設計
網路通訊協議原理及適用場景,Socket程式設計,WEB伺服器的工作原理
2-12 JDK1.5、JDK1.6、JDK1.7、JDK1.8每個版本都比前面一個版本添加了哪些新特性,進行了哪些提升
三:資料庫相關前面說到了資料結構,資料庫簡單來說就像是電子化的檔案櫃,是按照一定的資料結構來組織、儲存和管理資料的倉庫。
3-1理論基礎
資料庫設計原則和正規化
事務(ACID、工作原理、事務的隔離級別、鎖、事務的傳播機制)
3-2 各種資料庫優缺點、使用場景分析
MySQL/SQLServer/Oracle以及各種NoSQL(Redis、MongoDB、Memcached、HBase、CouchDB等)
3-2 SQL語句
資料庫建立,許可權分配,表的建立,增刪改查,連線,子查詢
觸發器、儲存過程、事務控制
3-3 最佳化
索引原理及適用,大表查詢最佳化,多表連線查詢最佳化,子查詢最佳化等
3-4 分庫、分表、備份、遷移
匯入、匯出,分庫、分表,冷備熱備,主從備份、雙機熱備、縱向擴充套件、橫向擴充套件
3-5 JDBC
JDBC Connection、Statement、PreparedStatement、CallableStatement、ResultSet等不同類的使用
連線池(配置使用、實現原理)
ORM,DAO
四:JavaWeb核心技術(包括部分前端)Html5/Css/JS原生/jQuery
Ajax(跨域等)
JSP/JavaBean/Servlet/EL/JSTL/TabLib
JSF
JSON
EJB
序列化和反序列化
規則引擎
搜尋引擎
模板引擎
快取
身份認證
測試
叢集
持久化
生成靜態頁技術
高效能
安全
事務JTA
其他需要了解的,如:管理JMX、安全JCCA/JAAS、整合JCA、通訊JNDI/JMS/JavaMain/JAF、SSI技術
五、主流框架及工具Struts1/Struts2
Spring(IoC、AOP等),SpringMVC
持久化:Hibernate/MyBatis
日誌:Log4j
單元測試:JUnit
訊息佇列:ActiveMQ、RabbitMQ等
負載均衡:Nginx/HaProxy
Web伺服器:Tomcat、JBoss、Jetty、Resin、WebLogic、WebSphere等
通訊:WebService(cxf的soap、restful協議)
快取:Redis、Memcached
工作流:Activity、JBPM
搜尋引擎:lucene,基於lucene封裝的solr
模板引擎:Velocity、FreeMaker
大資料:Hadoop(HDFS和MapReduce)
構建工具:Ant/Maven
六、JavaWeb系統設計與架構Java設計模式
JAVA與UML建模
面向服務架構:SOA/SCA/ESB/OSGI/EAI,微服務
面向資源架構:ROA/REST
面向雲架構:COA/Saas/雲計算
大型網站負載均衡、系統調優等
七、More排錯能力:
應該可以根據異常資訊比較快速的定位問題的原因和大致位置
最佳化能力
程式碼規範、程式碼管理:
有自己的程式碼規範體系,程式碼可讀性好
知識面廣:
懂各種網路產品及特性,懂各種中介軟體,能夠知道坑在哪兒,深諳各種技術方案的優缺點,懂整合各種資源並達到最優….瞭解各種技術及應用場景,有足夠的工作經驗解決整合中遇到的各種奇葩問題
技術管理/技術總監:
產品管理、專案管理、團隊建設、團隊提升
。。。。。。
-
6 # 高階Bug調查員
首先非常羨慕你的從業經歷,可以說我的情況遠沒有你好。但是我也希望我今生能夠拿到50W的年薪。
可以確定的是,寫業務程式碼是不可能拿到50W年薪的,Java程式設計師如果期望獲得50W年薪,必須要具備以下幾點因素:
一、高階管理崗位高階管理崗位一定需要有一定的架構儲備,能夠獨立完成各種應用場景的架構設計。解決複雜的應用場景。對設計模式瞭如指掌。
一般在網際網路公司,這樣的高階管理崗位非常多,如果你真的去過BAT,應該能夠看到很多這樣的管理型員工。
簡單的部門經理是遠遠達不到這樣的水平的,必須是多個部門的總監才可以。
二、公司產品有足夠的盈利支撐工資的多寡,有時候取決於一個人的能力大小,但是工資的分配有時候同樣取決於公司產品的盈利情況。
像BAT的產品,有足夠的使用者基礎,龐大的使用者群體,那麼就肯定有源源不斷的資金流入,光是投資就可以拿到不菲的工資。所以在這樣的公司下更容易拿到年薪50W的工資。
相比這些網際網路大廠,其他行業的公司相對來說管理崗位很難達到這個工資級別,要麼是技術總監,要麼就是合夥人的身份,所以,如果你想拿到50W的年薪,必須要挑準公司,如果公司沒有足夠的市場空間,那麼也不可能在你身上投這麼多錢,除非你能夠把公司做起來,這也算是真正把公司當做自己的企業來做才可以,不過這樣的話就差不多是公司的合夥人了。
三、技術能力必須過硬Java程式設計師是比較容易深入挖掘的。很多其他語言比如前端等等,都是有很大的天花板,那麼技術既然是核心競爭力,就必須百鍊成鋼,任何技術難題你都應該應付得來。
就比如讓你負責一個爛尾專案,公司老總多少錢都願意出,那麼如果你的技術過硬,可以把這個專案救活,那麼別說50W年薪,100W我覺得都有可能。
所以,無論走到哪裡,Java工程師的最重要的東西就是核心技術。所以,如果你現在比較迷茫,也不用擔心,只要你不斷積累技術能力,並且廣交人脈,未來一定會有這樣的機會的。
綜上,就是我個人關於50W年薪的一點觀點,希望可以幫助到你。
-
7 # Java技術宅
要達到這個數值,核心有三點:
1.過硬的技術實力&學歷
是的,除了實力之外,學歷是很重要的敲門磚;答主也曾經負責過百度某專案組招聘,211是基本門檻,研究生和海歸有比較明顯的優勢。
現在本科畢業迷茫就業還是讀研的同學,如果想透過技術之路拿高薪,還是建議透過讀研or留學歷練兩年。已經畢業的學弟學妹,想要獲取薪資的提升,除了跳槽之外,也建議透過在職研究生補充下學歷。
2. 優質的平臺
所在企業營收能力較強是必備條件之一,畢竟當你拿到50w年薪的時候,企業所實際支付的人力成本(五險一金等)是70w以上。
國內能給到技術這個數值的,除了BAT,小米美團等一些明星網際網路公司外,還包括一些金融企業,和拿風投到手軟的明星創業企業。
3. 正確的技術方向
有時候,選擇比能力要重要,站在風口上,豬都能起飛。
其實從事計算機行業,從一開始我們就在做選擇了。
學生時代,我們就在選擇究竟是主攻C還是JAVA。
臨近畢業,我們在糾結讀研還是工作。
時至今日,想要拿到高新,依然要思考下一個紅利究竟是什麼,人工智慧?物聯網?區塊鏈?
同樣的實力,善於發現和判斷機會的人,永遠佔據先機。
回覆列表
1,知識過硬。不但要掌握框架級別的應用,還要深知底層的協議,否則出現問題,都不知道怎麼定位;
2,對於業務進行抽象,把握整體架構走向;
3,快速學習習技術的能力,對系統性能未雨綢繆;
4,帶隊作戰。能打勝仗,漂亮仗;
5,懂的管理,懂的培養。