我在学习C++之前学习了C,学习C是因为选修时觉得它比较神奇,当时以为学会了C就能纵横计算机领域。

  之后听说C++更厉害。并且大多数我这样的男生都喜欢玩游戏,C++又是能编写大型游戏逻辑的语言。于是幻想着我想象中的游戏,学着C++,一本《C++ primer》拿起来就看,几个月就看完了。我是2015年7月开始学习的,同年11月学完。当时自己手写过的代码全部加起来不足5000行,我看书时看懂了原理,记了笔记,代码就不怎么想自己敲出来试试了。毕竟原理知道了。C语法学完了,C++语法也学完了。怎么我还是不会编写游戏?额,怎么编都是一个黑窗口程序,当时玩一个手机小游戏叫2048,感觉自己能实现,就用C++写了一个,特别low,就一个[4][4]的数组,连输入都是按下w,再按下enter,意思就是"上"。

  学了这么久,我怎么能放弃呢。于是我又听说了C++的图形库:MFC,买了本《深入浅出MFC》。这一次,和看C++时感觉就不一样了。这次的感觉是:完全摸不着头脑,什么乱七八糟的,看一会儿就没心情了。之后看不下去了,我深深怀疑了我自己,又仔细想想,“我怎么可能这么傻?肯定是哪里出问题了!!!”于是我又发现了一个问题:其实C语言也有自己的图形库,C++的图形库MFC便是把C的图形库封装了一遍后的产物,变得让人方便使用了,方便是方便了,可是他的内部实现是很复杂的。于是我从底层开始,又回到了C的图形库。

  什么是图形库呢?在Windows操作系统中,你眼睛直接看到的窗口,就是靠图形库产生出来的吧,库就是很多函数的集合——函数仓库的意思。调用几个函数,出一个窗口。这就是Windows操作系统提供的函数接口,Windows 操作系统与硬件打交道,程序与操作系统打交道,就这么简单。而且,windows提供的函数不止有图形函数库,还有很多很多,比如说操作系统进程的,作业管理的,内存管理的,设备管理的,用户管理的,乱七八糟的。又扯远了。学了很多函数接口(API)之后,好枯燥好无聊啊,这还用讲吗?8万多的Windows API函数,难道要一个一个去学一遍?哎,直接给我一本手册不就行了,我用到时看手册不就行了,真是的,不学这个了。

  现在感觉Windows 操作系统我应该弄明白,我又随便买了本讲操作系统的书来看,同时MFC也能看懂了一部分了,要是细心的话,我肯定能全部看懂一遍了。操作系统那本书讲的好广,操作系统(OS)并不是讲Windows的,Windows只是个个人电脑用的比较多的操作系统,还有unix,linux,苹果,安卓等各种各样的操作系统。甚至现在把各种简易的操作系统嵌入到工厂生产机床上,家具上。哎,我原本只是想学C++做电脑游戏的啊。这个时候我的学习计划完全乱了,有种不知道学什么的感觉了,只能每天看看API,看看MFC,看看操作系统的知识。兴趣并没有最初那么浓了。我在想看完这些之后看点游戏引擎去试试,游戏引擎其实就是一个关于游戏开发的函数集合,没错,就是一个函数库,有cocos2d和Unity3d之类的网上有源代码的,学的人比较多,写一些小游戏也很容易出师。

  前几天有一个学姐推荐了一篇博客给我,是关于学习C++后面试工作的心得。看了之后我决定以后就按照那条路线学下去了。那个作者把学习C++分成了5个模块,分别是C++,Linux,OS(操作系统),数据结构与算法,网络。我思考了以后觉得挺靠谱的。这个学习套路直接面向互联网公司的服务器开发,以后毕业了至少学的东西能换来金钱的回报。至于以前想开发游戏,游戏有大型的和小游戏两种,大型游戏是很多人合作完成,做什么样的游戏是产品经理说的算,C++工程师在团队中也只有写逻辑代码的份,并不是想做什么做什么的;而小游戏能一个人或者几个人完成,这就当成我的兴趣爱好吧,我以后闲着的时候可以慢慢研究,写一些小游戏自娱自乐一下。况且我了解了游戏引擎之后,有一种感觉,感觉写游戏的人并不厉害,厉害的是写游戏引擎的人。

  学了C++以后,发现并不是原先想的那么容易,路比想象中的要长,学了这么久,我只能说我入了这一行,至于学习的东西,还有很多未知的等着我去发现吧。但是我并没有为此而放弃,毕竟兴趣所在嘛,虽然有时很枯燥,有时又很迷茫。但是学了这么久了,放弃了的话真的好亏的说。而且我现在找到了新的方向,就是专攻Linux服务器网络编程,这个能给公司带来很大的经济效应,学有所用嘛。

  其实我学的时间也不算长,从接触C到现在也就一年半。但是我发现,不管学什么,一定要让自己处在学习的路上,一定要自信自己能行,这才会有所成。

