姍姍來遲的一個總結

除了善良,我不承認世界上還有其他高人一等的標誌。 ——路德維希·凡·貝多芬

天地一聲驚雷,本筆者又回來了。都說,沒能毀滅一個人的,都只會使之更強大,越大的災難越是如此。我呢現在就感覺身上有使不完的力氣,這輩子都沒這麼亢奮過,不來展示展示再順便填個坑那就太遺憾了,憋了這麼久了總得找個地方放掉用不完的力氣,遂有此文。而且另一方面,過了這麼久了,很多事情也都漸漸地隨著時間淡了,不過這對於一個總結,或者說對於一個一地雞毛結局的總結來說,大概是件好事,能讓人更冷靜,能讓人站得更高,也對人和事看得更清楚。

還有就是,這次我會寫的更加直接,前無古人後也不會有來者的那種。而至於為什麼要突然這樣,看到最後你們就知道了,我有我自己的思想、判斷和堅守,我永遠都知道自己在做什麼、該做什麼,唯獨這一事實,世上沒有任何人有資格懷疑。總之肯定不只是心血來潮,廢話不多說,開始。

完整的流水賬

序章——前世與今生

經過了一番頗有波瀾的溝通和確定後,於是這學期我接下來了北航本科敏捷軟工助教頭子的擔子。其實吧,開場心裡挺平靜的,畢竟之前那樣的風雨飄搖都見過,也曾經無限接近於眾叛親離,心想著,沒啥大不了的。恩,然後就這麼開始了。

由於筆者自己,本科就是北航電腦學院的,自己曾經也就是這裡的學生,因此整體上還不算特別陌生;不過要說多熟悉那也談不上,我自己上軟工課那會正全力在OO課大改革上輸出呢,自己當時名義上是team leader但實際上也就是一個垂簾聽政的主,具體事務接觸的也並不多。總而言之,自己之前對這門課的了解就是這樣的一個情況。而對於網上一直蠢蠢欲動的「吐槽」,我個人不想評價,畢竟那大多是些沒有靈魂的文字,評價也白評價,索性明有所不見聽有所不聞。

在一開始,對這門課我一直持觀望態度,其實原因很多。我個人覺得最為關鍵的一點在於,我自己並沒有對這門課形成足夠的思維閉環——不說別的,我對OO課內部的主要次要矛盾是有過深入的思考和分析的(上面的知乎回答裡面有我當年寫過的分析部落格鏈接),而對於軟工,其理解也就那麼些,形不成任何成體系的思考。站在上帝視角來看,在這樣的一個環境下直接接手,把握性是存疑的。當然,還有一些外部原因,此處不作過多描述,也並不重要。

總而言之事實就是,這個學期是我帶的,就這樣。

開篇——籌備與閱讀部落格

在第一次全體會議以一個令人滿意的姿態結束後,這屆班子算是正式形成了——有來自北航本科2017級的5位助教(劉取齊、韓滏婧、劉陽、劉紫涵、趙博名),有周筠老師從外面請來的三位外援助教(前福大本科生兼北航研究生胡緒佩、微軟員工吳科橋以及鄭蕊老師),資深助教劉乾學長,以及百忙之中抽出時間來為信念盡一份力的周雨飛同學,也是OO那會一個戰壕里的兄弟。今年就是這樣一個雖然算不上完美但是算得上是現有狀況下最高配置的團隊了

剛開始那會,由於很快就就有最開始的幾次部落格閱讀作業,而且用不了多久就會有結對項目和案例分析作業,於是前期的工作按照兩線進行——一線是部落格作業的籌備,另一線是今年要新上的結對項目的題目與系統的籌備。然而這第一步就出了一個在局中不易察覺,但是卻影響深遠的一個錯誤——厚此薄彼。具體來說的話,今年有計划上一套新的結對項目模式,出一套新的題目,以及更重要的是,上一套面向CI的自動評測系統來支援這些新鮮玩意。最早的籌備工作大概在開學前大半個月就在緊鑼密鼓的進行了,在當時作為在課程改革方面「技術制勝論」信奉者的筆者看來,系統和實操這部分是絕對的重中之重,沒了這個其他的都沒有大的意義,紙上談兵罷了。這樣的思維造成的一個直接後果就是——整個大半個月,精力基本都放在了結對項目這塊,或者更準確的來說,是系統開發這塊;而對於部落格作業的籌備這塊,卻沒怎麼上心,一直拖到了最後,然後負責的助教拿出了一個可以用簡陋來形容的作業文稿,才發現問題,然後開始猛干,才勉強挽回了一下第二次作業

在開篇階段大概就是這些,這裡只是一個開始。雖然如此,但是體現出來的問題,卻可以說是自己在整個學期裡面工作問題的縮影,後面都會有所提及。

初期——結對項目與案例分析

沒過多久,結對項目就開始了。這次系統算是很成功的上線了,並且全過程運行穩定,三周多的時間內沒出過問題。從這個角度來看,挺成功的,多謝組裡一次又一次幫我爭取到的時間,真的,每爭取來的一天都在那個時候彌足珍貴。那會有很多個晚上都沒時間睡覺,甚至有過頂著一口氣肝到後天的情況,自己的生理已經處於極限狀態。只是這次比起OO那次徹底沒有退路的前進,心理上還是更加有依靠的,因為有你們在同我一同奮戰

然而,結對項目依然有顯而易見的問題。首當其衝的就是出題出了問題,選了一個看上去很穩當但實際上坑很多的主題——文件系統。具體來說,這個題目如果粗略地想的話,看上去確實很簡單明確,無非就是斜杠分割出來的一個一個片段,然後將其組合、合併、各類加減法運算;然而實際情況卻並非如此,因為涉及到很多元素(例如鏈接、映射)等,而且在出題時為了避免細節上的說不清,因而標明了與ubuntu系統的一致性,因此被各位內卷家們探索出了無止境的細節,再一次在客觀上造成了邊界性的模糊。第一階段,整體還算穩定推進;第二階段,勉強也算過去了,但是對學生方面和助教方面都造成了非常大的壓力,訓練的高標準本身是一個原因,但是這次的忙碌裡面,其實有相當比例是題目本身的問題,這些壓力客觀上是並不必要的;最終結對階段在在吳際老師的建議下,平穩結束。

本次結對項目,有不少可圈可點之處,比如:

  • 系統的成功建設與上線,全新的CI化評測,在提交程式碼的同時學習持續繼承的使用
  • 在項目模式上的全新嘗試,多階段、官方包的成熟模式被運用了起來

不僅如此,在這次攻堅戰中,出題組多位助教的持續討論與輸出(當時我看到了他們的討論稿,挺震撼,也挺內疚的),數據和標稱組的連夜爆肝(尤其是吳科橋同學,一個通宵一個通宵的加班),大家真的辛苦了,很不容易也很棒;但是同樣也有問題——最大的問題出在在題目的選擇上,這一點我自己背頭鍋,剛開始那會忙著肝系統甚至連這部分都沒有做像以前OO出題時那樣的深度論證;以及組員在出題這件事上沒有做比較到位的培訓,專業程度依然不夠,走了不少的彎路。這些事情都比較值得反思,光出題與運營一次面相題目的教學活動這一件事就有很多值得說的,因此後續我應該會專門寫一篇講如何出題的稿子,以一個略知一二的過來著來說道說道出題這件事。

在另外一條戰線上,也就是部落格閱讀作業與案例分析作業部分,整體上沒有抓的那麼緊,不過還算是不溫不火的推進著,每一篇部落格作業筆者也都進行了通篇的修改與完善,將內容變得更加完善,也在儘可能提高引導性,內容以及細則等都在一定程度上的擴展。

在這期間,也看到了不少有見地的部落格,也有一些比較長,但是內容卻乏善可陳的部落格,進行了一些思考和討論。並且基於這些部落格,以及一些同部落格作者們的交流,我本人也開始了解到一些事實:

  • 部落格在現在這大部分學生眼裡依然是一個作業,因此他們對待部落格的態度和高中的時候完成一章《五三》的課後練習沒什麼不同。
  • 基於上一條,他們都會為了分數去老老實實堆字數,也會饒有風韻地拋出問題,但是這些字的營養成分如何,拋出的問題是真的在思考,還是摘取一些字眼去升華一下就掛出來當問題,是需要助教們好好判斷的

這個階段大概也就是這樣的。

中期——選題與Alpha階段

再接下來即將進入Alpha階段,也是本學期的正戲部分了。

這個在一開始出了一個大的狀況,那就是之前剛助教團隊集體肝完結對項目準備和部落格作業(前者居多),包括我自己在內的整個團隊都處在偏散漫的狀態下。可是按照開學初預定的時間線,團隊項目的選題已經越來越近,甚至已經到了選題截止時間了,卻依然這樣拖著。最後幸得周老師進行了提醒,我們才抓緊時間加班加點準備起來,勉勉強強完成了這次選題的答辯與活動組織。

