加入星計(jì)劃,您可以享受以下權(quán)益:

  • 創(chuàng)作內(nèi)容快速變現(xiàn)
  • 行業(yè)影響力擴(kuò)散
  • 作品版權(quán)保護(hù)
  • 300W+ 專業(yè)用戶
  • 1.5W+ 優(yōu)質(zhì)創(chuàng)作者
  • 5000+ 長期合作伙伴
立即加入
  • 正文
  • 相關(guān)推薦
  • 電子產(chǎn)業(yè)圖譜
申請入駐 產(chǎn)業(yè)圖譜

畢設(shè)那一年,我的C語言通關(guān)了

2018/06/01
24
閱讀需 20 分鐘
加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點(diǎn)資訊討論

上個(gè)世紀(jì) 90 年代,對于信息類的學(xué)生來說,哪一門最難學(xué)?


大多數(shù)的答案可能是 C 語言或者是匯編。


為什么?
答案一:因?yàn)樗?ldquo;機(jī)器語言”,非人類交流的語言,邏輯不通、語言不通,人機(jī)交流,談何容易?。
答案二:學(xué)習(xí)“機(jī)器語言”太“費(fèi)力”,費(fèi)財(cái)力、費(fèi)人力。學(xué)習(xí) C 語言勞心傷神還在其次,關(guān)鍵是“僧多肉少”,唯一的機(jī)房,每次上機(jī)不超過 30 人,所以無論春夏秋冬,人氣最高的就是計(jì)算機(jī)系的機(jī)房。

如今回想起來當(dāng)年的情景已經(jīng)歷歷在目:計(jì)算機(jī)的 CPU 是 286 的,操作系統(tǒng)是 DOS 的,上電之后是需要輸入指令才能進(jìn)行操作的,所以擁有一張 C 語言的啟動盤,絕對是最亮的招牌之一。


C 語言,起初語法還簡單,但是越來越難學(xué):前腳剛剛把運(yùn)算的邏輯理順,接下來數(shù)組、指針、結(jié)構(gòu)體,都來湊熱鬧,而且是混在一起使用,更是令人應(yīng)接不暇;最后當(dāng)學(xué)到枚舉和遞歸的時(shí)候,才發(fā)現(xiàn)前面的簡直是小 case。在老師的嚴(yán)格要求下,在助教學(xué)長們的孜孜不倦指導(dǎo)下,戰(zhàn)戰(zhàn)兢兢地提交了機(jī)考試卷,當(dāng)看到現(xiàn)場的考評成績是 80+的那一刻,如蒙大赦,如釋重負(fù),暗自發(fā)誓:此生不再碰 C 語言半個(gè)指頭。

希望是美好的,現(xiàn)實(shí)是很殘酷的,F(xiàn)lag 是很邪性的,總是向著相反的方向發(fā)展。大四選擇畢業(yè)設(shè)計(jì),80%的同學(xué)選擇了設(shè)計(jì),而自己偏偏選擇了論文,選擇論文也就算了,偏偏選擇了一位沒有見過面、沒上過課的年輕博士做指導(dǎo)教師。


博士的研究課題很特別,分配到自己頭上的課題是一個(gè)基于神經(jīng)元網(wǎng)絡(luò)算法的某類化學(xué)反應(yīng)釜的數(shù)學(xué)模型的預(yù)測。拿到課題,如墜深淵:神經(jīng)元是什么鬼,連題目都沒讀懂,如何做畢業(yè)論文呢?但是木已成舟,反悔已經(jīng)來不及了。沒辦法,頂著大大的問號,在校期間泡圖書館、查資料,寒假在家里翻著英文字典,翻譯老師布置的假期作業(yè),所以在新學(xué)期開始的時(shí)候,總算讀懂了題目:不就是用 C 語言編一個(gè)程序,解一個(gè)一階的微分方程嗎?然后根據(jù)輸入變量的情況,調(diào)整相關(guān)的參數(shù),最終實(shí)現(xiàn)收斂的控制。

過程明確了,基礎(chǔ)算法明確了,編程也變得容易多了。但是時(shí)間久遠(yuǎn),編程只記得少許語法了,于是不得不遍歷了圖書館里的關(guān)于算法的書籍,重溫 C 語言,在同組同學(xué)的協(xié)助下,順利完成了基礎(chǔ)程序的編寫與調(diào)試,原以為會苦盡甘來,但殘酷的現(xiàn)實(shí)總是向著期望的方向反其道而行之,運(yùn)算的結(jié)果總是發(fā)散的。


