科技改變生活 · 科技引領(lǐng)未來
第一周:熟悉 Java基礎(chǔ)
要積極探索 Java的使用方法,盡可能多的完成下面這些任務(wù)
第一天 基本概念(4小時): java程序員需要了解的底層知識,變量,輸入,條件語句
列表,for循環(huán),while循環(huán),函數(shù),數(shù)組,枚舉,導(dǎo)入模塊,基本語法,編程規(guī)范,搭建環(huán)境,依賴框架等
第二天 基本概念(5小時): 硬件和操作系統(tǒng)的底層知識,操作系統(tǒng)需要處理如管理與配置內(nèi)存、決定系統(tǒng)資源供需的優(yōu)先次序、控制輸入設(shè)備與輸出設(shè)備、操作網(wǎng)絡(luò)與管理文件系統(tǒng)等基本事務(wù)
第三天 簡單編程問題(5小時): 操作系統(tǒng)之進(jìn)程管理,Linux系統(tǒng)的內(nèi)存映射內(nèi)核同步方法及用匯編啟動內(nèi)核 存儲分配、存儲共享、存儲保護(hù) 、存儲擴(kuò)張,文件存儲空間的管理、目錄管理 、文件操作管理、文件保護(hù)
第四天 中級編程問題(6小時): 虛擬文件系統(tǒng),文件描述符,IO重定向 , 內(nèi)核中PageCache、mmap作用、java文件系統(tǒng)io、nio、內(nèi)存中緩沖區(qū)作用
第五天 數(shù)掘結(jié)構(gòu)(6小時): ,Socket編程BIO及TCP參數(shù),C10K問題及NIO精講IO模型性能壓測,網(wǎng)絡(luò)編程之多路復(fù)用器及Epoll精講操作系統(tǒng)之進(jìn)程管理
Linux系統(tǒng)的內(nèi)存映射內(nèi)核同步方法及用匯編啟動內(nèi)核
第六天 面向?qū)ο缶幊?(6小時): 詳解線程池:自定義線程池,JDK自帶線程池,F(xiàn)orkJoin, 詳解線程池:自定義線程池,JDK自帶線程池,F(xiàn)orkJoin,單機(jī)壓測工具JMH,單機(jī)最快MQ - Disruptor原理解析
第七天 算法(6小時): 單機(jī)高并發(fā)應(yīng)該掌握的線程基礎(chǔ):線程狀態(tài),異常與鎖等, 解析自旋鎖CAS操作與volatile ,JUC包下AtomicXXX類與新的同步機(jī)制:Latch Semaphore等,LockSupport,高頻面試題,AQS源碼,以及源碼閱讀方法論 ,強(qiáng)軟弱虛四種引用以及ThreadLocal的原理與源碼線程池可用的各種高并發(fā)容器詳解:CopyOnWriteList,BlockingQueue等
第二周:開始軟件開發(fā)(構(gòu)建項)
軟件開發(fā)需要在會編程語言的基礎(chǔ)之上學(xué)習(xí)更多邊緣知識
第一天 開發(fā)工具下載與安裝(8小時): 軟件開發(fā)工具是用于輔助軟件生命周期過程的基于計算機(jī)的工具。通常可以設(shè)計并實現(xiàn)工具來支持特定的軟件工程方法,減少手工方式管理的負(fù)擔(dān)。下載idea和eclipse等
第二天 項目選型與制定開發(fā)計劃(6小時): 在軟件項目管理過程中一個關(guān)鍵的活動是制定項目計劃,它是軟件開發(fā)工作的第一步。 項目計劃的目標(biāo)是為項目負(fù)責(zé)人提供一個框架,使之能合理地估算軟件項目開發(fā)所需的資源 、經(jīng)費(fèi)和開發(fā)進(jìn)度,并控制軟件項目開發(fā)過程按此計劃進(jìn)行。 在做計劃時,必須就需要的人力、項目持續(xù)時間及成本作出估算。這種估算大多是參考 以前的花費(fèi)作出的。軟件項目計劃包括二個任務(wù):研究和估算。即通過研究確定該軟件 項目的主要功能、性能和系統(tǒng)界面。
第三天 編寫代碼試運(yùn)行(5小時): 為了使計算機(jī)能夠理解人的意圖,人類就必須將需解決的問題的思路、方法和手段通過計算機(jī)能夠理解的形式告訴計算機(jī),使得計算機(jī)能夠根據(jù)人的指令一步一步去工作,完成某種特定的任務(wù)。這種人和計算體系之間交流的過程就是編程。
第四天 解決bug迭代項目(6小時): 在工作中,由最初的不夠細(xì)致,經(jīng)過反思和總結(jié),能夠做到更加細(xì)致。經(jīng)過思考明白了工作時間是自己的,因而提高工作效率可以為自己節(jié)省很多的時間。態(tài)度決定一切,好的態(tài)度有助于工作更好地完成,團(tuán)結(jié)協(xié)作可以起到事半功倍的效果。經(jīng)過向大家的學(xué)習(xí),在工作完成上更加規(guī)范,好的規(guī)范除了能讓工作完成得更好以外,也能夠讓自己在學(xué)習(xí)上更有方向性,能夠更側(cè)重地學(xué)習(xí)到更多。開發(fā)任務(wù)完成后,以及在遇到問題后學(xué)會了總結(jié),這不僅起到學(xué)習(xí)的作用,也能夠避免同樣的問題以后再犯,便于查找。
第五天 引用新技術(shù)完成更高級功能(6小時): 百度云,嗶哩嗶哩,優(yōu)酷開放平臺,提供視頻播放地址,淘寶客,京東聯(lián)盟,多多客,提供代金券領(lǐng)取,支付寶,微信實現(xiàn) 認(rèn)證,支付,退款等,淘寶開放平臺,京東智能,百度智能,小米開放平臺,提供服務(wù)端接口
第六天 部署一臺小型機(jī)線上運(yùn)行 (6小時): 部署的工具也有很多,在我本次的作業(yè)中使用的是jenkins,通過在本地啟動一個虛擬機(jī)然后運(yùn)行jenkins,將其作為目標(biāo)環(huán)境使用jenkins的pipeline進(jìn)行部署
第七天 總結(jié)軟件開發(fā)遇到問題與下一步計劃(6小時):就本次項目開發(fā)過程中,我發(fā)現(xiàn)如果要開發(fā)項目就一定要有合理規(guī)范的開發(fā)規(guī)范和開發(fā)流程。我認(rèn)為不論是個人還是團(tuán)隊合作都應(yīng)該有開發(fā)規(guī)范和開發(fā)流程,也一定要嚴(yán)格地遵守它,否則在開發(fā)過程中會產(chǎn)生許多的問題。
第三周:讓自己成為一名程序員
想要成為一個合格的程序員,往往需要滿足以下幾點(diǎn)要求:
第一天 思想上跟隨程序員的日產(chǎn)工作(6個小時)對于很多程序員來說,寫出來的代碼可能這里因為不小心漏了什么,那里因為不小心沒有測試出一個Bug,這里少個符號,那里多個空格等等,因為馬虎而出現(xiàn)的問題不在少數(shù)。所以,細(xì)心,能夠很有效地減少開發(fā)周期,為整個項目的推進(jìn)起到良性的作用。
第二天 程序員需要具備的硬性指標(biāo)(8小時)對于一個程序員來說,你的思維邏輯有些地方其實需要異于常人的。最經(jīng)典的笑話就是:女朋友讓程序員買包子,如果遇到賣西瓜的,就買一個。結(jié)果就是,程序員買了一個包子回家。為什么?因為他遇到了賣西瓜的。這個雖然是一個笑話,但是在代碼層面,業(yè)務(wù)流程圖上,確實可能需要這樣來理解的。所以,一個程序員首先需要培養(yǎng)屬于程序員自身的思維邏輯,不然,你對于設(shè)計文檔的理解就可能有問題。
第三天 程序員安身立命的根本技能(8小時)
你需要熟練的運(yùn)用一種或多種語言,并且能夠用它寫出所需要的內(nèi)容。
A和B聊天,
A問B:“你都會哪些語言?”
B說:“我會中文、英文、日文。
那B是普通人;
B說:“我會Java,PHP,C。”
那B才是程序員。
你一定會說我會說:我會C,C++,C,JAVA,PHP,Python,,,,和中文,英文,韓文,日文,俄文,法文,普通話,上海話,廣東話。等等
第四天 文檔能力 (8小時)不會寫文檔的程序員不是一個好程序員。雖然一個程序員寫得最多的是代碼,且?guī)缀鹾苌儆谐绦騿T是心甘情愿地寫文檔,但是一個程序員必須具備一定的文檔能力,
第五天 編碼習(xí)慣 (8小時)什么是編碼習(xí)慣?簡單點(diǎn)說就是,注釋,命名規(guī)范,編碼規(guī)范為什么我們必須寫注釋?因為一個月以后,你可能看不懂你的代碼了。為什么要遵守命名規(guī)范?因為一個月以后,你可能看不懂你的代碼了。為什么要遵守編碼規(guī)范?因為一個月以后,你可能看不懂你的代碼了。你都看不懂你的代碼了,其他人還能看懂?更不可能了。所以,一定要習(xí)慣寫注釋,按照命名規(guī)范和編碼規(guī)范來嚴(yán)格完成。
第六天 協(xié)作溝通能力 (8小時)研發(fā)并不是一個人的戰(zhàn)斗,而是一群人的戰(zhàn)爭。一定要分工配合,不要只是顧自己。不然團(tuán)隊里的其他人被干掉了,你也活不長。
第七天 學(xué)習(xí)能力 (8小時)這個可以說是決定程序員未來的能力,我見過很多30多歲的程序員,除了CRUD,其他的幾乎什么都不懂,他難道10年時間什么都沒有學(xué)嗎?不,他學(xué)了,只是他學(xué)習(xí)的只是業(yè)務(wù)方面的知識,對于技術(shù)方面的知識,僅僅學(xué)習(xí)他需要的。
第四周:認(rèn)真考慮工作(實習(xí))問題
已經(jīng)學(xué)習(xí)一段時間Java的你如何制定明確的職業(yè)發(fā)展規(guī)劃?
第一天 學(xué)習(xí)簡歷制作和面試技巧(6小時)簡歷是求職的第一關(guān),如果簡歷做得都不好,那么第一批就會被淘汰。在春招實習(xí)和秋招階段,會有大量的簡歷進(jìn)入系統(tǒng),HR最開始篩選的標(biāo)準(zhǔn)一般是簡歷的格式是否合理,個人信息是否完善。在給圖森和字節(jié)跳動做校園大使的1年多時間里,我收到了近5000份簡歷,最后成功獲得面試機(jī)會的不足10%,90%的人倒在了簡歷關(guān)
第二天 求助一些有豐富經(jīng)驗的老師或者同學(xué) (8小時)其實很多程序員走到這個階段已經(jīng)在做軟件設(shè)計師工作了。這是絕大多數(shù)程序員發(fā)展的必經(jīng)之路。因為,程序員在編程序的時候,一方面會實現(xiàn)設(shè)計的功能,另一方 面 也在對設(shè)計有一個理解、認(rèn)識、熟知的過程。進(jìn)而慢慢地從學(xué)習(xí)別人設(shè)計,轉(zhuǎn)向到自己參與或獨(dú)立設(shè)計。如果這個程序員真的非常非常喜歡程序員這個職業(yè),
第三天 自我介紹并準(zhǔn)備筆試(8小時)也有一些程序員工作機(jī)遇比較好,不但負(fù)責(zé)了項目的設(shè)計工作,而且負(fù)責(zé)了項目管理工作。對項目經(jīng)理這個工作有了一定的嘗試。因此,這類程序員可以審視一下自己,是否合適這項工作。如果自己對這種工作比較滿意,而且具備項目經(jīng)理的要求,則可以向項目經(jīng)理這個方向發(fā)展。項目經(jīng)理承擔(dān)著項目管理的職責(zé),對項目負(fù)責(zé) 要責(zé)任。它和程序員的作用也不相同,
第四天 準(zhǔn)備好要面試的崗位 (8小時)很多程序員希望自己能成為公司中的主管、經(jīng)理、老總、老板,這樣無論是收入和在公司的地位都相對比較高一些。另外,一方面程序員可能厭倦了年復(fù)一年的編程工作,對工作產(chǎn)生了抵觸情緒,希望能擺脫這種步步緊逼的工作狀態(tài)。走向管理者其實要求程序員要比一般人做更多的準(zhǔn)備,
第五天 開始尋找需要的崗位 (8小時)我一直說,程序員最大的缺點(diǎn)之一,就是眼光只盯在技術(shù)上。程序員在入門階段和成長階段,這種情況還是屬于正常的。但是,到了成熟階段這種缺點(diǎn)將嚴(yán)重影響了 程 序員的發(fā)展。程序員在工作中不免會接觸到用戶,不免會了解到用戶的需求。從而了解到軟件實際發(fā)揮的作用,進(jìn)而了解了自身的工作價值所在。有的程序員則固步 自封,不愿意和外界打交道,
第六天 調(diào)整心態(tài)準(zhǔn)備好面試 (8小時)當(dāng)然也有一些程序員惰性比較大,滿足于現(xiàn)狀,享受著眼前的勝利果實,也無可非議。對待這些程序員,我們不要強(qiáng)求他們改變自己的想法,我建議是原地發(fā)展,把本職工作做得更好,把自己的技術(shù)水平往上再提高一步。在這個過程中他們的能力和自信心都會得到提高,他們的想法不會一直一成不變的。磨刀不誤砍柴功,刀快了自然會去砍柴的。
第七天 總結(jié)此次學(xué)習(xí)計劃結(jié)果(8小時)
不管做哪一行,都該盡早做好職業(yè)規(guī)劃,人都是需要有一個目標(biāo)去激勵自己,Java程序員更是如此。朝著一個目標(biāo)逐步提升自身實力總會比原地打轉(zhuǎn)好,相信聰明的你該知道怎么做。
高龍
版權(quán)所有 未經(jīng)許可不得轉(zhuǎn)載
增值電信業(yè)務(wù)經(jīng)營許可證備案號:遼ICP備14006349號
網(wǎng)站介紹 商務(wù)合作 免責(zé)聲明 - html - txt - xml