新手必看学习JAVA的N个理由,看阿…
經(jīng)常有學(xué)生問我:怎么樣才能學(xué)好java?自學(xué)java難嗎??我認(rèn)為,自學(xué)Java并不難。相對(duì)于其他語言來說,因?yàn)镴ava95年才出來,所以比較新(其實(shí)也不夠新了),舊的語言中一些不合適的東西在Java里面已經(jīng)被改掉了。當(dāng)然Java它還是非常豐富龐雜的語言,它有很多的成分在里面,但是從初學(xué)者的角度來說,Java需要理解或掌握的東西并不太多。任何一個(gè)人學(xué)編程,首先要掌握變量表達(dá)式語句,語句里面的條件、判斷、循環(huán),這些基本概念掌握之后,?剩下的都是一些語言特殊相關(guān)的。
?
?
?
TIOBE2016年6月前10名編程語言長期走勢(shì)圖,JAVA始終處于優(yōu)勢(shì)在我看來,JAVA是一個(gè)非常值得學(xué)習(xí)的語言。我們現(xiàn)在看到一個(gè)很有意思的變化是:軟件開發(fā)的面貌已經(jīng)有了很大的不同。大家可以回想一下,最常一個(gè)使用的軟件是什么?相信絕大多數(shù)的同學(xué)都會(huì)說:微信。我們傳統(tǒng)提到的軟件是在計(jì)算機(jī)桌面上的軟件,但是現(xiàn)在“軟件”常常指的是在其他載體上。傳統(tǒng)在桌面上的軟件一般是用C#、C++、Objective-C來寫的,其中有一部分是JAVA,雖然份額不是很多。? 現(xiàn)在很多軟件的運(yùn)行都是靠背后的服務(wù)器,而服務(wù)器通常是需要JAVA和各種新興語言。也有很多軟件是在瀏覽器中運(yùn)行的,如果是學(xué)過前端的同學(xué),那么對(duì)JavaScript就不會(huì)陌生。另外還有一些在嵌入性設(shè)備中運(yùn)行的軟件,可能是用C語言來寫的。所以在不同的地方,是由不同的語言來寫的。? 根據(jù)數(shù)據(jù)顯示,占據(jù)份額最大的是后端,其大部分是由JAVA制作的。其次是企業(yè)級(jí)的應(yīng)用,大部分的該應(yīng)用都是基于網(wǎng)頁的,那也就是由Java編寫的。第三的是移動(dòng)應(yīng)用客戶端,如果是安卓的系統(tǒng),那又是由java編寫而成的,即使是iOS系統(tǒng),其后端也是java。JAVA語言在計(jì)算模式演變過程中,尋找到了適合自己發(fā)揮的地方,因?yàn)閖ava不擅長桌面,但是現(xiàn)在桌面變得越來越不重要。?目前的軟件普遍表現(xiàn)為前端/后端模式。網(wǎng)站不再是提供網(wǎng)頁的站,而是服務(wù)提供者。前端的語言用的是HTML、CSS或者JavaScript;而后端則是Java、PHP、.net、Python and JavaScript。而我們?cè)谶x擇用什么樣的語言來寫程序的時(shí)候,通常有兩個(gè)因素會(huì)起到重要影響:1)這個(gè)語言有一個(gè)現(xiàn)成的庫,而這個(gè)庫正好能解決這個(gè)問題;2)身邊所有的程序員只會(huì)某一種語言。目前的情況是:人們會(huì)因?yàn)镴AVA很好用而開發(fā)自己可以用的庫,所以當(dāng)別的人要開發(fā)應(yīng)用的時(shí)候發(fā)現(xiàn)JAVA有合用的庫,就選擇了JAVA。因?yàn)檫@變成了一種正向的循環(huán)和反饋。與各種新興動(dòng)態(tài)語言相比,JAVA顯然更適合大型系統(tǒng)。
提問:我非常喜歡JAVA這門語言,那我接下來應(yīng)該怎么深入學(xué)習(xí)呢?
阿愷:我覺得做網(wǎng)絡(luò)上的編程題目不是一種特別有效的方式,與將來大家在工程中做的項(xiàng)目還是不一樣的。建議大家應(yīng)該自己想辦法找一些比較大的應(yīng)用來做,如果只是學(xué)了java還沒有學(xué)習(xí)java?web相關(guān)的東西,可以嘗試做一些簡單的桌面應(yīng)用,比較容易上手,能體會(huì)一些感覺。
提問:我在學(xué)校學(xué)過C,C++,知道基礎(chǔ)知識(shí),但是學(xué)完學(xué)校的課程后除了會(huì)做一些簡單的編程,其他的我卻毫無想法,這該怎么辦?
阿愷:以我對(duì)學(xué)校課程的理解,學(xué)校的這些編程課程一般不會(huì)教你做一個(gè)大型的所謂架構(gòu)設(shè)計(jì)的東西。當(dāng)你面對(duì)一個(gè)需求,怎么把這個(gè)需求分析出來,去用計(jì)算機(jī)的方式理解出來,去做整個(gè)軟件的架構(gòu)設(shè)計(jì),該有一些怎么樣的部分,這些部分怎么做接口等等,這些是在編程語言之外的,光把語言學(xué)好是做不到這些東西的。
提問:聽說現(xiàn)在學(xué)前端的同學(xué),都開始學(xué)后端語言了,老師怎么看這種流行趨勢(shì)?
阿愷:這確實(shí)是一種流行。既然學(xué)了前端,不如再學(xué)后端,也許就能成為一個(gè)全站的工程師。或者也有另外一個(gè)考慮,就算不從自己職業(yè)成長角度考慮,你想要在一個(gè)企業(yè)里面大家一起做事情,你如果能夠了解別人做事情的方法或他的能力,尤其是他的局限,這樣雙方互相溝通上交流上會(huì)好一些。一個(gè)需求或功能總是可以由前端來做,也可以由后端來做,這個(gè)時(shí)候到底該誰來做,雙方是協(xié)作,還是互相較勁,這就很不同。如果前端多少懂點(diǎn)后端,后端多少懂點(diǎn)前端,這樣子會(huì)比較和諧,是不是?
提問:老師覺得野生的程序員好還是圈養(yǎng)的好?
阿愷:我覺得程序員需要圈養(yǎng),這不是說野生的程序員有什么不好,而是因?yàn)檎嬲谧龃笫虑榈亩际呛芏嗳撕献鞯?#xff0c;不會(huì)只是你一個(gè)人,圈養(yǎng)的程序員排除掉不好的含義,至少在你成長的過程中你是跟很多人一起成長的,不是你自己在瞎想的,你是跟很多人一起碰撞交流的,我覺得這個(gè)過程對(duì)一個(gè)人的成長是很有用的,不是必須在一個(gè)很高級(jí)的機(jī)構(gòu)或名校學(xué)習(xí)或在大公司工作,但你學(xué)習(xí)的過程應(yīng)該是一個(gè)有序的團(tuán)體性的過程。
提問:老師覺得什么是“程序猿的自我修養(yǎng)”?
阿愷:總結(jié)三點(diǎn)我覺得很重要的。1)?用一手資料不用二手資料,例如只在官網(wǎng)下軟件和讀官方手冊(cè);2)學(xué)會(huì)用命令行工作,也要學(xué)會(huì)用腳本做常做的事,在積累后,一些常規(guī)工作就會(huì)變得十分快捷。并且在遠(yuǎn)程操作的時(shí)候,腳本的網(wǎng)絡(luò)帶寬需求很小,辦公便捷性提升。3)學(xué)會(huì)在線代碼托管和版本管理。將你寫的所有的代碼和文檔都放上去,不會(huì)害怕電腦損壞、被盜。并且,幾年下來就有了足以表明自己成就的展示空間。
現(xiàn)在有很多小伙伴在自學(xué),但是一個(gè)人的能力總是有限的,遇到問題沒人幫你解決,我們有一個(gè)Java的學(xué)習(xí)交流Q群280821779,平時(shí)提供大家一起學(xué)習(xí)Java,每天有免費(fèi)Java課程知識(shí)講解。有問題相互交流。?點(diǎn)擊鏈接加入群【Java編程入門學(xué)習(xí)群】學(xué)習(xí)。
?
總結(jié)
以上是生活随笔為你收集整理的新手必看学习JAVA的N个理由,看阿…的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 三十天博客计划之《引言》
- 下一篇: 字节跳动4面面筋