如何突破JAVA程式員三年的門檻

来源:http://www.cnblogs.com/rese-t/archive/2017/12/01/7940401.html
-Advertisement-
Play Games

第一階段:三年 我認為三年對於程式員來說是第一個門檻,這個階段將會淘汰掉一批不適合寫代碼的人。這一階段,我們走出校園,邁入社會,成為一名程式員,正式從書本 上的內容邁向真正的企業級開發。我們知道如何團隊協作、如何使用項目管理工具、項目版本如何控制、我們寫的代碼如何測試如何線上上運行等等,積累了一定的 ...


第一階段:三年

我認為三年對於程式員來說是第一個門檻,這個階段將會淘汰掉一批不適合寫代碼的人。這一階段,我們走出校園,邁入社會,成為一名程式員,正式從書本 上的內容邁向真正的企業級開發。我們知道如何團隊協作、如何使用項目管理工具、項目版本如何控制、我們寫的代碼如何測試如何線上上運行等等,積累了一定的 開發經驗,也對代碼有了一定深入的認識,是一個比較純粹的Coder的階段。

第二階段:五年

五年又是區分程式員的第二個門檻。有些人在三年裡,除了完成工作,在空餘時間基本不會研究別的東西,這些人永遠就是個Coder,年紀大一些勢必被 更年輕的人給頂替;有些人在三年裡,除了寫代碼之外,還熱衷於研究各種技術實現細節、看了N多好書、寫一些博客、在Github上分享技術,這些人在五年 後必然具備在技術上獨當一面的能力並且清楚自己未來的發展方向,從一個Coder逐步走向系統分析師或是架構師,成為項目組中不可或缺的人物。

第三階段:十年

十年又是另一個門檻了,轉行或是繼續做一名程式員就在這個節點上。如果在前幾年就抱定不轉行的思路並且為之努力的話,那麼在十年的這個節點上,有些 人必然成長為一名對行業有著深入認識、對技術有著深入認識、能從零開始對一個產品進行分析的程式員,這樣的人在公司基本擔任的都是CTO、技術專家、首席 架構師等最關鍵的職位,這對於自己絕對是一件榮耀的事,當然老闆在經濟上也絕不會虧待你。

第一部分總結一下,我認為,隨著你工作年限的增長、對生活對生命認識的深入,應當不斷思考三個問題:

1、我到底適不適合當一名程式員?

2、我到底應不應該一輩子以程式員為職業?

3、我對編程到底持有的是一種什麼樣的態度,是夠用就好呢還是不斷研究?

最終,明確自己的職業規劃,對自己的規劃負責併為之努力。

關於項目經驗

在網上經常看到一些別的朋友有提出項目經驗的問題,依照我面試的感覺來說,面試主要看幾點:項目經驗+基本技術+個人潛力(也就是值不值得培養)。

關於項目經驗,我認為併發編程網的創始人方騰飛老師講的一段話非常好:介紹產品時面試官會考察應聘者的溝通能力和思考能力,我們大部分情況都是做產品的一個功能或一個模塊,但是即使是這樣,自 己有沒有把整個系統架構或產品搞清楚,並能介紹清楚,為什麼做這個系統?這個系統的價值是什麼?這個系統有哪些功能?優缺點有哪些?如果讓你重新設計這個 系統你會如何設計?

我覺得這就已經足以概括了。也許你僅僅工作一年,也許你做的是項目中微不足道的模塊,當然這些一定是你的劣勢且無法改變,但是如何彌補這個劣勢?

從方老師的話中我總結幾點:

1、明確你的項目到底是做什麼的,有哪些功能。

2、明確你的項目的整體架構,在面試的時候能夠清楚地畫給面試官看並且清楚地指出從哪裡調用到哪裡、使用什麼方式調用。

3、明確你的模塊在整個項目中所處的位置及作用。

4、明確你的模塊用到了哪些技術,更好一些的可以再瞭解一下整個項目用到了哪些技術。

在你無法改變自己的工作年限、自己的不那麼有說服力的項目經驗的情況下(這一定是扣分項),可以通過這種方式來一定程度上地彌補並且增進面試官對你的好感度。

關於專業技能

寫完項目接著寫寫一名3年工作經驗的Java程式員應該具備的技能,這可能是Java程式員們比較關心的內容。我這裡要說明一下,以下列舉的內容不是都要會的東西—-但是如果你掌握得越多,最終能得到的評價、拿到的薪水勢必也越高。

java學習群669823128

01 高可用

負載均衡(負載均衡演算法)

反向代理

服務隔離

服務限流

服務降級(自動優雅降級)

失效轉移

超時重試(代理超時、容器超時、前端超時、中間件超時、資料庫超時、NoSql超時)

回滾機制(上線回滾、資料庫版本回滾、事務回滾)

02 高併發

應用緩存

HTTP 緩存

多級緩存

分散式緩存

連接池

非同步併發

03 分散式事務

二階段提交(強一致)

三階段提交(強一致)

消息中間件(最終一致性),推薦阿裡的 RocketMQ。

04 隊列

任務隊列

消息隊列

請求隊列

05擴容

單體垂直擴容

單體水平擴容

應用拆分

資料庫拆分

資料庫分庫分表

