百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 优雅编程 > 正文

学习编程丨程序员想学习C++做游戏开发,需要掌握哪些基本知识?

sinye56 2024-10-10 10:59 3 浏览 0 评论

C++这门语言从诞生到今天已经经历了将近30个年头。不可否认,它的学习难度都比其它语言较高。而它的学习难度,主要来自于它的复杂性。

现在C++的使用范围比以前已经少了很多,java、C#、python等语言在很多方面已经可以代替C++。但是也有很多地方是其他语言完全无法替代的,主要集中在需要运行效率比较高的行业;比如游戏、高效的服务器。

现在学习java、C#等语言的人数远远高于C++,主要是因为C++的入门门槛太高。

所以在此我们不讨论具体的技术细节,只说我们在哪个阶段应该学习什么东西。有个系统的规划。

1. 语言基础

我们要成为一个程序员,学的东西会很多很杂,但是最开始一定要从语言开始学习。

学习语言的目的就是打好基础,特别是自学的,一定规划好自己的学习路线,一步一个脚印学习下去。学习语言最关键的莫过于多读书,但不能随便找一本C++书籍就去读了。

推荐本适合学C++读的书:《C++ primer plus》《C++程序设计语言》《Effective c++ 》等

2. GUI

C++方面的GUI库有很多种,比如MFC、WTL、wxWidgets、QT。

这些GUI库都各有自己的特点,其实我们只要先了解一种就可以了,只要深入了解了一种GUI库。

需要的时候再学习其他的就够了,本质上都差不多,很快就可以上手了。

MFC虽然设计上有很多问题,但是作为入门还是不错的,而且学习资料很多,碰到问题也好解决。

3. 数据结构和算法

很多人都忽视了数据结构和算法方面的知识,尤其是一些编程语言的库做得非常好;几乎不需要自己去实现一些数据结构和算法,导致现在很多程序员不重视甚至忽略这方面的知识。

但是,当我们想让我们的程序跑的更快、内存占用更少的时候,这些知识就非常非常重要了。很多程序员都是刚开始的时候不重视这些,但是工作几年后又来补习这些知识。

最开始可能不需要学习的太深入,但是基本的数据结构和算法一定要知道。

4. 数据库

学习数据库的基础知识,并且掌握一种数据库使用。

推荐使用Oracle,而且最好不要用一些封装好的接口。

而应该直接用Oracle提供的数据库API,可能对数据库了解的会更深入。

5. 并行

CPU主频已经不能遵循摩尔定律了,现在CPU发展的趋势是多核心。无论是多线程,还是多进程,都是为了更好的利用CPU的性能,提供更好的用户体验。这就要求我们如果要写出高效的应用程序,必然要涉及到并行计算。多花些精力在并行计算上吧,一定会有丰富的回报。

6.网络编程

这里所指的网络编程是指socket编程。

现在C++的应用很多都是在做服务器开发,如何开发一个高并发、大吞吐量、高稳定性的服务器就是我们要考虑的了。

7. 设计模式

设计模式不是具体的技术,更多的是如何让代码更容易阅读、更好扩展、更容易使用。

另外想要成为一个优秀的、有能力程序员,做软件开发的话,就来学习C/C++吧,而且学习编程的话有一个学习的氛围跟交流圈子特别重要!这里我推荐一个C/C++交流扣裙,--先7841;后43133,不管你是大牛还是小白,大家都一起成长进步。

8. 库的使用

C++标准库仅仅提供了一些很基本的功能,所以我们经常会引入一些第三方库。最著名的恐怕就是被称为准标准库的boost库,它提供了我们编程中用到的各方面的技术,文本处理、算法、网络、多线程、图像处理等等,几乎无所不包。

其它也有一些专著于某一方面的库,比如ACE是网络通信方面的,TinyXML是解析xml的,OGRE是图形渲染方面的。

9. 操作系统的知识

程序员需要了解的操作系统知识和普通用户是不一样的一个高手是需要深入了解操作系统的方方面面,而不是停留在使用层面。

至于应该了解哪些知识,Windows上的去看《Windows核心编程》,Linux的去看《深入理解Linux内核》,应该可以知道自己应该学什么了。

