我觉得很多新人都和我一样情况吧,纠结自学,纠结语言

lhw7791086 2014-06-14 06:18:20

先介绍一下自己,非计算机专业出身,刚毕业马上快满1年了,学的是通信,大学期间接触了C语言。毕业后由于工作不理想,想转到IT这方面。为什么转IT?其实我也不太清楚,虽说不是很厌烦编程,但是也不是对它特别感兴趣,也许觉得相对于其他路,IT这条就目前来说比较靠谱一些。

我面临的第一个问题,就是选择一条大方向。其实说实话,我对编程方面不是太了解,就知道语言C,C++,JAVA,C#这几类比较常见,还有一些当时做老师布置的作业时用的JS,HTML,CSS这几种做网站的。这几种语言区别?结合我大学四年的经历,我就粗浅的认为:C#很容易做出界面程序,C,C++基本只用过控制台,编一些计算之类的东西,用过一点点MFC,感觉太难了。JAVA没用过。以上言论前辈们就不要吐槽了,我实在菜的不行。

在CSDN看了很久帖子,特别是职场话题,感觉C,C++最难学,但是这二者未来基本不会有大起伏。JAVA貌似很火,很多人学,但是物以稀为贵是吧?不久看到一个帖子,说:别问哪种语言最有前途,学好了一门语言就有前途,觉得很对,所以最后吧方向定在C++

面临的第二个问题,就是自学。在自学这将近1年的时间里,虽然时间不长,但是也暴露了很多问题。我也知道需要啃书,但是说实话,有些东西真的实在是看不下去啊,我目前面临的最大两个问题是:1不知道哪些是重点,2不知道找什么题目做。

关于第一点,拿C++来说,前面很顺利,但是学到类模板,类继承,代码重用这几块,感觉真的啃不动,细节太多了,根本记不住。久而久之就厌烦了。
关于第二点,我记得有个帖子说,自学看书效果其实不好,最好的是找一个很小很小的综合项目,把它做出来了,很多东西就会了。我也觉得这点很有道理,大学的时候,自学一门语言快一年,效果不太好,但是,有一次老师让用一门新语言做一个小程序,边做边学,这样逼自己一把,感觉学得很快。

上面废话太多了,我就想请教前辈们,1:不存在哪门语言更有前途,只在于学得精不精。这种说法客观来说对与否?
2:关于自学,感觉自己效率很低,不知道重点,哪些细节该牢记,哪些不用?特别是C++这种细节太多的。学习的渐进步骤不太了解。看书,做课后题,下一步不知道怎么走了?目前由于现实关系,只能呆在家,无法报培训班。各位前辈有什么可以开导我的么。。。
...全文
535 40 打赏 收藏 转发到动态 举报
写回复
用AI写文章
40 条回复
切换为时间正序
请发表友善的回复…
发表回复
lhw7791086 2014-06-20
  • 打赏
  • 举报
回复
引用 39 楼 linlinxi007 的回复:
我以为: 自学还是学c#或java吧。相对来说简单很多。C/C++相对而言难一些,容易打击新手学习的积极性。 等C#或java的基本概念学的差不多了,也有了一定的代码基础,可以尝试C/C++
可是现在已经学了,不想重新开始啊。。。
linlinxi007 2014-06-19
  • 打赏
  • 举报
回复
我以为: 自学还是学c#或java吧。相对来说简单很多。C/C++相对而言难一些,容易打击新手学习的积极性。 等C#或java的基本概念学的差不多了,也有了一定的代码基础,可以尝试C/C++
lin_style 2014-06-18
  • 打赏
  • 举报
回复
哥50几岁的人了还在重新学呢
qiminixi 2014-06-17
  • 打赏
  • 举报
回复
1是对的,但相对的还有一个找工作难易的问题 2重在理解,写代码遇到的次数多自然就会记住。 C++的应用领域并不是很广(游戏、MFC。。),很多时候也只是用C语言了。
qiminixi 2014-06-17
  • 打赏
  • 举报
回复
引用 31 楼 zhao4zhong1 的回复:
[quote=引用 30 楼 dcxy0 的回复:] 以下立场均站在一个学Java的立场来说: 1.C++比Java坑,但是很稳,涉及范围更广; 2.接触底层硬件,能更加了解更多信息; 3.C++真的坑.真的. 所以,自学,你还是去学Java好点,C++不适合作为入门语言。 记住,C++真的很坑很坑,坑到什么程度-------------------------------整个终端屏幕都是报错信息,你根本就找不到从哪入手。。。、。。。
偶遇到类似问题都是用 “每次用/*...*/注释掉不同部分再重新编译,直到定位到具体语法出错的位置。” 的方法解决的。 [/quote] IDE很关键
赵4老师 2014-06-17
  • 打赏
  • 举报