没接触C++之前与学习了C++之后的思想转变的更多相关文章

  1. 网络学习day01_计算机网络与分层思想

    2018.9.1 网络学习day01_计算机网络与分层思想 网络安全 计算机网络 分层思想    LAN与WAN   LAN(Local Area Network)--局域网   局域网(Local ...

  2. 转:浅谈深度学习(Deep Learning)的基本思想和方法

    浅谈深度学习(Deep Learning)的基本思想和方法  参考:http://blog.csdn.net/xianlingmao/article/details/8478562 深度学习(Deep ...

  3. 我和Python的第一次亲密接触 - 零基础入门学习Python001

    我和Python的第一次亲密接触 让编程改变世界 Change the world by program 小甲鱼经常说,学习一门编程语言就是要深入其中,要把编程语言想象为你的女朋友你的情人,这样你学习 ...

  4. 全景智慧城市常诚——没接触过VR全景的你就是目前VR最大的新闻

    据调查,自2015年开始,VR(虚拟现实)技术在传媒行业中的应用呈现井喷式增长,各大国际主流媒体纷纷在新闻报道中使用VR技术.国内运用VR报道新闻最早在2015年12月,财新网利用VR技术对深圳山体垮 ...

  5. 从0开始接触html--第一天学习内容总结

    第一天 总结: h1-h6 p 段落 hr br 有序 ol li 无序 ul li 定义列表 dl dt dd 块级元素:独占一行,h1-h6 p hr div 行内元素:共占一行, em和i st ...

  6. spring中@Param和mybatis中@Param使用区别(暂时还没接触)

    1.spring中@Param(org.springframework.data.repository.query.Param) int selectRoleCount(@Param("bu ...

  7. [没接触过kubevirt?]15分钟快速入门kubevirt

    @ 目录 本文介绍 前言 环境准备 详细版 搭建步骤 安装KubeVirt 安装virtctl客户端工具 创建VirtualMachine 启动VirtualMachineInstance 启动和停止 ...

  8. Hibernate学习1--对象持久化的思想

    前些天开始接触hibernate,想想以前直接用c3p0进行笨拙而繁杂的数据库操作就觉得生无可恋了,也正因如此,在刚刚接触hibernate的我,便强烈地喜欢上这种偷懒而优雅的面向对象式操作数据库的方 ...

  9. 深度学习笔记之关于基本思想、浅层学习、Neural Network和训练过程(三)

    不多说,直接上干货! 五.Deep Learning的基本思想 假设我们有一个系统S,它有n层(S1,…Sn),它的输入是I,输出是O,形象地表示为: I =>S1=>S2=>….. ...

随机推荐

  1. 各种效果的tab选项卡

    ;(function($){ $.fn.tabso=function( options ){ var opts=$.extend({},$.fn.tabso.defaults,options ); r ...

  2. Xshell 登录 AWS CentOS 出现“所选择的用户秘钥未在远程主机上注册“,最终解决办法!

     其实就是 登录用户名错了,是 root,不是centos 也不是 ec2-user !  Xshell 连接配置界面如下 最重要是 登录授权配置 最后,登录成功! 就这么简单

  3. 樱花漫地集于我心,蝶舞纷飞祈愿相随---总结 适者:survival of the fittest 适者:survival of the fittest

    编程什么的最讨厌了,总是忘记一些乱七八糟的,看起来并没有什么乱用的,比如(::“<>{}, 还有交作业的时候总是忽略大小写<(▰˘◡˘▰)> 马马虎虎莫名其妙就错了,其实大小写 ...

  4. three.js

    webgl,three.js交流的论坛,欢迎到里面提问问题 www.webglchina.cn

  5. 算法课堂笔记13—Online Algorithm

    今天的算法课是学习离线算法,在计算机科学中,一个在线算法是指它可以以序列化的方式一个个的处理输入,也就是说在开始时并不需要已经知道所有的输入.相对的,对于一个离线算法,在开始时就需要知道问题的所有输入 ...

  6. linux 下mysql的启动 、调试、排错

    Linux 下 MySQL 启动与关闭 说明 一.启动 1.1  MySQL 进程 可以用ps 命令查看进程: [root@rac2 ~]# ps -ef|grep mysql root     21 ...

  7. iOS开发UI篇—字典转模型

    iOS开发UI篇—字典转模型 一.能完成功能的“问题代码” 1.从plist中加载的数据 2.实现的代码 // // LFViewController.m // 03-应用管理 // // Creat ...

  8. 转: jdbc连接数据库需要注意和出错的地方

    * 1.数据库登录模式不能只使用windows登录模式,要采取混合模式登录, * 并记住相应的密码和账户: * 2.连接数据库后一定要记得关闭资源,否则就会造成资源浪费. * 关闭的时候也要注意顺序, ...

  9. ExtJS 刷新后,默认选中刷新前最后一次选中的节点

          在对树节点进行操作后往往需要进行reload操作刷新一下树,但是很多业务都需要在树形刷新后默认选中最后一次选中的节点.这样就必须先保存前一次选中节点的信息,在reload之后再次通过节点的 ...

  10. android 缓存Bitmap 使用内存缓存

    private LruCache<String, Bitmap> mMemoryCache; /** * 判断内存大小 设置位图的缓存空间 */ private void judgeMem ...