我在学习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. socket初级使用(客户端)

    在国庆这段时间里用零星的一些时间看了一下socket的学习资料,由于笔者偏向学习实用方面的内容,因此此篇文章涉及理论知识较少,主要是以实现思路(怎么做)为主,但在实现之前还是需要了解一些基础的理论知识 ...

  2. static代码块与{}代码块的比较

    第一个例子: public class StaticDemo { { System.out.println("{} 代码块"); } static{ System.out.prin ...

  3. stm32cube--通用定时器--产生pwm波

    看了通用定时器的资料,发现内容挺多,挺难看懂,现在还是先掌握使用方法,以后再多看几遍吧. ① ② ③生成mdk工程后,在main.c的while(1)前面加上HAL_TIM_PWM_Start(&am ...

  4. 1.jquery的变量赋予方式

    1.首先通过将变量赋予 $_ = window.$ _jQuery = window.JQuery 2.将函数赋给两个全局变量 window.jQuery = window.$ = jQuery 3. ...

  5. iOS开发UI篇—ios应用数据存储方式(偏好设置)

    iOS开发UI篇—ios应用数据存储方式(偏好设置) 一.简单介绍 很多iOS应用都支持偏好设置,比如保存用户名.密码.字体大小等设置,iOS提供了一套标准的解决方案来为应用加入偏好设置功能 每个应用 ...

  6. C#泛型List的用法

    C#泛型List的用法 来源:C#学习    发布时间:2014/1/4 一.List<T>命名空间: System.Collections.Generic(程序集:mscorlib) 二 ...

  7. .htaccess的301重定向代码

    把不带www的域名301到带www的域名 RewriteEngine On RewriteCond %{http_host} ^example.com$ [NC] RewriteRule ^(.*)$ ...

  8. sqlserver存储过程批量插入数据

    在系统中经常会遇到向数据库中批量插入数据情况,存储过程中没有数组,只有通过字符串分割循环插入,下面是一个本人研究的一个例子: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 c ...

  9. mysqld.exe占比cpu 100% 解决方案

    进入mysql命令行,输入show processlist; 查看当前有sql语句的记录

  10. Python开发入门与实战3-Django动态页面

    3.Django动态页面 上一章节我们实现的helloworld视图是用来演示Django网页是创建的,它不是一个动态网页,每次运行/helloworld/,我们都将看到相同的内容,它类似一个静态HT ...