這個問題上,我認為我有不可推卸的責任,我身為助教頭子卻想不起來這麼關鍵的事情,本身就不應該,究其原因,根本上還是自己在那會,沒有真正從思想上重視起後邊的工作,總有一種與邏輯格格不入的解脫感與成就感在作怪。不過另一方面,我認為這件事羅老師負有首要的責任,畢竟說到底,課程的第一責任人還是羅老師,不是我吐槽,在課程整體節奏這樣的事情上需要指望著助教頭子代替任課老師來想起來,本身就是一件離譜的事情,然後助教頭子還忘了,等著並非直接責任人的周老師來緊急提醒,更是離天下之大譜。可事實是這樣的超級離譜事就是這麼離譜的方式發生了,所以一個離譜的結局也是必然的了,各種意義上的。

說到這個階段的離譜,我也得展開說說。具體來說,因為準備的時間極短,為了不打亂預定的時間線,於是火急火燎上線了,導致學生視角下,前前後後的準備時間只有幾天,學生需要在這幾天時間內,完成緊急選題+商議,然後準備現場答辯,這必然會導致一些本該正常進行的事情變得更加倉促,以至於發育不良。原計劃今年會深度在需求上做挖掘,可是經過這麼一搞,有些組直接著急忙慌搞了一個題目出來,然後助教們看得也著急忙慌,也給後續的一些風波埋下了伏筆

在接下來就是正經的Alpha階段了,在那個時候的視角下,一切看上去都是那麼的正常。直到挺遲了,甚至已經木已成舟,才發現出了問題。這裡主要說我視角下的三點吧:

  • 在助教團隊協作部分,由於我本人對整體的工作節奏有一定的理解,所以訂製了一個模板,讓助教們按照這個模板來嚴格進行跟組記錄。但是在實際的工作中,卻發現這樣的模板並沒有想像的那樣好用,多少還是繁瑣了。以及另一方面,我總是在試圖向他們解釋為什麼要按照這樣的思路去記錄,嘗試去講解思路,但是卻沒有考慮到實際上並沒有那麼多的人真的在乎做事情的思路,因此更合適的做法是,直接給出一個簡單暴力而又明確的路線,讓他們按圖索驥即可,在我們的教育環境現狀下更是如此。而對於真正比較有自己思考的助教,也歡迎一塊討論。這樣才是一個真正比較落得了地的做事思路。
  • 學生團隊部分,一部分因為上述的原因,也有一部分是因為經驗不足所致,導致了一些關鍵的細節並沒有被關注到。直接帶來的後果就是,在評審階段,沒有一個足夠客觀且基於實際工作的評分依據可以參考,現場評分變成了展示大賽,誰更巧舌如簧更善於詭辯誰就能佔據上風。當然了,我自己也有責任,總還是對一些事情抱有幻想因此不夠決絕,導致更大的事情走向不歸路。不過論根本原因的話,還是因為平時的工作沒做足,沒有足夠的彈藥儲備,這其中不少儲備還是受了潮打不著火的,以及在評審的規則上沒有真正形成一個可依的法與之匹配,就造成了這個看臉說話的亂局。
  • 大眾評審團部分,在成員初步到位後,看上去也是欣欣向榮,大家積極地找著現有系統的問題,其中一些還是大問題(真要上線的話妥妥翻車翻上熱搜的級別)。我本人在這樣的情況下沒有做出足夠清醒的判斷,說到底還是技術至上論在作祟。所導致的結果就是,在最終的答辯環節,他們只能拋出技術問題,在其他地方毫無感覺和思考,甚至一定程度上一塊成了被表演大賽忽悠住的人,即便有限的參與,也只是在當做一場高年級學長們舉辦的技術嘉年華來參加,並不能對課程起到比較實質性的作用。

在這個階段,如果讓我給以後的人提提建議的話,我認為最為關鍵的就是三件事:

  1. 有法可依——制定足夠清楚嚴密的評審規則。制定的大綱,可以參考鄒欣老師在構建之法最開始對軟體工課程三個要點的論述,並以此展開。此外,制定的過程中也得考慮可操作性,以及這樣的記錄方式是否足以形成相對完整的證據鏈,以便作為後續的評判依據
  2. 做足工作——對平時的觀察要到位。這看起來是一句廢話,但是實際上我本人在這個階段指導跟組工作的時候也並沒有真的落到實處,即便有一個基於模板的跟組日誌在。事後我對這件事的理解是,應該基於上一條所說的「法」,然後圍繞這個來有的放矢的觀察與溝通,這樣才更能捕捉到真正有效的資訊。你可能會有一個疑問,那既然這樣的話學生會不會知道了我們的「法」?其實問題不大,只要我們的法制定的比較合理的話,實際上儘管學生知道了,我們挑不出來刺了,但是我們幫助學生學到真知識的目的也一樣達成了,沒毛病。
  3. 有法必依——在執行過程中嚴格按照之前制定的法來進行,並有條不紊地搬出之前做的調研準備內容。這裡需要強調一點——我們要評判的是學生們任務完成的品質,是任務完成的品質,不是答辯的品質,答辯充其量算是一個學生視角下的補充敘述,不可以作為核心的考評。換言之,對各組的評判理論上沒有答辯也應該可以進行,畢竟學生們做了什麼做的咋樣都是作為客觀事實擺在那裡的,不會因為答辯答得挺花哨就從一堆廢紙變成值得裱起來的名畫,而答辯環節則是一個雙向的溝通環節,對評審者而言應該僅僅算是一個修正,畢竟單向的視角有時候的觀察並不一定全面。

後期——Beta階段與收尾

首先,在正式說這部分之前,不得不提到一個繞不過去的事情,那就是Alpha階段的正式評分被拖了非常久的事情。這個事從我的視角來看是個誤會,羅老師在Alpha階段很早就公開了一個評分表,或者更準確的說是助教打分表,而且當時我問了一下往屆的相關人士,便認為這個就是最終的Alpha階段評分,便沒再太多關注,直到後來比較遲了才意識到不對。這個事情上我有欠考慮之處。

接下來說說Beta階段,整體來說在意識到了Alpha階段的問題後(在那會以上的3點,有法可依、做足工作、有法必依,其實都意識到了,唯一略微差點意思的就是「如何有的放矢地做足工作」這件事,不過也沒那麼糟糕),進行了一波的改進。鄭蕊老師因為事務繁忙暫停督促工作後,我便親自開始組織對各次組會以及gitlab上工作的點評工作,並設置了登記表格來帶動其他助教一起進行。這次還特別設置了「評審助教」這一概念,和原本的跟組助教錯開。這裡面有不少是周老師的建議和督促,實話實說,進步很大,不說別的,到了最終階段的時候,能感覺到組裡都對學生們的客觀工作狀態有了更加清楚的認識,這一點挺不錯。

不過到了最後階段,有一些奇妙的小插曲。周老師推薦了鄒欣老師對於評分的一篇部落格,並且要求按照這個來做。我個人基於Alpha階段的真實情況,以及我們現有資源所能做到的評判進行了一個邏輯充分自洽的評估,認為其中的部分內容存在一些重合,需要進行調整後融入最後的規則框架中,並且我自己已經設計出來了合理的框架,且和周圍幾位進行了討論,應該基本上有譜。但是周老師對此頗有微詞,甚至一度陷入了僵持,以及周老師一如既往冷颯炫酷的作風,最終我本人還是不顧阻力堅持推進了自己的這套評審方式,我非常清楚代價是什麼,但是我認為比起這個,把初心和獨立思考的精神丟進馬桶更要不得一些。在最終的評審階段,這邊還請來了當年一通參與OO改革,並且現在在商湯科技事業有成的牛雅哲大佬一塊參與評審,也再一次邀請了評審團成員,他們這次也在合適的引導下,有了更多的看問題視角。最終的評審環節進行穩定,有序了很多,一切都在按照預期計划進行,並且最終結果也是可以很好的反映實際上的工作情況的。不管怎麼樣,結果已經說明了很多事情,雖然確實還有不足之處,但是預期的目標已經達到,可以勉強算是一次勝利吧(評審結果和評審表參考這裡:2021北航敏捷軟工Beta階段評分與總結)。

此外還有一點,我本人針對《近取key》和《題士》兩個組進行了一定的體驗和調研,並且針對《近取key》組和團隊內的一些成員,以及包含周老師在內的幾位單詞發燒友進行了討論,最終形成了兩篇深度測評文:

裡面有一些個人對軟體的見解,也有不少其他人智慧的結晶,私以為對於以後而言,還是有一些參考價值的,可以看看。

個人的總結

總結吧,這是必要的,哈哈。

首先,自己的貢獻,大概也就是這些:

  • 實踐了一次基於CI+評測的結對項目
  • 總結了一些出題和系統維護的經驗
  • 更加完善了一些部落格作業的細則
  • 在Alpha、Beta階段上一些工作、評審的經驗

無非也就是這些,也無風雨也無晴,我覺得沒什麼好說的,而且怕是說了也不會有機會被看到的,畢竟都是些荒唐言而已。當然,我相信真正感興趣,真正有心的人,總會找到的,也總會知道的,這一點我充滿信心。

接下來,說說自己在工作上存在的兩個最明顯問題:

  • 在前期,技術至上論明顯,把基於系統的工作方法看做唯一,把基於技術實戰的訓練看成至高,對其他的軟實力部分沒有做到正視。這一點是技術較強的助教都容易陷入的誤區,畢竟自己的道路往往就是依賴自己引以為豪的技術打開的,自然容易有路徑依賴。
  • 在中期,缺乏親自推動略微繁瑣事務的經驗、耐心和能力,講解和分工弄不到點子上常常對牛彈琴,而且對於日常非技術性事務做不到足夠的持續跟進。這一點同上,屬於沒了拐棍就不會走路的典型,而在以前的助教工作中,這些事情有老師和靠譜的左膀右臂幫我統統解決明白,於是也就被掩蓋了過去,直到這次才真正的顯露無遺,潮水一退那光著的腚蛋子立馬露了出來。