回复
http://www.cplusplus.com/reference/algorithm/find_if/?kw=find_if 参照这个例子代码,思考一下你find_if用对了吗?
JPF1024 2014-06-17
  • 打赏
  • 举报
回复
引用 31 楼 zhao4zhong1 的回复:
[quote=引用 30 楼 dcxy0 的回复:] 以下立场均站在一个学Java的立场来说: 1.C++比Java坑,但是很稳,涉及范围更广; 2.接触底层硬件,能更加了解更多信息; 3.C++真的坑.真的. 所以,自学,你还是去学Java好点,C++不适合作为入门语言。 记住,C++真的很坑很坑,坑到什么程度-------------------------------整个终端屏幕都是报错信息,你根本就找不到从哪入手。。。、。。。
偶遇到类似问题都是用 “每次用/*...*/注释掉不同部分再重新编译,直到定位到具体语法出错的位置。” 的方法解决的。 [/quote] 我就是用你这个方法定位出错误的.bind需要导入的库和需要引用的命名空间有点乱,书上说的不清楚..... 知道哪个地方出错,就那一行代码,结果出错信息估计有50多行。。。。。。。。 那行代码大致是这么写的{我自己写的}

//vec是一个vector<string>
//isshoter的原型是:bool isshorter(const string &a,const string &b)返回两个字符串长度比较的结果
auto ref = find_if(vec.begin(),vec.end(),bind(isshorter,_1,_2));
赵4老师 2014-06-17
  • 打赏
  • 举报
回复
引用 30 楼 dcxy0 的回复:
以下立场均站在一个学Java的立场来说: 1.C++比Java坑,但是很稳,涉及范围更广; 2.接触底层硬件,能更加了解更多信息; 3.C++真的坑.真的. 所以,自学,你还是去学Java好点,C++不适合作为入门语言。 记住,C++真的很坑很坑,坑到什么程度-------------------------------整个终端屏幕都是报错信息,你根本就找不到从哪入手。。。、。。。
偶遇到类似问题都是用 “每次用/*...*/注释掉不同部分再重新编译,直到定位到具体语法出错的位置。” 的方法解决的。
JPF1024 2014-06-17
  • 打赏
  • 举报
回复
以下立场均站在一个学Java的立场来说: 1.C++比Java坑,但是很稳,涉及范围更广; 2.接触底层硬件,能更加了解更多信息; 3.C++真的坑.真的. 所以,自学,你还是去学Java好点,C++不适合作为入门语言。 记住,C++真的很坑很坑,坑到什么程度-------------------------------整个终端屏幕都是报错信息,你根本就找不到从哪入手。。。、。。。
JPF1024 2014-06-17
  • 打赏
  • 举报
回复
引用 23 楼 zhao4zhong1 的回复:
[quote=引用 18 楼 lhw7791086 的回复:] [quote=引用 14 楼 zhao4zhong1 的回复:] 搜网络教程“学OpenGL编3D游戏”。
请教前辈,为什么是这个?[/quote] 相信你把这个过一遍之后, 会对于稍大点的C/C++项目有了初步了解, 会揭开对流行的FPS游戏怎么编写的神秘面纱。[/quote]赵老师,我自学C++,门外,是不是也适合看下这个?
yangyunzhao 2014-06-17
  • 打赏
  • 举报
回复
根据经验,培训班基本没有什么作用的。 语言并不重要,就好像有人用汉语可以写很美的文章,有人用英语也可以写很美的文章。会汉语不一定能写文章,会英语也不一定能写文章。 同理,你会C++,不见得能开发出高效优质代码。 我的建议是选好一门语言即可,无论C++还是JAVA,当然在这个版块,我肯定强烈建议你选C/C++。毕竟以后工资可能高一点点。 但是,一定要有一个主攻方向,数据库?linux系统开发?嵌入式?web服务?图形处理?手游?…… 其实精通一门语言,远远不及精通一门技术重要。工作后你就会知道,单纯一个通用性程序员,工资不会太高的。有专长的,尤其是很难替代的,才是牛人
「已注销」 2014-06-17
  • 打赏
  • 举报
回复
楼主你就是我的难兄难弟,情况很相似
超级能量泡泡 2014-06-17
  • 打赏
  • 举报
回复
找个大牛带,不过需要报告
lhw7791086 2014-06-17
  • 打赏
  • 举报
