毫不誤人子弟!零基礎應該選擇學習Java、PHP,仍是前端?

上週,有讀者私信我說,「二哥,零基礎該選擇 Java 仍是 PHP 啊?」前端

我瞬間就誤了!PHP?世界上最好的編程語言?webpack

後來,又有讀者私信問我,「挺糾結的,不知道該選前端仍是 Java?」程序員

真很差選,由於「男怕入錯行,女怕嫁錯郎」,初學者糾結這個問題也是情有可原。web

首先來講說 PHP,Web 蠻荒的年代,PHP 真的是王者姿態,連 Java 可能都要禮讓三分,但近些年,PHP 只能作一些速成型的外包項目了,若是想增長更多的業務,想在性能上有所改善,PHP 就真的很難了!面試

因此,本着不誤人子弟的原則,我推薦選 Java。前端的事,隨後再說。算法

對於編程新村的同窗來講,最重要的是找到工做,對吧?你要是給我說,你是憑藉着一腔熱血才學編程的話,我還真的是將信將疑。數據庫

毫無疑問,就找工做而言,Java 數一數二!npm

我剛去編程語言排行榜(TIOBE,很是權威)截了一張圖——關於近 10 年編程語言的變化。編程

能夠看得出,Java 霸佔這份榜單不少年,而且還會持續更久。一門編程語言能有這麼頑強的生命力,他必定有別的語言所沒有的優勢,它與生俱來的競爭力是別的語言沒法取代的。小程序

若是你決定選 Java 的話,能夠先看看我整理的這份 GitHub 上星標 115k+ 的 Java 教程,裏面涵蓋了 Java 全部的知識點,包括 Java 語法、Java 集合框架、Java IO、Java 併發編程和 Java 虛擬機,內容很少,只講重點

GitHub 星標 115k+的 Java 教程,超級硬核!

尤爲是對非科班的同窗而言,最困難的就是如何先進入這個行業,若是連門都進不來,找不到工做,那麼再怎麼努力,有什麼用呢?

至於科班的同窗,很直白,咱們學編程的目的就是找工做,就是奔着高薪來的,若是臨近畢業,若是連一份實習的工做都找不到,該有多難受!

Java 的就業崗位若是謙虛地說本身只能排第二,那沒有其餘編程語言敢說本身排第一。國內的一線互聯網公司,好比阿里、美團、京東等等,後端都用的 Java。就別說中小型公司了,Java 的開源類庫很是豐富,有着一個充滿活力和積極進取的 Java 社區,藉助這些類庫可讓開發者避免重複造輪子,尤爲是有了 Spring Boot 以後,搭建一個獨立的應用程序能夠說是垂手可得,手到擒來。

更重要的是,Java 程序員的薪資客觀啊,以北京爲例。

雖然我是科班出身,但我始終以爲,不論是科班仍是非科班,只要找到合適的學習路線,而後付出努力,找到一份趁心如意的工做並不是癡人說夢。對於程序員這個行業來講,你付出一分努力,就會收穫一份回報!

剛發現了一個在線學習 Java 的網站,真的很是不錯,截個圖給你感覺下。 風格賊舒服!還能作任務和打遊戲,學習起來也更輕鬆自在一些。記住一點,編程是一門手藝活,不動手是學不會的。儘可能把網站上的代碼都敲一遍,你就會發現本身在技術層面日新月異。

codegym.cc/zh/quests/t…

Java 基礎當中,除了數據類型、運算符、表達式、輸出和輸入、程序結構、控制循環、數組、方法、傳參、IO、異常處理、泛型、註解、反射這些偏基礎的內容,難點就兩個,一個是併發編程,一個是 Java 虛擬機。

關於併發編程,我以前畫過一張思惟導圖,能夠按照裏面的知識點,一個個過一遍。

Java 虛擬機涉及到的有 Java 虛擬機內存結構、垃圾收集策略與算法、內存分配與回收策略、Java 虛擬機性能調優、類文件結構、類加載機制等等,能夠先看一看周志明老師的《深刻理解 Java 虛擬機》,一開始啃起來可能會比較痛苦,但若是能硬着頭皮多啃一啃的話,面試的時候就會容易得多。工做後,若是能解決一些性能問題,領導也會對你另眼相看。

學 Java 基礎的時候,能夠到 B 站上白嫖培訓機構的視頻,好比說尚硅谷和動力節點的。但培訓機構出的視頻有一個問題就是,內容繁多,過於偏重基礎,真正核心的內容講的很少,也不夠深刻。爲何這麼說呢,我給你們分析一下,就明白了。

拿動力節點的來講:

www.bilibili.com/video/BV1Rx…

844 節,真塔喵的多,怎麼辦呢?學的過程當中,能夠跳過,或者倍速下面這些內容:

  • JDK 的安裝
  • PATH 環境變量的配置
  • 變量
  • 數據類型
  • 循環控制語句 if、if-else、while
  • MyEclipse
  • 等等

我沒列舉完,比較多,你本身在看的時候要注意下。

遇到一些不太會的知識點,或者看不懂的,能夠按照關鍵字搜一下,Google 是第一選擇,Bing 是第二選擇,微信搜索是第三選擇,度娘是第四選擇。

CSDN 的 SEO 作的不錯,有些文章的質量對學習仍是頗有幫助的(注意,我在吹 CSDN 的彩虹屁,哈哈哈)。

說完 Java,再來講說前端吧。

前端這些年由於有 React 和 Vue,再加上安卓、Flutter、微信公衆號、微信小程序等等,確實發展得挺好的,可謂一片盛世。

