C或者C++短时间入门要多久,精通玩转得要多久?

写代码的小垃圾 2019-04-02 08:08:21
谢谢各位大佬发言啦啦啦啦啦啦啦啦啦啦啦
...全文
3929 38 打赏 收藏 转发到动态 举报
写回复
用AI写文章
38 条回复
切换为时间正序
请发表友善的回复…
发表回复
greex 2019-04-29
  • 打赏
  • 举报
回复
因人而已,天才三个月精通,普通人10年不一定精通了。
建议多做真实上机题,理论才能直正好点
CT8100 2019-04-27
  • 打赏
  • 举报
回复
5年入门10年小成30年大成(不断学习的情况下)
轻箬笠 2019-04-27
  • 打赏
  • 举报
回复 1
除了简历上写过精通C/C++,其他情况下,根本不敢说精通。
生活折叠 2019-04-27
  • 打赏
  • 举报
回复
引用 9 楼 weixin_44833707的回复:
如果每天坚持敲上几段代码,一个月足以入门,三个月可以精通
对的,多敲代码很重要。
  • 打赏
  • 举报
回复 1
1.c++正式入门后的工作岗位有哪些,就业前景如何?
主要集中在基础行业软件、游戏(渐渐减弱)领域。资深C++写手薪水非常高,但是职位少、难度大。一般小公司培养不起资深C++攻城狮,很多是在国企练了十几年,而后直接跳槽的。
C++学习的话,注意学框架、数据库、网络周边知识。把Qt库学通了,再结合linux , win32 , Arm等环境的差异学习,会迅速积累能力。

2.c++从学习到能正式找工作需要多久时间?
没有项目牵引,自己学习是很困难的。可以在你的行业中选取一个点,用C++解决问题。比如建立一个数据库、呈现某个化工流程的工况等等。如果能够供职于大企业,会有更多的机会接触项目。如果停留在自学阶段,没有项目经历,找到好工作很难。现在招C++的很多都是只要资深的,培养不起。

3.仅出于找工作考虑,是否应该放弃c++学习java(或者其他什么)?还是先看完c++ primer plus。
找工作的话,Web前端短平快,但是后面很累。面向终端用户的项目,永远停留在工具链的使用上,变化快、再学习成本高。如果学习Web,也要去大公司。大公司会维护自己的工具链,慢慢再补C++、Python、C,从用工具向写工具转变,从面向最终用户向面向企业转变。

4. java(或其他)从学习到能正式找工作需要多久时间?
最快的是学习Web ,Html5 + JS。如果你是非计算机行业的开发者,建议还是从本行业入手,做你的中心行业。中心行业是缓变的、保值的。像税务、财务、金融、餐饮、物流、安防视频、医疗、保险,每个行业都有复杂的逻辑,搞清楚了后,哪怕是用最老的软件也能吃很多年。

5.学习编程有没有必要考证?如果有,需要考哪些证?
可以适当考,不过现在HR面试很精,没有真经历,几下子就会露馅儿。

6.如果继续学习c++,大致的学习规划是怎样的?
(0)基础知识回顾:计算机原理、数据结构、计算方法
(1)C++语言本身学习,不怕枯燥,黑屏printf,试着去浙大ACM做题。学号STL库的使用。
(2)C++编译器命令行学习,装个Ubuntu, GNU C++、MakeFile,就反过来知道VC背后的编译过程,中间文件。VC包裹的太深了。
(3)C++特性强化,thread, OpenMP、lambda\闭包、高阶STL算法(排序、查找等)。
(3)中文基础,包括 字符编码(Unicode、UTF-8、ANSI)、代码页转换。
(4)动态链接、静态链接的异同、库的使用与封装发布。C++库与C库的异同,C++调用C库,C++为C发布库。比较不同编译器版本编译出的C库、C++库中的符号名称异同,以理解C++/C二进制兼容性的显著区别。
(5)第三方库的使用。boost,curl等,建议在Linux下学习开源库。目前能想到的功能,一定会有C的开源库。
(5)图形界面编程(GUI),建议直接上Qt
(6)网络编程、数据库编程(关系代数学)、结构化数据处理(JSON、XML),多线程、高级并行计算,Qt通吃
(7)高级图形界面,报表图表、3D图表(Qt通吃)、MVC、Qt插件
(8)高级控制台编程。管道重定向、命令行解析、多进程树管理、fork、后台服务开发,fcgi (Qt)、汇编植入(ASM)。酌情研究底层API、驱动开发。
(9)性能与稳定。智能指针、隐含共享(Qt implicit sharing)、右值引用、线程专有存储、锁
(10)外围框架。消息队列、嵌入式数据库(Sqlite)
(11)调试与测试。gdb、valgrind、单元测试、性能报告分析
(12)文档化,doxygen、开源项目准入基础
(13)版本管理,Git使用、Git服务器搭建
(14)代码功底:使用Notepad++、Excel/WPS/Libreoffice高阶功能,实现批量生成代码。数据库条目的自动清洗插入,使用Excel批量生成SQL脚本。
(15)工具链混合:python\matlab\Octave混合编程、bash、windows命令行编程、apache 模块编程、OLE自动化、COM
(end)不断熟练的最好方法:参与、发布开源项目