從工作視角上來看,自己真的有很多的不足,有明顯的路徑依賴,且技術至上論明顯。這一點隨著後續的工作,也都有不同程度的改進,第一點到了後續已經明顯很少了。不過到了後期,我本人還是開始出現了更多的問題,而且越來越跟不上,這個究其原因還是出在我自己身上,身體狀態有問題,而且以前沒有讀書的習慣,思維有些封閉,此刻思維初步打開有明顯的水土不服跡象,加之想得太多做得太少,於是很快就被扯向崩潰。這一點我自己背大鍋,被勝利沖昏的頭腦,自戀的心態,以及成也蕭何敗也蕭何的路徑依賴,都導致了這次後期個人精神和心態上的崩盤。這一點務必警醒,這也是對未來助教們,尤其是助教頭子的一個警示吧,一個自己都玩不明白的人,很難真正的坐好這個位置,在治國平天下之前,還是得先修身齊家

最後關於軟工課的指導思想上再扯一句,我知道有些人不愛聽也不希望別人聽到,但是我還得說出來。在軟工教學中,技術至上論不可取,但是反技術至上論也一樣不可取,不能不把技術當成唯一了,就把技術當成一文不值,也不能因為強調build to win就不管不顧課程的教育性質。在此處補充一下「反技術至上論」的定義——反技術至上論者未必是技術至下論者,但是他們一貫喜歡用技術以外範疇真實存在的問題,來徹底否認技術上工作的成果與價值,當然在現實的市場選擇過程中這一定程度上是客觀規律,比如「銥星計劃」,而且也往往會成為這些人支援自己觀點的論據,但是他們忘了這裡是課程,給學習者正確而全面的價值觀引導才是第一要務。因此「反技術至上論」實際上就和把一個不善言辭但是成績極好的孩子叫做社會垃圾一樣的荒唐,他們給出的理由往往是諸如「不會社交就什麼都不行」、「不善言辭就是茶壺煮餃子」、「成績不是唯一」,放在社會人的視角下,錯了嘛?沒說錯,但是我想請問教育孩子有這麼教育的嗎?相比之下,告訴孩子他的成績很優秀,要有自信,繼續努力,但同時告訴他必須要努力改變內心的封閉,並且給予真心地支援而不是打壓,才是正道——如果你的本意還是做好教育而不是諸如釋放自己的傲慢、偏見與無知之類的別的什麼東西的話。鄒欣老師在《構建之法》中也明確提到了軟工課的目標,想來認真閱讀過的人應該記得,這裡保險起見放一下:

讓學生們通過理論學習和具體項目的練習,做到下面三點:

  1. 研發出符合用戶需求的軟體說明:要通過實際的工作收集、推導、提煉需求,並在軟體發布後通過實際數據驗證需求的確被滿足了。需求來自於實際,而不是自己想像出來的「需求」或者人云亦云的需求(例如:圖書館管理系統)。
  2. 通過一定的軟體流程,在預計的時間內發布「足夠好」的軟體說明:這個軟體不是期末前兩天由兩三個同學熬通宵趕出來的急就章,而是經歷了一定的軟體流程,通過全體團隊成員的努力,在一個學期內逐步完成的。
  3. 並通過數據和其他方式展現所開發的軟體是可以維護和繼續發展的說明:例如,對用戶需求有詳細的分析,包括對將來這類軟體發展的趨勢的分析。主要功能都有設計文檔,源程式碼完整,有修改記錄,並有最後版本。關鍵模組有可以執行的單元測試、壓力測試腳本,等等。對於已知的bug和將來的工作都有詳細的記錄。能做到這三點,就是初步學會了軟體工程。

這其中,需求很重要,排在第一位。不過另一方面,剩下的兩條也是很關鍵的,而且都是和技術有著很直接的關係的。實際上對技術的定義也絕不是狹義的敲出能運行的程式碼就算完,也包含很多成體系的技術開發、維護方法,想讓程式成為軟體而不是躺在硬碟里還佔地方的廢物的話,這些都必不可少。技術在軟工課必須有其一席之地,這是底線,不然軟工課完全可以徹底的變成一個需求課,而做出來的東西如何則絲毫不重要,而且也會給一些基於需求的偏見以無止境蔓延的機會。以及,對於需求上已經走歪的團隊,一方面應該在需求上不斷把他們拉回來,另一方面,也得允許他們有在技術上充分證明自己的機會。當然了,評分得一分為二,對不著邊際的需求必須否定,但是對優秀的技術以及技術實踐方法,也應該被充分的肯定,並不矛盾。而在這其中,最重要的則是要有個平和的態度看待學生項目,一肯到底,或者一否到底,都是萬萬要不得的,我希望能有更多的人明白這一點,也希望手握鎚子的人能不要看到什麼都當做釘子想要去敲一敲,技術至上論者如此,反技術至上者亦是如此

更多的反思

在反思完我自己後,我認為也有必要對其他的方面同樣進行反思,因為只有這樣,才更有可能去還原多視角下的事件全貌,吳軍老師在《資訊理論40講》中提到的利用多路的正交資訊進行交叉驗證,就是這個道理。同樣地,我也希望相應位置上的人,如果有一天能看到這裡的話,能了解了解過去,思考思考未來,也算是我這些字沒白敲。

作為助教

作為助教一員的話,首先我相信,能主動來這的人,應該沒有誰是單純怕苦怕累的。在這學期來看,前期有結對部分的大爆肝,中期後alpha階段的長期跟組,後期也有beta階段大量的深入討論與跟組改進,這些都是需要花很多時間去做的,而你們不管咋說都堅持了下來,你們用你們的切身行動證明了自己的價值,你們也都是不可或缺的存在。

但是,我認為作為助教,想要「助」的話,光靠吃苦耐勞這一點顯然是不夠的。其中,有信仰自然是最好的,但是這個學期的工作讓我明白,信仰可能是中國環境下最稀罕的東西之一,多說無益,懂的人自然懂,不懂的人說多了只會覺得我是在道德說教。

不過即便如此,我認為人還是應該有基本的理性與思考,比如先想想自己是為何而來——

  • 為了履歷的一行字?
  • 為了一點點的零花錢?
  • 為了通過一次實踐經歷來提升自己?
  • 為了樸素的幫助他人願望?
  • 為了大而長遠的改變?

然後——

  • 如果你是為了履歷,那就想想怎麼讓自己在被面試官問起來關於這行字的時候,能說出點不讓面試官早已聽得耳朵起繭子的事,讓場面別那麼尷尬;
  • 如果是為了那點零花錢,那就想想怎樣讓自己花這錢的時候心裡可以最踏實;
  • 如果是為了提升自己,那就想想按照這樣的做法,自己是否真的會和參與這次活動之前有所變化?如果有的話,是更好還是更壞了?如果確定是更好為主的話,那就想想這個好,是不是你所最需要的
  • 如果為了一個樸素的願望,那就認真的想想你的願望究竟怎樣才能實現,以及認真觀察現實是離你的願望更近了還是更遠了?這些事任何人都沒法替你做出回答。
  • 而如果是最後一個的話,那就想想,你是否做到了忍辱負重,而後拼盡全力不留遺憾?還是說讓廉價的道德感與犧牲感包裹了自己?然後一次次熱淚盈眶再一次次毫無長進?

我想,這個要求,或許並不高吧。實際上不光作為助教,任何腦力和思維勞動的崗位,能做到這些,都是很不錯的了。而能否做到這些,則是流水線熟練工人,和高水平工匠乃至創造者,之間的關鍵區別

作為助教頭子

如果你惦記這個位子的話,那我可真得好好恭喜你——在眼下的大環境中,你所面對的是一個真正的漩渦中心、風口浪尖,你,做好準備了么

可千萬別覺得這是在嚇唬你,原因很簡單——組裡別的人可以渾渾噩噩,可以隨波逐流,可以做一天和尚撞一天鐘,但是,你坐在這個位子上,就意味著你承諾放棄這個選項,你需要全力撐起這個大局面——哪怕需要無數次熬夜,那麼需要無數次和自己思想鬥爭,哪怕因為堅持自己的正義而成為千夫所指,哪怕因為全世界都瘋了只有自己沒瘋而被送進精神病院扎電針,你都沒有選擇放棄的權利。你唯一應該做的,就是前進,不擇手段的前進!向心中的正義前進!無論這個正義的代價是什麼,必要時當作出一切所需的決定,哪怕曾經是老大哥——可是當人家轟鳴的坦克越過冰封的烏蘇里主航道,即便墨綠色炮塔上象徵信仰的紅星依舊矚目,你唯一的選擇也是擊毀,並殲滅所有來犯之敵,送他們到馬克思面前懺悔;當人家宣稱要外科手術式一勞永逸地肢解你,「深挖洞,廣積糧,不稱霸」,並做好全面戰爭的準備才是你正確的選擇——如果你嘴裡的信仰不只是一句用來酒後說瘋話的談資的話,那就不要讓鐵列克提事件在你眼皮子底下發生,更不要乖乖的讓任何個人或團體控制你。

