一個人應該具備對事物的思考能力,否則容易被忽悠。對大部分未入門或剛入門的菜鳥來說,很難搞明白C語言能做什麼和C程式設計師在做什麼這兩個問題。
如果你打算種菜,必須先了解行情(包括銷量和價錢),如果你打算學習C語言,也應該先了解C程式設計師的行情。
了解青菜的行情要去菜市場,了解C程式設計師的行情要去人才市場。
我們先來查一些資料。
C/C++與JAVA職位分析
登錄前程無憂的官網,分別輸入java和C++關鍵字,城市選擇北京、上海、廣州和深圳,查詢到的招聘職位分別是3w個和2w個。
數據顯示企業的JAVA和C++職位比例約6:4,培訓機構的主流課程是JAVA或根本沒有C/C++課程,進一步導致了C/C++程式設計師的稀缺,薪水較高。
程式語言的選擇是人生大事,要慎重。JAVA和C/C++是程式設計師可選的兩個方向(其它程式語言根本不在考慮範圍),無所謂哪一種更好,我個人偏向C/C++,因為JAVA程式設計師的工作太累了。
更多的人選擇學習JAVA,在較短的時間內就可以上手,做一些簡單的web頁面,所見即所得,容易有成就感,但是C/C++不一樣,學生在學完基礎知識後還是不知道它能做什麼,離企業需求仍然差得很遠,堅持下去的人很少,「從入門到放棄」是多數人的無奈的選擇。
企業對C程式設計師的技能要求
從前程無憂的招聘數據看,中國企業對C/C++的應用需求主要有網絡通信、硬體驅動(嵌入式)、數據處理、音頻視頻、網路遊戲、桌面圖形、機器學習、大數據、物聯網,以上數據可以從前程無憂的官網查詢,分別輸入「C++ 網絡」、「C++ 嵌入式」、「C++ 資料庫」、「C++ 遊戲」等關鍵字,範圍選北京、上海、廣州和深圳。值得注意的是,近年來被媒體反覆炒作的人工智慧、大數據、物聯網、區塊鏈等高大上的概念,企業需求其實很少,現在股票也不抄這個概念了。
數據無處不在
在我們的生活中,數據無處不在,只是普通人對它不敏感。
人口戶藉數據在公安局。
駕照數據和車輛數據也在公安局的交警支隊。
醫院保存了每個病人的基本資料和就診數據。每個產婦在醫院生了小孩子,計劃生育部門也會知道,它們與公安局和醫院有聯網交換數據。
我們在銀行有開戶數據,交易日誌。
證券公司有行情數據、股東基本數據、持股數據和交易日誌。
移動公司有我們的開戶數據、通話清單、月帳單。
電力局有居民的基本數據和用電帳單。
火車票、機票都是數據。
騰訊公司有QQ帳戶數據、微信帳戶數據、聊天日誌、轉帳日誌等。
阿里公司有淘寶帳戶數據,商戶數據,商品數據、交易日誌等。
煤氣公司、自來水公司……
我想不出哪個行業沒有數據。
一個人的身高、體重、學歷、年齡是數據。
圖片、視頻、音頻、文章也是數據。
C程式設計師在做什麼
用C/C++做桌面程序的比例約11%,其它的C/C++程序都運行在後台Linux伺服器上,普通用戶沒有感知。在很多培訓機構的教程中,把貪吃蛇、打地鼠、球球大作戰等程序當成項目實戰,太過兒戲,這些程序的原始碼網上到處都是,真正的程式設計師不玩這個。
真正的C程式設計師在工作,掌握的是謀生的技能,不是在玩過家家。
我們每天都在用微信軟體聊天、付款、轉帳等,對普通用戶來說,只看到微信軟體的操作介面,不清楚有後台系統的存在,以轉帳功能為例。
1)付款人在手機微信中輸入轉帳金額和支付密碼;
2)手機微信軟體把轉帳金額和密碼發送給騰訊公司的微信伺服器;
3)微信伺服器核對用戶的密碼和轉帳金額,向中國銀聯發起轉帳請求,中國銀聯把轉帳請求轉發給付款方的開戶行銀行,開戶銀行從付款人的帳戶中扣除金額。
4)微信伺服器把扣款成功信息返回給手機微信軟體,顯示轉帳成功。
5)微信伺服器向收款人的手機微信軟體發送收錢提醒,收款人點擊收款後,微信伺服器把金額存入收款人的微信帳戶中。
在上述轉帳流程中,蘋果手機的微信軟體採用C++語言開發,其它品牌手機的微信軟體採用JAVA開發;微信伺服器、中國銀聯和開戶銀行都是非常龐大的系統,系統之間進行了多次數據傳輸,對資料庫進行了查詢、修改和插入操作,都是採用C/C++語言開發,系統運行在UNIX系統上,效率極高、穩定性極強,工程量巨大,是精英程式設計師們的心血之作。
小結
1、 數據通信和數據處理以C語言為主,數據輸入、數據展示以java為主。
2、作為伺服器的作業系統,必選Linux,Windows已被淘汰,以VC、QT等作為C程序的開發環境極不明智。
3、數據通信是C程式設計師的必備技能。
4、數據處理是C程式設計師的必備技能。
5、嵌入式開發的職位比較多,但是,在硬體產品中,嵌入式軟體是硬體產品的附屬模塊,技術含量低,程式設計師工資不高。
6、放棄幻想,不要追逐那些高大上的潮流(區塊鏈、大數據、人工智慧等),也不要聽那些從入門到精通的鬼話,踏實一點,先成為一個普通程式設計師,這個世界上從來就沒有捷徑。
7、要學會自己查資料,前程無憂上的信息量非常大,不要視而不見,不能被別人隨便忽悠。
學習的難度大、需要注意的點也多久註定c/c++程式設計師在工作中的待遇相對會好很多,也是最不可缺少的一個份子,當然高難度也是越來越多的人從入門到入土,市面上的學習書籍繁多兒雜亂,很多其實不適合初學或者基礎不好同學,這裡也是幫助大家整理看了一些資料,項目實戰的講解,希望能夠幫助大家,感興趣的可以私聊分享。
新的一年希望大家能夠堅持學習,在這個寒假也能有所收穫,加油,夢想需要一步一個腳印才能成功。