学习C++,实际上是对当代计算机体系的全面学习。C++是少有的几个从底层贯穿到末端(Qt可以做Web浏览器、CGI服务器)的工具链,涉及的面非常广。一旦精通,一通百通,对计算机、计算机周边的理解是立体的、全面的、宏观的。如果再结合具体行业,是如虎添翼。
Q446512799 2019-04-10
  • 打赏
  • 举报
回复 1
一般学个一个月就精通了吧,学个一两年估计就是入门和熟练了
老葱1# 2019-04-10
  • 打赏
  • 举报
回复
如果你没有偏执狂的特征,就别想了。 只有那种第二天醒来,就对自己敲的代码生厌,从新优化结构从新敲的人,只有学到一个知识点非把它用在优化已完工的代码上不可的人,才会走上精通的路, 慢慢的你就会无师自通各种设计模式设计思想。而不是学了 stl , boost,设计模式,就能精通。( stl 不建议学,能用好就不错了,语法太专业了 )
shareone2 2019-04-10
  • 打赏
  • 举报
回复
加油^0^~,我们支持你
bailongyu 2019-04-09
  • 打赏
  • 举报
回复
引用 16 楼 早打大打打核战争 的回复:
可能几天,也可能一辈子...

看机缘。。。
Method.Jiao 2019-04-09
  • 打赏
  • 举报
回复
入门简单,精通或许几年到一辈子
  • 打赏
  • 举报
回复 1
老衲四十出头,每天六点起床,散步买早餐,而后上网。九点上课,下午带着学生码代码。如此一二十年,项目做了N个,C++/MFC/Qt已经到了非常熟练、滚瓜烂熟的程度,但是仍旧不敢说精通。熟练和精通完全不同。
熟练的标志举例:
1、在你从事的领域,可以迅速搭建新的应用。
2、在你从事的领域,无需基础IDE帮助(MSDN、Qt 帮助)即可敲出绝大多数超过3个参数的API的调用语句并一次编译通过。
3、在你从事的领域,积累了很多自己的开源项目、代码碎片,可以随时重用。
4、在你从事的领域,对某一条全栈工具链非常熟悉。包括Web服务器+数据库+UI框架+网络+算法+第三方库...。
精通的标志举例:
1、熟悉工具链的绝大多数特性。比如对模板泛型元编程这一块很多人并不熟悉。
2、理解工具链的内在原理。比如,对STL库的构造、原理理解透彻。
3、对语言的细碎特性(如++p-*t++之类的诡异用法)可以根据编译器、编译器版本的不同知道结果的不同。
4、理解二进制代码的结构。可以从动态链接库中直接拾取机器语言片段并理解其原理。

熟练可以靠时间来积累,精通必须深入学习了。不过对于非计算机领域的行业应用来说,能够做到熟练已经足够了。驾驭C++70%的特性,就能够基本解决所有问题了。
秋的红果实 2019-04-09
  • 打赏
  • 举报
回复
个人觉得C++关键是算法,精通真不敢想象
菜鸡12345 2019-04-09
  • 打赏
  • 举报
回复
那要看你自己了
Moke丶青 2019-04-08
  • 打赏
  • 举报