這一切,往往註定是要逆流而上的,也正是因為這件事並不容易做到,所以這才是你在這裡的意義。這是一個苦差事,我明白的,在不流於平淡的前提下,在這樣並不算樂觀向上的大環境中熬過一學期很不容易。外在的辛勞還是其次的,內心無止境的焦郁、掙扎才會真正毀了一個人。因此我有個建議,在決定接下這個差事之間,一定要做好心理準備,這裡的準備指的不只是知曉你所要面對什麼,而是,養成自我修行的習慣——勤讀書、勤運動、做規劃、生活規律等,像是重構程式碼一樣的,在開始之前先好好重構自己的身與心,然後在任職期間長期穩定的堅持下來,不說絕對的自律,但是最基本的自律底線應當內化於心外化於行。因為在這期間,你的痛苦與糾結,都會需要這些東西來幫你找回平衡,與自己的初心,越是要面對真正的高壓與孤獨,越是需要一些東西來填補內心的空白,而我認為,成體系的自律則是一個很好的選擇。另外就是注意一定要成體系,切忌90後式養生——一邊亂熬夜一邊狂嗑褪黑素,一邊胡吃海喝一邊健身到受傷,一邊聽著各路大家的書一邊卻對觸手可及的知識與思考熟視無睹,總而言之甭管幹啥都要走心,這些都是教訓,如果筆者能更早幾個月想明白這些事情的話,那麼也不會落到今天這樣了。不過如果事已至此的話,那也不必再去為過去後悔,因為焉知非福呢,從個人的角度來看,一次徹底的精神摧毀,如果以後緩過勁了的話,可以讓一個人看清很多事情和很多人,會收穫感恩也會更懂人心,獲得真正的成長。

我對未來的助教頭子的建議就是這些了,關於具體事務的建議,可以去參考上面的章節,這裡主要就說說自我修為的事情。因為我相信,這年頭有膽子來接這口鍋的人,即便再不濟多少也該有點真本事,單純的事務或技術問題並不足以成為瓶頸。也因為筆者自己已經用現身說法證明了,內心被摧毀遠比外部的勞累要更加致命。我也明白,這樣看起來風馬牛不相及的建議,大部分後來者不會聽得進去的,覺得我瘋了在胡言亂語的人也估計不會少,這我都知道。能多開導一個算一個吧,也不求他們立刻聽得進去,只求他們凝視深淵也被深淵凝視的時候,想起來有這麼一個人和他嘮叨過這些,並以此有點小小的啟發,這就夠了,有些事是自然規律使然,我很知足了。

最後再扯一點,要學會及時止損,要有打破現狀的勇氣。我知道這件事並沒有說說那麼容易,尤其是當你儂我儂之時更是如此,提出這種建議的人往往也不討喜;況且人本質是社會動物,尋找同志這也是常見心態。但是,如果沒有當斷則斷的勇氣和能力,那麼被不合時宜的人或事拖入泥潭,讓自己白白痛苦而一無所獲,則只是時間問題——其實,人真的沒有那麼容易被如此徹底地蒙在鼓裡,而作為人類一員的你,該有的感受都會有的,多問問自己的內心,也要多想。別問我怎麼知道的,也祝願你們不要這麼快地得以理解這句話的真正含義,哈哈,挺矛盾吧。

作為老師

老師這邊嘛,我倒是覺得我最說不上來點啥,畢竟從工作責任,以及直接利益的視角來看,怎麼看這件事我都沒資格插嘴——畢竟這門課的直接負責人還是老師。但是雖然直接負責人十分明顯,但是直接買單人還是學生,所以我認為還是有必要說兩句。

我無意去做太多的指責,都過去了,但是恕我直言,我還是認為老師這邊應該做到:

  • 真正在精神和行動上支棱起來——不說別的,選題準備那事,雖然我作為助教頭子沒有及時提醒,但是這件事論責任的話難道不該是老師分內應該首先想起來的么?哪管別的什麼都不做要求,但作為一個工作者,對自己的工作有明確的規劃,並且主動去一件件推進事務,這應該不過分吧
  • 解放思想,擁抱未來——實際上在現代思想、技術與實踐經驗的加持下,很多事情都是可以往更高的層次上發展的,甚至可以達成降維打擊的效果。這些前沿的東西還是應該多去了解,並做更深入的思考
  • 不畏艱難,勇敢前進——我知道,上面這些話動動嘴巴碰碰牙齒很簡單,但是真要去做的話,都得真槍實彈真金白銀的投入,也需要很多人參與其中,進行多次的迭代才能前進。我相信,能作為一門實踐課程的老師,一定多少還是愛著學生們的,只是,真的不要去畏懼改變,尤其是在軟體工程這門學科上,每天都在發展,平穩就是意味著落後

大概就是這些吧,對老師這部分我真的能說的有限。

作為幫助者

關於這一點嘛,首先作為求生欲的體現,我需要說明我並不懷疑幫助者的根本動機,最起碼我不認為作為成熟的社會商業人士,會有必要專盯著一群要錢沒錢要本事也沒本事的破落戶學生們可勁薅羊毛,這哪怕在動機上也做不到自圓其說。假設這樣的大前提成立,那麼接下來的全部分析,也都是基於這個前提的

我經過走這麼一遭,想明白了一個很重要的事情,那就是一個人的話語可以騙人,甚至一定程度上行為也會騙人,但是宏觀意義上的行為,或者說行為的大方向以及態度,一定不會騙人。這裡的騙人,很多時候也包括當事人自己在內,畢竟人真的是一種很善於自我催眠的動物。擱在古猿身上,那是一種機體上的自我保護機制,一切為了活下來;而擱在現代人類身上,那就是各種外表迷惑而又實質簡單的行為——比如將自己的傲慢與偏見包裝成他人的愚蠢,誰說不是誰就一樣蠢;將三體第二部中太空艦隊式的盲目樂觀包裝為勇氣萬歲,誰敢反對誰就是叛徒該被掛上絞刑架;將自己控制欲得不到滿足的深層恐懼包裝成他人的不識好歹,誰敢說不誰就是喂不熟的白眼狼;將自己的逃避於現實中表現在無關事務上的拚命忙碌,誰敢有疑問誰就是嫉賢妒能;一邊對某歷史時期有著心理陰影式的傷痕,一邊自己卻在干著和那會一模一樣的事,還深得其中精髓,比只會喊口號抓五十萬的小將們可精明得多,那會少了這樣的鬥爭人才真是可了大惜,自己義正言辭靠著捕來的風捉來的影來審判別人叫做勇者必勝,鬧得險些翻車但下次還敢人家什麼感受關我屁事,然後別人對自己產生疑問,討論太多了就叫做無知詆毀,堅決堅定不可饒恕;而且還很擅長扯一面更大的旗幟來壓人,想像力還永遠很豐富,從幾個字幾個符號就能解讀出希伯來的整本舊約來,一旦被說破了那就承認個次要矛盾(比如一時糊塗)把主要矛盾掩蓋過去,而事實是筆者曾經多次親自去找正主電話溝通後,發現這根本就不是那麼回事,可是人家作為舉旗者早就聽不進去了,哪怕是來自旗幟的話,每當我想起來,都會慨嘆這面旗幟是何其的無辜……諸如此類的還有很多。是的,人在大方向和態度上永遠是很誠實的,但是在小細節上卻又可以極盡虛偽之能事,而且還能連自己一塊騙,很神奇吧。正如某位聖母從來都不缺熱淚盈眶,也從來不缺她自己口中的「人性」一般,反正自己橫豎是贏家,要麼吃上肉,要麼「雖然餓死了但獲得了自由」,多棒,我有過那麼一納秒還挺羨慕這心態呢。

