[2019BUAA軟件工程]第0次我的做業

我 & 計算機

寫在前面

  撰寫本博客時,筆者正就讀北航計算機系大三下的軟件工程課程。藉由此次博客做業的機會,筆者從高考時與計算機專業結緣、大學對計算機的學習以及對將來的計劃三方面進行了些許思考。
  如下附上相關的信息:html

Tips Link
課程連接 2019春季計算機學院軟件工程(羅傑)(北京航空航天大學)
博客做業鏈接 [2019BUAA軟工助教]第0次我的做業
實驗做業連接 [2019BUAA軟工助教]第0次代碼做業
實驗結果連接 [2019BUAA軟工]第0次代碼做業
本身的課程目標 系統學習軟件開發理論和流程,經過實踐積累軟件開發經驗
本博客的收穫 靜下心來總結了一下本身,對之後的規劃更清晰了

結緣計算機

  • 你爲何選擇計算機專業?你認爲你的條件如何?和這些博主比呢?

  高考成績剛剛公佈的時候,我對本身取得的成績是十分滿意的(遠遠高於我平時的成績)。有了比較好的成績,對於學校和專業就有了更多的選擇。當時結合本身的興趣和成績,再在網上查找了許多的資料,我對於計算機系、數學系等專業有了必定的想法。最初接觸到計算機專業正是在查找各個專業的信息的時候,在此以前因爲忙於高中課內的學習,我對於計算機專業沒有任何的瞭解,在計算機的使用上仍停留在用用PPT、打打遊戲的層面。在對計算機專業的內涵以及前景進行了必定的搜索研究以後,我很快地對於真正的計算機專業產生了濃厚的興趣,認爲從此計算機專業擁有巨大的發展前景,但願在大學更加系統地學習計算機知識。所以,在最後提交的志願中,我清一色地選擇了各個計算機專業較強的學校,並依靠着高考優異的成績來到了北航。
  最初對於清一色地選擇計算機專業,我本身是有着很大的顧慮的。最主要的就是我當時幾乎沒有在計算機方面的知識鋪墊,再加上從周圍各方渠道瞭解到的計算機專業的學習壓力至關大等消息。我在最後作出決定時是下了至關大的覺悟的。(上大學後才發現身邊有許多人也是從零開始)
在這些博主中有在上大學前就解除了計算機專業的,也有像我同樣從進入大學纔開始學習的。我自身的條件比不上許多博主,但北航的學習條件是因爲不少博主曾經的條件的。前端

  • 計算機是你喜歡的領域嗎?是你擅長的領域嗎?

  最初選擇的計算機專業時我是出於本身對計算機領域的好奇之心。也許當時多是一時的衝動讓我投身於這個顯然十分艱苦的道路。但在通過了兩年的學習,在此期間我經歷了計算機組成原理、操做系統等硬核的計算機基礎課的洗禮後,我仍以爲當時我作出的選擇是正確的。我不能說是擅長計算機專業,由於我接觸它才僅僅兩年半,對於如何高效地學習該領域各方面地知識我纔剛剛有些頭緒。在最初的一年中,因爲我對實踐在計算機專業中的重要性缺少重視,致使我在大二各個實驗開展時遇到了種種困難。今後以後我才逐漸開始了在在編寫代碼方面的增強,在認真完成課程任務的同時對於本身提出更高的要求(雖然通常是達不到的),積極地向身邊擅長的同窗請教經驗。儘管我真正的編程起步較晚,但通過了一年多的亡羊補牢,我也逐漸走上了正軌。通過了並不平靜的兩年半,在克服了許多學習上的困難後,我也算是有了很多的收穫。克服一次次困難後所帶來的知足感讓我從最初的好奇逐漸變成了喜好。git

  • 你熱愛這一專業嗎?你對計算機的熱愛是怎樣的?僅僅是口頭的嗎?

  熱愛的定義有不少,若是按照博客R中的例子做爲標準的話,我對計算機專業的熱愛程度可能還相差較遠。現在,我在計算機專業的學習仍處於開荒期,本身在計算機專業上的知識積澱還不足,以本身的能力勉強能完成課內的實驗。至於我對計算機的熱愛更多的是體如今每次都儘可能給本身提出更高的要求,在計算機的學習上挑戰本身,在課內的要求以外讓本身學習更多的相關知識與技術。程序員


