什么叫精通C++

 

常用的面向对象复用模型设计、常用的数据结构设计、常用的操作系统知识、内存管理、多线程互斥,然后能够很轻松的应用现有的软件模块和开发库,比如用开源的库(例如log4cpp),购买的其他公司的接口模块等,能够和容易上手应用一个你从未涉足的开发平台(比如从vc转到symbian,转到qt),开发令老板比较满意的程序模块.   

 

十足的自信心+强烈的求知欲+对Programming&&CPP的执着+百折不挠的钻研精神+数据结构&算法基础+操作系统基础+CPP语法基础   

OK,你已经超越了精通C++的境界


精通并不是说要你什么都懂,都会。那也是也是不可能达到的,毕竟技术是在不停发展的。而是说你应该达到了一种只要有资料,陌生的技术也一定能搞定的程度。  


要成高手基础知识是不能少的,数据结构、算法、操作系统、组成原理、离散数学。。。这些都应该掌握好。不要浮躁更不要赶时髦认为这种语言比那种语言好,脚踏实地慢慢学,成为高手是个漫长艰辛的过程


毕业至今,所有我看到的公司招聘都是要精通某某..的,可是我还是能找到工作,也许证明所谓精通某某..只是一种习惯用于吧!哥们,你要是为找工作,就不必理会它们的什么什么精通精通的,大胆的去应聘!只要你能胜任它们的工作,你就OK了!要是所有应聘成功的都是精通一族的话,那么中国的软件岂不早已傲视群雄了吗?!不过你要是追求技术的精通,我觉得我们入行10年后,在谈这个话题吧!


精通是一种心态,是一种自信心十足的表现,是对知识的狂热与执着,是自己不断成长的动力,而不是--最终的结果


能完成任务不能算是精通, 有经验的开发人员常常懂得绕过自己的不足, 用自己熟悉的方法解决问题, 哪怕是这个方法必须花费较多的成本。其实学会一种开发语言并不难,C/C++只是相对Java/C#/VB   来说,需要更多的时间而已。   

真正的高手不在于一种语言,个人认为开发人员的技术顶峰就是系统架构师了。上去就与技术关系不大了。

 

我没还有一年本科毕业.如果放在大学生身上谈的话,个人认为要自身具备的条件:   

  1)从计算机机的视角来说对算法的深刻认识,要会基本的分析方法;     

  2)熟悉软件工程方法,并应用到具体一些简单实现;      

  3)了解c或++语言原理,例如接口,接口这个概念产生的原因,实现,是否有什么扩展应用.....这样用,为什么?     

  4)计算机体系结构要学好,对分析程序和有好处的     

  5)数学知识是要的.本人数学不咋的,叹啊!加油     

  6)理解各种软件行业的基本概念和原理,什么是web开发,什么是web服务,xml是怎么回事,这个数据框架的结构.嵌入开发,什么开发模式之类的东东..........理解就行了,掌握就不必要的!  

  7)熟悉一个集成开发环境.      

  8)最重要的是学习能力:善于发现,分析问题,会找答案:会查字典,会记录,会总结,会背书,会交朋友,并一直坚持下去.没有哪个一日精通的高手,时间久了,想得多了就精通了!  


光精通语言有什么用,   能把所有编程书倒背如流也不一定就是牛程序员关键是逻辑思维,创造性思维,学习能力这些硬件上的东西


精通一门语言是很重要的,但是随着技术的深入你会发现理解一门就够了,不需要知道它非常特殊的用法,除非是在系统性能调优的时候,到那个时候捡起来就可以了。一般来说,系统的设计是最重要的,不仅仅是一门语言。很多高校学生为了把自己装扮成高手,对一些偏门的东西了解很多,但是它们可能不会设计出好的软件。我说的好是指,不仅仅是满足了需求,而是还包括模块清晰,容易维护,容易测试。

 

精通就是你能独立完成一些任务,比如你自已用C完成了一个UNIX平台下的象棋网络程序. 如果能完成可以称得上符合标准了.层次不同,标准也不同,上面说的好,能完成老板的项目就是符合他的标准.你在他眼里就是精通C/C++   

 

内功=算法+数据结构+编译原理+操作系统原理+软件工程+英文 

 