數據異構

分散式任務

06 網路安全

SQL 註入

XSS 攻擊

CSRF 攻擊

拒絕服務(DoS,Denial of Service)攻擊

學習方向:

01、maven的使用

maven的使用入門

maven私服的搭建及部署

maven坐標分析/父控設置

02、git版本管理及jenkins自動化構建

git使用入門培訓

git常用命令分析和使用

jenkins環境搭建及插件配置

git+jenkins實現自動化構建

03、NoSql專題-redis高性能緩存

redis使用入門

redis常用命令及客戶端的使用

redis高可用集群搭建

04、NoSql專題-mongodb

mongodb使用入門

mongodb高可用集群搭建

mongodb常用命令及客戶端的使用

05、分散式專題-zookeeper+dubbo服務協調

zookeeper安裝部署及命令分析

zookeeper客戶端的使用

zookeeper實現原理分析

dubbo的使用入門及配置分析

zookeeper+dubbo實現服務註冊和發現

06、分散式專題-消息中間件

activeMq-jms規範及使用

activeMq消息分發機制分析

kafka實現原理剖析

kafka的數據傳輸事務性及實踐練習

07、分散式緩存分析對比

memcache的原理分析及使用

memcache和redis的橫向對比分析

分散式介面技術

webservice/RMI/restful的使用

09、高併發專題-資料庫層面優化

分庫分表的原理及規則講解

資料庫主備及高可用

10、性能調優專題-jvm調優

JVM原理剖析

jvm記憶體模型及垃圾回收器的分析

11、性能調優專題-容器性能優化

nginx性能優化

tomcat性能優化

12、性能調優專題-資料庫優化

mysql常見優化手段分析及實踐

13、高性能容器的使用

nginx使用入門

nginx負載均衡/反向代理實現

14、雙十一專題-九陽真經

太極聚氣之分散式壓測平臺

氤氳紫氣之分散式緩存體系

盤龍真訣之分散式消息系統

金剛之軀之分散式跟蹤系統

外功輔助之分散式配置系統

15、微服務架構技術棧分析

springboot的使用

16、分散式協調服務zookeeper

zookeeper集群及相關概念分析

zookeeper java api的使用及實踐

17、從集中式到分散式架構

分散式架構的演進過程

分散式架構的基石-TCP/UDP

18、分散式通信協議

分散式通信協議-HTTP及RESTful

分散式通信協議-webservice詳解

分散式通信協議-RMI

分散式通信協議-序列化技術

19、分散式服務治理

dubbo控制台及監控中心的安裝部署

dubbo常用配置分析

dubbo實戰演練

20、NIO技術之-Netty

NIO基本概念及BIO、AIO的對比分析

NIO核心設計思想剖析(Buffer/Channel..)

Netty產生的背景及優缺點分析

Netty實現IM聊天系統

21、分散式緩存技術-Redis

redis的安裝及數據類型分析

Redis客戶端的使用

Redis高可用方案實戰

Redis+Lua腳本實現原子操作

22、高性能之道-MongoDB

MongoDB高可用部署

MongoDB動態查詢及索引剖析

MongoDB集成spring應用

23、資料庫高性能之道-Mysql

分庫分表深入分析

Mysql主從模型配置/Mycat的使用

24、分散式通信技術

JMS基本概念和模型

ActiveMQ結合Spring開發

ActiveMQ靜態網路和動態網路鏈接

Kafka的高可用方案及原理分析

25、SOA架構及微服務架構

什麼是SOA架構/為什麼需要SOA

領域驅動設計方法/典型SOA架構設計

spring boot深入剖析

spring boot+dubbo企業實戰

26、Docker虛擬化技術

Docker虛擬化技術(鏡像/倉庫/容器)

Docker整合spring boot

Docker 服務編排

27、導流技術

Nginx反向代理、負載均衡

Nginx進程模型分析

Nginx+keepalived高可用方案

28、微服務技術

spring boot(mvc)

spring boot(REST)

spring boot(驗證)

29、spring cloud

spring cloud config client

spring cloud config server

spring cloud netflix eureka

spring cloud netflix ribbon

spring cloud hystrix

spring cloud feign

spring cloud stream

spring cloud bus

spring cloud sleuth

30、分散式消息技術-kafka

kafka高可用集群及介紹

kafka底層實現原理分析

31、分散式緩存-redis

redis的數據類型分析

redis高可用集群方案

lua腳本在redis中的應用

32、高性能之道-MongoDB

MongoDB的基本原理

MongoDB常用命令及客戶端使用

手寫基於MongoDB的ORM框架

MongoDB高可用解決方案

33、資料庫高性能-Mysql

分庫分表深入分析及主從模型

資料庫中間件Mycat介紹

34、性能優化專題

從測試的角度解讀如何衡量性能

瞭解Linux系統

35、虛擬機-JVM

記憶體模型、運行時數據

垃圾回收、GC日誌

調優實戰

36、容器優化-Tomcat

tomcat架構分析

線程模型分析

tomcat調優實戰

37、Mysql資料庫調優

Mysql底層存儲分析

面試技巧之SQL執行計劃及優化手段

上面知識辭彙是否在你腦海裡呢?

java學習群669823128


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...