1. 程式人生 > >對於培訓出身的同學,接下來該怎麽學習技術?

對於培訓出身的同學,接下來該怎麽學習技術?

https 技術支持 不下來 函數 形象 .com 差距 使用 在那

首先恭喜從培訓班出來找到工作的同學,確實挺不容易的,4個月的培訓,每天從早上9點到晚上9點,也是996,主要的活動地方就是宿舍和教室, 讓我現在也去培訓,我估計還熬不下來。

尤其是對於從小白開始的同學,4個月期間不斷地接觸新技術、新概念,一個還沒徹底理解,另外一個就呼嘯而來,狼吞虎咽,想真正消化是很難的。

所以我經常說對於那些通過培訓來努力改變命運的同學,我非常尊重。

現在好了,找到了工作,可以稍微喘一口氣了,但是能夠就此休息了嗎, 那是絕對不能。

培訓只是讓我們入了門,有了一個初步可以工作的技能,可以參與項目,在別人的指導下,在現成的框架下寫業務代碼,想成為一個真正的程序員,路還非常地長。

我想給各位嘮叨兩句,說一些註意事項。

1. 適應期:把工作做好

首先一定要把分配給我們的工作做好,這是底線。

要拿出300%的勁頭去做,就是加班加點也要高質量按時完成,誰讓我們是新人呢! 初步建立起自己的認真負責的形象,註意啊,個人的形象是非常重要滴。

遇到障礙一定要及早提出,向同事請教,“不恥上問”,不要不好意思,不要怕別人鄙視。

最怕的是有個問題把你給絆住了,你坐在那裏不吭聲,兩天過後,領導才發現你嚴重落後於進度。

如果有余力,盡快地去熟悉項目的各個方面,尤其是業務上的東西。

收集業務知識相關的文檔,反復閱讀,努力理解,不懂就請教。 註意:這些事情很有可能是在你的工作之余完成的,下班後的遊戲就不要再打了,現在工作第一!不過你放心,你努力學習的態度一定會給你帶來回報。

和組長,項目經理等領導搞好關系,抓住一切可能的機會主動、自信地領導交流(例如共進午餐的時候)。 不用總是“默默無聞”,要主動參與,了解項目的進展,人員情況,有什麽困難。 總之要快速地融入團隊,打入他們的圈子。

不要不好意思,老是躲著領導走,讓領導覺得:這孩子這麽怕我,是不是有什麽問題?!

2. 深入學習技術和原理

度過了適應期,會感覺舒服很多,代碼和業務逐漸熟悉, 任務不用加班也能完成。和同事也開始熟悉, 於是就進入了舒適區。

這個時候可以更加深入地鉆研一下技術了,什麽Nginx、Redis、RabbitMQ、Shiro、Elastic search、Spring ......等知識,培訓班也許學過,但是我相信只是學了一些皮毛,對原理可能還不太了解, 這時候正好可以結合工作中用到的技術,深入地學習一下。

例如Nginx,要去理解epoll這個技術,以及和select之間的差別。 理解什麽是非阻塞IO,順道可以學一下Java的NIO, 感興趣的話還可以瞄一眼Node.js, 本質的原理是相通的。

對於Redis,至少要理解分布式一致性Hash,雖然Redis沒有用這個算法,但是要和Redis那種基於槽的方式來對比。

理解緩存失效了怎麽處理,增加、刪除機器會怎麽影響緩存。如果你的項目在使用Redis做緩存,主動向相關負責人請教,畢竟理論和實踐還是有差距。

對於Spring, 現在要考慮學習DI和AOP的實現原理和技術了,可以嘗試自己寫個小容器,絕對很鍛煉人。

DI還好說,AOP這一塊兒需要有底層技術支持,就是Java動態代理和CGLib。再往下深挖,就是ASM, Class 文件的格式,ClassLoader,這就進入了另外一個大世界: JVM, 需要掌握JVM的邏輯結構,執行引擎,尤其是後者,理解一個類裝入方法區以後到底是怎麽執行的,其中的棧幀等概念對以後學習C語言在機器層面的執行很有幫助。

可以閱讀一些面向對象設計, 設計模式相關的書籍,不能只是看,要思考,它到底要解決什麽問題? 把一些設計思想和自己的項目做對比,看看為什麽現在的設計是這樣,是不是有問題, 向資深同事請教。

......

總之,最好從工作中使用的技術開始學習,理論聯系實際,還是那句話,“不恥上問”,作為程序員,老是悶頭自己幹,希望一鳴驚人,給別人一個大驚喜,那是不太現實的。

3. 計算機基礎

在往下走就進入了計算機基礎的領域了,之前說過很多次,估計老讀者都煩了吧, 這裏再啰嗦一下。

操作系統的幾個重要概念一定得掌握,進程、線程、虛擬內存,一定要理解程序在機器級層面的表示,寄存器,函數棧幀等,如果你能理解緩沖區溢出的攻擊和防禦就差不多了, 這些知識需要涉及C語言和匯編。

理解線程的幾種實現方式,對於將來學習Go語言的並發,Actor, ErLang 等技術和語言有極大幫助,你會發現有似曾相識的感覺。

數據結構和算法的學習要貫穿始終,雖然在工作中最常用的可能就是數組,List和Map。

對於常用的數據結構要自己能寫,要閱讀JDK對應的實現。 要大量地做題,鍛煉自己的邏輯思維能力。

如果你的工作和數據庫結合緊密,那數據庫中相關的技術如索引,事務,查詢優化不能錯過。

對於計算機網絡,要理解協議的本質、分層的本質。 具體的協議中HTTP是必備,還要了解可靠性傳輸的原理,TCP/IP等協議,socket等基本概念。

4. 總結

需要提醒大家的是,我這裏所說的只是一個大概的分層,在學習過程中很有可能一下子從最上層的應用跳到最底層的基礎概念,這很正常,很多知識點之間都是相互關聯,不是完全隔絕的。尤其是在原理層次。

你會發現需要學習的東西實在是多,這篇文章能列出來的也是部分而已, 沒有辦法,這就是程序員的世界, 更可怕的是還有很多新技術在不斷湧現。

所以對於培訓出身的同學來說, 找到工作,只是入門而已,絕不能就此停滯。

還有就是我啰嗦了這麽多,也許一時觸動了你,但關鍵還是要行動,並且堅持學習下去,這樣才能成為真正的程序員。

zhuanzi https://www.cnblogs.com/chenshengjava/p/8426027.html

對於培訓出身的同學,接下來該怎麽學習技術?