回复
引用 21 楼 NineTyNine_LP 的回复:
我也是非计算机专业毕业的。以我的观点是,先学习一门语法简单的语言,这有助于你入门。例如C#和java就是这种类型的。然后再学习C++。C++是慢热型的,直接学习C++容易导致你受挫,不容易坚持下去。 我毕业那时学的就是C#,凭借C#找的工作。后来根据公司需要转到的java。目前在学习C++。 没必要把自己限定在某一种语言上。 语言只是一扇门,掌握了这种语言,就能与这个门内的世界沟通和交流。也就多了一种解决问题的途经。
谢谢
lhw7791086 2014-06-17
  • 打赏
  • 举报
回复
引用 23 楼 zhao4zhong1 的回复:
[quote=引用 18 楼 lhw7791086 的回复:] [quote=引用 14 楼 zhao4zhong1 的回复:] 搜网络教程“学OpenGL编3D游戏”。
请教前辈,为什么是这个?[/quote] 相信你把这个过一遍之后, 会对于稍大点的C/C++项目有了初步了解, 会揭开对流行的FPS游戏怎么编写的神秘面纱。[/quote] 谢谢
lhw7791086 2014-06-17
  • 打赏
  • 举报
回复
引用 28 楼 yangyunzhao 的回复:
根据经验,培训班基本没有什么作用的。 语言并不重要,就好像有人用汉语可以写很美的文章,有人用英语也可以写很美的文章。会汉语不一定能写文章,会英语也不一定能写文章。 同理,你会C++,不见得能开发出高效优质代码。 我的建议是选好一门语言即可,无论C++还是JAVA,当然在这个版块,我肯定强烈建议你选C/C++。毕竟以后工资可能高一点点。 但是,一定要有一个主攻方向,数据库?linux系统开发?嵌入式?web服务?图形处理?手游?…… 其实精通一门语言,远远不及精通一门技术重要。工作后你就会知道,单纯一个通用性程序员,工资不会太高的。有专长的,尤其是很难替代的,才是牛人
多谢!
赵4老师 2014-06-17
  • 打赏
  • 举报
回复
引用 35 楼 qiminixi 的回复:
1是对的,但相对的还有一个找工作难易的问题 2重在理解,写代码遇到的次数多自然就会记住。 C++的应用领域并不是很广(游戏、MFC。。),很多时候也只是用C语言了。
做个可能不太恰当的比喻: 人想让狗帮忙逮只兔子,可是人说话狗听不懂,于是人发明了一种介乎人言和狗语之间的语言,即口令。 人想让电脑帮忙做计算,可是人话电脑听不懂,于是人发明了一种介乎人言和汇编机器码之间的语言,即C语言。 人对狗的口令得让人容易学、也得让狗容易懂。 C语言同样得让人容易学、也得让电脑容易懂。 相比之下C++、Java就是人学得费劲、电脑也经常闹不懂。
黑娃 2014-06-16
  • 打赏
  • 举报
回复
用C#,java会很方便,高效,更少出错。 用C/C++会感觉自己更贴近操作系统,就像和一个朋友更亲近。 不管学什么语言,我都会用C++和它对比,对比记忆效果好。 如果你只学C++标准以内,你会发现很多新东西你都不知道,比如什么属性、事件、委托、扩展、匿名表达式(新的c++标准听说有这个了)。 如果只学更高级的语言,你会比懂C++的人总是“高级”一些,不懂指针和内存的暧昧。(很精通除外) 综上所述,我觉得c++和操作系统是很重要的,就像程序员的内功修为,需要你不断的去学习,精进,当然更高级的用企业支持更新的语言也很值得学习,因为开发效率高,能更敏捷的与时俱进,用起来很爽。
xiaoyu_code 2014-06-16
  • 打赏
  • 举报
回复
学会了C++,其他语言基本无障碍,转java,转C#都是个把星期的事情,反过来就不一定了。另外,很多公司招JAVA,C#都希望是从C++转过来的。
Falleyes 2014-06-16
  • 打赏
  • 举报
回复
引用 11 楼 lhw7791086 的回复:
[quote=引用 5 楼 Falleyes 的回复:] 第二个问题,编程不是应付考试,没有所谓的重点。只要是工作中要用到的,就都需要掌握。
谢谢,但是我的状况是:目前在自学,所谓工作中用到的,我没有做过那些项目,根本不知道那些用得比较多,现在的条件不允许出去实习,只能在家里自学,所以才不知道重点 [/quote]可以试试做几个小游戏,比如基础的俄罗斯方块、扫雷、坦克大战之类的(因为网上的参考代码多),你就明白至少需要会什么;写出来,和网上的众多代码比较一下,看看你还需要什么技术可以把代码优化。这就是所谓的自己找项目实战。
加载更多回复(20)

15,440

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 非技术区
社区管理员
  • 非技术区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