但不能抱着偏見去作選擇,尤爲是不能有這樣的偏見:「前端比 Java 後端容易一些」,那可能一個 Java 後端的大神級的好苗子就沒了。像同窗舍友說的那樣,認爲「學 Java 找實習來不及,學前端的話,可能性更大」,這種結論很不可取。作任何選擇,都不能只停留在表面。

Java 後端的學習建議我前面已經說過了,接下來重點談一談前端,看看前端須要掌握的知識點都有哪些,我儘可能給你們梳理的完整一些。

前端開發是一個很是特殊的行業,它的歷史並不長,但知識至關的繁雜(尤爲是近些年),而且技術的迭代速度是其餘技術不能相比的。與此同時,前端工程師也成爲了研發體系中的重要崗位之一。

1)JavaScript

JavaScript 應該說是前端吃飯的傢伙,深度、廣度要兼備。基本上主流的前端框架都是基於 JavaScript 開發的,像 Vue,是由前端大神 @尤雨溪 開源的 JS 框架;像 React,是 Facebook 開發的一款 JS 庫。下面這些知識點,是一名前端開發必需要掌握的。

2)HTML 和 CSS

隨便打開一個網頁,按下 F12 就能夠看到大量的 HTML 和 CSS 代碼。一個網頁美不美觀,能不能獲得用戶的喜歡,除了 UI 設計,除了 JavaScript 來控制邏輯,剩下就是 CSS 樣式了。

3)運行環境

瀏覽器做爲 JavaScript 的一種運行環境,爲它提供了:文檔對象模型(DOM),描述處理網頁內容的方法和接口,一名合格的前端得了解:

  • 瀏覽器提供的符合 W3C 標準的 DOM 操做
  • 瀏覽器的差別性、兼容性(Chrome、Safari、IE 等等)
  • 可使用 Node.js 搭建前端運行環境
  • 可使用 Node.js 操做文件、操做數據庫等等

注:Node.js 是一個可以在服務器端運行JavaScript 的跨平臺運行環境

4)框架和類庫

有一說一,前端的框架和類庫真的是層出不窮,我學過的就有 Flex、ActionScript、jQuery、Bootstrap、TypeScript、React、Vue,有些已經淘汰了,有些快被淘汰了,有些是當下的主流。

對了,前端裏還有 Flutter,一個由谷歌開發的開源移動應用軟件開發工具包,用於爲 Android、iOS、Windows、Mac、Linux、Google Fuchsia 開發應用。

吹個小牛逼,我以前還爲京東大佬的《Flutter 實戰入門》的書寫過推薦序,雖而後來只在封皮上留下了這段話。

前端的 UI 組件也很是多,好比 Ant Design、EChart,還要掌握 GIS 開發框架,好比百度地圖的 API,還有可視化開發框架,好比 Three.js、D3。

前端還須要懂一些計算機基礎,好比說:

雖然大部分前端對數據結構和算法這部分知識有些欠缺,甚至抵觸,但真的想要摸到更高的天花板,數據結構和算法是必會的。

另外,要熟練使用瀏覽器提供的調試工具,好比說 Google Chrome,還有微信基於 Chrome 內核魔改版的可用於調試公衆號和小程序的調試工具。

前端再也不是單純的寫寫 JavaScript 和 CSS,也須要工程化,因此須要理解 npm、yarn 等依賴包的管理原理,還有前端打包工具 webpack 的編譯原理等等。

對了,還有性能優化這塊。尤爲是啓動頁,用戶第一時間看到的,若是加載速度慢,頁面的響應速度慢,用戶可能就直接離開了。

我以前在作微信公衆號的小商城時,可沒少在首頁的加載速度上下功夫,要壓縮 CSS 和 JavaScript,要使用 CDN 內容分發,要減小 HTTP 請求的數量,要實現圖片的懶加載,還要後端配合一些緩存等等。

這麼一套前端的知識體系下來,是否是就不會再有那種刻板印象了,前端真的那麼簡單嗎?懂的人永遠不會說簡單。

貼一張字節跳動的面試題吧,想走前端路線的同窗能夠感覺下。

還有一張前端的技能圖譜:

真乃學無止境也!

最後,簡單說幾句。

真沒想到!憤怒!居然還有學校還在教 Java 的 Swing這篇文章會這麼火!徹底超出了個人預期!

不少人在評論區噴我,看得我是內心笑呵呵~~~~

不必!不必!不必!

我一沒打算讓學校放棄教 Java,二沒打算讓 Intellij IDEA 的團隊不用 swing 開發,我只是說兩句內心話,能聽得進去的,大學畢業後一會不會以爲虧,畢竟國內的計算機高校仍是有一些問題存在的,若是不問青紅皁白就忽略這些問題,我以爲很可怕!

學校給不了的,我給了,你聽進去了,多年之後你會來感謝我說的真心話,聽不進去的,想噴的,隨意,真的,開心就好。

最後的最後,仍是那句話,與其把時間花費到這些沒用的知識點上,真不如:

1)癡迷於數據結構與算法

算法題就好像科舉考試時代背的八股文,是知識改變命運的表明做。你不刷,就很過算法題這一關,由於不只要考,還能提升你的編程功底。我給你推薦的 BAT 大佬的刷題筆記,必定要下載下來刷一刷(能夠點擊下面的連接去下載)。

他喵的,BAT 大佬的這份刷題筆記太強了!

2)熱衷於 ACM

3)嘗試 Unix、Linux 環境下編程

4)醉心於網絡編程和多線程編程,對 TCP/IP、HTTP 等網絡協議有很深的理解

好了,今天的分享就到這吧。吹個牛逼,二哥影響力已經擴散到海峽兩岸了,正在服兵役的小哥哥,加油呀!

我是二哥呀,但願能給學弟學妹們一些幫助和啓發,記得點贊喲~

相關文章
相關標籤/搜索