精通C语言往往代表你精通的不是C语言本身,而是操作系统本身,处理器本身,不了解硬件,不可能精通C语言

 

我也不知道,我也挺喜欢C++的,我个人观点是把C++的接口和图形学好,在把数据结构和算法学好就OK了

 

越是精通的人越认为自己不精通,所以,招聘单位所谓的“精通”只不过是考考应聘者水平,如果应聘者说自己精通,那肯定不会被录用。由这个贴,我得知原来精通就是一群傻瓜在吹水^_^ 说笑啊~~~

 

1)你已经认为C++和汇编语言都是很简单的语言,并能够自如地运用;   

2)你能够在30分钟之内想到正确的五子棋AI算法设计思路和方向;   

3)你完全理解STL为什么这么重要;   

4)你能够独立地解决所有的编译与链接问题,哪怕你从来没有遇到的问题,你也不需要询问任何人;   

  5)英文网站是你的首要信息来源;   

  6)能够读懂英语写成的国际标准,比如NTFS磁盘格式标准。   

  7)你经常站在集合论的角度思考算法问题;   

  8)能够理解一个简单的驱动程序,能够理解一个简单3D交互程序;   

  9)你能够认识到线性代数和概率论在实际编程工作中的极端重要性;   

  10)你完全理解COM的设计思想,尤其能够   理解COM为什么要设计成这样;   

  11)当我说到虚函数的重要作用时,你不会急着去找书来翻;   

  12)你能够说出C++为什么比其他语言优秀的理由

 

 

C++只是语言.真正灵魂是设计.和算法.


精通c/c++的意思是非常熟练的掌握c/c++的语法和用法,能写出稳定、可靠、可复用、可维护的c/c++代码。和算法、数据结构、操作系统等没任何关系,那是另外的学问。

 

精通是个形容词,跟“好”的意思相同。与对比环境有关,没有绝对的衡量标准。   

    

一个中学生可以用C++建模,获奖,在他的环境中就是精通。   

一个工程师可以用C++写出清晰,高效工程代码,在他们公司就是精通。   

一个研究程序设计理论的人可以知道C++的实现细节,完善维护C++标准,也可以算是精通。

 

这使我想起来了本科一年级时主任说的一句话:大一觉得自己无所不知,大二觉得自己有一些不知,大三发现自己其实很多都不知道,大四才知道自己一无所知。当时还嗤之以鼻,现在才发现深刻啊。什么叫精通?当我花了多年的时间,写下不下于十万行C/C++代码之后(说这话,我不骄傲,但我自豪),每次浏览以前的代码我都发现,如果我现在来重写会写得更好,更稳健,移植性更好,效率更高。看到很多的代码,STL,LINUX   KERNEL,任何时候都会觉得人家设计的妙处,我想,要达到无所不知的“精通”的境界,我这辈子恐怕是不可能的吧?

 

精通,那是管人事的叫法。   

我光教C和C++就超过八年了,转行后,不再做程序员,可在程序设计方面还是众人佩服的。但我自己知道,在C和C++语言方面,连熟悉都有距离,更别说精通了。其实程序设计语言是一种工具,大家千万别陷进去。

 

C++只不过是一种语言,一种工具是用来显示你的编程思想,你对问题的理解能力 

如果有一天,由于实际应用的体会领悟或者需要,你觉得C++的标准还有必要再补充一下或者修改一下,那么你就已经超越了C++这种语言本身的范畴,说精通C++也不为过了

 

没干过C,只针对C++:   

1、要很熟悉C++的内存机制。只有了解了这个以后,其它的很多问题才能解决,比如,开一个缓存new时,要指定大小,为什么delete不需要。堆和栈有什么区别,分别在什么时候用比较合适。   

2、要有程序运行的时间和空间效率意识,比如加载整个硬盘的文件,大概需要多少内存,10M?100M?1G?各自的处理方式有着本质的区别。缩略显示整个硬盘的图片,如果每次单击滚动条时,要等一分钟,你认为用户能接受吗?   

3、要有很强搜索资料能力。比如在程序启动时,要自动发个Email,怎么做?要写个搜索程序,有哪些算法对大批量数据比较合适?   

4、要熟悉一种通用库的使用,比如MFC,STL,不一定要很精通,知道照葫芦画瓢就行,要用的时候可以查手册。   