學習計算機

  • 你對你的大學生活有什麼想要吐槽的地方嗎?你理想的大學教育應該是什麼樣子的?跟學校給你的有什麼區別?比較你在中國大學的經歷,你的老師和學校能作到和國外那樣嗎?若是不能,請分析一下爲何。

  大學生活用一個字來總結就是——忙。感受以前的大學生活幾乎就是在忙碌中度過的。大一忙於各個基礎課,忙於適應大學生活;大二忙於各個實驗以及其餘的事務。事情每每是接踵而至,甚至在你還沒完成前一個任務時,後一個任務就接踵而來。這使得我常在一些事情上出現有始無終的狀況。我理想的學習狀態應當是可以單獨完整地完成一件任務後(包括反思和總結)在開始投入到下一個任務當中去,固然這在現實中也是很難實現的。可以「多線程」地完成工做學習上的各類事務是必須擁有的能力。
  如今我所處的大學環境已經基本和我理想中的大學教育符合:北航爲我提供了多樣的計算機專業課程以及學習資源。惟一讓人不滿的可能就是其中的一些選課要求了。我不否定全方面發展是大學生須要達到的,但就我的而言在一些跨領域的學習要求有些過於贅餘,在此就不展開。
我對於國外計算機專業的教學方式瞭解並很少,但經過本身一直以來的一些認識並閱讀了博客以後,我以爲若要求咱們的老師和學校作到和國外的同樣是存在必定的困難的。最主要的緣由就是教育資源的問題。就我這一屆來講,若是要讓全系三百號人都接受國外那樣的教育顯然是不現實的。可是咱們學校的計算機課程的開展方式能夠將國外課程的核心與實際狀況相結合,造成本身的教學方式。國外計算機專業的教育方式更加註重的是實踐和應用能力,而個人學校已經有許多至關注重學生實踐能力的實驗型課程,例如計算機組成原理實驗、操做系統實驗、編譯系統原理實驗等。面試

  • 迄今爲止,你寫了多少代碼,描述你作的最複雜的軟件項目/做業。

  至今爲止,我大約寫了近2萬行代碼,其中主要是計算機組成實驗、操做系統實驗、面向對象課程設計系列程序、編譯原理實驗、數據結構課程相關代碼以及其餘工程的代碼,涵蓋了C、Java、JS、Python、Verilog等語言。其中最複雜的項目應當是編譯原理實驗中的「類C語言編譯器」。因爲我是選擇使用C語言編寫的編譯器,相交使用C++編寫,我須要使用更多的代碼來維護編譯器中的各類數據結構以及實現相應的邏輯(而C++則可以使用不少類庫以及面向對象等來簡化)。此外,不一樣於計算機組成實驗中編寫CPU時有着詳細的指導以及算法說明,在編譯原理實驗中須要基於課本內基礎的理論從程序頂層的設計,到各個模塊的劃分,再到底層各功能的實現都要求本身有着比較明確的思路,以及最後在優化算法實現的部分也對以前完成的原始編譯器的可延展性提出了較大的挑戰。
  除編譯原理實驗以外,在同一時期完成安卓應用開發項目一樣令我印象深入(即便從複雜度角度上來看不如編譯原理實驗)。當時我計劃開發的是安卓平臺上的一個遊戲助手(項目鏈接)。在此期間,我基本算是自學了安卓開發的基本原理,並自主設計並完成了應用前端交互界面以及先後端交互邏輯。正是在這時候,我接觸到了行業中有如MVC框架、MVP框架等課內不曾見過的新概念,並嘗試將其實踐於應用之中。這讓我由衷地感到自身知識量的不足,並驅使我開始瞭解更多的前沿的知識。算法

  • 科班出身和北大青鳥有什麼區別?

  科班出身的學生所掌握的更多的應該是學習方法、研究方法。職業學校以及培訓班出身的學生掌握的更多的應是職業技能。打個比方,科班出身的學生學到的應當是爲解決問題不斷尋找資源、學習各類技能的能力,注重解決問題的能力以及對於深層思想的掌握;職業學校出身的學生所會的是更好更熟練的某種技術來解決問題,注重對某種技術掌握的熟練度以及應用能力。編程

  • 速成的培訓班和打基礎的大學教育還有mooc之間有區別嗎?

  這三者創建的目的以及面向的對象有着巨大區別。速成的培訓班成立的目的更多在於爲其學員解決眼前的技術問題,其面向的對象有臨時學習技能的人,有爲學習完成某個項目所需技術的人等等。
  有關於博客E中所講:後端

或許,我我的的經歷也不足以表明通常性。而我依然仍是痛恨培訓學校。 由於他們會教學生簡歷造假。 會教學生投機取巧。 會教學生「如何開發項目」。 然而,那些項目經驗,幾乎一文不值。 甚至不如一些學生在寢室裏寫出來的沒有界面的小DEMO。
我以爲一個正常的程序員,是不該該去參加培訓的。更況且,培訓真的沒有什麼用。 多半都是想走捷徑,坐享其成。 而若要好好走好職業道路。 在走出大學校門的那一刻,應該學會自我成長,自我完善。數組

  我是表示部分贊同的。大學教育更多在於思想、方法等更爲基礎的內容,每每沒法在短時間帶來效益,但從長遠的角度來看,這些是發展的基石。於此同時,我也不否定速成的培訓班的重要性。就計算機專業而言,課內的知識量是徹底不夠的,當在完成一些項目(甚至是課內的實驗)的時候,須要咱們在短期內尋找、學習並聯繫有用的技術來實現相應的功能。遠水解不了近渴,此時,參加培訓班就成爲了較好的選擇。何況計算機專業的知識之普遍是難以所有掌握的(最多達到涉獵的底部)。時常會出現知識量不夠須要對相應的技能進行「搶救式」的補充的狀況,這也是網絡上一些培訓班存在的意義。可是培訓班每每採起的是填充式的教學,喪失了大學教育中啓發式的元素。若僅專一於眼前技能的「搶救」,而忽略基礎思想與方法的掌握,不免會本末倒置,弊端也迅速地暴露。就如同博客F中博主的經歷同樣:網絡

