⑴ C語言 高級程序員進
學習過程中,最主要的並不是只花心思在做題上。應該先把C語言基礎語法,基礎演算法理解透徹,學會用計算機的思維去理解問題。比如在內存分配上,從抽象上和邏輯上進行思考。
建議把C語言的基礎語法和常用演算法看的透徹些,看熟練後,開始專注書上的例子,看例子是如何執行的。在上機練習時,多用斷點調試,以便跟蹤代碼的執行過程,這對你熟練C語言有很大幫助。
其實C語言的學習過程,就是把人的思維方式轉變為計算機的思維方式(過程編程)。如果是OOP的話,就需要讓計算機知道人的思維。
⑵ 請問想成為C程序員,需要具備C語言中的那些知識
這個問題好,知道是為了什麼而工作,奮斗有目的,具備知識才去找工作,而不是千篇一律的「C程序員待遇如何啊,能不能賺錢」之類。
我也是計算機專業。C語言演算法語言的熟練僅僅是入門。c僅僅是操作底層的,主要作用就是契合硬體跟分配內存,最最主要目的是提高程序運行速度。
c語言要跟C++語言搭配。C操作低級硬體訪問,C++提供高級抽象。C語言要認真學,一定一定要扎實,C++學習就要掌握很多面向對象的編程技術,說白了考慮的是演算法。學程序,學的就是編程思想,演算法很重要。
c語言跟C++面向的不是java之類的,java hadrop等語言主要目的是連接,不針對硬體的快速量產的軟體,所有java之類語言速度慢不安全,僅僅適合資料庫管理跟面向普通民用。c語言類高效快速安全,並且節省硬體,追求穩定,主要就是工業生產了,面向的主要對象就是工廠。寫winCE,pda或者轉硬體走嵌入式,單片機,都是你以後要選擇要走的路。到底怎麼走完全看你自己。
推薦的書就一本,C++ primer plus。搞明白這本書,對你很有用。
還有就是,得學數學。函數,方程是必須的。要走C++游戲編程還要學扎實物理,比如曲面建模,頂點運算,三角形等等。完全看需分配。當然,學完那本書,你自己就有了思路。
竟然三年前發的問題,不好意思。可能你已轉行或者已經有所成就,我的回答僅僅坐個參考
⑶ 全國計算機軟體水平考試之高級程序員
不曉得你有沒有具體的去了解過,我本人和你的情況也差不多,自己對這方面也比較感興趣,所以也考了幾個證,簡單的和你說一下。
1、軟體設計師。
說實話,你可以先去考試中心的網站了解一下,至少我當時是還沒有高級程序員這個說法,只有初級程序員,上去就是軟體設計師了。我覺得你的意思應該和軟體設計師差不多。考這個東西也不難,編程的思想主要是考察你的數據結構知識怎麼樣,都是非常基礎的。他不在乎你會哪一種語言,只要會一個就可以了。相信你看了這么多,已經有一定的認識了。其實不管什麼語言都是差不多的,程序的核心還是數據結構,語言只是一個工具而已。像軟體設計師的考卷上最後就有3道選做題,就是不同的語言,你只要會其中的一種就可以了。語言不在於多,而在於精。我想這對任何一門課程的學習都是一樣的。
2、感覺你自己前後說的都不一致。所謂的國家計算機二級以及三級四級,其實對於真正的計算機學院學生他們都不考的,因為對他們來說太簡單了。而這個和我上面說的軟體設計師又不是一回事了。
3、考這些考試都沒有專業和工作經驗的要求,你想考就可以報,工作以後想考還是可以報。
4、關於找工作。我想說的是如果僅僅憑一個證書就想進入該行業工作還是比較難的,除非你還有相關的工作經驗或者項目經驗。比如你可以找一個該行業的公司進去實習,參與一些項目。對找工作來說這些證書其實說實話含金量都不是很高的。思科的一些認證考試還是非常有含金量的,那個對找工作有幫助,但是像你不是軟體專業學生,想通過那個認證的話,自己就要自學很多課程,還要參加外面的輔導班才行。不過剛開始你先考考這些個軟體設計師,網路工程師什麼的,對你後面的學習理解也很有幫助。
5、我個人建議你如果基礎不是特別好的話,可以先考國家計算機等級考試,再考軟體設計師,網路工程師,最後再考慮思科認證。國家等級考試非常簡單,隨便弄個C語言書,再加一個考試輔導就可以了。軟體設計師和網路工程師可以參考各省的人事考試網,上面有各類指定教材,參考輔導書,非常詳細。
6、個人認為面試的時候網路工程師很有用。畢竟考察編程能力需要你動手寫,而計算機網路知識你卻可以和別人聊。
就這么多了,希望對你有用。
⑷ 什麼才算是「高級」c/c++程序員
二樓的說法上我不明白;
只有,
初級的才有 程序員
中級的有 軟體設計師
高級的有 系統分析師
到底是那個
我想那應是熟練的程序員吧
⑸ 高級程序員 具體有哪些要求
綜合的,軟硬通吃,還要了解初部的網路知識。但如果是基礎程序設計員的話對計算機原理要深入學習
⑹ 一般需要多少時間才能成為高級C語言程序員
這個要看個人c也分c和c++,時間的話看你打算下多少功夫了
⑺ c/c++程序員的平常工作是怎麼樣的。
程序員是從事程序開發、維護的專業人員。一般我們將程序員分為程序設計人員和程序編碼員,但兩者的界限並不非常清楚,特別是在中國。
作一個真正合格的程序員,應該具有的素質。
1:團隊精神和協作能力
團隊精神和寫作能力是作為一個程序員應具備的最基本的素質。軟體工程已經提了將近三十年了,當今的軟體開發已經不是編程了,而是工程。獨行俠可以寫一些程序也能賺錢發財,但是進入研發團隊,從事商業化和產品化的開發任務,就必須具備這種素質。可以毫不誇張的說這種素質是一個程序員乃至一個團隊的安身立命之本。
2:文檔習慣
文檔是一個軟體系統的生命力。一個公司的產品再好、技術含量再高,如果沒有缺乏文檔,知識就沒有繼承,公司還是一個來料加工的軟體作坊。作為代碼程序員,必須將30%的工作時間寫用於技術文檔。沒有文檔的程序員勢必會被淘汰。
3:規范化的代碼編寫習慣
知名軟體公司的代碼的變數命名、注釋格式,甚至嵌套中行縮進的長度和函數間的空行數字都有明確規定,良好的編寫習慣,不但有助於代碼的移植和糾錯,也有助於不同技術人員之間的協作。 一些所謂的高手甚至叫囂高手寫的代碼一般人看不懂,我只能說他不是一名合格的程序員。
4:需求理解能力
程序員要能正確理解任務單中描述的需求。在這里要明確一點,程序員不僅僅要注意到軟體的功能需求,還應注意軟體的性能需求,要能正確評估自己的模塊對整個項目中的影響及潛在的威脅,如果有著兩到三年項目經驗的熟練程序員對這一點沒有體會的話,只能說明他或許是認真工作過,但是沒有用心工作。
5:模塊化思維能力
作為一個優秀的程序員,他的思想不能在局限當前的工作任務裡面,要想想看自己寫的模塊是否可以脫離當前系統存在,通過簡單的封裝在其他系統中或其他模塊中直接使用。這樣做可以使代碼能重復利用,減少重復的勞動,也能是系統結構越趨合理。模塊化思維能力的提高是一個程序員的技術水平提高的一項重要指標。
6:測試習慣
測試是軟體工程質量保證的重要環節,但是測試不僅僅是測試工程師的工作,而是每個程序員的一種基本職責。程序員要認識測試不僅是正常的程序調試,而要是要進行有目的有針對性的異常調用測試,這一點要結合需求理解能力。
7:學習和總結的能力
程序員是很容易被淘汰的職業,所以要善於學習總結。許多程序員喜歡盲目追求一些編碼的小技巧,這樣的技術人員無論學了多少語言,代碼寫起來多熟練,我們只能說他是一名熟練的代碼民工,他永遠都不會有質的提高。一個善於學習的程序員會經常總結自己的技術水平,對自己的技術層面要有良好的定位,這樣才能有目的地提高自己。這樣才能逐步提高,從程序員升級為軟體設計師、系統分析員、項目經理。
作為高級程序員,乃至於設計師而言,除了應該具備上述全部素質之外,還需要具備以下素質:
1、 需求分析能力
2、 整體框架能力
3、 流程處理能力
4、 模塊分解能力
5、 整體項目評估能力
6、 團隊組織管理能力
⑻ C程序員怎麼學習
一、知識點學習
①字元串
1、strlen()函數的返回值是什麼類型的?
2、字元串strlen() 的值,是否和他占據的內存空間相同?
3、你是否知道strcpy 函數存在的潛在風險?如何避免?
4、如果一個字元串沒有字元串結束符,而調用str 開頭的庫函數,會發生什麼?
5、Strcpy(),strcat(),strcmp(),strncpy(),strncat(),strncmp()內部到底是如何運行的?這些函數到底對源字元串和目標字元串做了些什麼?你是否觀察過它們運行時兩個字元串內存的變化?
6、上面這些函數使用時,各有哪些需要注意的地方?
7、你會幾種字元串查找操作?
8、c語言中有字元串這個數據類型嗎?
9、對字元串進行操作的時候,是否為字元串結尾符預留存儲位置?不然的話容易造成非常訪問內存。
二、數組
1、你肯定知道,定義「int a[10]; 」, a[10] 這個元素是無效的。
2、你知道幾種數組初始化的方法?
3、數組和指針有千絲萬縷的聯系而又不同,你是否對他們在不同情況下的使用進行過詳細的總結?
4、「int calendar[10][20]; 」,這是一個什麼樣的數組?它擁有 10 數組類型的元素,還是 20 個?
5、「int a[10]; 」,數組名 a 在本質上是一個什麼?你是否列印過 a 的值?
6、你知道幾種獲取數組某元素的方法?
7、指針和數組相同嗎?什麼時候相同?什麼時候不同?
8、用指針和下標訪問數組元素,那種方式更快?
三、結構體
1、你知道什麼是位域結構體嗎?如何定義它?如何使用它?
2、你知道位元組對齊對結構體佔用內存空間大小的影響嗎?如何計算結構體佔用內存的大小?
四、宏
1、你知道宏的本質是什麼嗎?函數?語句?類型定義?或者其他?
2、你知道語言設計者為什麼設計宏嗎?這些原因目前是否仍然成立?
3、你會設計帶有參數的宏嗎?
4、你知道使用宏的參數的的時候的注意事項嗎?
5、你會設計帶有可變參數的宏嗎?
6、你知道使用宏有什麼劣勢嗎?
7、你有沒有更好的替代方案?
五、枚舉
1、是否可以指定枚舉中各項的值?
2、如果不指定值,枚舉的第一個值是多少?
3、枚舉的值是否可以是負數?
4、定義枚舉的時候,你是否專門定義了枚舉的最小值和最大值?
六、switch
1、switch©中的 c 的數據類型有哪些?
2、你是否在所有的switch 中都加了 default 語句?
3、是否在所有的case 中都加了 break 語句(一般情況的做法)?如果你不加 break ,將會發生什麼?
七、static
1、static的三個主要作用是什麼?
2、static的修飾的局部變數是保存在什麼地方的?全局變數哪 ?
3、static修飾的全局變數和函數,在其他的文件中是否可以訪問?如何訪問?
4、你知道static 是 c 語言中實現封裝和隱藏的利器嗎?你是否經常使用?
5、定義在不同源文件中的static 全局變數,編譯器是否允許他們的變數名稱相同?他們在內存中的地址是否相同?函數那?
八、const
1、你是否經常使用const 來表明不能夠被更改的變數?
2、你是否經常使用const 常量來代替宏?
3、下面四種情況,你知道是各表示什麼意思嗎?
int i_value= 10;
const int* pvalue = & i_value
int const *pvalue = & i_value
int* const pvalue=& i_value
const int* const pvalue =& i_value
4、你知道const 常量如何初始化嗎?
九、sizeof
1、對於字元數組,strlen 和 sizeof 的值是否相同?
2、S izeof本質上是函數還是宏?
3、S izeof的返回值是什麼類型?
十、指針
1、「int *p; 」 &p , p , *p 他們的值分別表示什麼含義?
2、你定義的指針初始化了沒?
3、你理解指針的指針的概念嗎?你會使用嗎?
4、「int *pi_value; pi_value = 0x100000; 」 pi_value + 1 的值是是多少?
5、你會定義函數指針嗎?
6、你會使用函數指針調用函數嗎?
7、關於指針和數組,請參見知識點數組。
十一、動態分配內存
1、動態分配的內存是保存在什麼地方的?
2、什麼情況下使用動態分配內存?
3、動態申請內存一定要釋放,否則會內存泄露。你是否使用過內存檢測工具?
十二、函數
1、如何查看函數在內存中的地址?
2、如何給一個函數指針賦值?
3、你是否會定義可變入參函數
4、你是否可以區分函數的形參與實參?
5、如何定義函數名,以准確的表達函數的用途?
6、你是否使用const 來修飾函數入參和返回值,以表的特定的含義?
7、遞歸如何使用?
十三、變數
1、全局變數,局部變數,常量分別保存在內存中的什麼地方?
2、不同類型的變數,你是否知道其作用域?
3、全局變數和局部變數是否可以重名?你是否在這樣做?
4、局部變數在函數退出後是否有效,為什麼?
5、全局變數為什麼不允許定義在頭文件中?有何危害?
十四、連接(Linux)
1、鏈接位於編譯過程的那個階段?
2、動態鏈接庫和靜態鏈接庫使用時有何區別?
3、如何 對 動態鏈接庫 進行 動態載入 (不用重啟程序而載入鏈接庫)?
4、動態鏈接有何優點?
5、動態鏈接庫中是否定義了非static 的全局變數?你是否知道這是一個非常危險的動作?
6、動態庫中的全局變數(非static )和函數(非 static )是否可以和上層全局變數和函數重名?重名後會發生什麼事情?
十五、運行時的數據結構(Linux)
1、你知道什麼是段的概念嗎?
2、可執行程序可以分為幾個段?每個段保存的是什麼內容?
3、如何查看可執行程序各個段的大小?
4、當函數被調用時發生了什麼?
5、你有沒有試過程序的棧空間最大有多大?程序超過此大小會發生什麼?
6、你使用的系統的棧是向下生長的,還是向上生長的?
十六、Include
1、如何避免對同一頭文件的多次include ?
十七、聲明
1、什麼是 聲明 ,什麼是定義?
2、你是否會運用c 語言聲明的優先順序規則?
十八、關於 復雜度 :
1、軟體的首要技術使命 是 管理復雜度。
2、優秀程序員的 一個特質 是將復雜的事情簡單化,而非將簡單的問題復雜化。所以,他們一般會選擇簡單的解決方案。
3、極盡機巧,復雜的解決方案,除了將新手搞得暈頭轉向之外,別無他用。
4、閱讀優秀程序員的代碼,是一種享受,你很少遇到思維的阻力,你可以盡情的享受簡單之美。
⑼ 如何才能成為高級程序員C語言的
個人感覺
各種語言都是相通的,一種會了其他的真的都沒什麼,你說你過了C二級,很不好意思
我不得不潑你涼水在真正從事軟體開發的人中,考了軟體設計師都可能是個初學者
更何況是c二級呢?你看的那本書僅僅是基本的語法
編程的入門部分!以後還有很多東西要你學的(我單指C語言這塊!)數據結構很重要的!建議你不僅要看完,而且要多看幾遍
書上的演算法最好能自己編程實現!圖的部分可能比較麻煩你可以暫時作為了解!鏈表,順序表,二叉樹,排序查找演算法等等都是非常非常重要的!
⑽ C 程序員和JAVA 高級程序員哪個比較難學
C絕對比java難,一個面向過程,一個面向對象。
學c,要有很強的邏輯思維;
java相對就容易好多了,很多方法,人家都幫你做好了,你調用就可以了。