我當然知道,我吐槽這些後,大概不識好歹的帽子就這輩子也別想摘下來了,畢竟人總是會對一些東西選擇性失明,尤其是關於自己身上的東西,不僅失明,任何人都還不能說「瞎」、「盲」、「暗」,甚至說「亮」、「聰」、「明」也都是犯忌諱的。這挺正常,古時候的太監聽到有人祝他「高升」,也都會氣的直跳腳,罵人家天打雷劈不得好死,然而人家的本意是啥,以及他這句詛咒到底能不能使喚得動天上的雷公電母專程趕來劈了人家,那並不重要,自己眼下嗓門更大氣焰更猛這才重要。而我就一臭寫程式碼的,要資源沒資源,要渠道沒渠道,要人脈沒人脈,肚子里只有一堆程式碼和贅肉,半兩墨水都擠不出來,腰還沒人家脖子粗,人微言輕得很,我也只能認命,如果雷雲終不會散去的話那就乾脆讓暴風雨來的更猛烈些吧,我兀自在藏經閣繼續掃我的地便是。不過呢,我倒是確實記得,有人多次的提到過一個叫做「諍友」的詞,益者三友中友直友諒友多聞也囊括了這一寶貴的品質,因此我認為不管怎麼說,也不管對方怎麼做,對我自己而言還是應該最起碼裝裝樣子,顯得對得起這個詞一些,哪怕也只會有這麼一次——我非常感謝這半年以及更久以來的陪伴,真的幫了大忙,讓我也走上了一條全新的道路(文末也會再次提到這件事),這一點真的非常感謝(請原諒本睜眼瞎的詞窮);在這其中,我知道我曾經因為不成熟,不懂事,壞的外在習慣於內在習慣,還有一些因為心理與精神問題產生的癥狀而給您帶來了不少的麻煩與困惑,這些我表示深深的歉意與敬意,也很感謝您曾經那麼多次的包容與付出,以及很多次的不拋棄與不放棄,我捫心自問過我自己,如果換做我的話,大概不會那麼有耐心的;但是,如果您想在您所言的信仰里真正長遠走出去,而不是繼續多年原地踏步的話,那麼請一定好好反思反思自己內在的態度,這至關重要——還記得《高效能人士的七個習慣》裡面作者提到過,對待孩子要注意態度,應該是發自內心的相信與支援,而不是單純拚命地用嘴鼓勁,因為孩子都能感覺得到,哪怕是很小的孩子,而一句接一句響亮卻不走心的「你能行」、「你最棒」,砸在孩子的心頭上帶來的根本不會是真正的鼓勵,而只是越積越多的壓力與內疚——在您這裡也是類似的,一個人深度的內心態度是怎樣的,一時半會可能拿不準,但是久而久之都會察覺的,誰都不傻,誰也都終究會分清楚哪些人在正視自己,哪些人在溫暖自己,以及哪些人在俯視自己,那臉色彷彿隨時要從上下嘴唇間蹦出一句「你們是蟲子」,而且微妙之處在於,這樣的俯視姿態往往和外在意義上真材實料的幫助並不矛盾,而越是這樣的實質上幫助精神上俯視,給被幫助者帶來的可越不只是幫助,還會有更深的漩渦,甚至久而久之像是黑洞一樣吞噬萬物——因為他在接受者幫助,心懷著感恩,但是又得面對曠日持久的俯視,無窮無盡的強幹涉,他試圖過溝通與理性討論,得到的卻大多是充滿傲慢的抨擊,連講理都很難做到。在這樣扭曲的環境下,人只會越來越累,由內而外的那種累,直至最後的最後迎來一種名為解脫的崩塌,彷彿被國際刑警追得滿世界亂竄、精神瀕臨崩潰的逃犯終有一日被警察抓住,可以好好吃口飯而不用擔驚受怕了一般,哪怕這碗飯是硌嗓子的牢飯。弱小與無知不是生存的障礙,傲慢才是,傲慢者也註定難以留住真正有傲骨的人在身邊,也會因此傲慢的沃土會越級越厚,傲慢也會越長越茂盛,最終形成一個滿是瘴氣卻走不出去的密林。曾經的我也是如此,我自己鬧出來過的那些笑話您也都是見證者,而究其原因的話,傲慢以及由此引發的自戀則是罪魁禍首。這些都不是中聽的話,但是我始終記得您的那種耐心,也一定程度上感同身受,也正是如此所以我認為我也必須說出來,哪怕過去了這麼久,但是總得有人去做這件事。我很清楚在表面繁榮的時代談失敗主義註定不討喜,但是啥好聽就說啥的話,那我與那傲慢的沃土有何異乎?況且您這樣的成功人士,想來也不缺我這麼一句奉承話。當然,如果您已經堅定不移地認為,但凡誰喊的不夠大聲誰就是反動派的話,那我也只能表示很遺憾了。

有一次,玻爾去蘇聯科學院訪問。
有人問他:「請問您用了什麼方法,把那麼多有才華的青年都團結在了自己周圍?」
玻爾笑著回答:「因為我不怕告訴年輕人我是傻瓜。

說實在的,我認為您是一個修為很深的人,飽讀詩書也明白很多道理,最起碼上面的那點些連我這臭寫程式碼的都明白的道理您不可能不明白。且您顯然並非不懂得處世之道,也很能拿捏好分寸,懂得自我反思,更懂得節制傲慢與自戀的心態,您迄今為止在事業上的成功已經毫無疑問證明了這些。只不過人是多面的,工作中冷酷決絕乃至不近人情的軍人,和把家裡的小公主寵上天的萌萌噠老爸也完全可以是同一個人。容我合理的猜測一下,您在這樣的一個特殊環境中,坐擁極為優厚的資源,也擁有不低的話語權,以及自己通過大量讀書與實踐積累下來的對人和事的理解,這些都很好,因為事情的推進少不了這些,但是卻由此帶來了言路的閉塞,讓家長製作風早已成為多年的常態。這其實並不怪你,因為真正的當事人群往往心照不宣地划水,或者有積極的心但是技術理解或思想性不夠,因而也沒有人太多能讓您在思想上進行非降維打擊式的硬碰硬,您也必須去主動出擊各路推進,不然事情的運轉就會打很大的折扣,您形成這樣的習慣確實有很充分的環境必要性。於是到了這屆因為隊伍配置和全新環境的問題,出現了水土不服,而究其原因的話,其實也和《三體》第二部中的一個例子很像,在書裡面,當人類全部太空艦隊被一發水滴串成了串後,主角之一羅輯很快就被世人捧成了救世主,無數人前赴後繼來下跪朝拜吻鞋尖,可是當人們漸漸發現羅輯似乎不能一發咒語拯救世界的時候,態度立馬一百八十度轉彎,被扔石頭被趕出小區,坐個車都被人趕下來,連正常人的待遇與尊嚴都不配有。仔細想想,全過程中,羅輯可有過哪怕一次以救世主自居了?然而事實是,人們不由分說便對羅輯套上了名為期待的鎖鏈,而後但凡和這個期待不符,就將其貶為十惡不赦的大罪人,牽著當初套上的鎖鏈嚷嚷著要把他五馬分屍。哪怕真要比一比的話,只怕羅輯為人類操的心出的力做出的貢獻比任何一個「正義使者」都要多得多,但是客觀事實早已不重要,所謂的面壁者也根本不是什麼救世主,只不過是個背負此世全部之惡的背鍋俠,好讓人類能在毀滅前稍微心安理得那麼一點點——「我要死了,但我也是受害者啊,都怪這個叫羅輯的狗雜種沒能拯救全世界,我恨他我恨他我恨他啊啊啊啊恨恨恨恨恨恨恨恨恨!」。類似的還有,一位救死扶傷一生的醫生,如果晚年做了一些糊塗事,那他這輩子所有的善行都會被認為是偽善,都是在為了這輩子唯一一件錯事打掩護做準備,此等極盡虛偽之徒必須下油鍋煎炒烹炸,然後把焦屍插上牌子掛在天橋上示眾;而一個殺生無數的屠夫,只要放下屠刀便可立地成佛,過去的所有血債都只是因為無知與迷失,統統可以被理解、包容然後既往不咎,大家都要向這位迷途知返的聖徒致以最崇高的敬意——我呸!噁心的普世價值觀!想想荒唐不?荒唐與否我不知道,但是絕對很真實。而在現實中,這個讀作羅輯寫作筆者的人,還處在成長期,確實有一點小本事和見解但是也遠沒到一己之力翻盤的程度,但是卻被抱有了過高的期待(當然,這裡我自己也有不可推卸的責任,那就是被先前的勝利沖昏了頭腦,對自己沒有足夠客觀的評價,導致活在夢裡),也是基於這一前提,破天荒地收穫到了您的平視,而這位羅輯居然沒有成為那個絕對的改變者,然後又整天這個要求那個想法的,還默默叨叨竟說那不中聽的片湯話,想來真的是可惡極了,打入冷宮並踩上一萬隻腳才配得上這個不識好歹的渣滓,哪怕退一萬步說,他做的最起碼沒有更差,客觀上的前進也可以列出不少。這有啥招呢,這就是人性,我本來還很百思不得其解,但是直到我瘋病漸漸好了後,讀了更多的心理書,然後讀了大劉的書發現人類非但不感謝還要審判羅輯後,更會恐懼每一個面相兇悍卻靠譜的執劍人競選者,而寧可去選擇一個代表愛與正義然後真要動真格的時候立馬尿褲子的聖母時,我就懂了,也釋然了,因為和羅輯、幾位毅然踏上不歸路的面壁人,以及來自公元世紀的地球抵抗軍領袖們比起來,我背負的這點責任簡直小到忽略不計,而且結局也比他們幸運了太多。其實這些都好理解,很多時候人的心態就是環境塑造的,再難理解的東西只要站在進化與動物屬性的視角來看就都可以解釋,而且在一定環境中形成的心態不可避免的具有慣性,而一旦在慣性系中試圖打破平衡,矯枉過正是大概率事件,就像為地球環境生存而設計的人類,如果長期生活在太空,會很容易骨質疏鬆,返回地面時甚至需要從裡面給抬出來一樣。但是如果能意識到這裡面可能出現了問題的話,那就應該好好反思並做出調整,走出舒適區,才是正道,這也是您當年開導過我的,我還記得並時刻提醒自己,希望您也能如此。我相信您,我也依然願意相信,有善於自省的您在,一切都會好起來的,冰總有一天會化成水的。

鳴謝