雖然可以在實(shí)驗(yàn)室里暫時(shí)擁有屬于自己的計(jì)算機(jī),雖然 286 已經(jīng)升級位 386,并且增加了 486 的協(xié)處理器,但是面對微分方程的運(yùn)算和每次 100 組數(shù)據(jù)的處理,運(yùn)算的時(shí)間是相當(dāng)“可觀”的——每次半小時(shí),半小時(shí)后發(fā)現(xiàn)數(shù)據(jù)的收斂性不好,再修改程序、修改參數(shù),繼續(xù)運(yùn)算,周而復(fù)始。對于本科生,實(shí)驗(yàn)室只開放半天,一個(gè)半天的時(shí)間,去掉修改程序和糾錯(cuò),能夠有多少“半個(gè)小時(shí)”進(jìn)行“揮霍”呢?白天的時(shí)間不夠用,只好晚上加班,以至于被室友猜忌。


她們一邊云淡風(fēng)輕地繪制著圖紙,一邊“調(diào)笑”:“我們的付同學(xué)進(jìn)入了白加黑的模式,難道是談戀愛了嗎?”


于是一臉嚴(yán)肅地回答:“是的,我在和我的論文談戀愛,我愛它,但是它不愛我。要不改天把它請到寢室來,大家開導(dǎo)一下?”


話音落地,笑聲一片,臉上的陰云散去。

夜不能寐:論文,想說愛你不容易。


我如此辛苦,為什么你給我的結(jié)果是錯(cuò)誤的?發(fā)散的控制模型注定是失敗的!于是山窮水盡之時(shí),導(dǎo)師指點(diǎn)迷津:如果確信自己的數(shù)據(jù)沒有錯(cuò)誤,那么不妨換個(gè)角度思考一下,你見到的未必是正確的,印刷出來的公式也可能是錯(cuò)誤的,追根溯源,找到數(shù)學(xué)模型最原始的出處。


導(dǎo)師指路,立即踐行。


于是冒雨跑到圖書館,再最安靜的一間資料室里,管理員遞過來一本比字典還厚的硬皮書,迅速地翻到數(shù)學(xué)模型的那一頁,只掃了一眼,便如釋重負(fù),在原始的模型中,有一個(gè)變量的符號是相反的。


怎么辦?回實(shí)驗(yàn)室來不及了,所以這里安靜,手工計(jì)算吧。好在是帶著記事本的,好在記事本里有程序的流程圖,沒有計(jì)算機(jī),那么自己當(dāng)一次計(jì)算機(jī)吧,選擇典型的參數(shù),帶入數(shù)據(jù),然后手工解微分方程,獲取一組結(jié)果。結(jié)果出來了,不用描圖也可以看到,那是一組收斂的數(shù)據(jù)。興奮之余,踩著積水,一路狂奔到實(shí)驗(yàn)室。半小時(shí)之后,100 組數(shù)據(jù)在顯示器上呈現(xiàn)出期待依舊的收斂曲線。

難關(guān)攻破了,解決了自己的難題,也解決了同伴的難題,為了快速完成剩余的任務(wù),所以分工合作,坦誠相待,用現(xiàn)在的流行語來說,就是資源共享。資源共享的結(jié)果,事實(shí)再次證明:Two heads are better than one。


合作的結(jié)果也是 better:
4000 多行 C 語言代碼,構(gòu)建起來的數(shù)學(xué)模型幾乎是完美的,兩個(gè)人的論文成績都是良好;
4000 多行 C 語言代碼,構(gòu)建的過程是痛苦的,但是經(jīng)過痛苦的磨練,C 語言的編程通關(guān)了,以至于 4 年之后,僅憑 C 語言的優(yōu)勢,便敲開了上市公司研發(fā)部的大門。

與非網(wǎng)原創(chuàng)內(nèi)容,未經(jīng)允許,不得轉(zhuǎn)載!

相關(guān)推薦

電子產(chǎn)業(yè)圖譜

1996畢業(yè)于華東理工大學(xué)自控系,同年7月進(jìn)入某大型國企擔(dān)任電氣員。2000年轉(zhuǎn)行從事硬件研發(fā)相關(guān)工作;后從事RFID相關(guān)產(chǎn)品的研發(fā)、設(shè)計(jì),曾參與中國自動識別協(xié)會RFID行業(yè)標(biāo)準(zhǔn)的起草;歷任硬件工程師、主管設(shè)計(jì)師、項(xiàng)目經(jīng)理、部門經(jīng)理;2012年至今,就職于沈陽工學(xué)院,擔(dān)任電子信息工程專業(yè)教師,研究方向:自動識別技術(shù)。已經(jīng)出版教材《自動識別技術(shù)概論》,職場故事《51的蛻變 》。