一个C++小菜鸟的感悟
萱草江篱 2016-01-19 07:59:26 做为一个自学的小菜鸟,磕磕碰碰断断续续的学了好几年,因为无知走了很多歪路,直到现在,(此处省略n万字的这几年的剧情),直接上大结局。
//------------------------------------
首先讲Qt,Qt最最最诱人之处便是跨平台,引得无数C++小菜鸟们趋之若鹜,本菜鸟也刚刚玩了个把月的Qt,但是结果发现!!!英语是硬伤!!!而且,关于Qt的入门书籍也难找,很多书一上手就将信号与槽,然后2D绘图和3D绘图,而对于QString和Qpixmap还有Qfile这些很基础的类讲的很粗略,还有其它情况,总而言之Qt的帮助文档已经是公认的好教材,可能大家都认为学会C++会入门编程后看看帮助文档的示例代码后就能上手了。
但是,英语是硬伤,再加上找不到如此基础的入门书籍使得我不得不放弃,如果各位看官有此类书籍欢迎留下书名
//------------------------------------
然后从微软的.NET说起,.NET和Qt一样,据说将来也会跨平台,可惜对C++的支持简直是怪异,学过C++.NET(或C++ CLI或C++ CLR,这三者都是同一种东西)的都知道有这精力学C++.NET不如去学C#干脆,
其实.NET我挺喜欢的,刚开始学编程的就是C#,但是那时候超级小白,只买了本《从零开始学C#》,只会把各种控件拖来拖去,在属性栏修修改改,再者就是双击控件添加一个事件,对指针数组函数类这些语法简直天书,可惜后来我没找到合适的进阶书籍,所以放弃了
后来去学了C++,学了半年的C++几乎全懂了,虽然C++很麻烦,win32API更是难以理解,但是我在基层方面的理解了一个程序是怎么运行的,一个int一个char一个string的内部构造是什么,win32API与MFC与NET与Qt的类库有什么区别,它们是怎么做出了的,我全都理解了。
这feel,倍儿爽!!!
虽然谈不上精通,但是以我目前所学的知识而言,这些已经足够了。
//------------------------------------
于是我准备开始写程序,那么现在问题来了!!!
我的手头有win32API,有MFC,有NET,有Qt,该选择哪个呢?
由于英语是硬伤,Qt排除,
学习MFC不如学习win32API,因为我手头有《Windows程序设计(第5版)》,这话本书很棒,感觉学完后编程的话就无障碍了,其实我知道我缺一个编程思想,需要自己构架一个程序框架出来,虽然英语是硬伤但是有了这本书就不是问题了,如果Qt也有这么好的书就好了,上面那本《从零开始学C#》其实很不错,Qt如果也有内容与《从零开始学C#》和《Windows程序设计(第5版)》类似的书籍就好了,求推荐!!!
但是据说NET将会支持跨平台使我琢磨着要放弃Qt。
NET虽好但是要用得好就得用C#了,我想起曾经论坛一位前辈是这么评价的,但不知道评价的是C#呢还是NET:一个激光大炮架只有在驴背上才能发挥出其威力,如果离开了驴就是一堆废铁,啥都不是。
我觉得C#离开了NET啥都不是,NET离开了C#同样难以驾驭,我很好奇NET为什么不能像Qt的类库一样对C++好用呢?
//------------------------------------
所以呢,综上所述,我的选择似乎只有C++win32API和C#.NET这两种组合了。
但是我舍不得C++,因为我当年要学编程的最最最原始的动力就是想写个外挂出来,嘿嘿!玩游戏太累,开个挂让电脑自己来,而开挂呢涉及的可是C语言甚至更加基础的语言比如汇编语言,使用C++更加贴切,
还有啊,C++可以控制单片机,因为我是做模具的,公司很多产品都是机器加工单,如果做出单片机自动化的话,嘿嘿,不用多说了,公司里也有几台自动化机器,但是实在是太低级了,淘汰是迟早的事,是现在工业的潮流是自动化嘛。
但是C#.NET实在是太好用了,也舍不得,可惜C++.NET实在是。。。不得不说垃圾。而且据说C#.NET也可以控制下位机,但是好像不能开挂。。。开挂的话应该要用C++写个dll引过去的吧。
可能有的看官会说干嘛不两种语言一起使用呢?C++写基础,C#写界面。其实我个人认为这是大神的活儿,我一个小菜鸟就不要一心二用了,即使这两种语言很相似。
不管学编程还是其它什么的,求精而不求多,样样都会的肯定没一样是精通的,什么都会点皮毛但没一样拿得出手等于什么都不会。
//------------------------------------
写的时候我也是在思考,写到这里我决定学C++win32API吧,根据我的需求:外挂+单片机,应该选择C++为上,C#不能开挂,英语是硬伤,Qt和MFC和win32API现在就win32API学的最好,书也好找,
而困难呢就是UI难写些,不过从C++来说,如果这关都过不了不如去学C#算了,毕竟C++的精华在于各种语法,在于C++的高效率,
而C#貌似是专门为了NET而设计的语言的。。。
//------------------------------------
不知道各位大神的看法如何,欢迎指点!!!