《電子技術應用》
您所在的位置:首頁 > 嵌入式技術 > 解決方案 > 編程語言越來越發達,程序員還要不要學習匯編語言?

編程語言越來越發達,程序員還要不要學習匯編語言?

2017-06-22
關鍵詞: 匯編語言

鄰居的一位同學快畢業了,簽約到一家從事物聯網的公司,計劃是從事stm32芯片相關產品的開發。他找到我問:“駱駝,我需不需要學習一下匯編?”西安一所知名大學的畢業生來問我這個問題,我有點不知道如何回答。他在大學期間老師應該對職業規劃作出了明確的指導才對,如今來問我這個問題是不是有點晚?話說西安地處內陸,人們的思想有些保守,發展有些滯后,但是如今互聯網如此發達,很多問題其實他可以通過網絡了解。

2013年時,我到西安一家電力企業工作,部門經理向我提了一個要求---指導硬件部門的同事學習一下C語言。我的頂頭上司,也就我的這個部門經理,工作十幾年了,一直使用匯編語言編程,而且竟然完成了公司復雜的開發任務。另一位在單位工作5年多的女同事使用的也是匯編,新招的一個研究生只是負責硬件的設計。另外兩名同事也是剛畢業的,我成為單位唯一有C語言編程基礎的人。

說起我從匯編向C語言的轉型,還有一個小插曲。我畢業后做的第一個項目也是以匯編語言作為工具開始的,但是在項目進行到三分之一時換了領導,新任的領導要求我們必須使用C作為開發工具,我只好被迫轉型。從此以后,我再也沒有使用匯編完成過一個項目,時隔多年除了一些基礎概念,匯編語言也基本忘光了。后來的工作中我再也沒有接觸過匯編。目前看來,隨著編程語言的發展,人們對高級語言的接受程度越來越高,未來貌似也不會有機會使用匯編了。現在我在做liunx項目使用的是C++,但是我當年可是花費了
很多時間去學習匯編的,真是讓人懊惱奧不已。

說起那次被迫轉向C語言,其實我當時對這件事情非常排斥。但是剛到新單位工作,領導又如此重視這件事情,實在不好意思拒絕。這個項目結束以后,又過了半年單位就徹底放棄了匯編。我因為任務完成的出色還受到了單位的獎勵。
 


現在工作的單位還有幾款產品是使用匯編開發的。有一天在外地工作的一位銷售經理回西安了,滿口稱贊那款產品。

“看看人家匯編代碼,寫的多規整,沒有一行多余的……”

一個現象的出現總是有很多背景因素。當年之所以選擇匯編有很大歷史緣故,一是單片機資源問題,二是C語言開發人員的儲備問題。至于“沒有一行多余的”,只能說這位同事不懂匯編,甚至可能不懂程序。程序為了健壯總會有一些冗余的代碼。

而且編程的問題不僅僅體現在語言上,并且語言所占比例非常少,而且隨著工作的時間變長,會發現語言所占的比例越來越少。最后就會出現根本不是問題。如果您去面試一份工作機會,面試題中考察語言成份的問題越多,說明這份工作越沒有技術含量。


一個程序員價值應該體現在解決問題的能力上。對某一方面知識掌握只是其解決問題能力的一小部分,這是一個綜合的問題。而且有一個很奇怪的現象,就是經常使用的知識也只占我們所學的專業知識的一部分。但是其它知識即使不用,也不能缺失。在平時可能體現不出任何問題,但是在關鍵的時候就有了明顯的區別,所以程序員是一個綜合知識結構體。


第一,首先必須擁有良好的專業背景知識。對計算機原理、計算機體系機構有一個較好的了解。知道計算機為什么能自動的處理、解決問題,其優越性和局限性是什么。這個問題在本科或者專科階段就應該非常明確了,但是在學校的課程比較簡單,所以只能大概了解一下了。

不過要有一定的感覺,比如明白申明得一個變量與物理內存的之間的關系。雖然這一點看似非常簡單,但是也有工作很長時間的工程師不是太明白。

第二,如果從事單片機或嵌入式的程序開發,對硬件必須有一定的了解。程序是在硬件中運行的,如果程序運行結果與預計的有區別,必須作出一個準確判斷,到底是硬件問題還是軟件問題?并且有一定解決硬件問題的能力。這就要求程序員必須對元器件、數字電路、模擬電路有一定掌握。

