讓你提前認(rèn)識軟件開發(fā)(4):破除幾個(gè)有關(guān)軟件開發(fā)的錯誤觀念
第1部分 重新認(rèn)識C語言
破除幾個(gè)有關(guān)軟件開發(fā)的錯誤觀念
我們做事情的能力能夠有所提升,觀念的轉(zhuǎn)變是關(guān)鍵
···```。
從學(xué)生轉(zhuǎn)變?yōu)槁殬I(yè)人的過程是很艱難的,因?yàn)槲覀円c自己積累了多年的“老毛病”作斗爭,這些“老毛病”包括:做事拖拉、不守時(shí)、不遵守規(guī)則、怕吃苦等。就像發(fā)射火箭衛(wèi)星一樣,擺脫重力的束縛所花費(fèi)的燃料是最多的,一旦成功,那么以后的流程就會比較輕松了。所謂萬事開頭難
,也就是這個(gè)道理。
那么,要想掌握工作中C語言的基本技能,我們需要破除哪些錯誤觀念呢?
錯誤觀念一:我的C語言學(xué)得很好。
這是幾乎每個(gè)走出學(xué)校的、準(zhǔn)備從事軟件開發(fā)的人都持有的觀念,因?yàn)樗麄冊趯W(xué)??荚嚩嫉昧烁叻?。但想法是美好的,現(xiàn)實(shí)是殘酷的。真正到了工作崗位,你就會發(fā)現(xiàn),自己在學(xué)校學(xué)的那些知識是十分有限的,根本不足以應(yīng)對工作。在中國,還有一個(gè)怪現(xiàn)象就是,學(xué)校里面老師講得比較多的,工作中基本用不到;而老師沒有講,或者是講得比較少的,工作中往往用得比較多。例如,C語言中的指針、結(jié)構(gòu)體這些,學(xué)校里面講得很少或者不深入,大家也沒有太注意,只是應(yīng)付了考試,但工作中我們需要時(shí)時(shí)與它們打交道。你還說自己學(xué)得好嗎?
這又在一定程度上反映了一個(gè)事實(shí):中國學(xué)校教育和社會工作是嚴(yán)重脫節(jié)的。為了個(gè)人的職業(yè)發(fā)展,我們一定要謙虛,要虛心學(xué)習(xí)。
錯誤觀念二:編程是很簡單的事情。
持這種觀點(diǎn)的人,也是受到了學(xué)校教育的影響,因?yàn)闀旧厦娴拇a都很短,而且比較的簡單。但在工作中,也這么簡單嗎?非也。
我總結(jié)了一下,教材上的程序與實(shí)際工作中的程序至少有以下幾個(gè)不同:
第一,代碼行數(shù)的多少。
教材中的代碼一般為幾十行,多則一兩百行,大家當(dāng)然會覺得簡單;而工作中的代碼少則幾千行,多則上萬行,兩者根本不是同一個(gè)數(shù)量級的。我最開始拿到程序的時(shí)候,腦袋就暈了:怎么這么多代碼呢?我從沒看到過。
第二,變量及函數(shù)的命名。
這是兩者的最大不同,也是“專業(yè)”和“山寨”的重要區(qū)別。在教材中,經(jīng)常的命名有這幾個(gè):“int i;”、“char *p;”、“float f;”、“int f(int a, int b)”等等,大家都已經(jīng)習(xí)以為常了。這是教科書對大家的“毒害”。在工作中,我們要嚴(yán)格按照編程規(guī)范來辦事,像上面那些命名方法是嚴(yán)格禁止的。這在以后的文章中會有詳細(xì)的說明。
第三,程序的注釋。
這也是很讓人頭痛的事情。教科書上面的程序比較短,因此注釋少,這也給大家引入了一種錯覺:注釋的多少不重要。但在工作中,我們要時(shí)刻記住:在一些重要的程序語句附近,一定要有注釋。不僅如此,注釋的寫法也有多種,在不同的地方,寫法是不一樣的。簡短而清晰的注釋可以提高大家閱讀代碼的速度,進(jìn)而提高工作效率。
第四,輸入/輸出語句。
在教材上,幾乎每個(gè)程序都有“scanf”和“printf”這兩個(gè)函數(shù),用于讀入和輸出數(shù)據(jù),大家用得是津津有味,如果哪個(gè)程序沒有這兩個(gè)函數(shù),反而會覺得奇怪。但在工作中,確實(shí)是幾乎不存在這兩個(gè)函數(shù)的,而代之以其它方式來進(jìn)行輸入和輸出。在剛開始的時(shí)候,你也許會覺得難以接受,但慢慢熟悉之后,你就會知道這是什么道理了。
第五,程序的版式。
在教科書上,沒有什么版式可言,基本上實(shí)現(xiàn)需要的功能即可。這也給大家?guī)砹苏`解,認(rèn)為編程只注重功能,其它什么的都可以“隨心所欲”。但在工作中,對于程序的版式、布局都有嚴(yán)格規(guī)定的,哪里應(yīng)該縮進(jìn)(以及縮進(jìn)幾個(gè)空格)、哪里應(yīng)該留空格、哪里應(yīng)該留空行,都是要注意的。這就像一個(gè)人一樣,光說自己肚子里“有貨”還不行,還需要注意外表,要讓大家看起來覺得很舒服,所謂的“內(nèi)外兼修”,就是這個(gè)道理。
有關(guān)代碼的編寫細(xì)節(jié),我會在以后的文章中逐一說明。
錯誤觀念三:我只要把代碼寫好就行了,其它的就不用管了。
大家也許會認(rèn)為,開發(fā)工程師只負(fù)責(zé)寫程序,其它的什么測試啊、寫文檔啊,就不必自己操心了。其實(shí)不然。
在工作中,開發(fā)工程師的工作是很多的,編寫代碼只是一小部分。在代碼寫完之后,不能馬上把它交給測試人員來測試。很多新手寫完代碼就了事,這是不對的。我們要首先進(jìn)行自測,這會花費(fèi)比較長的時(shí)間,甚至比寫代碼的時(shí)間還要長很多,等自測無誤之后,才能正式提交。
除了寫代碼和自測,我們還要編寫相關(guān)的開發(fā)文檔。你也許會認(rèn)為寫文檔是文檔工程師的事情,非也,是開發(fā)工程師要干的。所以,開發(fā)人員其實(shí)是很累的。
另外,我們從開始寫代碼到最后提交,都要嚴(yán)格遵守項(xiàng)目的管理流程,也就是一個(gè)軟件的生命周期,不是說想什么時(shí)候做就什么時(shí)候做,不能隨心所欲,要在規(guī)則之下來做事情。有關(guān)這方面,以后也會有專門的文章來說明。
錯誤觀念四:公司會安排好我的職業(yè)道路。
每個(gè)人進(jìn)入公司,都會有相應(yīng)的入職培訓(xùn),這其實(shí)就是公司對應(yīng)屆畢業(yè)生進(jìn)行“洗腦”過程。培訓(xùn)老師會給大家講,公司是多么多么的好,公司會根據(jù)員工的特點(diǎn)來定培養(yǎng)計(jì)劃,讓大家在適合自己的職業(yè)規(guī)范軌道發(fā)展。
但是,當(dāng)你發(fā)現(xiàn)坐在你旁邊的員工已經(jīng)入職10年,可是還做著和你一樣的工作時(shí),你那對公司美好的幻想瞬間就破滅了。確實(shí),不管是在學(xué)校,還是在工作單位,我們不要指望學(xué)校或公司能夠?qū)⑽磥淼牡缆方o安排好,而要靠自己的不斷努力去獲得自己想要的東西。
科學(xué)技術(shù)日新月異,新的軟件開發(fā)技術(shù)層出不窮。從事軟件開發(fā)這一行,我們就要馬不停蹄地學(xué)習(xí),任何寄希望于他人或公司的想法都是不可取的。
還有一些錯誤觀念,像軟件開發(fā)工程師都是牛人、都很受人尊重、工作很輕松且工資很高等等,我就不逐一說明了,大家在網(wǎng)上去百度一下便可知曉。
“磨刀不誤砍柴工”,在樹立了正確的觀念之后,我們學(xué)習(xí)工作中的C語言就會容易多了。
往期精彩
五分鐘讀懂TCP 協(xié)議
為Linux應(yīng)用構(gòu)造有限狀態(tài)機(jī)
專為MCU項(xiàng)目開發(fā)提速的代碼框架BabyOS
嵌入式C語言代碼優(yōu)化方案(深度好文,建議花時(shí)間研讀并收藏)
stm32cubeMX學(xué)習(xí)、USB DFU(Download Firmware Update)固件更新
若覺得本次分享的文章對您有幫助,隨手點(diǎn)[在看]
并轉(zhuǎn)發(fā)分享,也是對我的支持。
免責(zé)聲明:本文內(nèi)容由21ic獲得授權(quán)后發(fā)布,版權(quán)歸原作者所有,本平臺僅提供信息存儲服務(wù)。文章僅代表作者個(gè)人觀點(diǎn),不代表本平臺立場,如有問題,請聯(lián)系我們,謝謝!