在這裡,我集中感謝一下:

  • 本學期全體同學,以及全體項目小組對課程組工作的支援與信任
  • 【近取Key】、【題士】等項目組不屈不撓地展開交流,並以認真的態度對待團隊項目的工程環節,不管你們是否承認,這些討論都讓雙方受益匪淺
  • 在本學期過程中參與到項目討論的「典型用戶」,包括典型用戶小華、鄭蕊、婁老師、楊老師,以及他們的用心體驗與記錄
  • 鄒欣老師對本學期軟工課城的持續關注和點評,以及在資源上的支援,以及數次直接的討論
  • 范飛龍博士在選題階段的現場參與,以及對本學期助教團隊工作的關注與建議
  • 周筠老師對項目相關問題、助教團隊工作問題上的持續關注與思考,對之前不少部落格的細緻編輯,以及在整個學期對學生們的直接投入
  • 周筠老師對我個人而言的費心照顧以及傾心付出,真的非常非常感謝,毫不留情地指出了我存在的問題,也讓我在思維層面上發生了真正的進化,儘管後來的過程相當擰巴,不過種子已經埋下,即便度過一個寒冬,也終會在春天發出屬於自己的芽,開出自己的花,非常感謝遇到您
  • 吳際老師對於軟工課的一些重要建議,以及在後期對我本人的關心與照顧
  • 各位助教(劉陽、劉紫涵、韓滏婧、胡緒佩、趙博名、劉取齊、劉乾)大半個學期下來對所負責小組的持續關注與指導
  • 助教周雨飛、劉陽、劉乾在一些核心問題上的集中討論,貢獻了相當多的關鍵意見
  • 大眾評審團的各位同學對項目的積極體驗與思考

真的非常感謝大家,每一次這樣的合作實際上都是一次奇蹟,這麼多人的力量才能完成一件了不起的事業!

沒用的瞎逼叨

關於學院的事

關於學院嘛,有些事情由來已久了,有些話我也早就想說了。我呢,可預見的未來也不會和STAR助教團隊再有任何瓜葛,因此有些話我經歷了漫長的思考沉澱過程,也終於可以直接說出來了。我希望看到這段的本科在讀學生,可以認清形勢放棄幻想,然後好好的做回自己;也希望看到這段的有關領導和部門,能夠認真的思考一下學院的未來

考慮到讀者們寶貴的時間,所以先說結論——現在的電腦學院本科已經被內卷給徹底充滿了,並且我敢斷言,如果不儘快改變這一氛圍的話,我們學院的本科教育品質遲早得毀在這上,這一過程並不是靠一個或幾個引以為豪的硬核課程所能逆轉的

我本人,作為一個本科階段在北航電腦學院就讀,體驗過完整的專業課教學流程,擔任過本科OO助教頭子、高階助教,並在研究生階段再次擔任了敏捷軟工助教。也見證了學院的過去、現在和未來。請容我對學院的各屆學生們做一個紀元式的劃分:

  • 直升紀元,包含2013-2016屆本科生(即2013-2016年入學的本科生,學號為1306-1606開頭,06是六系的編號),這些學生都是通過高考直接進入的電腦學院,並且從大一到大四接受的都是電腦學院成體系的本科教育。
  • 大類紀元,包含2017-*屆本科生(即2017年及以後入學的本科生,學號為1737、1837、1937等,37是大類編號,這個從大類來的學號會伴隨他們本科四年;因此2017年可以稱為大類紀元元年,2017級本科生也可以叫做大類元年學生),這些學生都是通過大類招生進入的北航,在資訊大類中接受來自電腦、軟工、電子等多專業的混合教學一年後,通過考試成績爬進了計算系這個大熱門專業,然後大二到大四接受的是電腦學院的本科教育。
  • 另外,對於太過久遠的學生,例如2012年及以前的那些,由於本人接觸的相對有限,而且當時的社會發展等外部因素也和現在有較大差異(畢竟從大部分成年人用上手機到現在也不過十幾年時間),故在此不作討論。

然後,容我描述一下,在我的視角下,直升紀元的學生們,和大類紀元元年,以及大類紀元二年及以後的學生們的區別吧:

  • 學期初選課的時候
優先選有意義或有趣的課 優先選給分高的課 優先選水課
直升紀元 數量不算多,但是也有相當的數量,而且他們內部也能形成一個同好圈子。 確實存在一些人對分數極為看重,不過並不佔主流 數量較多,畢竟輕鬆又有學分,喜歡這個可以理解。
大類紀元元年 數量還算有一些,不過已經明顯少了,而且這些人普遍有脫離院內主流學生圈子的傾向。 數量激增,大部分人選課首先看給分如何,甚至於其他的一概不重要也不關心 數量也有一些,不過大多是他們口中已經「保研棄療」的那類人。
大類二年及以後 很難再找到了,即便有個把這樣的人,也統統會被視為異類,而當他們嘗試為自己的利益發聲時則會被幾乎所有人一致聲討。 幾乎成為全部,因此在選課階段就已經硝煙味十足了,氣氛可能比直升紀元的考期還緊張,而對於沒選上他們口中「好課」的人便彷彿明天太陽升不起來一般,即便課程還沒開始。 和大類紀元元年情況類似,只不過因為更多的人(包括明顯實力不濟的那些)被捲入了瘋狂中,所以數量更少了。
  • 在上課期間
質疑課程的方式 課程討論的態度 對其餘內容的態度
直升紀元 質疑的主要是課程的模式和規則,而質疑的動機在於課程規則的不合理導致學習時效率低下,說白了就是費力氣還學不到東西。對於這一點可以去看關於OO的部落格和知乎回答,直升紀元的學生這一特點十分明顯。當覺得內容太難的時候,他們會說——「這東西為什麼要做到這樣,對現實工作來說有何意義?」 課程討論區十分活躍,還記得當時計組的討論區,甚至頗有種大家齊心協力攻克關鍵技術難題的感覺;即便是直升紀元年間被吐槽最厲害的OO,討論區也是很有乾貨內容的,而且並不會出現一個內容來回發的情況。 對於一些和課程考核關係不那麼緊密的內容,有相當一部分人還是會感興趣,並且去弄一下的,不過也不會勉強,感覺推不動也就放棄了;而對於推得動的那些人則並不介意花點時間做點有趣的事,也從來不乏求知慾
大類紀元元年 一部分的質疑是基於以前人對規則的質疑,然後他們質疑我也質疑,或者稍微高級點,找個道德至高點再來質疑;而更多的一部分人則是極度在乎分數給的合不合理,公不公平,更準確的說是符不符合他們認為的公平,只要與他們期望不符就會意見很大,甚至傳聞出現過圍堵任課老師的情況。 課程討論區也有一定活躍度,但是風格和以往不再一樣了——這屆學生中只有少數人依然抱有研究問題的心態在討論;而更多的人則是在賺熱度,因為聽說討論區大佬有一定加分,也是因此,日常出現諸如「關於XXX(一個很抽象很大的範疇)的討論,都進來看看吧」,或者將從某個部落格上摘來的內容洗個稿丟過來,還有過同一個內容被幾個人洗到討論區的荒唐情況。 很少有人關注這個部分,關注的人基本上就是那群討論區認真非功利性討論的人。其他人對這部分完全不關心。
大類二年及以後 與元年類似,這一情況在進一步加劇,而且為了分數什麼都不顧的吃相越來越難看,也越來越不加遮掩。計組和OO方面的難度在一降再降,但是他們依然義正言辭覺得太難,而且辯駁的理由往往是——「性價比太低了,我要花那麼多時間才能得到分數,你們耽誤我人生耽誤我保研了」 課程討論區徹底變樣了,而且最離奇的是,看了幾屆學生討論出來的內容,感覺他們彷彿像是那三體人一樣有記憶遺傳天賦,說的內容都沒什麼不同,而且會有一個早就說爛了的內容被同時幾個人開樓,而且時間間隔極短簡直像是在搶跑一般。顯然,這裡也淪陷了。 說這個問題基本上沒什麼人會有響應,取而代之的是那種一看就忘不了的麻木眼神,甚至連競賽生們也大多不例外。當提到新知識的時候,他們想到的並不是去捯飭樂子,而是嫌棄著這些東西換不來分數,然後束之高閣。

以上就是表面上的一個對比,我相信,任何一個站在高處親眼目睹這些的人,都不會沒有感觸的,況且,我們還是從光明時代走來的人,步入黑暗後,也做不到像生於黑夜的人們一樣,對黑暗習以為常。其實這些問題,我仔細地想過,並且和身邊幾個同屆或更早的直升紀元人們一塊交換過意見,不難發現,禍根早就已經埋下了——

