首先要說明下:前端并不是編程語言,它是很多種技能的組合,主要包括HTML/CSS/JavaScript等。工作性質是與UIUX這樣的設計師合作,通過代碼來呈現他的設計稿。簡單來說他就是藍圖,你照圖施工通過代碼來實現。
其實編程這個事情,很多人有計算機專業相關和非計算機相關的區分,雖然確實有基礎底蘊的差別,但是在努力的共性上還是一致的,有以下幾個共性,你可以看一看:
1.對編程有求知欲,喜歡自己去探索一些數據或編程的東西。
許多人入行都是聽說程序員很賺錢就進來的,雖然對程序沒有特別的興趣,這樣的人在經過短暫的訓練后,還是可以基本入行的,但他們基本上還是處于初級階段,升入中級一般都需要主動。有興趣和基礎的人會比別人更進一步。
2.善于發現程序問題,想辦法自己解決。
程序設計中最困難的一點是找出錯誤,任何程序出現問題都是正常的,關鍵是你有能力發現和解決問題。假如你有很強的Bug問題解決能力,那么你就會像一個優秀的程序員一樣快速前進
3.對編程學習有耐心和自學能力。
許多人說編程和武功一樣,一天不練,武功全廢。不要只憑一時的興趣,簡單的玩一玩,然后問很多問題,就問人。這個學習過程不科學,可以問,但最好有基本的解決辦法。
說完了一些注意事項,我們再回到一開始的語言選擇問題上來
其實沒什么好說的,零基礎小白當然是推薦Java。Python固然好,但對一個剛入門的人來說,首先要先找到一份工作。而且,在求職中,Java無疑是最簡單的。對跨行業的人來說,實際上第一步是最困難的,那就是如何進入這個行業。假如你進不了門,而且第一份工作遲遲不能開始,那就好好努力,補上數據結構,設計模式,算法設計這些空白就無從談起
接下來,講一個具體的學習計劃:
1.了解Java運行環境。明確path和classpath的作用,以及如何在命令行執行編譯、執行。了解IDE按鈕背后實際發生的事情。
2.精通Java語法。明確包、接口、類,并繼承這些基本概念。學習多態,overwrite,死背IO的界面,包括InputStream/OutputStream和Writer/Reader,死后背對網絡編程和GUI編程界面,死背JDBC界面。
3.精通多線程編程。找出ConcurrencyHashMap是如何實現的,弄清楚synchronized是什么,為什么要使用Runnable接口。
4.錯誤的數據結構。明確LinkedList和ArrayList的實現機制,了解每個LinkedList的時間復雜性。而且還有其他容器,Map啊,Set啊,都是一樣的。堆棧,隊列,二叉樹,圖表貫穿編程始終,如果您無法跨越這一步,那么您將只能在低級程序員中工作。
5.在這個時候,你可以有自己的思考。Java發展到今天,在很多情況下使用過,認為Java是應用最廣泛的編程語言也不為過。打好基礎之后,你可以考慮該往哪個方向發展。例如服務端的體系結構,最好先了解JavaEE。長期以來,JEE就是讓人們覺得門檻太高。這一點實際上可以從Spring開始,弄清楚反射,控制反轉,依賴注射(這些神靈嘮叨的名詞實際上是為了解決Java本身不夠動態這一缺陷而出現的,在此,我只是想提醒一下,這些概念沒什么大不了的,別被那些愛裝逼的家伙嚇到)。另外還有消息這件事,還有ORM這件事,快來看看。想想他們能解決什么問題,然后猜想他們是如何實現的。在我采訪的時候發現,其實大多數優秀的開發人員,即便是沒有想過這個問題,就讓他現場設計一下Hibernate,都可以設計的差不多。由此可見,這些框架性的東并不是什么大問題。在基礎上,你也可以設計它。重要的是要動腦思考。上面以服務端開發為例,那么在客戶機方面,您要考慮事件響應機制是如何工作的(這些我不熟悉,也就不多說了)。深入研究JVM的源代碼,以及它的實現機制,還要學習垃圾收集算法等等。
版權聲明:本文內容由互聯網用戶自發貢獻,該文觀點僅代表作者本人。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如發現本站有涉嫌抄襲侵權/違法違規的內容, 請發送郵件至 舉報,一經查實,本站將立刻刪除。