找回密码
 立即注册
楼主: fwalker

对于C++ 开发者来说,服务器端开发,游戏开发, 嵌入式软件开发,哪个方向更有前景?

[复制链接]
发表于 2021-9-4 15:32 | 显示全部楼层
C/C++技术方向如何选择?桌面开发为什么瓶颈
上课地址:https://ke.qq.com/course/417774?flowToken=1031343
发表于 2021-9-4 15:42 | 显示全部楼层
都不好,人都招不到,老板也不愿意招C++,都去写jawa把
发表于 2021-9-4 15:51 | 显示全部楼层
菊厂员工:鹅厂员工说的对,对于C++的开发者来说,这3个都没有前景,因为前景是无法预测的,我们只聊钱景,说道钱景要先看产业,服务端背靠云计算,游戏开发分为前端和后端服务器娱乐产业,嵌入式软件其实也分前端和后端其花样更多产业涉及更广,所以这三个方向是模糊的重叠的,所以没法预测。OK,言归正传,应届小白更应该关注自身基础能力的提高,英语,算法和数据结构,数据库,OS,网络和编译原理,更加关注这些不变的东西,为了应付将来的万变,后面才能不离其宗,钱景靠人更靠命,并不靠你说的这三个方向,所以,你喜欢玩游戏就去搞游戏开发,喜欢大数据去玩服务端开发,喜欢用软件控制硬件什么的就去玩嵌入式开发,你只要搞上层次,都有前景,都离不开,现代的c++ 14什么的,其实把C++很多缺点都纠正了,比如容易内存泄漏什么的,有智能指针,其编程风格越来越java化,在大流量大数据处理方面c++还是无敌的,所以我建议直接使用java,学习c++后,语法差不多,java是不需要学习的,我就是eclipse上参考别人的代码直接开撸java代码,查查api手册,问问人,什么python啊,lua啊,js,shell啊,basic啊,连fortran都写过,语言花样多,最有前景的是大领导罩着你,分红股票大大地,最应该学的语言是:鬼话,见人说人话,见鬼说鬼话,这个世界还是鬼多人少。
发表于 2021-9-4 15:56 | 显示全部楼层
来搞医学图像处理吧。
发表于 2021-9-4 16:00 | 显示全部楼层
慢慢的发现c++不只是招的人越来越少,而且普遍没java的工资高

还是匿名了,怕被c++大神们吊。
大神就是大神,但对于我们这些普普通通的c++程序员来说这就是现实,市场不需要你了,you free
发表于 2021-9-4 16:08 | 显示全部楼层
既然是小白,又如何以语言选择职业未来呢?
我理解完全是反过来的,应该以方向来选择,至于语言倒是随便选。
上个月,组织上安排我写一个C++的服务器,我都6年没碰C++了,但事实上实现起来还是很轻松的(顺手用scala+akka实现了client sdk),而这里面的关键难点也完全不在语言上,而是分析设计协议、分析业务特性、设计模块架构、设计可用性、容量、监控、寻找性能瓶颈等等服务端工程师的基本功。即使语言特性的使用、库的选择上做不到尽善尽美,但也能做到八九成,不会出太大问题,毕竟语言都是相通的。
而方向的选择则是决定命运的,这个经验是资深工程师的经验所在。服务端工程师换个语言容易,你要说我的特长是C++,在嵌入式和服务器之间切换可就难喽。
发表于 2021-9-4 16:13 | 显示全部楼层
服务器吧,游戏开发能做游戏引擎也很好。这两者能跟互联网挂钩!嵌入式不推荐,毕竟那个更适合硬件开发人员去搞。而且互联网钱多!我觉得做好服务器,你对所有的软件都会有一个架构上的了解,即使专做其他也比较好转!当然了,做服务器你应该还会接触一些其他语言的,慢慢来,c++见效慢,需要有耐心。向其他人说的,做java也不错,java也是很全能,不过其他的语言不建议作为第一语言。都可以作为第二第三语言,以后再攻,而且会比较快。
发表于 2021-9-4 16:20 | 显示全部楼层
服务器端开发:会不断被蚕食。游戏开发:危机并存、潜力巨大。嵌入式开发:依旧保持语言优势。
服务器端开发
服务器端要看是写什么类型的服务器,更具体说是要处理什么协议。如果是处理http、或类似http这种基于字符的协议,那脚本语言有莫大优势,将不会再用C/C++。但如果是处理基于二进制的数据,像游戏服务器、视频服务器,就另当别论了。
这里说下C/C++写服务的两个特点,一是灵活的交互机制,二是处理数据能力。在交互上,脚本语言写的服务器一般使用session机制,一个请求、一个应答,一个session就结束了,而且没有心跳包机制。写游戏服务器时,假设地图上有20个角色,这时每个角色是一个客户端,它们每次操作(移动、攻击、建造等等)都要生成一个数据包,然后交由服务器,虽然每个包几个字节,可数量大,这时再用session就出现严重性能问题。数据处理能力和C/C++指针相关,因为有指针,C/C++可以不必复制就到处引用一段数据。而要处理大量数据,光复制就要耗大量cpu,如果还要深入数据块,指针就更凸显作用了,像视频服务器。
总的来说,市面上基于字符协议的服务器是占大头,而且脚本语言服务器会不断发展,而一旦它们做到那功能了,C/C++基本就是失去那一领域,结果只能是不断被蚕食。
游戏开发
对这话题,我想应该扩展为app开发。app分为游戏和非游戏app。开发app有三种方法,一是脚本语言(react native、angular、vue,等等)、二是C/C++、三是原生(Oc等)开发。
目前app开发有这么个规律:公司一开始为尽快上市,用脚本语言先开发出app,等有了一定资金、人力后,发现脚本语言不能满足需要,然后改为原生开发。脚本语言写不出一个100%性能app,这是结构性矛盾,无法调合。另外这条规律只适合非游戏app,对游戏app,至少目前脚本语言是无解。对原生语言,一个问题是不能跨平台,而需要的逻辑一旦复杂后,如果iOS、Android两个平台依旧用原生语言实现,那两边都须要编程能力很强开发人员。也正是这原因,一旦到了复杂逻辑,往往想到的是写个C/C++库,然后让原生去调用。游戏是个把“复杂逻辑”常态化的例子,只用原生开发太难了,于是往往都用个第三方提供的框架,而这框架基本逃不开用C/C++。
开发非游戏app很少用C/C++,这是事实,这是C/C++“危”的一面,但由于C/C++技术特点,又存在“机”。可以去想像,一个SDK如果实现了以下功能会是怎样?1)同时支持游戏、非游戏开发。2)非游戏app可方便使用游戏中的场景技术,游戏app可使用非游戏中强大的gui功能。3)跨平台,同时能跨PC(Windows、Linux、Mac os X)、移动(iOS、Andoird),甚至智能机器。4)足可媲美脚本方案的窗口布局。5)可直接融合开源社区中项目,像Webrtc、Chromium、boringssl。——C/C++可以做到以上5点,而且只有C/C++能做到。这里请不要被市面已有的C/C++框架给限制了,像Qt、cocos2d,应该拓展视野,像SDL。当然,现实是市面上没 这么个SDK,可没有不代表不会出现,于是概括为“危机并存、潜力巨大”。
嵌入式开发
我把嵌入式开发分为两种,一是有自个操作系统的,二是没有操作系统的。
有自个操作系统的设备。特点是板上有颗专门存放系统镜像的falsh,往往还会存在容量至少8M以上的cpu外内存。定制化的Andorid正严重冲击这类系统。像智能眼镜、智能手表,基本跑的全是定制化Android。用Android好处不言自明:减少app开发时间。当然市面上还是有非Andorid的嵌入式系统,典型的有linux(uClinux)系,像一些内置了视频编、解码功能的arm cpu,在那种场合,基本只能用C/C++。
没有操作系统的设备。这类设备比较多的是接口、传感器设备,像基于蓝牙(BLE)的手环,心率计,温度、湿度传感器,电机控制器,等等。编程这类软件的语言基本还是C/C++,更准确是C,一来代码不多,二来cpu供应商提供的开发工具决定了只能用C。
终归来说,嵌入式开发中要和硬件打交道的,基本只能用C/C++,而且将来也不大会变。但离远了硬件的部分,像app,那就要看操作系统向外提供的开发app语言了,像定制化的Andorid就支持了Java。

如果想从事服务器开发,那会对开发者的C/C++使用经验有很强要求,没个4、5年以上C/C++使用经验,有的公司估计还真不敢用,毕竟一旦处理数据时出了BUG,那非常难查。嵌入式开发往往和硬件挂钩,需要有一定的硬件知识,像寄存器、中断、常见协议,同时需要较高的语言功底。对C++应届生,而且不是有硬件背景的,建议走app开发,而立即可以做的是去学习SDL,首先写个贪吃蛇、玛丽、坦克战啥的小游戏
-----------分割线--------2017.7.17补充
个人看好家用机器人市场(家用机器人中的app - 知乎专栏),一旦成形,产生的app规模不会比现在的手机app少。要引爆这个市场,结合PC、手机发展历程,至少要满足两个条件。1)硬件。普通家庭能轻松购买基本功能的硬件设备。2)软件。拥有稳定的操作系统,提供开发者易于使用、并且能充分发挥硬件功能的SDK(工具链)。
针对上面两点,目前家用机器人较为可行的有这么种解决方案。硬件:基本配置类同近期的Android手机,只是把和信号相关模块替换成激光雷达(SLAM)。软件:操作系统用定制Android,工具链包括上面说的那些个sdk,至少要有gui+webrtc+opencv+slam+tensorflow。
为什么要说这些?工具链中sdk主要编程语言是C/C++,只有C/C++才能快速将它们串连起来,为此家用机器人初始会大规模使用C/C++。即使这个市场进入稳定期,慢慢地更多用脚本语言代替,但C/C++依旧会是这市场高效语言,而且要支持新传感器这些还是逃不开用C/C++。
发表于 2021-9-4 16:23 | 显示全部楼层
就我看来, c++ 开发者在这三个方向前景都不算特别好。

不如做图像处理, 音视频编解码或者基础设施相关的开发咯
发表于 2021-9-4 16:27 | 显示全部楼层
恭喜入坑,能下这个决心的都是汉子,就算你是女的也是汉子。
我跟你说个办法:如果想不明白方向,就选钱多的。只要钱多,那肯定有前景,你以为资本家和老板是傻的啊?没前景他们会投那么多钱吗?
如果钱差不多,那就选自己感兴趣的。毕竟公司或领域的前景再好,和你的关系又有多大呢?盖的大楼再漂亮,你也就是搬砖的对吧。那同样是搬砖,我就选我看着顺眼的大楼,这个我自己能决定。
别的……太复杂了,你也控制不了,谁也不是预言家。十年前我还以为C++肯定能一统天下呢,谁知道今天能凉成这样。
以上。
懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Unity开发者联盟 ( 粤ICP备20003399号 )

GMT+8, 2024-11-24 13:31 , Processed in 0.092564 second(s), 22 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表