c/c++程序员的技术栈
在當(dāng)今的互聯(lián)網(wǎng)時代, java, ?安卓, ios, 大行其道,而c/c++卻顯得越來越落寞。 其實這并不是c/c++程序員本身的問題,而是這是一個產(chǎn)品快速響應(yīng)市場的年代。用過c/c++的人都知道, 使用c/c++直接去開發(fā)一款產(chǎn)品是多么的痛苦。而像java這樣的高級語言,擁有各種框架 各種庫,這是c/c++望塵莫及的地方。那么c/c++存在的意義是什么呢?那就是在其他語言不能做或者不適合做的地方。像那些可用或者可不用c/c++的地方, c/c++基本都退出了。 而在這幾個領(lǐng)域c/c++依然是不可替代的, 分別是: 服務(wù)端,游戲, 音視頻, 圖像圖像 以及嵌入式與驅(qū)動等。 那么作為一個c/c++程序員應(yīng)該具備哪些技能, 才能顯示出自己的價值呢?
1 ?c/c++語言,面向?qū)ο? stl等
2 ?linux操作系統(tǒng)
3 ?數(shù)據(jù)結(jié)構(gòu)與算法
4 ?網(wǎng)絡(luò)編程(包括socket, i/o模型,多線程 多進(jìn)程等)
5 ?常用的開源服務(wù)器(nginx, redis, memcache等),熟悉源代碼,能做定制開發(fā)
6 ?關(guān)系型數(shù)據(jù)庫(mysql , oracle, 等)
7 ?nosql(redis, mongdb等)
8 ?掌握一門或多門腳本語言(shell, lua. python)
9 ?常見網(wǎng)絡(luò)協(xié)議(tcp/ udp, ? http, ?音視頻相關(guān)rtsp,rtp.rtcp, rtmp等)
10 Go語言(如果用c/c++開發(fā)服務(wù)器程序, 常見的一般是異步+回調(diào)的方式,但是這種編程模型對編程人員要求較高,且程序可讀性較差。現(xiàn)在又有了協(xié)程的概念,c也有一些協(xié)程庫如微信開源的libco等;而go在語言層面就天然支持協(xié)程,這是一個巨大的優(yōu)勢)
這是自己工作中的一些總結(jié), 也許這些對一個合格的c/c++的程序員來說還不夠。我想既然當(dāng)了c/c++程序員, 注定是要與底層 原理這些東西打交道,這注定是枯燥的。但是能夠揭開這許多技術(shù)最終的面紗, 又何嘗不是一種樂趣呢
?
原網(wǎng)址:https://www.cnblogs.com/myd620/p/6672012.html
(SAW:Game Over!)
總結(jié)
以上是生活随笔為你收集整理的c/c++程序员的技术栈的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 临时变量不能作为非const引用
- 下一篇: C++11 std::function