C/C++能做什么?
C/C++语言能做什么?C/C++程序员在做什么?企业需要什么样的C/C++程序员?对初学者来说,要搞清楚这些问题并不容易。
一个农民种菜之前,会考虑菜的行情(包括销量和价钱),如果您打算学习C/C++语言,也应该先了解C/C++程序员的行情。
了解菜的行情要去菜市场,了解C/C++程序员的行情去人才市场,中国最大的IT人才市场前程无忧。
我们先来查一些资料。
主流编程语言招聘需求
数据显示企业的Java和C++职位比例约6:4,更多的人选择学习Java和Python,在较短的时间内就可以上手,从简单的Web页面做起,所见即所得,容易有成就感。
但是C/C++不一样,学生在学完基础知识后还是不知道它能做什么,离企业需求仍然差得很远,坚持下去的人很少,“从入门到放弃”是多数人的无奈的选择。
而且大多数培训机构不愿意开设C/C++课程,C/C++语言的教学对老师的能力要求非常高,进一步导致了C/C++程序员的缺乏。
编程语言的选择是人生大事,必须慎重,谁都不希望在工作几年后被迫从一种编程语言转向另一种编程语言。
Java和C/C++是程序员可选的两个方向(其它编程语言根本不在考虑范围),无所谓哪一种更好,大雄我个人偏向C/C++,因为Java程序员的工作太累了,当然也有C/C++的待遇高原因。
企业对C/C++程序员的技能要求
从前程无忧的招聘数据看,中国企业对C/C++的技能要求主要有网络通信、硬件驱动(嵌入式)、数据库、视频音频、网络游戏、桌面图形、机器学习、大数据、物联网,如下图。
以上数据可以从前程无忧的官网查询,分别输入“C++ 网络”、“C++ 嵌入式”、“C++ 数据库”、“C++ 游戏”等关键字,范围选北京、上海、广州和深圳。
值得注意的是,近年来被媒体反复炒作的人工智能、大数据、物联网、区块链等高大上的概念,企业需求其实很少,现在股票也不抄这个概念了,哦~现在都在炒元宇宙。
C/C++程序员在做什么
用C/C++做桌面程序的比例约11%,其它的C/C++程序都运行在后台服务器上,普通用户看不见。
在很多培训机构的教程中,把贪吃蛇、俄罗斯方块、打地鼠、球球大作战等程序当成项目实战,太过儿戏,这些程序的源代码网上到处都是,真正的程序员不玩这个。
真正的C/C++程序员在工作,掌握的是谋生的技能,不是在玩过家家。
我们每天都在用微信软件聊天、付款、转账等,对普通用户来说,只看到微信软件的操作界面,不清楚有后台系统的存在,以转账功能为例。
1)付款人在手机微信中输入转账金额和支付密码;
2)手机微信软件把转账金额和密码发送给腾讯公司的微信服务器;
3)微信服务器核对用户的密码和转帐金额,向中国银联发起转帐请求,中国银联把转帐请求转发给付款方的开户行银行,开户银行从付款人的帐户中扣除金额。
4)微信服务器把扣款成功信息返回给手机微信软件,显示转账成功。
5)微信服务器向收款人的手机微信软件发送收钱提醒,收款人点击收款后,微信服务器把金额存入收款人的微信账户中。
在上述转账流程中,苹果手机的微信软件采用Objective-C语言开发,其它品牌手机的微信软件采用Java开发;微信服务器、中国银联和开户银行都是非常庞大的系统,系统之间进行了多次数据传输,对数据库进行了查询、修改和插入操作,都是采用C/C++语言开发,系统运行在UNIX系统上,效率极高、稳定性极强,工程量巨大,是精英程序员们的心血之作。
对腾讯的开发团队来说,手机上安装的微信APP软件,开发的工作量不会超过整个微信项目的5%。
网络通信和数据处理以C/C++语言为主,数据输入、数据展示以Java为主(当下数据比石油更珍贵)。
作为服务器的操作系统,首选Linux,其次Windows。
网络通信和数据处理是C/C++程序员的必备技能。
嵌入式开发的职位比较多,技术上偏硬件(通信、电子等专业),软件为辅,无硬件基础者要慎重考虑。
在软件开发,C/C++一般更多是用于后端,在数据交互中,更加稳定高效。
放弃幻想,不要追逐那些高大上的潮流(区块链、大数据、人工智能等),
踏实一点,先成为一个普通程序员,这个世界上从来就没有捷径。
最近徐老师也一直在录制C++实战开放课程,点击“阅读原文”可以领取课程哦!
另外今晚20:00徐老师在公众号讲解“如何写出一份专业的需求分析”,不见不散!
END