直升紀元人 大類紀元人
填報志願 填報志願的時候,看到的是電腦專業和其他的各個專業,而且大家都知道電腦熱門,分數線低不了,因此選擇起來往往會更慎重一些。思來想去翻來覆去後,終於下定了決心,學這個專業,並接受挑戰。 填報志願的時候,看到的是資訊大類和其他的大類,而且眾所周知,資訊大類包含電腦這樣一個超級無敵皇帝至尊熱門專業。而我,我是誰啊,班裡學校里的尖子生,沒準還是清華北大的落榜生,我這麼厲害進去後電腦那非我莫屬啊,當然選資訊大類了。
大一 大一的階段比較輕鬆,很多的入門課,也有很多開放性討論的課,從中開闊了不少視野,也得到了一些基礎的鍛煉,自己在電腦專業領域與其他方面的興趣、愛好、天分也已經初步展現,或許並不夠完善但是多少為接下來的發展奠定了基礎,更重要的是完成了一次思想轉變,從高中生式的唯成績論到成年人的多元世界論的初步轉變 大一了,進門了,還有不到一年就要分大類了,我能不能進電腦專業全靠這個了。於是大一需要拼了命的考高分,什麼都不要管,什麼可能低分的課都不要選,別人花一個通宵寫一個一萬字大文章,那我就花三個通宵寫三萬字,永遠不怕累,就怕分數沒人家高。但是分數高了有啥用我不知道,但是分專業這個少不了。於是就又當了一年的高四學生,競賽生也概莫能外。而其中,如果成功進入了電腦專業,那麼這些高四學生中的勝利者只怕各個是拿分的專家,以及,毫無疑問地,對高中生式的唯成績論更加深信不疑
大二大三 到了大二,硬核課終於來了,我可能被轟炸的很慘,不過我並不擔心,因為我知道這世上並不只有保研是唯一的活路,也並不是只有敲程式碼才能吃上飯,更何況這才剛開始,誰說過我不能絕地反擊了;也可能順風順水或者越挫越勇,也正是這份不斷積累的勇氣,以及不斷被進一步激活的求知慾,於是從某天開始,我不再需要課程的推動,自己就會開始研究自己感興趣的課題,開始走上自己真正的發展之路,越做越強。而對於保研,需要才去保,不必強求,工作也是很好的,只要有真本事在哪裡都能展現我的價值。 終於熬出頭了,不過不能休息,馬上就要保研了,只有兩年不到了你就不著急嗎?所以趕緊拚命拿分啊,其他事情通通與我無關,我學習的也就是個多目標優化(這是我從某大佬嘴裡聽到的原話,說的那叫一個理所當然),得想盡辦法像是線性規劃那樣的拿到最高的整體加權平均分呢。而你們居然還想著讓我學更多的,憑什麼?打工人會因為老闆畫大餅就梭哈進去么?那我憑什麼為了知識而繼續學習呢?還是談點實際的吧,給我分數,100那種,95都是很低的分了老子我看不上。什麼?你還讓我學知識,你這是謀財害命,我要是保研都保不上了這輩子我就毀了!!!什麼?保研有啥用?還tm有啥用,就是有用啊,你高考怎麼不想想有沒有用?
大四 保研之類的塵埃落定了,對沒保研的人而言自己的著落也大抵有眉目了。總而言之,可預見未來內的路線是清楚得了,所以,在哪裡努力也就顯而易見了。啟航!前進!我們的征途是星辰大海! 保研成功:終於上岸了,接下來得趕緊搜集研究生階段的資訊,趕緊準備好作業到時候好拿高分(別笑,真事,這位準研究生還想著研究生階段繼續靠內卷拿下各種獎學金和機會,向我尋求資料和拿分攻略,當我告訴他研究生階段根本不幹這些事的時候他直接「。。。」,然後把我拉黑了)
保研失敗:我的人生真的好失敗啊,好貧瘠啊,以後沒有希望了,註定就是個到廠里被榨成甘蔗渣的命,麻了,都麻了,都怪這個世界,都怪資本家,都怪老師,都怪助教,都怪學院,都怪那些內卷卷贏了我的同學,我要上知乎上微博罵死他們,輸了里子不能輸面子(近幾年我在知乎上看到的無腦噴帖子,有相當一部分是上完課多年回來返場亂噴的,而且雖然匿名但是從時間點上來推斷就是這茬人)。

這算是一個很真實的寫照了,換言之——大類紀元的學生們,在大一這個本該形成新型價值觀和世界觀的時候,就已經走歪了,本來應該用多元世界觀來取代高中的分數世界觀,可是現在的大類選出的這些勝利者,只會更加的堅信高中的做事方式,路徑依賴進一步加強,然後再加上後續的保研等環節,這下好了,這輩子都在追一個自己都不知道為什麼要追的東西,追到了也沒感覺,追不到天就塌了。他們註定難以做到像是直升紀元人一樣,經過錘鍊後形成一個自驅動,並以此啟航,他們只活在一個名為「內卷」的桎梏中,而這一切本來都可以避免。我知道,說到這裡肯定有人會拿出現在社會的整體內卷、焦慮趨勢來說事,可是但凡真正了解學校內這個生態的人,都該明白,這些還真就不是註定的,而是被一個名為「資訊大類」且號稱可以吃出「電腦專業」硬幣的大餅給包裝起來,然後通過一輪一輪不合時宜的選拔所共同促成的。

上面這些事情,所帶來的直接後果就是,看起來這些人分數一個比一個厲害,成績單一個比一個亮眼,但是動真格的能力越來越差,非但徹底沒有build to win的思維,甚至連稍微硬核一些的演習都沒有耐心去做下去——只要沒有給足夠的加分的話。而我還記得,我們高院長在我大一還是大二的那會,引以為豪的說過我們學院之所以能如此強大,能超過不少比我們學校更出名學校的電腦專業,靠的就是這個硬核勁,從這裡走出去的畢業生,沒有弱者,都是召之即來來之即站戰之能勝的精英。而現在,硬核勁正在漸漸地被內卷環境消磨殆盡,取而代之的精緻利己不斷蔓延,乃至於大有成為主流的架勢;學生們的求知慾也在不算降低,取而代之的是對待真知識真技能的麻木。我不知道有關人士是如何看待這一現象的,是不是覺得,將猛虎關進躺不下來的籠子,再拔掉爪牙,然後將其馴化成只會張開流血的嘴喵喵叫的大貓咪,並忘記自己本該屬於森林,應該傲立百獸之間,是一種文明的進步。如果是這樣認為的話,那未免就太悲哀了。

好了,我的分析到此為止,現在的形勢也很清楚了。因此,對不同的角色,我想分別說句話:

  • 對於有關人士和領導,我希望你們能了解到這一情況,並明白這一情況最終會帶來的長遠後果。然後,低頭看看自己胸上別著的那面紅旗,再好好想想它象徵著什麼,該做點什麼已經很顯然了——如果你們還有初心的話。
  • 對於現在還在就讀的本科生,或者也可以叫做大類紀元人,我希望你們能靠自己的力量,將自己缺的這一課補上——具體來說,就是讓自己的思維完成一次進化,解放思想,停止這種盲目的追逐與追趕,而多想想自己到底要什麼。人生的選擇有很多,人生的路有很長,能認識到這一點,本就是真正成為成年人的第一課——如果你確實並不喜歡現狀,並想要改變的話。
  • 對於現在或即將擔任助教的人員,我希望你們慎重考慮,因為你們面對的就是這樣一大片鹽鹼地,一個麻木成為主流,劣幣驅逐良幣的大環境,如果你要堅持自己的初心和原則的話,那就要做好付出對應代價的準備——如果你覺得你的信仰會讓你感到值得如此的話。

言盡於此,不望海涵。

關於提問的事

這部分的話,說一個小細節。

我印象中,在軟工課有個提問環節,需要閱讀構建之法然後提5-10個問題。於是乎,我每年都能看到針對GOTO語句的質疑,而且基本上都是再說自己的老師課上說不要用GOTO,但是書里卻在提倡用GOTO,有些還說的挺聲淚俱下的。

來來來,我今天就來給你們找找,鄒欣老師原話是怎麼講的。

函數最好有單一的出口,為了達到這一目的,可以使用goto。只要有助於程式邏輯的清晰體現,什麼方法都可以使用,包括goto,如程式碼清單4-2所示。

HRESULT  HrDoSomething(int parameter) 
{ 
    //parameter check and initialization 
    //processing part1 
    If (SomeCode() != ok) 
    { 
        //set HR value 
        Goto Error;  
    } 
    //processing part1 
    If (SomeCode() != ok) 
    { 
        //set HR value 
        Goto Error;  
    } 
Error: 
    //clean up 
    return hr;  
} 

就這麼個玩意,人家根本上說的是——語法是為了提高程式品質服務的,GOTO也不例外,而且還給了一個比較完善的GOTO具體使用實踐,可是被你們一個個的讀成了什麼?揪住了一句「可以使用goto」就來開始提問,說實在的,水平忒低了點。

這裡面,往深層思考的話,問題有很多,不只是個別人讀書不走心這麼簡單。因此呢,我認真的感覺,以後或許該把這個作為一個軟工課提問整體品質的考評,什麼時候這種低品質GOTO提問少了,才說明真的有進步了,我指的是,課程組有進步了

當然,也並不是說這個問題該成為禁區,你們可以看看一個比較有水平一些的關於GOTO的提問:【軟工】第1次閱讀作業。這是我們這屆一個人的提問

在閱讀了部落格1部落格2後,總結出goto的優缺點和結論大致如下:

  • 缺點:GOTO語句使程式的靜態結構和動態結構不一致,從而使程式結構不清晰,難理解,難查錯。去掉GOTO語句後,可直接從程式結構上反映程式運行的過程,不僅使程式結構清晰,便於理解,便於查錯,而且也有利於程式的正確性證明。
  • 優點:使用起來比較靈活;有些情形能提高程式的效率。若完全刪去GOTO語句,有些情形反而會使程式過於複雜,增加一些不必要的計算量。
  • 結論:不加限制地使用GOTO語句,特別是使用往回跳的GOTO語句,會使程式結構難於理解,在這種情形,應盡量避免使用GOTO語句。但在另外一些情況下,為了提高程式的效率,同時又不至於破壞程式的良好結構,有控制地使用一些GOTO語句也是必要的。
    至於作者提到的「函數最好有單一的出口,為了達到這一目的,可以使用goto」,這篇簡短的部落格給出了單出口函數的兩種程式碼結構,一種是使用goto,另一種是使用do while(0)和break。本人覺得更偏好goto語句來實現。(畢竟雖然寫高級語言時沒用過goto,但是寫彙編語音時對goto已經比較接受了)
    私以為作者可以在書中對goto語句多做些說明,畢竟可能有一大波人學C的時候也跟我一樣沒太弄懂。「既然課本說別用goto,那我不用就是了」。

