天天看點

《C程式員從校園到職場》一2.2 破除錯誤觀念

本節書摘來自異步社群《c程式員從校園到職場》一書中的第2章,第2.2節,作者 周兆熊,更多章節内容可以通路雲栖社群“異步社群”公衆号檢視

要讓我們做事情的能力能夠有所提升,觀念的轉變是關鍵。

從學生轉變為職業人的過程是很艱難的,因為我們要與自己積累了多年的“老毛病”作鬥争,這些“老毛病”包括:做事拖拉、不守時、不遵守規則、怕吃苦等。就像發射火箭衛星一樣,擺脫重力的束縛所花費的燃料是最多的,一旦成功,那麼以後的流程就會比較輕松了。所謂“萬事開頭難”,也就是這個道理。

那麼,要想掌握工作中c語言的基本技能,我們需要破除哪些錯誤觀念呢?如圖2.1所示。

《C程式員從校園到職場》一2.2 破除錯誤觀念

圖2.1 我們需要破除的錯誤觀念

錯誤觀念一:我的c語言學得很好。

很多剛走出學校的、準備從事軟體開發的人都持有這樣的觀念,因為他們在學校考試都得了高分。但想法是美好的,現實是殘酷的。真正到了工作崗位,你就會發現,自己在學校學的那些知識是十分有限的,根本不足以應對工作。例如,c語言中的指針、結構體、異常保護這些,學校裡面講得很少或者不深入,大家也沒有太注意,隻是應付了考試,但工作中我們需要時時與它們打交道。你還說自己學得好嗎?

是以,為了個人的技術積累和職業發展,我們一定要謙虛,要虛心學習。

錯誤觀念二:程式設計是很簡單的事情。

持這種觀點的人,也是受到了學校教育的影響,因為書本上面的代碼都很短,而且比較簡單。但在工作中,也這麼簡單嗎?非也。

我總結了一下,教材上的程式與實際工作中的程式至少有以下幾點不同。

第一,代碼行數的多少。

教材中的代碼一般為幾十行,多則一兩百行,大家當然會覺得簡單;而工作中的代碼少則幾千行,多則上萬行,兩者根本不是同一個數量級的。我最開始拿到程式的時候,腦袋就暈了:怎麼這麼多代碼呢?我從沒看到過。

第二,變量及函數的命名。

這是兩者的最大不同,也是“專業”和“業餘”的重要差別。在教材中,經常的命名有這幾個:“int i;”、“char *p;”、“float f;”、“int f(int a,int b)”等,大家都已經習以為常了。但在實際的開發中,命名方式卻大有不同。在工作中,我們要嚴格按照程式設計規範來辦事,對變量及函數的命名不能想當然。這在後續的章節中會有詳細的說明。

第三,程式的注釋。

這也是很讓人頭痛的事情。教材上面的程式比較短,是以注釋少,這也給大家引入了一種錯覺:注釋的有無和多少不重要。但在工作中,我們要時刻記住:在一些重要的程式語句附近,一定要有注釋。不僅如此,注釋的寫法也有多種,在不同的地方,寫法是不一樣的。簡短而清晰的注釋可以提高大家閱讀代碼的速度,進而提高了工作效率。

第四,輸入/輸出語句。

在教材上,幾乎每個程式都有“scanf”和“printf”這兩個函數,用于讀入和輸出資料,大家用得是津津有味,如果哪個程式沒有這兩個函數,反而會覺得奇怪。但在實際的項目代碼中,幾乎不存在這兩個函數的,而代之以其他方式來進行輸入和輸出。在剛開始的時候,你也許會覺得難以接受,但慢慢熟悉之後,你就會知道這是什麼原因了。

第五,程式的樣式。

在教材上,一段程式沒有什麼樣式可言,隻要實作需要的功能即可。這也給大家帶來了誤解,認為程式設計隻注重功能,其他什麼的都可以“随心所欲”。但在工作中,對于程式的版式、布局都是有嚴格規定的,哪裡應該縮進(以及縮進幾個空格)、哪裡應該留白格、哪裡應該留白行,都是要注意的。這就像一個人一樣,光說自己肚子裡“有貨”還不行,還需要注意外表,要讓大家看起來覺得很舒服,所謂的“内外兼修”,就是這個道理。

錯誤觀念三:我隻要把代碼寫好就行了,其他的就不用管了。

大家也許會認為,開發工程師隻負責寫程式,其他的什麼測試啊、寫文檔啊,就不必自己操心了。其實不然。

在工作中,開發工程師的工作是很多的,編寫代碼隻是一小部分。在編寫代碼之前,我們要對軟體進行詳細設計;在代碼寫完之後,不能馬上把它交給測試人員來測試。很多新手寫完代碼就了事,這是不對的。我們要首先進行自測,這會花費比較長的時間,甚至比寫代碼的時間還要長很多,等自測無誤之後,才能正式送出。

除了寫代碼和自測,我們還要編寫相關的開發文檔。你也許會認為寫文檔是文檔工程師的事情,非也,這是開發工程師要幹的。

另外,我們從開始寫代碼到最後送出,都要嚴格遵守項目的管理流程,不能放任自流,要在規則之下來做事情。

錯誤觀念四:公司會安排好我的職業道路。

每個人進入公司,都會有相應的入職教育訓練,這其實就是公司對應屆畢業生進行所謂的“洗腦”的過程。教育訓練老師會給大家講,公司是多麼多麼好,公司會針對每個員工制定好培養計劃,讓大家在适合自己的職業軌道上發展。

但是,當你發現坐在你旁邊的員工已經入職10年,可是還做着和你一樣的工作時,你對公司美好的幻想瞬間就破滅了。确實,不管是在學校,還是在工作機關,我們不要指望學校或公司能夠将未來的道路給安排好,而要靠自己不斷地努力去實作自身的價值。

科學技術日新月異,新的軟體開發技術層出不窮。從事軟體開發這一行,我們就要馬不停蹄地學習,任何寄希望于他人或公司的想法都是不可取的。

“磨刀不誤砍柴工”,在樹立了正确的觀念之後,我們學習工作中的c語言就容易多了。

繼續閱讀