第三,比較深刻理解了《數據結構》,有可能工作很長時間也沒有使用過二叉樹、鏈表、隊列等等。但是《數據結構》是以計算機為工具解決問題總體介紹,即使我們不是明確使用了其中內容,但是書中的概念和解決問題方法總是影響我們的編程思路和解決問題的方法。

第四,了解一種編程語言,并且能完成日常性工作。之所以是“了解一種語言”,是因為“掌握”一種語言牽扯的問題太多。合格的程序員需要一個養成的過程,需要一個不短時間的工作過程,這個過程時間遠比學習的時間長。也就是只有在工作中才能產生合格的程序員。但是也沒有什么要特別擔心的,學習也可以產生能工作的程序員。

 


第五,具有良好的編程風格,一個程序員風格到底怎么樣,不是太容易界定。但是良好的編程風格有明確的體現。程序的容錯性、擴展性、一致性、復用性都必須有非常好體現。這個更是不容易通過短時間的學習獲得。日雕月磨通過一段不短時間的學習,一部分人可以是做到的。


當然還有其他方面的要求,比如文檔處理能力,行業應用知識等等。這個是列舉不完的。程序員的群體非常特殊,水平高程序員可以完成一件普通的工作,水平低程序員也同樣可以完成一件普通的工作。只是使用時間、資源不同,以及完成質量不太一樣。但是如果目標是為了完成工作任務,其實有可能都是可以的。這就給人一個非常不好的錯覺,就是程序員的工作技術含量不高。很多企業不愿意花更多的錢來聘請技術水平更好的程序員。可以說這種觀點非常不靠譜,或者管理者沒有沒有仔細核算成本。一個項目三個月完成、四個月完成、六個月完成,企業不是僅僅多付出一點點工資。而是牽扯到產品上市延遲、辦公場地、行政管理等費用支出,如果與涉及到與其他部門協調問題,更是麻煩。如果產品因為程序可靠性低的問題,在后期維護上成本支出更大。這些費用應該是程序工資10倍甚至更多。


其實我不太想告訴鄰居到底是“學”或者“不學”匯編語言。一個合格程序員的也不僅僅是多學一兩門語言的問題。而且泛泛學習某種語言也不是太難的事情,有一句比較刻薄的話---“如果你已經會使用一種語言編程。另外一種也就半個小時至兩天就可以上手。否則就是...”我懷疑這句話是一位非常自信的程序員提出的,但是確實有參考性。


本站內容除特別聲明的原創文章之外,轉載內容只為傳遞更多信息,并不代表本網站贊同其觀點。轉載的所有的文章、圖片、音/視頻文件等資料的版權歸版權所有權人所有。本站采用的非本站原創文章及圖片等內容無法一一聯系確認版權者。如涉及作品內容、版權和其它問題,請及時通過電子郵件或電話通知我們,以便迅速采取適當措施,避免給雙方造成不必要的經濟損失。聯系電話:010-82306118;郵箱:aet@chinaaet.com。
主站蜘蛛池模板: 国产精品美脚玉足脚交欧美| 蜜桃成熟时仙子| 扒开双腿疯狂进出爽爽爽动态图| 亚洲欧美成人综合久久久| 色婷婷综合久久久久中文字幕| 国产精品无码免费播放| 一级毛片人与动免费观看| 精品久久久噜噜噜久久久| 国产成人综合在线视频| 中文字幕无码日韩欧毛| 欧美另类videovideosex| 免费香蕉依人在线视频久| 97精品国产一区二区三区| 欧洲肉欲K8播放毛片| 国产一区二区三区视频在线观看| 6080夜福利| 尤物视频193.com| 久久国产乱子伦精品免费强| 欧美日本国产VA高清CABAL| 八区精品色欲人妻综合网| 青青国产在线播放| 国产精品内射视频免费| jizz免费在线观看| 扒开双腿疯狂进出爽爽动态图| 五月综合激情网| 欧美激情一区二区三区在线| 免费福利在线视频| 视频一区中文字幕| 国产男女猛视频在线观看网站| a级日本理论片在线播放| 成人麻豆日韩在无码视频| 久久精品人人槡人妻人人玩AV | 在线观看人成视频免费| 两夫妇交换的一天| 深夜福利视频导航| 中文字幕网站在线观看| a毛片在线还看免费网站| 男人操女人视频网站| 国产三级一区二区三区| 人人添人人澡人人澡人人人爽| 国内精品免费视频自在线|