就業感言:回顧這4個月以來的培訓經歷
學員姓名:胡滄鈞 | ||
所在班級:深圳1112期班 | ||
就業單位:深圳飛沃達科技有限公司 | ||
工作職位:嵌入式linux開發工程師 |
不知不覺,四個多月的培訓已經接近尾聲了,四個月的時間不長,但也不算短,正好是一個學期的時間,在華清遠見的四個月學習,總的來說還是感覺比較充實的,課程安排系統化而且循序漸進,對于一個沒怎么接觸過嵌入式的人來說,不僅能夠快速入門掌握一些基本驅動程序編寫與移植,更重要的能夠教會我們一種學習嵌入式的方法與思路。下面就來說一下我在這四個多月學習過程中的一些收獲以及心得。
由于本人畢業已有3年之久,一些編程方面的基礎知識由于較長時間沒有在工作中使用,老實說對于自己能夠學的如何,起初心里是沒有底的。還好華清遠見這邊有一個預科班可以給我們一個過渡的學習時間,主要是復習一些C語言的基礎知識。我覺得這一階段的復習對我來說是很有必要的,也確實起到了一些作用。這一階段不僅是對C語言的知識點進行了一番梳理,而且是有針對性的——針對嵌入式的編程特點。對我來說也找回一點編程的感覺了,使得我對之后的學習也更加有信心。
在進入正式的培訓課程之后,明顯感覺上學習的節奏一下子加快了,課程的信息量也多了很多。初的linux基礎相對比較輕松,我們熟悉了一下整個課程體系的軟硬件環境;但上完之后整體上沒什么感覺,建議可以把這部分中對開發板部分的相關操作挪到之后ARM體系架構一起講。linux對我而言并不陌生,但之前的使用是很不熟練的,感覺通過本次培訓,對于linux下的C編程很熟悉了。接下來的C語言課程總體來說和之前的預科班相比,更加側重于編程思想的引導,預科班是更偏向于語法與細節。如果沒上過預科或者C基礎不好的話,上這部分課程會感覺吃力。
接下來的數據結構則是純粹的編程方法與思想層面的東東了,學習這部分知識需要站在一個更高的層次來看待編程,程序在這里作為某種工具的特性很明顯,代碼本身就是未完成某個特定功能的工具,而且一個不大的程序本身可以被分為多個邏輯塊區,程序的邏輯結構被各個功能塊突顯出來,在這里語法等細節被弱化。但要想做到能夠將代碼信手拈來則不是那么容易的,除了扎實的語法基礎之外,還需要清晰的算法思路,而后者是需要大量的編程練習與經驗的。老實說這一部分學的有些吃力,對于重要的數據結構也只能說是基本掌握,談不上靈活運用。但也還算是有些收獲,在之后分析代碼的時候會有個比較清晰的思路,知道去抓哪些重要的數據結構與程序的主要流程。雖然速度會有點慢,但我相信不斷練習應該能有所提高。
網絡編程這一部分知識對我而言完全是新知識,我覺得這一部分如果能夠快速準確的理解好相關的重要概念,學習效率將會提高不少,雖然概念老師也會進行解釋,但如何理解必須要自己通過練習代碼才能獲得,這一過程沒有捷徑可走的。進程線程本身倒不是太難,但是對于其運用過程中擴展出來的相關知識點還是要花不少時間去掌握的。尤其當前一部分數據結構的知識攪和進來之后,頓時覺得程序好復雜,但只要把程序仔細剖析下來也不難理解,老實說我這一部分的學得不是太好,還有待加強,對于代碼分析應該有不少幫助。林世霖老師講課思路清晰,能夠快速抓住知識點的核心,聽課會比較享受,個人的講課風格比較明顯——主要是以自己理解程序的思路進行展開,對于能將這種思路理解的同學可能會學的比較好,反之,應該會學的比較無力;有時候會有這種感覺——上課能夠聽懂,等到自己做的時候卻無從下手,主要還是對于新知識練習太少吧。
接下來的課程就是與硬件的聯系較為密切了,ARM體系結構幫助我們熟悉匯編語言的特點與ARM的硬件結構,主要是為之后的驅動課程打基礎。對于字符設備驅動的學習還算可以,通過編寫一些比較簡單驅動裸奔代碼,使我對驅動的核心架構有所了解,進而擴展,是一個很好的循序漸進的學習過程,只是感覺時間有點少,尤其是自己練習的時間感覺會不夠。張桂平老師講課方式比較“簡單粗暴”,容易理解,特別是具體操作性的東西說的比較多,每天的練習能夠將程序的功能實現,也能進一步加深對驅動程序的理解。高級驅動部分學的有點懵,而且這一部分與內核代碼關系密切,內核代碼看得我頭大。易老大的講課風格比較悠閑,他認為比較簡單的驅動移植在我們看來是很難啃滴,不過關鍵的函數與結構體以及驅動代碼的實現流程易老師都有詳細講解,在做過第三階段的課程項目之后再來回顧高級驅動的課程,會感覺清晰很多。
后來說說項目的體會吧,做完整個課程項目收獲比我預期是要大的,整個做項目的過程算是對之前所學習知識的一次梳理和總結,可以查漏補缺。可以提高對所學知識感性上的認識,從一個系統化的角度去看待各個知識點的位置以及所起的作用。這種宏觀上的認識我覺得是很有必要的。我做的是小系統移植這一部分。在移植過程中所遇到的問題是無法預計的,而解決問題的過程則會跟正我之前的某些理解誤區。而之后的移植分析則是對自學能力的一次提升,而且也對整個uboot和內核的啟動過程有了更加清晰和全面的理解,通過與其他組員的交流,使得我對整個項目框架的認識更加清晰。
通過這次培訓,覺得自己的學習能力有所加強。總的來說,整個培訓過程中感覺收獲大的還是后的項目階段,如果沒有這一階段的學以致用,可能之前所認為學到的知識很多都只是浮于表面的,時間一長,就會忘掉,無法轉化為自己知識的一部分。培訓課程總體的信息量是很大的,在四個月中是不可能完全消化吸收的,而只能有選擇的去強化其中某個方面用以提升自己的核心競爭力。程序員是一條漫長的道路,相信這四個月培訓的收獲可以使我在這條路上走得更加順暢。