編程門檻其實並不高,自學幾個月就能夠入門,可是初級程序員進階卻很難,須要學的知識不少不少。因此自學編程想入門,很簡單,只要本身能努力,能堅持,幾個月之後你就已經在路上了。儘管這個過程很難,你會迷茫、困惑,可是你要堅信努力必將有結果。前端
咱們最終目的是儘快的學完相關知識,而後找到一份工做,進入這個行業。咱們這裏的方法就是快速掌握知識運用。可是開發的這個行業你其實須要學習的知識實在太多太多,可是普通公司的一個初級工程師只要能保證會用業內通用的框架,能解決的基本的業務問題就好。因此咱們這裏學習過程必須的先作減法。這個過程當中咱們先不用去學習算法,框架源碼什麼的,先去學習工做中須要用到的知識,等咱們進入行業再去學習。程序員
自學的第一步,咱們先掌握語言的基本知識點。咱們下面拿 Java 舉例。面試
學習 Java,推薦使用視頻加書籍學習。視頻資源能夠去慕課網,網易雲課堂尋找,這個不展開敘述。至於書籍,這裏推薦 「Java核心技術(卷1):基礎知識」,「Java編程思想」。兩本書都是經典好書,尤爲後面一本更是經典中經典。這裏切記一點,切勿買 「xx 入門到精通」、「21 天帶你學會 xx」 系列書籍,儘管這類書籍銷量很好。算法
不推薦直接看書學習。由於你若是單純看書,你很容易會睏乏,並且很容易抓不住重點。這個過程很容易會讓你失去興趣。而結合視頻學習,你能夠跟視頻進度學習,進而能掌握本身大概學習進度。這個學習過程當中,你先看完視頻,而後動手練習視頻中的代碼。數據庫
必定要動手練習!編程
必定要動手練習!前端框架
必定要動手練習!框架
代碼是須要動手練習,才能孰生巧。ide
學完 Java 基礎,用學的知識去完成一個小項目,這裏會讓本身有些小成就,這樣能更好學下去。工具
Java 基礎知識不用去學 awt,swing 等圖形化編程。
若是這第一步都堅持不下來,那其實真的放棄吧。後面你只會越學越困難
自學第二步,選擇從事的方向。
學完 Java 基礎,你就面臨本身之後須要從事開發的方向。如 Java 來講,通常分爲服務段開發與客戶端開發,方向不一樣,接下去學的知識點就會不一樣。因此這裏選擇須要慎重思考。
這裏可使用一個方法,咱們從事件的價值出發,列出一個優缺清單表。好比你要選擇服務端開發仍是客戶端開發,你先去充分了解這兩個方向,而後列一分優缺清單表格,把了解到每個點都寫上去,打一個分數,分數分爲 -10 到 10 分。最後咱們統計一個總分,而後那個分數較高的方向。
因爲本人從事服務端開發,下面說說服務端開發學習的過程。
服務端開發,須要學習的東西會不少,不過不用擔憂,咱們一個個說。
首先咱們先說數據庫。數據庫對於服務端開發,必定要學會的技術,因此這個咱們須要着重學習。
首先按照網上教程,本身在電腦上搭建一個數據庫,這裏推薦 MySQL。搭建以後,再下載一個數據庫客戶端管理工具,如 Navicat,DataGrip。弄完這些基礎設施以後,咱們這裏接着去學會 SQL 的語法。這裏着重學習單表增刪改查的語法,跨表的鏈接查詢等。網上找一個例子,如能夠本身構建一個學生課程信息表,作到能夠用以上學習到的語法。
學習完數據庫,接着咱們就須要學習Java JDBC 的知識。學習的 JDBC 就是讓咱們瞭解,如何使用 Java 操做數據庫,運行 Mybatis的增刪改查的語句。
接着咱們能夠去學習相關 ORM 的框架,如 Hibernate 或 Mybatis,這裏推薦 Mybatis。學習框架,咱們要作到掌握框架的使用技巧就能夠。
這個過程你可能會發現,Mybatis 這類框架這麼如此簡化開發,爲何咱們不直接學習 Mybatis ?
學習 JDBC 的目的,其實就是讓你瞭解這些 ORM 的基礎。
學完這個階段,咱們接下去就要進入 WEB 開發。
這個過程咱們首先學習一些前端知識,如 HTML,CSS,JavaScript,而後再去 Jquery 等前端框架,作到能實現一些簡單的功能。咱們不須要跟你上面同樣精通,咱們只要瞭解一些概念便可。
接下去咱們學習 Servlet,作到能使用原生 Servlet + Jsp 能運行一個 WEB 程序。
後面咱們再去學習 Spring 框架,使用 SpringMVC 瞭解 MVC 的概念。最後用 SpringMVC+Spring+Mybatis+MySQL 完成一個簡單的管理系統。
學完以上內容,基本上已經學習完工做中學習到的技術棧。這個過程你還須要額外學習一些工做中用到其餘知識。
你須要去學習協同開發的工具,如 Git,SVN。作到了解如何新建分支,如何拉取代碼,如何合併代碼便可。
你還須要去學習一些 Linux 的命令。
學完上述內容,你實際就已經掌握初級開發所須要的技術,已經基本上能夠從事一個初級開發的崗位。咱們上面講的都是使用技巧,可是面試的時候可能會問你一些原理性的內容,因此在咱們去找工做以前咱們還須要去了解一些原理性知識。這方面的內容經過搜索引擎搜索便可。
這個過程你可能會碰到不少問題,這個過程必定善於使用搜索引擎。