5、熟悉一种工具的使用,比如Visual   Studio;   

6、熟悉动态库和静态库的使用。

 

什么叫精通C/C++(CSDN回帖语录)收藏

It is better to have the ability of fast learning


有一天你覺得甚麼都知道了   可悲

有一天你卻發現你甚麼都不會 加油吧

有一天你發現你又甚麼都會了 繼續

有一天你發現你甚麼都不會了 成功了

精通,就像你对1~10的理解……

等你不在问这样的话时你就差不多了!

 

内功=算法+数据结构+编译原理+操作系统原理+软件工程+英文 


精通...不太可能...除非你是计算机,可以把肚子当硬盘,把肠胃当内存,把脑子当CPU,那大概可以考虑~


精通C语言往往代表你精通的不是C语言本身,而是操作系统本身,处理器本身,不了解硬件,不可能精通C语

程序语言只不过是人类思想具体表现形式的一种

 

学会C++后一年,我以为我精通了C++

过了一年,我发现我对C++还有一点模糊

又过了一年,好像好多都不懂了

到了第四年,才发现我远远够不着“精通”


十足的自信心+强烈的求知欲+对Programming&&C&&CPP的执着+百折不挠的钻研精神+数据结构&算法基础+操作系统基础+C&CPP语法基础


自古到今的每个中文字你都认识,你精通中文了吗?--没有! 你还要会使用它。

如果你真的可以,把C++所有的(包括最新的)技术都学会了,你精通了吗?---没有!你要它能实现你所需要的东西!

我只会一小部分的现代文字,但我能很好的表达我的意思!让我活得精彩!---我满足了!因为我不是研究中文的!

我C++很多不懂,但我写的东西用的人都满意,客户觉得这钱花得值!---我精通了!因为我把一些死的东西变活了!我把几个简单的"IF"变成了钞票,变成了效率!


给你一台裸机连上网线,一年之中不准安装任何软件,一年后你把我的电脑给黑了!!


光精通语言有什么用,不熟悉一个平台白搭,除了考试别的都不会精通就是能解决老板需要你解决的所有问题!:)

 

精通c/c++的意思是非常熟练的掌握c/c++的语法和用法,能写出稳定、可靠、可复用、可维护的c/c++代码。和算法、数据结构、操作系统等没任何关系,那是另外的学问。


I'm a c plus plus programmer,of world class.某牛人的简历第一句话。他是C++标准委员会成员之一,的确有人称得上是精通。恐惧,崇拜,诋毁都源于无知。

 

来我们公司应聘的,只要写了精通XX的,一律不要,呵呵 !因为俺们认为,就这二十来岁,不可能又精通这样又精通哪样,比尔该死大爷都不敢说自己精通XXX吧?


一个刚学会说话的孩子,只会叫爸爸妈妈;一个语言大师的一次演讲能使你热血沸腾。一个刚学C++语言的会写helloworld;一个精通C++的大师也能够使你热血沸腾。语言和思想分不开。思想靠语言表达。语言用来表达思想。

不管是交流用的语言,还是编程用的语言,它们都要去表达思想。

能把思想用语言表达的清清楚楚,算是会使用语言了。

能把思想用语言表达的淋漓尽致,让听者热血沸腾算是大师了。

 

我们现在缺少的是一种健全的体制。

程序员也是一种职业,金字塔型的。越往上的越是巅峰,在某方面越是精通。但有得有失,比如算法很精通的人,可能日常生活中连灯泡都不会换。

最下层的是密密麻麻的刚入门者,在csdn上泡个把月,买本书会照着写个五子棋程序,就开始到处吹多么厉害的那种。

中间的是一群熟练工,就如流水线的工人,大部分人经常一整个月都在公司里敲重复类型的代码(我也不想啊,但公司下达的工作就要求你做),"温饱才能思淫欲",熬了几年少数人爬上去了,成为了所谓的“精英”,多数人转行了,当管理的、当销售的...


我们要正确认知自己,并不是所有程序员都能爬到"巅峰",就如不是每个人都能考上清华北大。