回复
引用 18 楼 sundon_tcare的回复:
c++的语法细节非常繁复,逐一理顺大概要两个月基础语法与规则的学习,包括类(其中包含很多东西)、动态内存管理、异常(这个足以单独开一本书)、输入输出、高级技术概览,这是在你有c语言基础的前提下,市面上的经典入门书籍,很多人说对新手不友好,不够基础,不推荐新手,事实上这已经够基础了,剔除了大部分的c++繁复的细节与c++11中的更高级的内容,比如大部分入门书籍应该都包括了私有继承、多继承、动多态,但是没有包括虚继承、空基类优化、静多态,这是好的做法,如果将这许多高级知识都加进去,才是真正的对新手不友好,因为这样让读者没法专心语言的核心语法,而为繁复的语言细节所困。如果仅仅讲讲类、继承、多态、特殊的成员函数、重载、友元、嵌套等基础知识,就会让读者以为已经掌握语言所有的奥妙,从而自满,然后迅速受挫。建议你完整学完一本经典的入门书籍,这会帮你加深对c++的了解,那时你就不会这么问了,还会令你重新定义一下入门的界限。我看到你同时询问C和C++,那就是还没想好学哪个了,甚至都不一定要学,我想你对c/c++还缺乏清晰的认识,或是对它们的好奇多于兴趣。等你真正想学了再来考虑这个问题也不迟。搞技术的,需要保持强烈的兴趣和长期的专注,不急于一时,耐得住寂寞才能出成果,如何保持长期的专注是另一个问题,但这或许就是答案,关键不在于要多少时间,而在于要怎么做,放下你的"短时间",急切的乞望与现实的冷峻形成反差,往往令人受挫,耐心一点,学习过程中会面对许多阻碍,诸如寂寞、诱惑、厌倦、焦虑种种,这其中的任何一样都足以动摇你本就不够坚固的心。循序渐进、坚持不懈的学习才是唯一的正道,操之过急没有好处,否则的话就算你花很短时间火力全开啃完一本C++书籍,筋疲力尽,你也再不想碰第二本了,更别提你会发现其实你还是什么都做不了时的气愤足以令你从此打消学习c++的想法。所以我劝你首先认清这一点。希望你能尽早明白短时间学会任何有挑战性的东西都是不可能的,唯有持之以恒,以后的你会感谢曾经坚持不懈的自己,这样的人到哪里都是被尊敬的。c++浩如烟海,这是c++的创作者和许多大师的原话,很少有人对c++说精通,因为那样太不尊敬那些为c++的成长倾注心血的人了,但我同样看不起那些说自己永远无法精通c++的人,这样的的谦卑已经近乎于畏了。我不想说些惊人的言论以博关注,但也愿意谈谈我的看法,若说有人足够了解c++,只有它的作者了,Bjarne Stroupstrup,他深刻而有远见,极富洞察力。是少数始终对c++有清醒认识的人,注意是清醒不是清晰,大多数人都或多或少误用了c++,这是作者强烈批判的。例如宏和强制类型转换,作者说他最不喜欢c++中与c重合的部分,如果可能的话,他希望去掉那一部分,但是与c兼容是设计之初的想法,已经没法改变了。作者始终清醒,他说他希望c++是实用的而非遵从哪一种特定思想。我深感认同,这就是是为什么C++表现出多种多样的特性,既不是完全面向对象的(oop)也不是面向过程的,而是基于对象的(oo),有全局的概念,而没有将所有东西都封装起来,同时支持泛型。它是杂糅的,它复杂而不纯粹,但是强大。学习C++,首先是C++语言本身,你会逐渐熟悉class(类)、template(模板)、继承(inheritance)和异常处理(exception handling)的概念,然后无可争议的学习C++标准组件,一些通用工具,一些小技巧,接着是由此搭建的STL(标准模板库),其中包括Container(容器)、Iterator(迭代器)、Function Object(函数对象)及Lambda,还有STL Algorithm(算法),这些内容你可能交替看很多本书才会明白,会花费你相当一部分时间,这个过程是迭代的,就是说你可能看不明白或忘记了需要温习以前学过的知识才能继续看下去,我省略了很多内容,一如许多作者在他们的著作中精心的剔除某些内容,对许多复杂的名词做一些简单无聊的罗列不但没有意义,还会使人畏惧,我不想令初学者畏惧,但也不想让你们觉得太轻松,上面的每个名称背后的内容都需要花费一到两个月才能基本掌握,C++可不容易。我还要奉劝一句,不要迷信别人说的(这是因为铺天盖地的资讯令人眼花缭乱,许多不服责任的营销号乱说一气,自相矛盾,同时大量不明真相的群众见风是雨,推波助澜),说一句残酷的话,大多数人都是平庸而没有真知灼见的。最后我想鼓舞一下正在或将要学习c++的人,当然,也包括学习别的技术的人,我不太会鼓励别人也很少鼓励别人,因为遇见一个值得我这样做的人太难太难了,与找到一个有热情、专注、执着的人相比,c++的难度简直不算什么。是的,即使C++很难我也鼓励你们学习它,这是为了使广大的学习它的人能够增添一点信心,能够多一些人来学习它。一个好的良师益友总是帮助他人而不是打击他,我绝不会去嘲笑那些努力学习想要有所收获的人,相反我会鼓励,这样的人没人有资格嘲讽。大多数人唯一的障碍就是抵抗不住自己的惰性或是忍受不了周遭的嘲讽,有人是不自信的,觉得自己没可能学会这么难的东西,然而事实上我的经验是我所遇到的所有我一开始觉得太难无法掌握的东西最后都掌握了。 如果能够因为我而使坚定学习它的人多那么一点,我会感到非常安慰并由衷的为你高兴。我反对因为c++困难而转投别处的想法,很简单,若是c++困难你放弃了,你终会因为同样的原因再次放弃,我更加反感那些给出这些建议的人,希望你们慎重的考虑自己的建议会有什么后果。有教无类,我不怕别人说一千次你不行,就怕你开口说一句,这是我最怕的。
牛逼。。。。。。。。。。。。。。。
shareone2 2019-04-07
  • 打赏
  • 举报
