学C++语言应该注意啥
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了学C++语言应该注意啥相关的知识,希望对你有一定的参考价值。
学习C++语言要不要数学好啊,英语好啊,还是....
一点编程基础也没有能学好吗?
我是高一新生,学C++有困难吗?
推荐几个学C++语言的网站\书,要求详细,浅显
如果好的话,我还会多给分
长篇复制的免了,要求自己动脑给我答案,复制者杀无赦,
VB也不会,英语略差,数学略差.学习C++要了解什么.....都给我标清了,谢谢..........
还有编程软件也帮我找好
一般多长时间能编写个简单软件
2.看《Thinking In C++》,不要看《C++变成死相》;
3.看《The C++ Programming Language》和《Inside The C++ Object Model》,不要因为他们很难而我们自己是初学者所以就不看;
4.不要被VC、BCB、BC、MC、TC等词汇所迷惑——他们都是集成开发环境,而我们要学的是一门语言;
5.不要放过任何一个看上去很简单的小编程问题——他们往往并不那么简单,或者可以引伸出很多知识点;
6.会用Visual C++,并不说明你会C++;
7.学class并不难,template、STL、generic programming也不过如此——难的是长期坚持实践和不遗余力的博览群书;
8.如果不是天才的话,想学编程就不要想玩游戏——你以为你做到了,其实你的C++水平并没有和你通关的能力一起变高——其实可以时刻记住:学C++是为了编游戏的;
9.看Visual C++的书,是学不了C++语言的;
10.浮躁的人容易说:XX语言不行了,应该学YY;——是你自己不行了吧!?
11.浮躁的人容易问:我到底该学什么;——别问,学就对了;
12.浮躁的人容易问:XX有钱途吗;——建议你去抢银行;
13.浮躁的人容易说:我要中文版!我英文不行!——不行?学呀!
14.浮躁的人容易问:XX和YY哪个好;——告诉你吧,都好——只要你学就行;
15.浮躁的人分两种:a)只观望而不学的人;只学而不坚持的人;
16.把时髦的技术挂在嘴边,还不如把过时的技术记在心里;
17.C++不仅仅是支持面向对象的程序设计语言;
18.学习编程最好的方法之一就是阅读源代码;
19.在任何时刻都不要认为自己手中的书已经足够了;
20.请阅读《The Standard C++ Bible》(中文版:标准C++宝典),掌握C++标准;
21.看得懂的书,请仔细看;看不懂的书,请硬着头皮看;
22.别指望看第一遍书就能记住和掌握什么——请看第二遍、第三遍;
23.请看《Effective C++》和《More Effective C++》以及《Exceptional C++》;
24.不要停留在集成开发环境的摇篮上,要学会控制集成开发环境,还要学会用命令行方式处理程序;
25.和别人一起讨论有意义的C++知识点,而不是争吵XX行不行或者YY与ZZ哪个好;
26.请看《程序设计实践》,并严格的按照其要求去做;
27.不要因为C和C++中有一些语法和关键字看上去相同,就认为它们的意义和作用完全一样;
28.C++绝不是所谓的C的“扩充”——如果C++一开始就起名叫Z语言,你一定不会把C和Z语言联系得那么紧密;
29.请不要认为学过XX语言再改学C++会有什么问题——你只不过又在学一门全新的语言而已;
30.读完了《Inside The C++ Object Model》以后再来认定自己是不是已经学会了C++;
31.学习编程的秘诀是:编程,编程,再编程;
32.请留意下列书籍:《C++面向对象高效编程(C++ Effective Object-Oriented Software Construction)》《面向对象软件构造(Object-Oriented Software Construction)》《设计模式(Design Patterns)》《The Art of Computer Programming》;
33.记住:面向对象技术不只是C++专有的;
34.请把书上的程序例子亲手输入到电脑上实践,即使配套光盘中有源代码;
35.把在书中看到的有意义的例子扩充;
36.请重视C++中的异常处理技术,并将其切实的运用到自己的程序中;
37.经常回顾自己以前写过的程序,并尝试重写,把自己学到的新知识运用进去;
38.不要漏掉书中任何一个练习题——请全部做完并记录下解题思路;
39.C++语言和C++的集成开发环境要同时学习和掌握;
40.既然决定了学C++,就请坚持学下去,因为学习程序设计语言的目的是掌握程序设计技术,而程序设计技术是跨语言的;
41.就让C++语言的各种平台和开发环境去激烈的竞争吧,我们要以学习C++语言本身为主;
42.当你写C++程序写到一半却发现自己用的方法很拙劣时,请不要马上停手;请尽快将余下的部分粗略的完成以保证这个设计的完整性,然后分析自己的错误并重新设计和编写(参见43);
43.别心急,设计C++的class确实不容易;自己程序中的class和自己的class设计水平是在不断的编程实践中完善和发展的;
44.决不要因为程序“很小”就不遵循某些你不熟练的规则——好习惯是培养出来的,而不是一次记住的;
45.每学到一个C++难点的时候,尝试着对别人讲解这个知识点并让他理解——你能讲清楚才说明你真的理解了;
46.记录下在和别人交流时发现的自己忽视或不理解的知识点;
47.请不断的对自己写的程序提出更高的要求,哪怕你的程序版本号会变成Version 100.XX;
48.保存好你写过的所有的程序——那是你最好的积累之一;
49.请不要做浮躁的人;
50.请热爱C++! 参考技术A 1.1 程序结构清析,简单易懂,单个函数的程序行数不得超过100行。
1.2 打算干什么,要简单,直接了当,代码精简,避免垃圾程序。
1.3 尽量使用标准库函数和公共函数。
1.4 不要随意定义全局变量,尽量使用局部变量。
1.5 使用括号以避免二义性。
2.可读性要求
2.1 可读性第一,效率第二。
2.2 保持注释与代码完全一致。
2.3 每个源程序文件,都有文件头说明,说明规格见规范。
2.4 每个函数,都有函数头说明,说明规格见规范。
2.5 主要变量(结构、联合、类或对象)定义或引用时,注释能反映其含义。
2.7 常量定义(DEFINE)有相应说明。
2.8 处理过程的每个阶段都有相关注释说明。
2.9 在典型算法前都有注释。
2.10 利用缩进来显示程序的逻辑结构,缩进量一致并以Tab键为单位,定义Tab为 6个
字节。
2.11 循环、分支层次不要超过五层。
2.12 注释可以与语句在同一行,也可以在上行。
2.13 空行和空白字符也是一种特殊注释。
2.14 一目了然的语句不加注释。
2.15 注释的作用范围可以为:定义、引用、条件分支以及一段代码。
2.16 注释行数(不包括程序头和函数头说明部份)应占总行数的 1/5 到 1/3 。
3. 结构化要求
3.1 禁止出现两条等价的支路。
3.2 禁止GOTO语句。
3.3 用 IF 语句来强调只执行两组语句中的一组。禁止 ELSE GOTO 和 ELSE RETURN。
3.4 用 CASE 实现多路分支。
3.5 避免从循环引出多个出口。
3.6 函数只有一个出口。
3.7 不使用条件赋值语句。
3.8 避免不必要的分支。
3.9 不要轻易用条件分支去替换逻辑表达式。
4. 正确性与容错性要求
4.1 程序首先是正确,其次是优美
4.2 无法证明你的程序没有错误,因此在编写完一段程序后,应先回头检查。
4.3 改一个错误时可能产生新的错误,因此在修改前首先考虑对其它程序的影响。
4.4 所有变量在调用前必须被初始化。
4.5 对所有的用户输入,必须进行合法性检查。
4.6 不要比较浮点数的相等,
如: 10.0 * 0.1 == 1.0 , 不可靠
4.7 程序与环境或状态发生关系时,必须主动去处理发生的意外事件,如文件能否
逻辑锁定、打印机是否联机等。
4.8 单元测试也是编程的一部份,提交联调测试的程序必须通过单元测试。
5. 可重用性要求
5.1 重复使用的完成相对独立功能的算法或代码应抽象为公共控件或类。
5.2 公共控件或类应考虑OO思想,减少外界联系,考虑独立性或封装性。
5.3 公共控件或类应建立使用模板。
附:C++ 编程规范,delphi作相应的参考
.1适用范围
本标准适用于利用Visul C++ ,Borland C++进行软件程序开发的人员.。
.2变量命名
命名必须具有一定的实际意义,形式为xAbcFgh,x由变量类型确定,Abc、Fgh表示连续意
义字符串,如果连续意义字符串仅两个,可都大写.如OK.
具体例程:
BOOL类型 bEnable;
ch * char chText
c * 类对象 cMain(对象实例)
h * Handle(句柄) hWnd
i * int
n * 无符号整型
p * 指针
sz,str * 字符串
w WORD
x,y 坐标
Char或者TCHAR类型 与Windows API有直接联系的用szAppName[10]形式否则用
FileName[10]形式,单个字符也可用小写字母表示;
Int类型 nCmdShow;
LONG类型 lParam;
UINT类型 uNotify;
DWORD类型 dwStart;
PSTR类型 pszTip;
LPSTR类型 lpCmdLine
LPTSTR类型 lpszClassName;
LPVOID类型 lpReserved
WPARAM类型 wParam,
LPARAM类型 lParam
HWND类型 hDlg;
HDC类型 hDC;
HINSTANCE类型 hInstance
HANDLE类型 hInstance,
HICON类型 hIcon;
int iTmp
float fTmp
DWORD dw*
String , AnsiString str *
m_ 类成员变量 m_nVal, m_bFlag
g_ 全局变量 g_nMsg, g_bFlag
局部变量中可采用如下几个通用变量:nTemp,nResult,I,J(一般用于循环变量)。
其他资源句柄同上
.3常量命名和宏定义
常量和宏定义必须具有一定的实际意义;
常量和宏定义在#include和函数定义之间;
常量和宏定义必须全部以大写字母来撰写,中间可根据意义的连续性用下划线连接,每一
条定义的右侧必须有一简单的注释,说明其作用;
资源名字定义格式:
菜单:IDM_XX或者CM_XX
位图:IDB_XX
对话框:IDD_XX
字符串:IDS_XX
DLGINIT:DIALOG_XX
ICON:IDR_XX
.4函数命名
函数原型说明包括引用外来函数及内部函数,外部引用必须在右侧注明函数来源: 模
块名及文件名, 如是内部函数,只要注释其定义文件名;
第一个字母必须使用大写字母,要求用大小写字母组合规范函数命名,必要时可用下划线
间隔,示例如下:
void UpdateDB_Tfgd (TRACK_NAME); //Module Name :r01/sdw.c
void PrintTrackData (TRACK_NAME); //Module Name :r04/tern.c
void ImportantPoint (void); //Module Name :r01/sdw.c
void ShowChar (int , int , chtype); //Local Module
void ScrollUp_V (int , int); //Local Module
.5结构体命名
结构体类型命名必须全部用大写字母,原则上前面以下划线开始;结构体变量命名必须用
大小写字母组合,第一个字母必须使用大写字母,必要时可用下划线间隔。对于私有数
据区,必须注明其所属的进程。全局数据定义只需注意其用途。
示例如下:
typedef struct
char szProductName[20];
char szAuthor[20];
char szReleaseDate[16];
char szVersion[10];
unsigned long MaxTables;
unsigned long UsedTables;
DBS_DATABASE;
DBS_DATABASE GdataBase;
6 控件的命名:
用小写前缀表示类别
用小写前缀表示类别:
fm 窗口
cmd 按钮
cob combo,下拉式列表框
txt 文本输入框
lab labal,标签
img image,图象
pic picture
grd Grid,网格
scr 滚动条
lst 列表框
frm fram
7注释
原则上注释要求使用中文;
文件开始注释内容包括:公司名称、版权、作者名称、时间、模块用途、背景介绍等,复
杂的算法需要加上流程说明;
函数注释包括:输入、输出、函数描述、流程处理、全局变量、调用样例等,复杂的函数
需要加上变量用途说明;
程序中注释包括:修改时间和作者、方便理解的注释等;
引用一: 文件开头的注释模板
/******************************************************************
** 文件名:
** Copyright (c) 1998-1999 *********公司技术开发部
** 创建人:
** 日 期:
** 修改人:
** 日 期:
** 描 述:
**
** 版 本:
**--------------------------------------------------------------------------
---
******************************************************************/
引用二: 函数开头的注释模板
/*****************************************************************
** 函数名:
** 输 入: a,b,c
** a---
** b---
** c---
** 输 出: x---
** x 为 1, 表示...
** x 为 0, 表示...
** 功能描述:
** 全局变量:
** 调用模块:
** 作 者:
** 日 期:
** 修 改:
** 日 期:
** 版本
****************************************************************/
引用三: 程序中的注释模板
/*----------------------------------------------------------*/
/* 注释内容 */
/*----------------------------------------------------------*/
8 程序
a. 程序编码力求简洁,结构清晰,避免太多的分支结构及太过于技巧性的程序,
尽量不采用递归模式。
b. 编写程序时,亦必须想好测试的方法,换句话说,”单元测试” 的测试方案应
在程序编写时一并拟好。
c. 注释一定要与程序一致。
d. 版本封存以后的修改一定要将老语句用/* */ 封闭,不能自行删除或修改,并要
在文件及函数的修改记录中加以记录。
e. 程序中每个block 的开头 ”" 及 "” 必须对齐,嵌套的block 每进一套,
缩进一个tab,TAB 为4个空格,block类型包括if、for、while、do等关键字引出的。
f. 对于比较大的函数,每个block 和特殊的函数调用,都必须注明其功能,举例如下
:
count.divisor = 1193280 / freq; // compute the proper count
OutByte((unsigned short)67, (unsigned char)182); // tell 8253 that a
count is coming
OutByte((unsigned short)66, count. c[0]); // send low-order byte
OutByte((unsigned short)66, count. c[1]); // send high-order byte
×××××××××××××××××××××××××××××××××××××××
bcb,delphi中的变量命名:
遵循匈牙利命名法,命
名必须有意义,制定如下规定
窗体: 以大写的W开始,如About版权窗体, 命名为WAbout
文件:以大写的F开始,如About版权窗体,文件命名为FAbout.cpp
按钮(Button):如退出按钮,命名为btnExit
……
基类: 加base标记,如报表基类,窗体命名为:WBaseRep, 文件命名为FBaseRep.cpp 参考技术B 你既然喜欢编程,就应该认认真真的学习一门语言,先从VB开始,VB是比较好的入门语言,可视化的,比较简单,是非常好的入门语言。书籍最少应该准备两本,不可能一本书籍会包含VB的所有内容,在看书的时候,可以交叉的看,一本书籍中没有讲到的内容可以在另一本中看到,这样对学习是很有好处的,也能保证所学知识的完整性。学编程是一个很漫长的过程,不要着急,要理论与实践想结合,例程书籍也是很重要的,看源代码对学习也是很有帮助的,等你学完这门VB语言之后,学习别的语言是非常简单,可以尝试C语言,按照C——C++——VC的顺序学习,有助于知识的连贯性,我也希望你能学好的。
学习C语言,谭浩强的《C程序设计》是一部非常好的C语言书籍,学习程序设计是一个非常漫长的过程,不要着急,一本书多看两遍三遍,学会交叉学习法,在学习C的过程中,可以看看数据结构,编译原理,操作系统等书籍,对编成都是很有帮助的。最开始学习的时候,先不要编一些比较大的程序,多编一些小程序,比如数组运算,字符组合等等,指针是C语言的精华,是比较复杂的部分。如果有一天你能熟练驾驭指针的操作了,我相信你,你一定能学习好C语言的。
我是2001年接触编程的,刚开始只是大概了解一下,并没有进行比较深入的学习,我是从VB开始入门的,学了1年多,然后转入C语言,按照C——C++——VC的顺序学习,C学了两年,现在开始学习C++,C++的学习是很有难度的,类,标准库,多态,继承等等比较抽象难道懂的概念,虽然他秉承了C语言的风格,但是有很多很多是C语言不具备的,要多看书,上机实践也是必不可少的。《C++编程思想》,《C++标准库》,这些书都非常好,内容也很全面,例程书籍也是必不可少的,多看源代码对编程是很有帮助的,也会少走很多弯路。总之,C++的学习是一个比较漫长的过程,大概需要两年的时间,这只是底限,如果想学通,学精,还需要更多的时间。
我向你推荐一些C++经典书籍:
c++程序设计教程
c++编程思想
c++大学教程
c++程序设计语言
数据结构算法与应用c++语言描述
c++标准模板库------自修教程与参考手册
泛型编程与STL
深度探索c++对象模型
设计模式---可复用面向对象软件的基础
重构---改善既有代码的设计
Essential c++
Effective c++
More Effctive c++
C++ primer
前五本应该属于入门书籍,后面的属于学习难度比较大的,想提高C++的编程能力,看看这些书籍有好处。建议你把编程思想这本书多看看。多做练习题,对提高编程水平的帮助是很大的。
其实语言是相通的,一门语言学会了,学习其他语言就比较容易了。
业界有这样一种说法,因为JAVA这门语言包含了C++的一些特性,掌握了C++,就等于掌握了JAVA的80%,
在掌握了C++之后(我说的掌握指的是,可以熟练用C++编程序了,并没有要求你完全掌握C++的所有部分,没有人能达到这一点,因为C++太庞大了,如果能坚持不懈的学习C++两年到三年的时间了,你就可以学习其他的语言了)可以试着学习一些其他的语言,如JAVA,VC++等等比较复杂的语言.
这时候可以说你已经对程序设计语言有个大体的认识了,可以明确自己学习的方向,根据自己的学习情况而定,是学习一些自己比较感兴趣的语言啊(从兴趣出发),还是为了找工作啊,开始进行更深入的学习.比如学习windows下的框架编程和.net编程等等比较复杂的语言.
如果是为了找工作的话我建议你学好C,C++,JAVA三门语言.
在我国目前的软件开发行业中,北方C,C++,JAVA的需求量是非常大的.南方以VB为主.
关于英语对学习程序设计有没有帮助的文章这个话题已经有很多人议论过了,我个人建议把计算机专业术语弄明白了就可以了,你可以买一本计算机英语教程看一看,对程序设计是有帮助的。其实程序设计当中的英文都是一些非常简单的,如for,else,while.......并没有太高深的,而且学习程序设计不像学习网络,如CCNA这类认证需要掌握大量的英文。但是在学习程序设计的时候身边有两个工具应该足够了-----------金山词霸,计算机词典。相信你一定能学好程序设计的。
学习数学和学习程序设计有一个共同点------锻炼逻辑思维能力。在程序设计的学习中涉及到数学的地方并不多,所以也没有必要去认真的学习数学也可以学好程序设计的。
如果你是一个肯吃苦,肯用心学习程序设计的人,具有坚持不懈的精神的人,我相信,只要你认认真真去学,即使你的英语数学水平再差,你也一定能够学好程序设计的。
我是一名大三的学生,我也正在学习C++这门语言,一年多的时间,学习的感觉真的很累的,希望能和你成为朋友!
好了,说了这么多,可以参考一下,为自己做个学习计划,要对自己有信心,最后祝你在学习编程的道路上走的更好更远,祝你学有所成!! 参考技术C 网上有很多各种编译器的优劣比较的东西,我写这些东西并不是想支持或否定某些东西,因为我始终认为在编程的领域中,我只是一个初学者,并没有资格来评判什么(况且我也不想去评判),我只是想讲述一下个人学习道路上的感受。
学编程的一个必备的条件是你要有一个实践的平台--一个相应的编译器,没有这个条件,一切都是空谈。选择编译器之前,首先选择的是语言(这个我想不必更多的解释了),这里我假设你选择了C或C++。
现在最流行的编译器恐怕应该是微软的VC了,在继续之前,我想再提一下一个重点:VC是一个编译器,只是一个用来把C++的代码生成为可执行文件的工具而已(当然我说的有一些简化,但是认识这一点很重要,虽然你可以在很多地方看到类似的话,但我还是要提,我希望每一个学习编程的人最好从一开始就知道它,而不是走了很多弯路以后再来醒悟)。另外一种强大的编译器就是Borland C++ Builder(后面我都将以BCB来代替)。
如果你在使用VC,我想问一下,你为什么用它?我想很多人根本无法回答这个问题,大多无法回答的原因很明显:1)听说的,VC是最好的;2)微软的产品;3)只知道这个。当然更有甚者是一开始就把VC作为一门语言来学,呵呵,我相信一定有这样的人的!每当谈及这些问题的时候,我会觉得很多时候,软件行业中技术并不是优秀软件的全部,VC一定是最好的么?VC为什么会这么成功?我不得不佩服微软的商业策略。关于VC是如何成功的,我强烈推荐一篇文章--《C/C++圣战》,作者李维,《程序员》杂志2001.10月。
一个编译器究竟带给我们什么?在早期,编译器其实就是一个简单的文本编辑器+库(头)文件+编译程序,很多早期的程序员会使用一些其他的编辑器来书写自己的程序,然后再使用编译器来编译。现在我们使用的编译器通常称为集成开发环境(IDE),这一类型的开发环境为我们提供了很多东西:方便的开发方式、完善的帮助系统、丰富的库和一些特有的特性。
在某个特定的平台下编程你需要关心的主要有两件事情:1.是否支持你所使用的语言;2.平台特性(WINDOWS下platform sdk为我们提供了一切)。在WINDOWS平台下,我们可以使用C++来编程,剩下的就是平台特性了。WINDOWS为我们提供了一系列丰富的API函数,而且这些函数在不同的WINDOWS版本上会略有不同。早期的WIDNOWS编译器就是在单纯的C/C++编译器中对平台特性提供支持,并没有提供更多的东西,如果你只打算使用WINDOWS API的话,编译器的选择可能只是编译优化程度的选择而已(也许你该选择BCB,据说要比VC优化的好一些,我没有真实的数据来对比,但BORLAND公司的编译器优化一向被认为是优秀的)。真正产生变化的是类库封装的开始。微软提供了MFC类库,BORLAND提供了OWL类库。所谓类库就是提供了对WINDOWS API的一种封装,相信每个写过WINDOWS API程序的人都有一个体会,一个最简单的WINDOWS窗口程序都需要几十行代码,这足以令初学者望而却步,相比之下DOS下的经典例程"hello world"却只需要短短的一行代码(所以DOS时代才令我怀念--简单,明了。呵呵)。类库的出现正是为了解决这个问题,WINDOWS类库主要是对WINDOWS下的API函数进行封装,来达到这样的目的:1)简化我们编程过程中的重复的简单工作(只创建窗口、建立消息环这样的单调工作);2)使我们的工作更符合面向对象的风格。如一个MFC中的窗口:
CWnd MyWindow;
MyWindow.Create(…);//这里省略了参数
我们只需要创建一个窗口对象,通过对象的Create方法来创建窗口就可以了,完全不必再去关心底层的一些东西,整个过程就象工厂的一个生产过程--这也正是面向对象的精神所在(如果你现在不能体会这一点,不用着急,以后慢慢的自然会明白的)。
VC和BCB采用了各自不同的方式(MFC和OWL)来封装,大家采用的手段各有所长,很难说哪个更好,唯一让MFC占优的应该是操作系统的优势了。相比之下,我个人认为起码在程序生成的环节上,BCB要好一些(其实BCB我个人也是浏览过一下,总共时间不过2-3天,只是做一次了解而已),在VC中,如果你为一个通用控件如CListCtrl关联一个变量,写过程序的人应该知道,编译器会作为一个类成员变量生成,而在BCB中,这个变量是以类成员指针的方式存在的,有什么区别呢?大量的局部变量会造成堆栈的溢出,这也是为什么你无法创建一个char largestr[100000000]的原因了。如果你在VC的程序中使用了很多这样的变量的话,天知道会怎么样(虽然堆栈中的变量存取更有效率)。
在一段时间以前,我也具有很多非常糟糕而幼稚的想法,直到某一天,我明白了很多。其实许多学计算机的人都会有相同的感受,以下的一段摘自候捷先生的散文:
南宗与北宗,顿悟与渐悟
佛法有顿悟,学问可没有。如果有人说,我突然在某一天对Java开悟了,对OO开悟了,对MFC开悟了...,我想那是他刻意(为了炫耀)或非刻意(因为遗忘)地忽略了他所谓的「悟」那一天之前的所有努力。是的,那叫渐悟,不是顿悟。
Inside OLE 一书作者 Kraig Brockschmidt 在他的序里面有这段话:
1993年一月的某个周日下午,当我正做着与OLE全然无关的事情时,我突然获得了所谓的 OLE 涅磐状态。所有关於OLE的支支节节突然全都归定位。在六个月的模糊心智之后,我突然看清楚了OLE。
Essential COM一书作者Don Box在他的序里面亦有一段类似的话:
幸运的是有一天(1998年八月八日),突然像神迹一般,COM对我变得再明白不过,我终於了解了COM的动机。如何把这个programming model应用在每天遇到的程式设计问题中,也因此显得再明白不过。
听起来都是顿悟的例子。难道学习COM/OLE特别需要宗教信仰吗?我想是因为这些技术特别需要高度抽象思考,使得霍然开朗后的喜悦巨大到令人觉得是一种「突然的神迹降临」。其实你我都明白不过,知识点的突破,是靠知识面的累积。
很多时候,当你回头去想以前的不明白问题的时候,你是否有这样的感觉?我相信答案是肯定的。我想问题的关键就在上面一段话的结尾:知识点的突破,是靠知识面的累积 对我来讲,当我接触了BCB之后的一段时间,我突然就明白了,它和VC仅仅是提供了一个封装了不同类库的编译器而已,真正关键的问题是C++呀!也正是在这以后,我才真正开始入门,而这都是我学习编程一年多以后的事情了。如果没有那个偶然的机会,我接触过一次BCB,也许到现在我还无法分清楚那些是VC提供的、那些是标准C++提供的。与C++相比,MFC和OWL变得微不足道了(我没有小看它们的意思)。
我希望所有的人都不要重复我走过的学习之路,我的路是曲折的,至少在学习的过程中我浪费了很多时间(我曾经幼稚的认为现在的编程只是进行功能的扩充而已,如WINDOWS SDK等,完全忽略了面向对象的思想存在)。我一直认为VC是一个优秀的编译器,但是当你构建一个MFC程序的时候,很多书籍介绍的入门方式显得相对松散,给你的感觉是在使用一个庞大的WINDOWS函数库而不是一个类库,许多教科书忽略了MFC中面向对象概念的加强,而仅仅是一些功能上的实现,而在BCB中,面向对象的思想相对要强化一些。
我写这些并不是想说明什么样的编译器好和什么样的编译器不好,最终的选择权可能不在你我的手中,很多时候是平台或其他因素的限制而导致你必须使用某种编译器。我只是想说明一些思想,因为我无法把我想说明的这些问题提炼出来,所以松散的写了很多,最终我想说的就是不要因为一些不必要的原因去拒绝--Never!
以上内容仅代表个人观点,如有不当,欢迎讨论。 参考技术D 其实C++没有那么难,表怕:)
我是大二的,去年学C++。当时一点编程基础都没有,你才高一,一定能学得比我轻松的:)以下个人经验供你参考。
1。我认为编程和数学英语什么的一点关系都没有!我宿舍有个文科生,和我们一样学c++,她照样学得很好。大一下学期用的是英文教材,发现其实里面的英语初中水平就可以看,句型都很简单,查些单词就可以了。学习编程首先心里一定不要害怕!C++已经很接近我们的正常思维了,现在大家都用C++编程,学会的话很方便的。
2。老师肯定是从最基本的教起,那么你一定要跟上老师的脚步,循序渐进地学。我刚学的时候课本上的每个例子,哪怕是再简单的例子我都会亲自在电脑上演示,这样可以加深印象,又可以熟悉键盘。学习C++的时候前后联系非常重要,特别是记住一些典型的例子,对往后的学习帮助非常大。
另外,还应该接触大量的课外的编程例子。这些例子一般是老师同步给我们的,是帮助我们加深理解。她们都是老师根据经验选出来的,比什么参考资料都好。
这些方法经过了我个人期末考试的检验,我认为效果还是不错的。
3。我们老师推荐的教材是清华大学出版社出版的《C++编程教程》(名字大概是这样……),作者是谭浩强先生。谭老师教学经验非常丰富,我们初学者会遇到的问题和易犯的毛病他都在书中讲得非常清楚。我个人也为找编程教材走了一些弯路,结果还是觉得老师推荐的这本教材最好了,谭老师的书在学习计算机用书这方面其实是很畅销的。
4。软件嘛,随便去华军软件站下个C++就好了,主要还是自己要掌握好。
心理上一定要正常地看待它,就像学习其它课程一样,好好学,你一定能成功!本回答被提问者采纳
编程学啥语言好
好的编程语言:
最能反映系统本质的 C 语言
叫人难以捉摸的 C++
天生就格式优美的 Python
上古级的 Pascal
神奇的函数式编程语言 JavaScript
微软系的王牌语言 C#
被誉为世界上最好语言的 PHP
使用人数最多的 Java
能够方便操作系统的 Shell 脚本语言
面对编程这个话题,或许你已是一位编程老手,对编程熟悉无比,现在是想查缺补漏;亦或许你是一个纯新手,对编程一无所知,学习完全是从 0 开始。
不管哪种情况,在我们讨论编程学习的时候,怎么都绕不开一个话题,那就是语言选择。
鉴于以往的工作经历,我了解或者熟悉的编程语言有十几种之多,包括:
此外,还有一些仅仅是使用过,能看懂的语言,就不列出来了。
你可能会有疑问了,为什么我会这么多编程语言呢?原因很简单,工作中是一个边学习边工作的过程,不同编程语言擅长做的事情不一样,
让专业的语言干专业的事情,这是一个程序开发人员最基本的认知,所以我能学会多种编程语言也是情理之中。
你可能又会问了,学习了这么多编程语言,难道不会造成混淆么?其实,编程语言设计者,更多的还是为了让人们使用自己的编程语言进行开发,所以语言设计本身都会有前辈语言的主流特征,
这也就是为什么,只要你学习了一门主流语言后,会大大降低你学习第二门语言的成本。可第一门语言的选择,是门技术活,这也是今天我们要说的主题。
参考技术A 作为一名IT行业的初学者,什么样的语言最符合目前自身的需求。我们从C++语言开始,C++是目前最适合做游戏开发的语言,如果你入行并不是为了有一份理想的薪资,只是对于游戏开发有着别样的爱好,那么C++语言也不失为一种选择,但是大家都知道,国内大型游戏的开发环境并不是很景气,游戏公司基本也就巨人,腾讯,网易,完美世界,等企业,这些游戏巨头们,对员工的要求相当高,本科本专业是他们的门槛,本身C++语言也是比较难的语言之一,没有多年的工作经验,很难有很大的成就。
C#,大家都知道他还有个名字.net,这种语言使用程度也很广泛,如果说十成的程序员,其中五成使用Java,那么三成的程序员使用就是.net。这个语言好不好呢,他跟Java有着很多的相似性,区别在于,Java是可以在多平台上运行,.net语言却只有微软的平台上能够运行。
大家都知道微软系统对于病毒来说是不堪一击的,大部分的机构在服务器上都不会选择微软系统。
现在最流行的词是什么,无疑是大数据,云计算,人工智能,python正好是人工智能所需要的语言了,大家说人工智能现在很火,是未来的发展趋势,这个我不否定,但是未来是多久呢,可能在几十年后,技术成熟了,才能广范围应用,作为我们是不推荐学员选择的,本身现在研究人工智能也需要很深的数学功底,一般来说最少是数学专业或者计算机专业的硕士生才是这行的入门人选。
那有人要问了,php简单,不应该是我们入门的最佳选择吗,没错php确实简单,但是它承载的数据量是有限的,但一个网站经常卡顿的时候,是严重影响了用户的体验的,我们编写程序并不是因为哪种语言好写,还要注重现实,对于用户来说,是否对这个程序满意,闭门造车的错误我们千万不能做。
对于跨行业的人而言,最困难的其实是第一步,那就是如何进入这个行业。如果你连金豆进不去,那永远没有第一份工作,好好努力,Java正式适合初学者的语言,学起来也不是太难,当下的前景也很好,工作岗位也是几种语言里面最多的,正是适合转行的初学者,不上数据结构,设计模式,算法设计,总有一天你也是IT的大牛人物。
以上是关于学C++语言应该注意啥的主要内容,如果未能解决你的问题,请参考以下文章
我想学编程,算是兴趣吧。先从C开始还是JAVA,需要用到啥软件,最好是能给网址、里面软件是现在还