首頁>Club>
4
回覆列表
  • 1 # 檸檬愛旅遊

    薪資在一定程度上反應了一名Java程式設計師的技術能力和價值,一般年薪在40W-50W左右的程式設計師,通常已經有了3-5年的工作經驗,紮實的程式碼功力、架構和業務能力,而且對於工作細節也有自己的理解。身邊的一位阿里P7架構師朋友也說過,基本上達到以上標準,身邊大多數Java程式設計師都能邁入年薪40W+的行列。具體的能力業務要求可以參考以下4條標準。1、程式碼能力程式碼能力是基本功,Java語言本身,包括語言的各個方面包括對併發的理解,對記憶體使用對理解,對Java運維的理解等等。語言本身外,社群裡常用的框架是否可以十分清晰的瞭解,包括spring,包括他實現的ioc,aop,orm,web機制是否有清楚的認識,有豐富的經驗等等。2、對常用中介軟體的理解畢竟在一個大系統中,各種中介軟體是是否常見的,快取中介軟體,訊息中介軟體,例如 redis、memcache、rmq這些。要理解常用中介軟體使用場景,使用姿勢(例如redis的常用命令),甚至包括他的一些運維。一旦出了問題,除了專門的運維人員,也需要你參與問題的排查,因為有時候這些中介軟體出現問題,是不當的使用姿勢引起的。3、架構、業務落地能力前面提到了語言本身,各種中介軟體。如果你有很好的業務抽象能力和架構思維,就可以把一款部門內部產品很好的設計並實施了。這點蠻難的。想必都有過接手現有專案的經歷吧,有時候真恨不得把之前的設計者拿出來批鬥。作為一個設計者,你能否做到當下一個接手它的人會說一句,這個系統設計的真好,穩定又可拓展,理解起來也很容易。這需要很多能力,除了對現有系統的理解,還包括對未來可能發生變化的理解。4、溝通協作畢竟一個部門內部產品,是不可能由一個人完成的,所以需要溝通協作,把設計好的方案,要和2-3個小夥伴一起實施,包括同樣身份的後端人員,前端人員,產品等角色。這個級別的人可能會參與帶2-3個人,例如應屆畢業等,所以你自己對知識的把握,分享精神,leadership都是很好的加分項。 ------------- 如果我回答對你有幫助,請關注我一下。或有其他問題也可以關注我,給我發私信

  • 2 # 做個有追求的蛋蛋

    得看他在什麼城市,工作多少年了!如果在北京一個工作十年的Java程式設計師是很容易拿40W的!

    如果一個剛入行的就40W,那他很厲害了!絕對special級別!

  • 3 # Java架構師CAT

    年薪40萬也就是月薪在30K左右,加上年終獎也就差不多了。搞Java的碼農如果想達到這個水平其實有兩種方式:

    1、技術方向:Java架構師,普通的架構師月薪一般在30K以上,中高階大約在50K左右,不過成為架構師也不是一蹴而就的,需要深入的學習,認真的思考和自身不懈的努力,如果需要的話可以找我找學習資料,免費分享。

    2、管理方向:如產品經理,技術總監等

    區別:架構師主要負責整個專案的架構設計,需求整理等,也就是隻負責技術,人員管理不管,很適合不擅長溝通的人。反之,產品經理等職位雖然也管這部分技術,但是工作重點在於其他部門協調溝通,如測試產品開發等等,具體的技術水平其實一般。

  • 4 # 悅5467388

    java行業目前程式設計師已經很多了,普遍工資不高,40w的是架構師級別了,普通少的只有3500,大部分是一萬不到,一萬到兩萬就得看你的公司了

  • 5 # 北丐老洪

    架構師主要負責整個專案的架構設計,需求整理等,也就是隻負責技術,人員管理不管,很適合不擅長溝通的人。反之,產品經理等職位雖然也管這部分技術,但是工作重點在於其他部門協調溝通,如測試產品開發等等,具體的技術水平其實一般。

    下面為大家分享一下我個人的看法與想法,希望我分享的內容能夠幫助到大家同時也希望路分享關於這個問題的解答能給大家帶來幫助,同時也希望大家能夠喜歡我的解答。

    阿里一般是16薪水,所以就是稅前2.5w,在阿里應該是P6就可以達到,而對P6的要求是什麼呢,我們內部有個簡單的概述,那就是可以獨立完成部門內部的專案,而面試過程中,也會有相應的考察。

    溝通協作畢竟一個部門內部產品,是不可能由一個人完成的,所以需要溝通協作,把設計好的方案,要和2-3個小夥伴一起實施,包括同樣身份的後端人員,前端人員,產品等角色。

    以上分享的內容都是個人的觀點的看法。同時也希望我分享的內容能夠幫助到大家。

  • 6 # 網際網路實戰

    年薪40萬怎樣

    高還是低了要從幾個方面來衡量吧

    第一,如果你的能力或者為公司做的貢獻大大大於40萬那麼肯定低了

    第二,如果貢獻比較小那就高了

    第三,高還是不高不是看搞JAVA還是.NET的,關健還是看貢獻

  • 7 # javaGren

    好多人對阿里巴巴的薪資體系結構及級別設定不太清楚,想去面試也不知道面試什麼級別的崗位,工作幾年了也不知道自己會是什麼水平,那麼,年薪 40 萬在阿里內部又是什麼水平呢?

    先來看看阿里巴巴的級別設定:

    再來看看阿里巴巴的對應薪資年薪:

    所以,40W 年薪 P7 級別就能拿到。阿里巴巴薪資結構一般是 16 薪,年底的獎金 0-6 個月薪資,90%人可拿到 3 個月。關於股票,這得要工作滿 2 年才能拿,第一次拿50%,4年能全部拿完。

  • 8 # 緊張的影帝

    40w /12=3.13

    3w多的話,應該就是個專案經理的水平吧,什麼都會一點,都懂一點.但是還沒有到架構師的等級.目前3w的很多,基本上每個公司都會有幾個這樣的

  • 9 # 阿風的架構筆記

    對於一個年薪 40W 的 Java 開發人員來說,需要掌握哪些知識點呢?

    從上面的圖片我們可以看出大致分為三個部分:JDK 原始碼、JVM 原理、框架原始碼。

    一、JDK原始碼

    JDK 原始碼是一切的基礎,許多框架都參考了 JDK 原始碼的實現思路,因此弄懂 JDK 原始碼是一件非常重要的事情。而 JDK 原始碼又可以分為下面 5 大塊:

    集合原始碼併發集合原始碼併發包原始碼阻塞佇列原始碼執行緒池原始碼

    1、集合原始碼

    說到集合,我們大家都非常熟悉,這可是我們工作中用得非常多的一類 API。但會用了,還得知道它到底是如何實現的,這樣才可以避免踩坑。JDK 原始碼中的集合並不是特別多,大概有 四大類大概 14 個常用的 API。

    ①. List集合

    ArrayList:列表集合經典實現。Vector:列表集合經典實現,執行緒安全,與 ArrayList 對應。LinkedList:連結串列結構的經典實現。Stack:棧結構的經典實現,先進後出的資料結構。繼承了 Vector,執行緒安全。

    ②. Set集合

    PriorityQueue:優先順序佇列LinkedList:雙向佇列實現ArrayDeque:雙向迴圈佇列實現

    ④. Map集合

    HashMap:Map 集合的經典雜湊實現。LinkedHashMap:在 HashMap 的基礎上,增加了對插入元素的連結串列維護。WeakedHashMap:在 HashMap 的基礎上,使強引用變為弱引用。TreeMap:Map 集合的有序實現。底層是紅黑樹的經典實現。

    在這 14 個常用的 API 中雖然有一些我們還沒使用過,但如果你要建立起一套完整的知識體系,那麼還是有必要去仔細琢磨一下它們的作用,並且對它們進行橫向比較的。

    2、併發集合原始碼

    我們前面說到的集合原始碼,它們大部分都是執行緒不安全的,它們在多執行緒的環境下使用會產生各種各樣的問題。而執行緒安全與併發安全又不一樣,執行緒安全考慮的是絕對的安全,而併發安全則是犧牲部分特性來提高併發效率。也就是說併發集合適合在多執行緒環境下使用,並且效率足夠高,能夠應對高併發的情況。

    在 JDK 的併發集合原始碼中,一共有 7 個常用的併發集合。

    ConcurrentHashMap:高併發的HashMapConcurrentSkipListMap:高併發下的TreeMap(基於跳錶實現)ConcurrentSkipListSet:內部使用ConcurrentSkipListMap實現CopyOnWriteArrayList:高併發的ArrayList,適合讀場景。CopyOnWriteArraySet:高併發的Set集合,使用CopyOnWriteArrayList實現。ConcurrentLinkedQueue:高併發的連結串列佇列。ConcurrentLinkedDeque:高併發的雙向連結串列佇列。

    雖然有 7 個併發集合,但是實際上只有 5 個左右,因為另外兩個都直接用代理的方式委託實現。例如:CopyOnWriteArraySet 類內部並沒有具體的邏輯實現,而是直接委託 CopyOnWriteArrayList 實現。

    3、併發包原始碼

    我們前面說過許多集合都是執行緒不安全的,在多執行緒環境、甚至高併發環境需要使用併發集合。那麼併發集合到底是怎麼實現執行緒安全的呢?在 JDK1.8 之後,併發集合大部分都使用 CAS 來實現執行緒安全。而其實在 JDK1.8 之前,許多執行緒安全都是使用鎖來實現的。而說到鎖,我們就必須瞭解一下併發包原始碼。

    併發包原始碼從零開始定義了一整套實現併發安全的機制,並且還提供了不少方便使用的併發工具。我們透過併發包就可以非常方便地實現多執行緒下的執行緒安全和併發控制,後面說到的阻塞佇列都是以這個為基礎的。

    併發包是一整套介面和實現的定義,其主要的類和實現如下:

    在併發原始碼最頂層的是 AbstractQueueSynchronizer 介面,其定義了併發控制最為基礎的幾個介面,之後的 Lock、ReentrantLock、ReentrantReadWriteLock 都是在這基礎上實現的。而 Condition 介面則是繼 AbstractQueueSynchronizer 介面之後的另一個重要介面,其定義了分支條件,使得併發適用於更復雜的業務。

    定義好了 AbstractQueueSynchronizer 和 Condition 介面,併發包的基礎就搭建好了。併發包中提供了 CountDownLatch、CyclicBarrier 等併發工具類來實現常用的併發操作,這些工具類都是使用前面提到的 Lock 來實現的。

    4、阻塞佇列原始碼

    阻塞佇列其實是屬於併發包的一部分,但因為其功能性特別明顯,所以我們專門挑出來單獨說。阻塞佇列用於在高併發環境下進行資料的交換,其實現基礎是我們前面說到的併發包,沒有併發包就沒有阻塞佇列。

    在 JDK 中,阻塞佇列一共可以分為三大類一共 8 個常用的阻塞佇列。

    ①. 基礎實現:

    這塊是阻塞佇列最基礎的實現

    ArrayBlockingQueue:陣列組成的有界阻塞佇列LinkedBlockingQueue:連結串列組成的無界阻塞佇列LinkedBlockingDeque:連結串列組成的雙向阻塞佇列

    ②. 有序延遲實現:

    這塊的阻塞佇列還實現了元素的排序以及延遲功能,只有時間到了才能出佇列。

    這塊阻塞佇列主要用於多執行緒之間的資料交換

    SynchronousQueue:不儲存元素的資料交換阻塞佇列LinkedTransferQueue:連結串列組成的資料交換無界阻塞佇列

    5、執行緒池原始碼

    執行緒池也是 JDK 原始碼中非常重要的一塊,妥善利用執行緒池可以提高效率。而執行緒池的基礎其實就是我們前面講到的阻塞佇列,執行緒池的延遲功能都是使用阻塞佇列實現的。執行緒池的整體架構比較多,但是並不複雜,也沒有什麼難點。如果弄懂了執行緒池的整體類結構,那麼執行緒池也就沒什麼太大的問題了。

    二、JVM原理

    JVM 可以說是 Java 程式設計師必須要掌握的基礎知識了。初學者或許會搞不懂這些東西到底有什麼用,一開始學習都是為了面試用。但老司機告訴你學習 JVM 原理有下面兩個非常重要的用處:

    理解 Java 語言特性。Java 程式碼寫出來的只是語言層面的東西,當我們要了解一個特性是如何實現的,我們就需要深入到位元組碼層面。例如:boolean 這個型別,在 Java 語言層面是存在的。但是其在位元組碼層面是不存在的,其在位元組碼層面是使用 Integer 的 1 和 0 表示 true 和 false。學習排查線上問題。我們遇到線上 JVM 問題,經常提示說:。這時候你會不知道從何入手,這是因為你不懂 JVM 的記憶體結構。所以你必須去學習 JVM 的記憶體結構,如何排查問題發生在哪塊記憶體,如何解決問題。而這一切的基礎就是 JVM 的基礎知識。

    關於 JVM 的基礎知識,我會寫了一個系列的文章來介紹,有興趣的關注我閱讀以下

    三、框架原始碼

    學習完 JDK 的原始碼,我們就需要把我們常用的框架原始碼都弄清楚。這樣在遇到框架問題的時候,我們才可以快速地排查問題。

    上面的思維導圖從上到下都是逐次遞進的。我們學習了 JDK 原始碼,再學習 Web 框架就可以實現簡單的 Web 專案。而隨著業務增長,我們需要加入 RPC 服務化框架將其服務化。而隨著業務複雜化和井噴,我們需要加入訊息佇列和快取來進一步提高業務的穩定性。

    1、Web框架

    Spring 和 MyBatis 可以說是 Java Web 開發者必學的兩個框架了,因此對這兩個框架有必要做一個深入的瞭解。

    對於 Spring 來說,其整個原始碼體系太過於複雜,所以我們還是得抓住重點。對於 Spring 來說,最重要的是其 AOP 和 IoC 的實現,以及其容器體系和常用的介面。而對於 MyBatis 來說,其體系相對沒有 Spring 那麼複雜,所以可以稍微深入一些。

    2、RPC框架

    在所有 RPC 框架中,dubbo 可以說是最通用的一個了。所以如果你所在的公司沒有自研的 RPC 框架,那麼你不妨可以將 dubbo 作為你的學習框架。

    對於 RPC 框架來說,其實無非就是封裝物件代理,最後透過與服務提供者進行網路通訊。但是如何進行封裝,如果進行負載均衡的實現,這就考驗一個框架設計者的功力了。

    3、一致性框架

    對於分散式系統,非常重要的一個元件就是一致性框架。在這些框架中,最常見的兩個是 Zookeeper 和 Eureka。Zookeeper 實現了 CAP 中的 CP(即注重強一致性),而 Eureka 則是實現了 CAP 中的 AP(即注重可用性)。

    雖然平常我們都將 Zookeeper 和 Eureka 作為服務化的協調元件,基本上沒有什麼機會深入學習。但是有機會還是可以深入瞭解一下的。

    4、訊息佇列

    訊息佇列可以說是實現業務解耦以及突發流量的利器。而在大型業務場景中,最常用的就是 Kafka 和 RocketMQ 了,因此弄懂這兩個訊息佇列的原理基本上就足夠用了。

    對於訊息佇列,建議先選擇一個深入研究,先弄懂其基本原理,之後再閱讀原始碼驗證想法。因為 RocketMQ 是基於 Kafka 改進的,所以建議先從 Kafka 入手研究。Kafka 研究得差不多了,RocketMQ 的研究也會進展飛速。

    5、快取框架

    快取框架可以說是高併發下必用的一個框架了,但我們經常只是使用它,而不知道起內部的原理和構造。因此找個時間深入學習下原理,還是很有必要的。

    6、網路框架

    對於一些網路專案,例如聊天 IM 等,就需要用到 Netty 等框架。而 Netty 又是這類網路框架的佼佼者,透過對其原始碼的研究,可以學到不少知識。

    7、搜尋框架

    對於一些搜尋功能的專案,單純的資料庫 SQL 查詢已經無法滿足需求了,這時候 ElasticSearch 的學習和研究就提上議程了。有時間的話,研究學習一下還是很有必要的。

    8、增量訂閱框架

    Canal 和 Otter 框架可以幫助你獲得資料庫的變化資訊,從而更方便地做業務擴充套件。對於這類框架,屬於特定領域的細分框架,有時間可以研究一下。

    總結

    作為一個工作了 5 年的開發,上面的知識體系還是未能完全消化,只能說是對於部分有些掌握。如果你也想構建自己的知識體系,那麼我建議你可以按照我列出的順序去學習。先研究學習 JDK 原始碼,之後學習 JVM 原理,最後再去研究學習框架原始碼。而框架原始碼的研究也從該框架的常用程度排序,對於 ElasticSearch 這類不常用的,可以放在後面。而對於 Spring 這些用得很多的,則需要放在前面。

  • 10 # 阿根廷大蝦

    嚴謹一點來講,你應該說明工程師所在的城市,以及他所在的公司的規模。因為不同的城市薪資差異會比較大,所以這個要考慮,再比如,一個阿里巴巴的java工程師和一個三四線城市的中小型企業裡面的java工程師待遇能一樣嗎?

    從java技術上來看,一般情況下,一般來講年薪40萬,應該處於中等水平。

  • 11 # 蜜糖481

    這種一看就是培訓機構跟你說的吧?具體年薪多少,那不是廣告宣傳說說就可以的,還得看你學完以後到底去的是哪個城市,什麼型別的公司。一般的培訓機構都會把某一項技能誇的特別牛,事實卻可能是———然並卵

  • 中秋節和大豐收的關聯?
  • 沒工作,開個小飯桌如何?