這樣的提問,有對問題本身的分析,也有對作者表意的到位分析,而且給出了實打實的建議,這樣的提問才是真正應該有的樣子。

關於思考的事

這一段,沒啥乾貨,純屬意識流的瞎掰扯。

人和人其實經常會有一些思想的碰撞,尤其是在具有獨立思考能力和意識的人之間更是如此(當然,也包括一些僅僅只是號稱如此的人)。討論在很多時候的一個直接目的在於解決問題,這類討論我們稱之為功利性的討論(注意不要把功利當成貶義詞,這本來是個中性詞,功利主義也是一個自成體系的學說);而另一類討論僅僅只是互相交換看法,讓自己的視野拓寬,或者完善自己元認知層級上的不足之處,這類思考則可以稱為純粹性的思考。

然而在現實中,人與人之間還有一種交換形式,那就是手段,比如去打點一下有關人士,比如去吹吹風,或者干一些不足為外人道也的事情,來達成目的。這一類的交換其實往往和功利性是脫不開干係的,畢竟這世上掉腦袋的錢總有人敢賺,可是沒利益的事卻從不會有人做(利益不局限於功名利祿,自我價值的實現,找刺激,甚至自我感動,也是一種廣義的利益),這也是我做OO學生期間想明白的一個很重要的事。

而我覺得吧,討論,就讓其盡量純粹一些。手段可不可以玩,當然可以,但是這樣的手段換來的不可能是其他人真正的意見,而是一個你自己求仁得仁的結果罷了;而討論的前提,則是意見的交換,以實現群體思維的升級。因此,如果你還在乎得到更好的碰撞火花的話,就請在討論的時候,讓其純粹些,不要將手段摻雜進來,更不要一言不合互戴帽子。而如果想要強力推動一件事,那其實可以更痛快些,或者乾脆擺出兩條桌子來談判。這兩種無論哪個,都很正常,而且都比遮遮掩掩欲迎還拒然後一點就炸來的更令人舒服也更有效率

關於未來的事

首先,我得說一件我認為必須要說的事情——為什麼這個總結部落格咕咕了這麼久?

其實這件事大部分還是賴我自己,在課程後期,我陷入了相當嚴重的自我懷疑,甚至說是這輩子最嚴重的一次也不為過,因為我發現了一個可怕的事實——原來自己沒了拐棍,就是個只能在地上爬成一堆的八爪魚。然後,同時又處在開民智的階段,讀了不少書,有了新的實踐,而且在短期內大量爆發,正處在消化不良的階段,於是導致思維開始越發的走火入魔,最終出了大問題。這個暑假真的過的很艱難,陷入這種心理與精神的錯亂折磨中真的宛如地獄,再加上由此引發的生理性疾病,以至於我有段時間,每天都很害怕日落,也整晚的不敢睡覺——因為我真的不知道我還能不能看到下一次日出,我總感覺那就是我自己的日落,直到盯著窗外到太陽升起來,方才放心。等到自己好了之後,都容易會有一種彷彿已經到了來生的感覺。

當然,在事情完全惡化之前,我也並不是沒有開始寫總結,寫過好多的版本,只是每次,過幾天再來看,就覺得真的可以說是a piece of shit,滿滿的黑色廢料,大部分看著辣眼直接刪了,現在還能找到的有這些版本

其實也很正常,一方面自己內心和精神還不夠穩定,人在垮塌狀態下真的是戰鬥力為0,徹徹底底的0。然而另一方面,即便在稍微好轉後,我也發現,有些問題看似想清楚了,實際並不是,這裡面包括課程工作上的問題,也包括人際上的問題。於是乎,寫部落格就成了一個思想迭代的大熔爐,打了熔,熔了打,才形成了最後這個版本。

現在,我本人已經基本回復正常,哈哈。想起來暑假那段時間,真的是又好氣又好笑,感覺自己像是一個在垃圾堆里找玩具的小屁孩,找著了一個挺圓溜還帶個環的鐵片子,卻不料是罐頭上揭開的蓋子,於是被劃傷了手再哇哇大哭尋死覓活一樣,特有趣。總之就是感覺,生命中的一切執念(包括某件曾經一提到就要死要活的事情),一切事務,彷彿都變小了,而自己彷彿處在了一個尺度更大的宇宙里,太多的事情不過是過眼雲煙,而真正吹盡狂沙後露出來的,才是你心裡的真金。不過再想想,對個人而言,哪一次的災難在回頭看過去的時候,不是這樣子的呢?而人又是個天生的賤胚子,不到痛苦處,往往不容易真正的去深度思考萬物。因此,沒能把孫悟空燒成灰的煉丹爐,讓孫悟空獲得了火眼金睛;沒能殺死新兵蛋子的斯大林格勒,都將讓其變成強大的老兵;沒有殺死我的,也終將使我更加強大

排除這些打氣的話,實際上我的內心收穫有很多。比如在半瘋半醒的時候,想出了不少開源項目上的新點子,有些還是做夢的時候想出來的(然後醒來為了怕忘了還得趕緊找紙寫下來);在個人心理建設方面,我後來看了不少的書,什麼都看,也不再強迫自己一定直接要讀最高級的名著,而是找適合自己現階段段位的,比如劉慈欣的《三體》、《球閃》、《全頻帶》、《流浪地球》等一系列作品,還有戴季陶的《日本論》等講歷史的,然後就是得到上武志紅老師的心理學內容(這個建議部分內容辯證看待)。我現在感覺嘛,讀書這事,和程式碼一樣,急不得,得慢慢來,而在讀小說的時候,一定要注意自己到底能不能沉浸其中,還是說人家主播的聲音從左耳朵進,在腦殼裡繞場一周後直接就從右耳朵出去了。比如,在《全頻帶》里,當美國大兵對著林雲少校擺出那一套偽善說辭的時候,我還記得我一下子扯下了脖子上的藍牙耳機,直接摔在了地上並狂飈了一大串美麗的國罵後,周圍人驚詫的眼神(當然,我這個有點暴力了,如果可以的話建議還是收斂點)。只有當你能真正進入那個世界的時候,你才會有對這個虛擬世界進行深度思考的基礎,讀書也才有了意義。而進入虛擬世界的能力並非人人天生都有,是需要後天鍛煉的,而比較適合的入門鍛煉方式,則是找一個對自己路子的小說開始讀或者聽,然後慢慢擴大興趣面,越讀越多,也越想越深。

除了上面這些具體的實用技能之外(其實也並非全都寫了進來,有些以後慢慢說),我認為我自己得到的最重要的一條心得是——對待事業,要專註,但同時又必須能夠超然其上。前者不難理解,各路成功學大師們早就說爛了,而且也確實是金道理,但是後者往往很容易被忽略,結果導致當事業受挫,或者大廈將傾之時,人會直接成為自己事業的奴隸,在痛苦中被顛勺一般地甩來甩去。因此,對待事業應該有個超然的心,換言之——事業的本質也是為自己服務的,而不應該是反過來;應該是讓事業、信仰來給自己提供價值感與人生追求,而不是這輩子都是為了某件事,或者是某個信仰而活著。只有這樣,人才能做到在該傾力付出的時候,做到不留遺憾,也能在該做出選擇的時候,做到當斷則斷,不至於成為信仰、付出與犧牲的奴隸。

我只想向你指出,自我犧牲是壓倒一切的情感,連淫慾和飢餓跟它比較起來都微不足道了。它使人對自己人格作出最高評價,驅使人走向毀滅。對象是什麼人,毫無關係;值得也可以,不值得也可以。沒有一種酒這樣令人陶醉,沒有一種愛這樣摧毀人,沒有一種罪惡使人這樣抵禦不了。當他犧牲自己時,人一瞬間變得比上帝更偉大了,因為上帝是無限和萬能的,他怎麼能犧牲自己?他頂多只能犧牲自己唯一的兒子。
——毛姆《刀鋒》

好了,我自己現在已經是好好的了,這些事情我也並不想說的太多,我相信能懂的人都能懂。我自己的話,未來是打算讀博,目的極為單純,因為我發現自己在技術上的修鍊正在遇到瓶頸,而這個瓶頸正是自己思維上的桎梏所導致的,而解藥正是學術思維。而在其他方面,經歷了如此漫長的一個寒冬後,春天也終究到來了,我也會做更多的各類探索,會在公眾號、部落格園和知乎上寫一些自己的內容(技術內容知乎、部落格園見,非技術內容公眾號見),記錄下自己的成長曆程,讓自己時刻保持自省,也給真正有意跳出舒適區的後輩們,一個示範和表率。這些都是某位很成功,也曾經讓我很欽佩的人教會我的,現在我認為我是時候教會我的後輩們了。

就是這樣,自然選擇,前進四!