回复
精通真的很难,最起码得会数据结构和算法,算法又包含了很多,数据结构也一样,再往上就是线性代数和高数。
marslycan 2019-04-07
  • 打赏
  • 举报
回复
引用 18 楼 sundon_tcare的回复:
c++的语法细节非常繁复,逐一理顺大概要两个月基础语法与规则的学习,包括类(其中包含很多东西)、动态内存管理、异常(这个足以单独开一本书)、输入输出、高级技术概览,这是在你有c语言基础的前提下,市面上的经典入门书籍,很多人说对新手不友好,不够基础,不推荐新手,事实上这已经够基础了,剔除了大部分的c++繁复的细节与c++11中的更高级的内容,比如大部分入门书籍应该都包括了私有继承、多继承、动多态,但是没有包括虚继承、空基类优化、静多态,这是好的做法,如果将这许多高级知识都加进去,才是真正的对新手不友好,因为这样让读者没法专心语言的核心语法,而为繁复的语言细节所困。如果仅仅讲讲类、继承、多态、特殊的成员函数、重载、友元、嵌套等基础知识,就会让读者以为已经掌握语言所有的奥妙,从而自满,然后迅速受挫。建议你完整学完一本经典的入门书籍,这会帮你加深对c++的了解,那时你就不会这么问了,还会令你重新定义一下入门的界限。我看到你同时询问C和C++,那就是还没想好学哪个了,甚至都不一定要学,我想你对c/c++还缺乏清晰的认识,或是对它们的好奇多于兴趣。等你真正想学了再来考虑这个问题也不迟。搞技术的,需要保持强烈的兴趣和长期的专注,不急于一时,耐得住寂寞才能出成果,如何保持长期的专注是另一个问题,但这或许就是答案,关键不在于要多少时间,而在于要怎么做,放下你的"短时间",急切的乞望与现实的冷峻形成反差,往往令人受挫,耐心一点,学习过程中会面对许多阻碍,诸如寂寞、诱惑、厌倦、焦虑种种,这其中的任何一样都足以动摇你本就不够坚固的心。循序渐进、坚持不懈的学习才是唯一的正道,操之过急没有好处,否则的话就算你花很短时间火力全开啃完一本C++书籍,筋疲力尽,你也再不想碰第二本了,更别提你会发现其实你还是什么都做不了时的气愤足以令你从此打消学习c++的想法。所以我劝你首先认清这一点。希望你能尽早明白短时间学会任何有挑战性的东西都是不可能的,唯有持之以恒,以后的你会感谢曾经坚持不懈的自己,这样的人到哪里都是被尊敬的。c++浩如烟海,这是c++的创作者和许多大师的原话,很少有人对c++说精通,因为那样太不尊敬那些为c++的成长倾注心血的人了,但我同样看不起那些说自己永远无法精通c++的人,这样的的谦卑已经近乎于畏了。我不想说些惊人的言论以博关注,但也愿意谈谈我的看法,若说有人足够了解c++,只有它的作者了,Bjarne Stroupstrup,他深刻而有远见,极富洞察力。是少数始终对c++有清醒认识的人,注意是清醒不是清晰,大多数人都或多或少误用了c++,这是作者强烈批判的。例如宏和强制类型转换,作者说他最不喜欢c++中与c重合的部分,如果可能的话,他希望去掉那一部分,但是与c兼容是设计之初的想法,已经没法改变了。作者始终清醒,他说他希望c++是实用的而非遵从哪一种特定思想。我深感认同,这就是是为什么C++表现出多种多样的特性,既不是完全面向对象的(oop)也不是面向过程的,而是基于对象的(oo),有全局的概念,而没有将所有东西都封装起来,同时支持泛型。它是杂糅的,它复杂而不纯粹,但是强大。学习C++,首先是C++语言本身,你会逐渐熟悉class(类)、template(模板)、继承(inheritance)和异常处理(exception handling)的概念,然后无可争议的学习C++标准组件,一些通用工具,一些小技巧,接着是由此搭建的STL(标准模板库),其中包括Container(容器)、Iterator(迭代器)、Function Object(函数对象)及Lambda,还有STL Algorithm(算法),这些内容你可能交替看很多本书才会明白,会花费你相当一部分时间,这个过程是迭代的,就是说你可能看不明白或忘记了需要温习以前学过的知识才能继续看下去,我省略了很多内容,一如许多作者在他们的著作中精心的剔除某些内容,对许多复杂的名词做一些简单无聊的罗列不但没有意义,还会使人畏惧,我不想令初学者畏惧,但也不想让你们觉得太轻松,上面的每个名称背后的内容都需要花费一到两个月才能基本掌握,C++可不容易。我还要奉劝一句,不要迷信别人说的(这是因为铺天盖地的资讯令人眼花缭乱,许多不服责任的营销号乱说一气,自相矛盾,同时大量不明真相的群众见风是雨,推波助澜),说一句残酷的话,大多数人都是平庸而没有真知灼见的。最后我想鼓舞一下正在或将要学习c++的人,当然,也包括学习别的技术的人,我不太会鼓励别人也很少鼓励别人,因为遇见一个值得我这样做的人太难太难了,与找到一个有热情、专注、执着的人相比,c++的难度简直不算什么。是的,即使C++很难我也鼓励你们学习它,这是为了使广大的学习它的人能够增添一点信心,能够多一些人来学习它。一个好的良师益友总是帮助他人而不是打击他,我绝不会去嘲笑那些努力学习想要有所收获的人,相反我会鼓励,这样的人没人有资格嘲讽。大多数人唯一的障碍就是抵抗不住自己的惰性或是忍受不了周遭的嘲讽,有人是不自信的,觉得自己没可能学会这么难的东西,然而事实上我的经验是我所遇到的所有我一开始觉得太难无法掌握的东西最后都掌握了。 如果能够因为我而使坚定学习它的人多那么一点,我会感到非常安慰并由衷的为你高兴。我反对因为c++困难而转投别处的想法,很简单,若是c++困难你放弃了,你终会因为同样的原因再次放弃,我更加反感那些给出这些建议的人,希望你们慎重的考虑自己的建议会有什么后果。有教无类,我不怕别人说一千次你不行,就怕你开口说一句,这是我最怕的。
现在单个啃 模板技术,stl然后后面还有茫茫多的深入…还有架构,设计…哎 学习是痛苦区
marslycan 2019-04-07
  • 打赏
  • 举报
回复
引用 6 楼 xiaohuh421的回复:
只要把指针, 封装, 继承,多态, 模板 这几样彻底弄明白, c++就算入门了.
你这个彻底…哈哈哈哈比精通还难…c+ +更重要的还有设计思想
tongshou 2019-04-07
  • 打赏
  • 举报
回复
很多时候,讲“熟悉“”可能比讲“精通”,在语气上可能会让听者会舒服点 [ (^_^) 钻牛角尖 ?]
事实上没有必要什么都懂,在不懂时、需要时、能够有能力把它弄懂才是最重要的。
懂得越多时、会越感觉有更多的东西不懂、难懂。“无知者无畏”也有很正面的意思,不要吓唬初学者,事实上, C++没有那么可怕,不能把功能多 与 复杂 混为一谈。
yc950820 2019-04-06
  • 打赏
  • 举报
回复
只要坚持敲,很快入门
ChongQingJin28 2019-04-06
  • 打赏
  • 举报
回复
精通这句话可真不好说

就连 Linus 都不敢说精通 Linux

又怎么敢说精通C++

况且C++的标准一直在更新,昨日的精通能否用在明日也未可知

保持一颗求索的心 或是 天真的心 就 足够了吧
加载更多回复(18)

64,643

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

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