<th id="ik4gr"><pre id="ik4gr"></pre></th>
<rp id="ik4gr"></rp>
    <dd id="ik4gr"></dd>

  1. <rp id="ik4gr"><object id="ik4gr"><blockquote id="ik4gr"></blockquote></object></rp>
      <rp id="ik4gr"></rp>
        <button id="ik4gr"><acronym id="ik4gr"></acronym></button>
      1. <rp id="ik4gr"><object id="ik4gr"><input id="ik4gr"></input></object></rp>
        1. 杭州嵌入式培訓
          達內杭州嵌入式培訓中心

          13175137725

          C++程序員應該如何進階?

          • 時間:2019-07-03 14:54
          • 發布:轉載
          • 來源:網絡

          作為一個C++程序員應該如何進階?本文我們來普及一下。

          C 語言如何進階(這里指從入門到能開始做工程項目開發)?

          每次被問到這個問題,都有些尷尬,因為表面上是在問 C 語言,但是提問者真正想了解的往往是是以 C 為基礎的職業發展方向,因此就更加不好得回答了。

          總覺得這樣的問題,如果是更有實力的人來回答會更好。但因為頻繁被問到,如果總是打馬虎眼,很容易被誤會為傲慢。所以硬著頭皮還是談一談自己粗淺的認識,希望不要說錯得太離譜招致大家的批評。

          下文談及 Linux 時指的實際是 Linux/Unix 家族的一系列操作系統

          建議二:學會源代碼組織與管理是走入更深入開發的關鍵一步

          Richard Stallman 曾經提醒初入門的程序員——在真實世界的大型項目中去學習編程,而不是僅限于寫一些玩具級的小程序。這會讓你更好的了解軟件開發中的各種問題,從而學習到許多關鍵的知識。

          現實世界的大型(不一定是體積大,也可能是是影響力大,復雜度高)軟件往往要考慮的因素非常多。其中代碼的組織與管理就是第一個問題。

          很多學習一段時間 C 后感覺不錯的朋友剛開始接觸實際的項目時碰到的第一道難關就是不懂源代碼管理——看不懂別人的項目是怎么組織的,也不懂得怎么組織自己的項目。

          為什么要學會源代碼組織與管理呢?因為你要用別人的項目,就必須先從宏觀上對其代碼組織結構建立一個基本的認識;一旦你具有這樣的認識,你就能夠做到許多事情——例如將某個大型項目中的局部進行替換,或者將某些模塊單獨抽出,應用到自己的項目中。又或者實現對大型項目的裁剪從而適應自己的需求等等。

          而即使你不用別人的項目,只做自己的項目,也還要考慮項目長期開發過程中維護便捷與否的問題。缺乏項目組織與管理知識,不僅僅是讀不懂別人的項目,還會導致自己的項目別人也難以讀懂。而且以“土辦法”管理的項目,難免會給人質量低下的第一印象——即使實際上質量不錯。

          因此,學會源代碼組織與管理,是走入更深層次開發的第一步。跨過了這一步,你才真正的走入了真實世界的程序開發。

          建議三:明確 C 的使用范圍,更加深入地了解其局限性也是提升編程水平的關鍵

          C 不是世界上最好的語言,因為根本不存在最好的語言。人們向你推銷一個東西的時候,當然會說它好在哪里;但你真的使用這件東西事,最重要的事情卻是意識到它不好在哪里。在正確的場景下使用正確的工具是生活教會我們的基本知識。你不會用掃把去炒飯,更不會用馬桶去洗臉,正是因為你知道工具的「邊界」在哪里。

          C 很強大,但這種強大的是建立在它的低級性之上的。C 能夠但卻并不適合寫所有類型的軟件,甚至夸張一些而言,大多數類型的軟件都不適合用它來編寫。即使是談及高性能之類的話題,C 也未必是最佳選擇,比如說密集的數據計算,在同樣代碼量的情況下 Fortran 編寫的程序比 C 還要更快。

          C 目前主要是作為上層高級應用的低級支撐而存在的。做個比喻,很像是柱子。一根單獨的柱子通常沒什么用。但是組合在一起卻是支撐建筑的關鍵。按照這樣去理解,也就不難明白其長處和短處了。

          現在大家做軟件,大多是希望為具體的業務服務,這樣才能有人買,有錢賺。但是做業務軟件也不可能是建空中樓閣,還是要依托于一些具體的基礎設施。而 C 扮演的正是業務軟件的支撐者的角色,屬于幕后工作人員。這也就不難解釋為什么 C 程序通常干得都的是系統管理,資源管理,網絡管理之類的「臟活累活」了。

          這樣一來,我們就應當意識到,在一個完整地應用系統中,并不是說只有 C 語言就可以,例如著名的 Emacs 編輯器雖然是基于 C 開發的,但是卻在上層提供了 Lisp 語言作為擴展機制,既保證了較好的性能,又利用 Lisp 極度靈活的特點為后續擴展埋下了伏筆。

          建議一:C 程序開發的首要平臺是 Linux,而不是 Windows

          不要誤解,這么說絕不是說 Windows 不如 Linux,只是站在 C 程序開發的角度從實際工程應用出發來說的。我在 Windows 下編程有一些年頭了,對于這個平臺還是很熟悉的。微軟很了不起,建立起了一整套非常完善的開發體系,但是在這套體系里,C 主要扮演的只是一個歷史遺留角色。建立在 .NET 平臺之上的 C# 才是微軟大力發展的重點,并且已經取得了有目共睹的成就。因此,就算是我自己,如果被要求針對 Windows 平臺開發(非跨平臺應用),應當會更愿意選擇 C# 。

          但微軟只是一家廠商,它并不能代表整個 IT 行業。因此如果只盯著微軟,可能會錯誤的發出 C 江河日下的感慨。真實地情況是,C 在 Linux 下過去一直是,現在也依然是支柱性的語言,就在近幾年,以它為基礎源源不斷的誕生出許多有影響力的軟件,例如大紅大紫的 nginx,風頭正勁的 libuv 等等。(前者是基于 C 的高性能 Web Server,后者是基于 C 的跨平臺高性能網絡庫,node.js 就是在后者基礎上加上 Google v8 引擎實現的)

          為什么 Linux 上能不斷誕生有影響力的 C 程序呢?因為它是 C 程序員的「家」:

          1、為 C 程序員而生——整個 Linux 系統就是以 C 為核心建立的,甚至連文件目錄結構的組織都是為 C 程序開發優化過的,并且有便捷的命令行工具來獲取豐富的開發資源(當然這也正是它對非程序員用戶不友好的根源)

          2、海量資料,hacker 最愛——擁有豐富的技術資料,對渴望深入了解各項技術內部原理的 hacker 提供了極大的便利——可執行文件是怎么構成的?調試器是如何實現的?文件系統的基本原理是什么?所有的這一切都能查到,而且還能獲取到實際的工程級代碼以供研究。

          3、人才匯聚,充滿活力——擁有頂尖的技術社區,每天都在不斷演進變化,參與到這樣的社區中可以避免坐井觀天閉門造車,能夠大大地開拓自己的眼界

          當然,Linux 并非完美無缺,也存在諸多不足。但就 C 程序開發而言,確實是首選平臺。 做個比喻,如果說 C 是一顆有生命力的種子,那么 Linux 就是肥沃的土壤。咱們都說人的發展是內外因共同作用的結果。如果你擁有強烈地求知欲,那么 Linux 是非常棒的選擇。

          以上就是本文為大家分享的內容,希望對大家有所幫助。

          預約申請免費試聽課

          怕錢不夠?就業掙錢后再付學費!    怕學不會?從入學起,達內定制課程!     擔心就業?達內多家實踐企業供你挑選!

          上一篇:互聯網行業薪酬分析,你能拿多少薪資
          下一篇:C/C++程序員,這幾款好用的編譯器推薦給你

          高薪運維工程師都具備哪些特性?

          大學畢業生參加嵌入式培訓班好就業嗎?

          新人如何選擇嵌入式培訓機構?

          學習沒進步、工作沒方法,你也這樣嗎?

          • 掃碼領取資料

            回復關鍵字:視頻資料

            免費領取 達內課程視頻學習資料

          • 視頻學習QQ群

            添加QQ群:1143617948

            免費領取達內課程視頻學習資料

          Copyright ? 2018 Tedu.cn All Rights Reserved 京ICP備08000853號-56 京公網安備 11010802029508號 達內時代科技集團有限公司 版權所有

          選擇城市和中心
          江西省

          貴州省

          廣西省

          海南省

          香蕉视频在线一级a做爰片免费观看视频 欧美成年性色生活片 百度 好搜 搜狗
          <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <文本链> <文本链> <文本链> <文本链> <文本链> <文本链>