it行业里其实有很多的工种,所谓的某某语言精通,也是其中一种工种,每个工种都有自己的价值,当然很多人会觉得"精通测试的人员"没有"精通c/c++的人员"名头响亮,确实就如当警察,刑警就比片警牛比。这个是要看这个体制的成熟度。以前美国西部刚开发的时候,一个镇就一个牛仔警察,什么都管,就如几年前写程序的,项目都还小,几个c程序员什么都做了,这个c程序员现在都成了所谓"精英",随着市场的成熟,项目越来越大,各个工种随之而生,再牛比的c程序员也不敢说这些我一个人做没问题。

再告诉大家一点,

学习、工作的第一目的是什么: 养家糊口,对绝大数人来说是这样的。

唐伯虎的画非常有名,但他的一生大多数时间很贫穷、悲惨。

曹雪芹的红楼梦流芳百世,但他下半生穷困潦倒。

"精通"不是每个人都能承受的起的。我们99%的人一生都是平凡的。

 

有时你认为你自己觉得很精通,但是到了一个公司做一项工作的时候,都不怎么会做。那说 这叫不叫精通,我有时还在想精通这个问题,精通可能就是公司给你一个任务,能上手,并很好的完成。学编程,语言是学不完的,思想和逻辑是不变的。再说现在软件应用到各个行业,各个行业有不同的背景,对编程人员的要求也是不一样的。精通是一个很模糊的概念,面向行业和企业着手,不要对语言本身来寻找答案。  

 

 

让程序员立于不败之地的七种武器 


第一种武器:开发工具 

  至少熟练掌握两到三种开发工具的使用,这是程序员的立身之本,其中C/C++和JAVA是我重点推荐的开发工具,C/C++以其高效率和高度的灵活性成为开发工具中的利器,很多系统级的软件还是用C/C++编写。而JAVA的跨平台和与WEB很好的结合是JAVA的优势所在,而本人对SUN公司的“网络即计算机”的概念相当欣赏,并相信JAVA即其相关的技术集JAVA One会成为未来的主流开发工具之一。其次,如果能掌握一种简便的可视化开发工具,VB,PowerBuilder,Delphi,C++ Builder,则更好,这些开发工具减小了开发难度,并能够强化程序员对象模型的概念。另外,需要掌握基本的脚本语言,如shell,perl等,至少能读懂这些脚本代码。 

 

  第二种武器:数据库 

  为什么数据库是如此重要?很多应用程序都是以数据库的数据为中心,而数据库的产品也有不少,其中关系型数据库仍是主流形式,所以程序员至少熟练掌握一两种数据库,对关系型数据库的关键元素要非常清楚,要熟练掌握SQL的基本语法。虽然很多数据库产品提供了可视化的数据库管理工具,但SQL是基础,是通用的数据库操作方法。如果没有机会接触商业数据库系统,可以使用免费的数据库产品是一个不错的选择,如mySQL, Postgres等。 


  第三种武器:操作系统 

  当前主流的操作系统是Windows,Linux/Unix,熟练地使用这些操作系统是必须的,但只有这些还远远不够。要想成为一个真正的编程高手,需要深入了解操作系统,了解它的内存管理机制、进程/线程调度、信号、内核对象、系统调用、协议栈实现等。Linux作为开发源码的操作系统,是一个很好的学习平台,Linux几乎具备了所有现代操作系统的特征。虽然Windows系统的内核实现机制的资料较少,但通过互联网还是能获取不少资料。只有对操作系统有一定的了解后,你会发现自己上了一个新的台阶。 


  第四种武器:网络协议TCP/IP 

  在互联网如此普及的今天,如果您还没有对互联网的支撑协议TCP/IP协议栈有很好的掌握,就需要迅速补上这一课,网络技术已改变了软件运行的模式,从最早的客户/服务器结构,到今天的WEB Services,再到未来的网格计算,这一切都离不开以TCP/IP协议栈为基础的网络协议支持,所以,深入掌握TCP/IP协议是非常必要的。至少,你需要了解ISO七层协议模型,IP/UDP/TCP/HTTP等常用协议的原理和三次握手机制。 


  第五种武器:DCOM/CORBA/XML/WEB Services 

  随着技术的发展,软件与网络的无缝结合是必然趋势,软件系统的位置无关性是未来计算模式的重要特征之一,DCOM/CORBA是当前两大主流的分布计算的中间件平台,DCOM是微软COM(组件对象模型)的扩展,而CORBA是OMG支持的规范。程序员需要做的不仅仅是利用商业的开发平台来开发软件,而是要理解这些技术的初衷,即为什么需要这项技术,如果你能理解了这一点,再回头看这些技术的具体实现,就如庖丁解牛,迎刃而解。XML/WebServices重要性不言而喻,XML以其结构化的表示方法和超强的表达能力被喻为互联网上的“世界语”,是分布计算的基石之一。 


  第六种武器:软件工程与CMM

 

