C/C++語言的學習方向

這個世界上有太多的坑,如果我們不具備查閱資料的能力和對現實世界的思考能力,入坑是大概率的事情。

C/C++語言能做什麼?C/C++程序員在做什麼?企業需要什麼樣的C/C++程序員?對初學者來說,要搞清楚這些問題並不容易。

一個农民種菜之前,會考慮菜的行情(包括銷量和價錢),如果您打算學習C/C++語言,也應該先了解C/C++程序員的行情。

了解菜的行情要去菜市場,了解C/C++程序員的行情去人才市場,中國最大的IT人才市是前程無憂。

我們先來查一些資料。

一、中國編程語言的排名情況

登錄前程無憂的官網,分別輸入java、C++、python、javascript、.net、C#、PHP、SQL、IOS關鍵字,城市選擇北京、上海、廣州和深圳,查詢到的招聘職位分別是31032、22842、19274、14091、6956、8018、5284、21302、6014個。(這是2020年6月查到的數據,不同時期的查詢結果略有不同)

數據显示企業的JAVA和C++職位比例約6:4,培訓機構的主流課程是JAVA和Python等,進一步導致了C/C++程序員的缺乏。

培訓機構不願意開設C/C++課程,C/C++語言的教學對老師的能力要求非常高,普通講師難以信任。

編程語言的選擇是人生大事,必須慎重,誰都不希望在工作幾年後被迫從一種編程語言轉向另一種編程語言。

JAVA和C/C++是程序員可選的兩個方向(其它編程語言根本不在考慮範圍),無所謂哪一種更好,我個人偏向C/C++,因為JAVA程序員的工作太累了。

更多的人選擇學習JAVA,在較短的時間內就可以上手,從簡單的WEB頁面做起,所見即所得,容易有成就感,但是C/C++不一樣,學生在學完基礎知識后還是不知道它能做什麼,離企業需求仍然差得很遠,堅持下去的人很少,“從入門到放棄”是多數人的無奈的選擇。

二、企業對C/C++程序員的技能要求

從前程無憂的招聘數據看,中國企業對C/C++的技能要求主要有網絡通信、硬件驅動(嵌入式)、數據庫、視頻音頻、網絡遊戲、桌面圖形、機器學習、大數據、物聯網,如下圖。

以上數據可以從前程無憂的官網查詢,分別輸入“C++ 網絡”、“C++ 嵌入式”、“C++ 數據庫”、“C++ 遊戲”等關鍵字,範圍選北京、上海、廣州和深圳。

值得注意的是,近年來被媒體反覆炒作的人工智能、大數據、物聯網、區塊鏈等高大上的概念,企業需求其實很少,現在股票也不抄這個概念了。

輸入“ C++ Linux”關鍵字搜索,結果有9767條記錄,輸入“C++ Windows”關鍵字搜索,只有2500條記錄。這說明windows作為服務器的操作系統,正在被淘汰中。

目前,大部分的學校和培訓機構讓學生windows平台下學習C/C++語言,而企業要求的卻是linux。

我們應該學習主流技術,不能成為非主流,否則有被淘汰的風險。

三、數據比石油更珍貴

在我們的生活中,數據無處不在,但是,常人對它不敏感。

人口戶藉數據在公安局。

駕照數據和車輛數據也在公安局的交警支隊。

醫院保存了每個病人的基本資料和就診數據。每個產婦在醫院生了小孩子,計劃生育部門也會知道,它們與公安局和醫院有聯網交換數據。

銀行有開戶數據,轉帳記錄。

證券公司有行情數據、股東基本數據、持股數據和交易日誌。

電信公司有開戶數據、通話清單、帳單。

電力局有居民的基本數據和用電帳單。

火車票、機票都是數據。

騰訊公司有QQ帳戶數據、微信帳戶數據、聊天日誌、轉帳日誌等。

阿里公司有淘寶帳戶數據,商戶數據,商品數據、交易日誌等。

煤氣公司、自來水公司……

一個人的身高、體重、學歷、年齡是數據。

圖片、視頻、音頻、文章也是數據。

……

四、C/C++程序員在做什麼

用C/C++做桌面程序的比例約11%,其它的C/C++程序都運行在後台Linux服務器上,普通用戶看不見。

在很多培訓機構的教程中,把貪吃蛇、俄羅斯方塊、打地鼠、球球大作戰等程序當成項目實戰,太過兒戲,這些程序的源代碼網上到處都是,真正的程序員不玩這個。

真正的C/C++程序員在工作,掌握的是謀生的技能,不是在玩過家家。

