您现在的位置: 首页 > 网站导航收录 > 百科知识百科知识
认真学完C++primer是否有能力写个小游戏?
能力,都是,程序员认真学完C++primer是否有能力写个小游戏?
发布时间:2019-02-08加入收藏来源:互联网点击:
问题补充: 现在还在学C++Primer(第五版),不知学完了是否有能力写个小游戏看看成果。顺便问下各位大佬,作为一个合格的程序员需要什么技能
回答于 2019-09-11 08:43:50
回答于 2019-09-11 08:43:50
冒昧回答一下,我不是大佬,也是个新手。我没学过c++,但是c++peimer这本书大致粗略的看过,我觉得学完了写个推箱子、贪吃蛇或者俄罗斯方块之类的小游戏应该不是很大的问题。写这些都不会涉及到一些高级数据结构和算法。数据结构一般用到的也就是线性表链表hashmap之类的,唯一涉及到的算法的话也就是最普通的碰撞检测了吧。当然你也可以尝试加入一些设计模式,比如备忘录、简单工厂之类的。如果想要个好看的界面的话,建议使用三方库,你可以尝试了解一下qt,这个需要你看官方文档。
回答于 2019-09-11 08:43:50
只会了C++可能还不够,还需要学习基于C++的游戏引擎,或是直接使用DirectX SDK来编写游戏。当然这主要跟什么游戏有关。如果是3D类的略为麻烦,如果是2D的话,需要掌握图片相关的处理技术,比如:怎么缩放图片?怎么Copy图片?等等。
一个合格的程序需要什么技能
Linux系统
很多人的开发机器是windows,所以平时也基本都是图形化开发界面。但是,这并不意味着你就不需要基本的Linux技巧。
因为,你开发出来的应用可能部署在一台Linux机器上,很多时候你要和这台线上的Linux服务器打交道,所以,Linux系统的安装、开发环境的搭建、Linux常用命令以及Linux环境下项目的部署启动和调试等都是必备技能。
否则,一旦线上出点什么问题,你就会束手无策了。
单元测试
我在《单元测试的重要性》中说过,单元测试是很重要的,而且,好的单元测试可以帮助我们节省很多开发时间。单元测试是保证软件可以更好的持续集成和持续交付的一个基本前提。
单元测试也涉及到很多技巧等,比如使用Mock进行单测、使用内存数据库进行单测等。
一个开发人员,要有写单测的习惯,也要掌握基本的单测写法技巧。这样可以尽早的发现问题。
版本管理
我相信基本上所有的公司的代码都会通过版本管理工具进行托管的,不管是Git还是SVN。
而且,现在很多技术都通过GitHub进行开源和共建的,版本管理工具的使用也是一个Java开发必备的基本技能。
版本管理也有很多学问在的,比如到底什么时候应该提交、提交的时候 Commit message 应该如何书写,如何解决代码冲突等都需要熟练掌握的。
构建工具
和版本管理一样,企业级开发的依赖管理也不再是那种原始的进行Jar包的导入导出。而是借助于像maven或者gradle等工具。
构建工具的使用同样重要,而且一个合格的开发人员,要掌握如何进行依赖冲突的检查、如何进行依赖仲裁等。
代码调试
有人调侃程序员,一半的时间在写bug,另外一半的时间在debug。这句话听起来挺扎心的,但是也恰恰说明了debug的重要性。
虽然说程序员花费一半的时间在写bug是有点过分的,但是,任何程序员的代码也不可能一气呵成,越大型的项目bug可能就会越多,在线下开发的时候,debug是最有效的问题发现和解决的手段。
代码调试其实比较简单,只要设置好端点,跟着程序一步一步的执行看效果就好了。只要学会运用IDE提供的工具就可以了。可以参考《Eclipse的Debug技巧》
问题排查与解决
关于问题排查,这个能力真的是非常非常重要的。
发生问题的时候,就是检验程序员能力的时候。这是最能区分程序员的水平的技能了。一个问题往往可能会涉及到很多个方面的知识。
阿里有一个神级人物,花名多隆。在淘宝初期,不管遇到什么问题,他基本都能解决。他之所以被称之为神,就是因为他的问题排查和解决能力。如果你能在两天内解决一个组两周都没解决的问题,那么你也会被称之为神。
很多时候,解决问题并不难,难的是定位问题。这会涉及到很多知识,知识储备很重要,但是,在知识储备还不够的情况下,至少可以从以下几个方面来提升自己的能力。
1、日志的查看
2、分析Java的堆栈信息
3、集群监控指标的查看
非开发技能
还有一类技能,可能就和开发完全没有关系的,我称之为非开发技能。这些技能往往决定着一个开发人员到底能够走多高。
目标导向
我把目标导向称之为一种能力,是一种一个人应该具备的基本能力。而且,也是可以锻炼和培养出来的。
目标导向型的人,就是做事之前先明确目标,再寻找实现目标的方法,最后动用一切可以利用的资源通过各种方法来实现目标。
目标导向型的人,目标是明确的。
目标明确的人,做事的时候,不会轻易动摇或者放弃,为了目标能克服困难坚持到最后。
目标明确的人,做事的时候,会去思考、尝试实现目标的各种方法。
目标明确的人,做事的时候,会去发现、创造、借用一切能够实现目标的资源。
不断给自己设定目标,做一个目标导向的程序员吧。如果,你非要把目标导向理解为KPI导向我也不拦着。主要是有目标,为之而努力,我觉得就是OK的。
时间管理
对于任何人来说,时间管理都是很重要的,对于程序员来说,尤其重要,因为我们可支配的时间并不多。
如何正确的管理自己的时间,是一门很深的学问。有些人加班加点,甚至996的工作方式。但是最终还是得不到一个好的结果,这很大程度上是由于时间管理的不够好,大部分时间都在“瞎忙”。
很多时候,苦劳在功劳面前会略显沧桑。
一个程序员的一天会有很多事情要忙,在工作上,一天可能排了几个需求评审、设计评审、交互评审、TC评审等,还要排查问题,还要写代码,有的时候还要充当产品、运营、甚至客服的角色。在生活中,还要陪伴家人、充实自己,锻炼身体等。如何安排好自己的时间是十分重要的。
关于时间管理,我有个建议,那就是把自己的手上的事情排列好,一段时间只做一件事。
上一篇:为什么自动挡汽车没有被设计成油门刹车由一个踏板控制的呢?
下一篇:返回列表
相关链接 |
||
网友回复(共有 0 条回复) |