以上都是学习C++游戏开发的前期准备,也就是打好基础。上面都是基本功,看起来有点多,但是磨刀不误砍柴工。这对于你后面学习游戏开发有非常大的帮助。

总而言之,道路还是很艰辛的,且行且珍惜!!!

相关推荐

Linux基础知识之修改root用户密码

现象:Linux修改密码出现:Authenticationtokenmanipulationerror。故障解决办法:进入单用户,执行pwconv,再执行passwdroot。...

Linux如何修改远程访问端口

对于Linux服务器而言,其默认的远程访问端口为22。但是,出于安全方面的考虑,一般都会修改该端口。下面我来简答介绍一下如何修改Linux服务器默认的远程访问端口。对于默认端口而言,其相关的配置位于/...

如何批量更改文件的权限

如果你发觉一个目录结构下的大量文件权限(读、写、可执行)很乱时,可以执行以下两个命令批量修正:批量修改文件夹的权限chmod755-Rdir_name批量修改文件的权限finddir_nam...

CentOS「linux」学习笔记10:修改文件和目录权限

?linux基础操作:主要介绍了修改文件和目录的权限及chown和chgrp高级用法6.chmod修改权限1:字母方式[修改文件或目录的权限]u代表所属者,g代表所属组,o代表其他组的用户,a代表所有...

Linux下更改串口的权限

问题描述我在Ubuntu中使用ArduinoIDE,并且遇到串口问题。它过去一直有效,但由于可能不必要的原因,我觉得有必要将一些文件的所有权从root所有权更改为我的用户所有权。...

Linux chown命令:修改文件和目录的所有者和所属组

chown命令,可以认为是"changeowner"的缩写,主要用于修改文件(或目录)的所有者,除此之外,这个命令也可以修改文件(或目录)的所属组。当只需要修改所有者时,可使用...

chmod修改文件夹及子目录权限的方法

chmod修改文件夹及子目录权限的方法打开终端进入你需要修改的目录然后执行下面这条命令chmod777*-R全部子目录及文件权限改为777查看linux文件的权限:ls-l文件名称查看li...

Android 修改隐藏设置项权限

在Android系统中,修改某些隐藏设置项或权限通常涉及到系统级别的操作,尤其是针对非标准的、未在常规用户界面显示的高级选项。这些隐藏设置往往与隐私保护、安全相关的特殊功能有关,或者涉及开发者选项、权...

完蛋了!我不小心把Linux所有的文件权限修改了!在线等修复!

最近一个客户在群里说他一不小心把某台业务服务器的根目录权限给改了,本来想修改当前目录,结果执行成了根目录。...

linux改变安全性设置-改变所属关系

CentOS7.3学习笔记总结(五十八)-改变安全性设置-改变所属关系在以前的文章里,我介绍过linux文件权限,感兴趣的朋友可以关注我,阅读一下这篇文章。这里我们不在做过的介绍,注重介绍改变文件或者...

Python基础到实战一飞冲天(一)--linux基础(七)修改权限chmod

#07_Python基础到实战一飞冲天(一)--linux基础(七)--修改权限chmod-root-groupadd-groupdel-chgrp-username-passwd...

linux更改用户权限为root权限方法大全

背景在使用linux系统时,经常会遇到需要修改用户权限为root权限。通过修改用户所属群组groupid为root,此操作只能使普通用户实现享有部分root权限,普通用户仍不能像root用户一样享有超...

怎么用ip命令在linux中添加路由表项?

在Linux中添加路由表项,可以使用ip命令的route子命令。添加路由表项的基本语法如下:sudoiprouteadd<network>via<gateway>这...

Linux配置网络

1、网卡名配置相关文件回到顶部网卡名命名规则文件:/etc/udev/rules.d/70-persistent-net.rules#PCIdevice0x8086:0x100f(e1000)...

Linux系列---网络配置文件

1.网卡配置文件在/etc/sysconfig/network-scripts/下:[root@oldboynetwork-scripts]#ls/etc/sysconfig/network-s...

取消回复欢迎 发表评论: