寫在博客前面
博客初衷,一直覺得寫博客是很高大上的東西,因為覺得個人能力有限,寫不出什麽東西,遲遲未動筆。平時學習也記了不少筆記,但都是保存到電腦,前段時間換電腦系統備份資料時操作失誤,導致之前的學習筆記丟失了一部分。因為這次的慘痛教訓,萌發了寫博客的念頭,不管怎麽樣能多有一分備份也更安全些。
博客的主要框架:前面主要是搬運整理之前所學的一些Java基礎包括JavaSE、常用API等基礎內容,數據庫、JavaWeb、JavaEE這些內容可能也會涉及一些,更新時間前面可能快些,因為平時工作可能忙些,盡量利用周末把之前的內容搬運過來。後面的內容,自己學了什麽就更新什麽。
重點備註:因為筆記有一部分是大二大三記的,很多地方都是通過
下面的內容是關於個人的一些口水話,可不用看。
個人大概介紹,本人目前從事的Java初級開發,大學不是計算機本專業,勉強算相關專業。學習Java初衷時在大二時,看到一位學長開發了一個安卓app,頓時絕得高大上,自己就想學。在網上查閱了資料後,安卓app的開發主流時用Java,從此就走上了Java學習的道路。當時專業基礎課也比較多,在大二寒假開始了自己的Java學習。因為沒有太多基礎,在網上下了某培訓公司的視頻,一點一點的看,再把知識點記在本子上,這樣學習效率雖然低但是也還算能理解大概的內容。後面開學就斷斷續續的學習,印象深刻的是當時卡在了面向對象那塊,一直沒有理解面向對象的思想。好在當時專業課正好學到了C++,同樣也是面向對象,磕磕碰碰面向對象的思想也算基本理解了。
大三因為學校要求,參加了專業相關比賽,因為比賽項目的戰線比較長差不多從培訓到比賽要一年的時間,之前也沒有參加過相關項目所以就先暫緩了Java的學習,全身心投入到比賽項目上。比賽項目一般是兩個人,一個負責硬件,一個負責軟件,軟件的編程語言主要是C語言,用到的編程知識並不是很多,關鍵在於將實際問題用軟件解決,這個過程也是我最享受的,每當自己的想法通過代碼實現後,那種感覺真的比遊戲通關的快感還要強烈。但是整個項目最磨人的不是軟件開發,而是系統調試,因為是要在硬件系統上運行,為了達到整體系統的穩定,通常要將參數調到某個數值,這個數值沒有確切的值,甚至於沒有可參考的規律,只有一遍遍的改參數看看硬件會有什麽反應,不同的硬件,同一個參數對他的響應也往往不一樣。這就導致了很多時候我通宵花了幾天的時間調出來的參數,因為硬件的一個小小的器件改動或者硬件機械結構的稍微變動,導致參數都不能用。又得重新調試,看看影響這個地方的參數是哪一個甚至是多個參數。通過一遍遍的改動,直到你真正的熟悉到某個參數改動了硬件會有什麽變化,才算正真的到達參加比賽的水平。雖然後面因為各種原因比賽結果並不是很理想,和實驗室其他人相比甚至可以說是墊底的,但是在這個過程中正的學到了很多東西,最重要的是找的了自己的發展路線。我很享受將自己的各種想法通過代碼實現的過程,但是我並不想將生命浪費在一遍遍的枯燥無味的參數調試過程中,這也是我最終選擇Java開發的一個重要原因。
另一個方面就是畢業設計了;畢業設計是實驗室老師的一個項目,當時接到題目時特別當心完成不了,因為在網上查閱資料後這個題目一般都是研究生項目,甚至於有些是研究生的畢業設計。不過好在要求沒有那麽嚴格,並不一定要做到研究生的那種程度,只要能夠搭出大概的框架,實現主要功能就行,而且也是軟硬件兩個人。難點在於要求使用的開發平臺最好使用實驗室常用的那種平臺,一種基於Linux系統的便攜式開發平臺,用這個的好處是成本比用其他平臺的成本低,而且做出來的產品便於攜帶,可擴展性高。但是難點也在這個地方,查閱了很多資料後根本沒人在Linux系統下做過這個東西,而且各種參考文獻都沒有可參考的代碼,都是只提供了一個大概的思路,而且都是在Windows系統下開發的,沒有辦法只能硬著頭皮做了。
開發語言選擇了 Python,因為Python的庫比較多而且這個項目的核心是數據的分析處理,還好之前有C語言和Java的基礎,Python用到的知識點也不是很深,第一步是搭建系統的UI因為之前專業課學過MFC,雖然不是很美觀但是基本要素齊全,最頭疼的是數據的處理當時不知道該怎麽處理,還好實驗室有另外一個大佬在搞的項目正好用到數據處理,在他建議下用了機器學習中一個很簡單數據處理算法。然後就查找各種資料學習算法,測試過後這個算法能夠基本滿足系統的功能;其它功能模塊也不細說,從一開始的小框架慢慢的添磚加瓦完善系統,這個過程中遇到各種各樣的問題,但也是痛並快樂著,一個坑一個坑的踩,然後一個個坑的填。其實在這個過程中沒有太大的感覺,完成後才發現,從數據讀取,數據分析,數據可視化,系統UI,數據庫管理都是自己慢慢搭建出來,雖然現在看起來那個代碼簡直是不忍直視的粗糙,UI設計更是功能性比可看性高些,但是核心的功能實現了,框架搭好了,看著這些功能成就感還是挺強的。印象深刻的是答辯完成後,一位系裏很嚴厲的教授問我的“你這個東西申請專利了嗎?”,這句話感覺算是對自己大學四年的一個交待,也算是對專業的一個交待了。
說了這麽多其實就一句話,我享受用代碼實現自己想法的這個過程,但是隨著學習的深入越來越發現自己專業知識的薄弱,過去的開發往往跟著框架走,實現局部功能就行了,可是實現功能的方法很多,但是得判斷哪一種最適合應用場景,哪一種成本最低,哪一種消耗內存最低,哪一種更利於維護....這種判斷能力也是我現在所欠缺的,也是作為一個Java初級開發正在學習的地方。共勉。
寫在博客前面