程序人生成长发展中的一些感悟 

1.要成长,有人带,很重要。 

一个人能力与努力非常重要,但要更快地走向成功,少走弯路,就必须学会借助外界或他人的力量。即使给你足够的书和教程,给你足够的时间,也未必可以修炼成才。需要环境,需要实践,更需要团队的沟通和相互学习,一个人不可能学会一切,即使可以也会需要很多年的时间,最终还不知道是否正确。正所谓,名人指教,高人指点,不无道理,因为前人的经验教训是用多年的时间和精力换来的,而你得到这个道理,却只需瞬间,无形中减少了成长的成本。 

想进步,有人带,这就是现实。孔子曰,三人行,必有吾师。 

交换思想,会令你了解的更多;有人带,会使你成长的更快! 


2.广结佛缘 

知识面的狭窄会导致思路的狭窄,想法简单。做事情的时候处理问题的办法相对要少。对一个技术性的问题而言,如果做得项目多了,类型多了,相对来说遇到一个问题,就会知道该用什么样子的方式解决最好,哪种途径最有效。而广义的讲,在社会上,你接触社会面广,人脉资源丰富,相应的做事的途径就会多,成功的机率就会大,这是一个普通的不能再普通的道理了。所以,可以提醒一些同行的xdjm们,平时里不要只是低头写你的代码,多接触一些新的知识或技术,新事物会对你设计系统提供思路或启发。多了解社会,多和人沟通,多培养一些人脉,多给自己一些机会,你会觉得这个世界很美好。 


3.目标决定过程 

先认清“正确的结果”,根据正确的结果去设计你的过程。你选择什么样的目标,就会有什么样的人生。当一个人具有明确目标,会对有助于实现目标的蛛丝马迹都特别敏感,做事情相应也就会很有目的性,而不是稀里糊涂。 所以,就容易到达自己的目的。如果没有目标,就算是天上真有神仙,如果你不能明确地说明自己想要什么,神仙也不知道该给你什么。 


4。技术和管理 

作了这么多年的技术,有时候会发现一些所谓的技术不过就是一些控件或类库的使用(当然不是全部是),有时候我们所做的工作还不能算是真正的“创造”,充其量是一种“制造”。也经常在论坛看到争论到底是技术重要还是管理重要,这其实体现了一部分朋友的迷茫,作过多年的程序员都会想向上发展,其实并没有错,做技术没有出头之处,并不代表没有其他的潜力或优势。况且国内盛行“35是个坎”的言论。如果从一个人的职业规划和社会价值角度讲,人应该争取为社会创造更大的价值。一段代码创造的价值远不如一个商业流程或商品设计创造的价值大,正如:盖楼的工人师傅和设计楼的设计师,没有谁重要不重要的问题。而是一种人生价值观的问题。但前提是并不是所有的工人都可以成长为设计师的,要根据自己的实际情况和职业愿望所决定。 

所以,对于一些有潜力,有志向这方面发展的朋友,而又想体现更大的自身价值和优势,可以尽早计划,制定目标,立即行动,希望能挖掘一下自己各方面的潜力。我个人也希望能在项目管理或系分方面有所进步,但暂时我还不打算放弃写代码,因为创作源于生活,离开了生活创作便变得空洞,感觉没写过代码的人管理项目或设计系统会变的有点像纸上谈兵,空中楼阁。 


5.不要拒绝承担工作重担 

承担多大的担子,就会有多大的价值。毛主席他老人家说过:人有多大胆,地有多大产。只有敢于承担重担的人,才可以委以重任。而且,更多的历练会锻炼你快速的成长,丰富的人生阅历将是一笔无比的财富。 

来吧,让更多的工作来的更猛烈些吧! 


6.用心做好现在的每一件


posted @ 2009-06-29 15:03  小 楼 一 夜 听 春 雨  阅读(670)  评论(0编辑  收藏  举报