我們每天都在用微信軟件聊天、付款、轉帳等,對普通用戶來說,只看到微信軟件的操作界面,不清楚有後台系統的存在,以轉帳功能為例。

1)付款人在手機微信中輸入轉帳金額和支付密碼;

2)手機微信軟件把轉帳金額和密碼發送給騰訊公司的微信服務器;

3)微信服務器核對用戶的密碼和轉帳金額,向中國銀聯發起轉帳請求,中國銀聯把轉帳請求轉發給付款方的開戶行銀行,開戶銀行從付款人的帳戶中扣除金額。

4)微信服務器把扣款成功信息返回給手機微信軟件,显示轉帳成功。

5)微信服務器向收款人的手機微信軟件發送收錢提醒,收款人點擊收款后,微信服務器把金額存入收款人的微信帳戶中。

在上述轉帳流程中,蘋果手機的微信軟件採用Objective-C語言開發,其它品牌手機的微信軟件採用JAVA開發;微信服務器、中國銀聯和開戶銀行都是非常龐大的系統,系統之間進行了多次數據傳輸,對數據庫進行了查詢、修改和插入操作,都是採用C/C++語言開發,系統運行在UNIX系統上,效率極高、穩定性極強,工程量巨大,是精英程序員們的心血之作。

對騰訊的開發團隊來說,手機上安裝的微信APP軟件,開發的工作量不會超過整個微信項目的5%。

五、總結一下

1)網絡通信和數據處理以C/C++語言為主,數據輸入、數據展示以java為主。

2)作為服務器的操作系統,必選Linux,Windows已被淘汰,以VC、QT等作為C程序的開發環境極不明智。

3)網絡通信是C/C++程序員的必備技能。

4)數據處理是C/C++程序員的必備技能。

5)嵌入式開發的職位比較多,技術上偏硬件(通信、电子等專業),軟件為輔,無硬件基礎者要慎重考慮。

6)放棄幻想,不要追逐那些高大上的潮流(區塊鏈、大數據、人工智能等),也不要聽那些從入門到精通的鬼話,踏實一點,先成為一個普通程序員,這個世界上從來就沒有捷徑。

7)要學會自己查資料,www.51job.com上的信息量非常大,不要視而不見,不能被別人隨便忽悠。

六、關於視頻教程

2019年五月,我計劃錄製C/C++語言基礎知識的視頻課程,打算採用知名的書藉作為教材,在翻閱多本書藉之後,我非常的失望。作為一個骨灰程序員,二十年來,我非常清楚如何成為一個合格的C/C++程序員,包括學習方向、企業的需求和必備技能等。書店裡能買到的C/C++
書藉,絕大部分是教授和講師編寫出來的,普遍存在三個方面的問題:

1)只介紹知識點,不結合應用的場景,示例代碼和課後作業與實際項目開發嚴重脫節;

2)重點內容不突出,C/C++的知識點非常多,很多內容已經過時,在工作中極少使用,這些內容增加了學習的負擔;

3)紙上談編程,不注重培養程序員的感覺。

從職業程序員的角度出發,我把C/C++語言的基礎知識內容寫成文章,在C語言技術網發布,本教程有以下特點:

1)以Linux平台為學習和開發環境,Linux是C/C++程序員的主流工作平台;

2)斷章取義,重點突出實際開發中常用的內容,略過不常用的知識;

3)設計了大量的課後作業,這些作業與實際開發內容息息相關,把培養程序員的感覺放在首位;

4)本教程的目標是為職業C/C++程序員打基礎,不合適在校大學生的畢業考試和計算機等級考試。

七、獲取視頻教程

百萬年薪程序員錄製,《C/C++高性能服務開發基礎》視頻教程已在CSDN學院發布,優惠價12元,地址如下:
https://edu.csdn.net/course/play/29402

八、版權聲明

C語言技術網原創文章,轉載請說明文章的來源、作者和原文的鏈接。

來源:C語言技術網(www.freecplus.net)

作者:碼農有道

本站聲明:網站內容來源於博客園,如有侵權,請聯繫我們,我們將及時處理

【其他文章推薦】

網頁設計公司推薦不同的風格,搶佔消費者視覺第一線

※廣告預算用在刀口上,台北網頁設計公司幫您達到更多曝光效益

※自行創業缺乏曝光? 網頁設計幫您第一時間規劃公司的形象門面

南投搬家公司費用需注意的眉眉角角,別等搬了再說!

新北清潔公司,居家、辦公、裝潢細清專業服務

※教你寫出一流的銷售文案?

您可能也會喜歡…