我跟着也回宿舍學習幾回,慢慢的天氣變冷了,宿舍特別冷,學校也特別冷,只看視頻,不怎麼作練習,發現到後面前面的東西又忘記了,而後就回頭學,效率低下來,這個時候開始學winform,學習作視頻上的練習,winfrom雖然簡單,可是要作個和視頻上同樣的練習項目仍是挺花費時間的,可能一節課,把練習作完須要兩三天才行,當時沒有這樣學習過,其實我一直都沒有培養出好的學習方法,之前學習都是上課45分鐘,做業幾十分鐘搞定了,而後下一課。這個時候學一課須要作的練習時間很是長,而後本身就 把握很差,進進退退,企圖把平臺的知識學完,經常倒回去看多態,抽象類,接口,索引器,委託,二維數組,這些難點。而後幾天一週下來,不知道本身搞到哪了,彷佛這一週什麼都沒學會,如今看來是人在學習時經常高估本身的能力,編程不是高中背書,不是作數學化學題,它是技能,是須要大量練習和長時間實驗感悟的。

  我也曾在培訓學習過一些課程,主要是出於現實須要的因素要快速運用到一些項目中。短期的學習讓我可以比較熟練地使用這些技能,但本身對於自身到底學了什麼卻沒有什麼實感。完成項目後隨着時間推移,又開始忙於其餘事情,這些知識很快就淡忘了。

  至於mooc,以中國大學mooc和國外的coursera爲表明,其中大多爲大學將課程移至線上。在保證了大學教育的精髓的同時,又可以知足學習時間靈活的需求,可讓咱們接受更多不一樣大學的不一樣課程,使學習的內容更多樣。

  • 學線性代數和機率論的時候,你是否有過這樣的疑問「咱們爲何要學這麼多數學,這和咱們的計算機有關係嗎」,你如今是否還有這樣的疑問?對這個問題,你有本身的解答了嗎?那麼其餘學科呢?

  在學習這些基礎課程之初,我是存在這樣的疑惑的。但通過一段時間的學習,這些疑惑也逐漸消除了。計算機技術歸結到最底層每每與算法與數學密切相關。好比計算機圖形學的基礎理論與線性代數有關,大數據分析的基礎與機率論和數理統計有關等等。


將來規劃

  • 對於你將來在IT行業的發展,你有什麼樣的夢想或者將來想從事什麼樣的工做?你準備怎樣來規劃你技術道路,職業道路和社會道路?

  就我我的而言,按照博客I中的技術棧的分類標準,我但願向系統架構的方向發展。至於前端仍是後端,我尚未明確的想法。目前來看我對於這些部分都有學習也都有較高的興趣。我將來的規劃應當和不少的同窗類似,大體以下:

  • 2019年,在學習課內知識之餘,全力進行考研的準備,計劃報考北航的計算機專業。在課餘的時候完善計算機的基礎技能和知識的學習,嘗試參加一些企業的面試,進入企業進行實習。

  • 長遠的看,不管是否順利考入研究生,在近十年的計劃即是不斷的強化自身的計算機專業的實踐能力,儘可能向現在前沿的理論和技術學習。在這個階段中,經過不斷學習,逐漸在龐大計算機領域中尋找本身真正屬於的部分。

  • 大家立刻就要面臨實習了,你打算在企業內實習仍是在實驗室實習?

  我更加但願前往企業中實習,主要是由於經過在企業中實習可以切身體驗當前IT行業的現實環境。但這可能會須要更多的時間和精力。

  • 實習經驗究竟有多重要?是否須要立刻開始積累實習經驗?

  實習經驗固然重要。在平時學習了知識歸結到最後就是要落地於實踐。可是否須要立刻開始積累實習經驗這一問題的答案因人而異。就我我的而言,因爲大學前並無計算機專業的基礎,在大學學習期間,須要投入比較多的精力來完成課內的任務。爲保證課內學習的質量,我在此以前並無進行實習。但現現在大學學習漸入尾聲,也是到了將知識實踐落地的時候,我也計劃開始積累實習經驗。

相關文章
相關標籤/搜索