如果能重学一次编程,会怎么规划自己的学习路径?
大部分人重新回顾自己的学习编程的经历,往往会发现自己走了很多弯路,踩了很多坑。或许是一本久负盛名的书,花了很多精力看完之后却发现名不符实;或许是追求一些时髦的新技术,却发现竹篮打水,镜花水月;或许是听信了一些一面之词,因傲慢和偏见而固步自封;或许是对某些看上去艰深晦涩的领域心存畏惧,导致无法理解很多问题的本质……
所以本期话题的主题为如果能重回初学编程的时候,会怎么规划自己的学习路径,希望大家分享自己的故事。
为了避免大家出于个人的认同而不是对于内容本身的认同来点赞,所以从本期开始,所有参加话题的参与人的身份将会匿名,直到话题结束后才公开显示ID。请大家也遵守该项规则,不要猜测回复者的身份或是主动暴露自己的身份。
大学的时候,军训结束后开始正式上课了。终于要学编程了,好激动!我也要像传说中的黑客,噼里啪啦敲一顿键盘,世界便尽在掌控之中……上课的前一天,领到了崭新的编程教材,我兴奋地睡不着觉,熬夜用手机的补光灯照着看……
命运给我开了个玩笑,这本书的作者叫谭浩强,据说,这书里面每一页都有错误。等我发现的时候,我只好重新学了一次C语言……因为我对于C语言的理解几乎都是错误的……
顺便一提,我重学选用的书是:C语言程序设计:现代 *** 。
经过C语言的教训,我发现看一本烂书不如不看。这时来到了大二,开始学习Java了。这次我再也不信国内的那些大学教材了,豆瓣上搜了下,发现评分更高的是Java编程思想,评论都说好。果断买买买,奉为圭臬,每日研读。
这次我的Java确实学的不错了,期末Java大作业的时候,大部分人还在懵逼的时候我脑子里面已经知道该怎么实现了。最后大家发现我很靠谱,于是整个小组把写代码的任务都交给我了(大作业除了写代码还有写文档之类的杂活),我也不负众望,一个通宵搞定,感觉自己强无敌。
然而等我到了工作中的时候发现了两个问题:
之一,Java编程思想成书于2006年,主要讲的还是Java SE 6,然而等我工作的时候,Java SE 8已经推出,并以疾风骤雨之势成为了大部分的公司线上环境。而Java SE 8的引入的诸多新特性以及SE 6和7里面的废弃不用的类和 *** ,也需要花时间重新学习和整理。语法的特性还好说,在这个技术和思想日新月异的年代,一本十年前的语言入门书,可能里面潜藏着很多初学者不容易发现的过时的思想,这才是真正致命的。
第二,Java编程思想只是帮你入Java SE的门,离工业实战开发还有很长的一段距离。公司中版本控制用的是GIT,包管理用的是Maven,类的命名原则,代码重构,以及流行的Java EE和Spring框架等等知识都没有提及。我毕业的时候根本不知道这些,导致了我找工作的时候吃了很多亏。这些东西只好在工作中一点一点重新学起,当然,还包括重新学习Java SE 8……
实际上,Java编程思想已经过时了,虽然豆瓣上评分一片大好。这里我推荐的是最新版的Java核心技术。
另外我发现,Amazon美国上搜Java排名之一的是一本2014年出版的书(基于 Java SE 8),然而国内的Amazon搜索Java,排名之一的仍然是Java编程思想。可见国内仍然很多人在Java SE 6上浪费时间……
我现在选书的几条原则:
大家的评论,以国外的书评网站为主,评价不好的千万别看
讲的是否技术已经过时,优先选择最新出版的技术书
不要买中文书,除非有特别的理由(国内优质原创技术书,不包括翻译书)
坑2 - 提问和交流
学习和开发总是会遇到问题,遇到问题总是需要请教别人,上哪去请教呢?
单独请教身边的高手:可高手一般懒得理你,如果是查Bug或者非常细节的问题,更是没高手愿意理你。基本上高手只会回答观点性的问题
Q群:大部分都在吹水聊天,提问题基本上没人理,并且Q群里面贴代码的体验很差
CSDN:这下有人理你了,可很多人回答问题都是很不负责任的,并且提问需要积分,然而获取积分又非常麻烦
SegmentFault:比CSDN的体验好很多,提问也不需要积分,国内比较专业技术问答网站
国内差不多就这些方式了,直到后来我发现了StackOverflow。不好意思,上面都是垃圾。然而StackOverflow是用英文交流的,好多编程术语都不知道,怎么玩?后来,我发现问题的本质在于,看的技术书是中文的。
因为看的技术书是中文的,所以只知道这些技术的中文说法,只能和中国人交流,然而编程的世界的语言却是英文。之一,大部分项目的文档和介绍都是用英文写的。第二,GitHub上交流用的也是英文。第三,语言和协议的标准也都是用英文写的……
所以,为了和世界接轨,我开始把我学的东西大部分重新看了一遍英文版的书,不为别的,就为积累技术术语,当然也顺便复习一下。所以后来我选书,基本都是在英文书网站里面挑,很少再看中文书了,避免学习术语的成本。况且中文翻译书,翻译质量参差不齐,指不准就看了一本瞎翻译的书,误入歧途。
那么我现在遇到:
有明确答案的知识性问题(比如程序报错,有小Bug之类的),去StackOverflow问。如果还没有得到解决,考虑:
这个问题是否可以通过查阅相关文档解决?
这个问题是否可以通过查阅相关语言和协议标准解决?
这个问题是否可以通过在邮件组里面提问或者项目讨论区(GitHub Issue)里面提问解决?
这个问题是否可以通过自行阅读代码解决?
绝大部分知识性问题,都可以通过上述 *** 解决,如果这还解决不了,可见你在使用一个没有开源,没有友好的社区氛围,没有什么人在使用的过气技术,应该思考下你用的这个技术是不是该进博物馆了?
没有明确答案的观点性问题(比如某技术的优势或者未来发展趋势之类的问题),可以考虑:
StackExchange的子站点programmers里面提问
Reddit的Programming区里面发帖
看该技术领域里面明星人物的博客或者书籍
请教身边的技术大牛
关注各种技术会议的视频和讲稿
自己思考
观点性质的问题,本没有标准答案,当然会比知识性的问题更难获取答案,可是这些问题,却比知识性问题更加重要。知识性的问题,只有对或者错两个结果,你违背了知识,你会立即得到错误。而观点性的问题,就比如选书或者如何交流,如果没有自己的一套 *** 或者错误的 *** ,就会原地踏步乃至于南辕北辙。
坑3 - 赶时髦
搬业务代码的过程中,学了很多库的用法,比如说HTTP相关的用过Java的HTTPClient和Python的requests库,写并发会用并发的库,写TCP会用Socket相关的库,做Web用过Node *** 和PHP等……发现很多框架也不难学习,于是折腾了更多的新框架和新语言(Go、Rust)……然而一路折腾下来感觉就是不生产代码,只是做了一把框架的搬运工,搭个架子然后吭哧吭哧写业务代码。最后发现追求新技术有两个问题:
之一,用户并不会在乎你用的什么技术,只要他们用着爽就行了。而这往往会意味着,赶时髦的新技术会因为不好招人以及担心有坑而导致不会被公司采用。
第二,搬运框架并不会真正提升你的技术,除非你能理解整个框架的实现,到源码级别的掌控。
所以赶时髦并不会让你升职加薪,也不会真正提升你自己的技术,那么到底该学什么呢?
学习路径
有篇很有名的文章,Teach Yourself Programming in Ten Years,认为编程专家需要10年的学习时间。并且给出了一些学习目标:
学习十来门语言
参与(有技术含量的)项目开发
维护(有技术含量的)项目
对计算机底层的了解
参与制定一门语言的标准
等等。这些学习目标我也认可,但是比较抽象。
有一份比较实际一点的文章,程序员练级攻略(这篇文章有个坑,它推荐了W3School,实际上W3School是一个过时的有很多坑的网站,我比较推荐movethewebforward)。
这里我谈一下我自己的学习规划:
学几门流行的编程语言,当然需要找一本靠谱的英文书来学。学习的目标在于熟练使用大部分语法特性以及相关的库函数,也包括引入第三方包以及调试优化等内容。学了之后也可以适当看下中文的技术书,方便中文技术交流。
学习编程相关的开发工具(IDE,版本控制,文本编辑等),提高自己的开发效率。
成为一名熟练的框架搬运工,比如搬一下Linux+Nginx+Mysql+PHP搭网站,ELK搭一个日志收集查询展示系统之类的。这些技能只需要阅读下官方文档的就行了。
阅读语言和协议的标准,参与一两门技术的发展和讨论
学习操作系统和编译原理,了解语言和协议设计的背后的思路,了解计算机的底层到应用层之间的实现,包括 *** 并发等领域
目前我只做到第三步……我目前正在看一些语言和协议的标准,以及学习操作系统和编译原理等……
2016-09-12 00:43:45 6条评论
isaacpei, ifelse程序猿
首先说明我讨厌固定的 ***
每个人都是不同的,各位大牛也应该有自己的 *** ,比如教教学生啊,睡前读两章啊,打打炉石啊。。。 所以我所说的,可能有用,也可能是扯淡(当然我就是爱扯淡)
学习路径我认为是一个迭代加深的过程
学习-使用-学习更深入-使用更深入
以下使用入门举例
从入门来讲,语言我还是觉得两个比较好C/Python 。
对于入门书籍的选择,我觉得无所谓,很多人喜欢比较谁的书写的好谁的写的不好,但是不同人有不同的偏好,我觉得意义不大。你能找到的书基本都不会错太多,就算是谭浩强也有无数人看着他的书学会了不少再回来批判他,当然现在他的书已经不多见了。事实上大部分学校的教科书都能达到基本的要求。
入门很简单,C语言看到指针前面,这就够了,我看的是c bible,就是C作者写的那本。
Py也很简单,更加接近自然语言,我是看的learn python the hard way。
甚至某种语言官方文档也是很好的入门资料。
想了想即使到现在这两本也足够入门,简单易懂。
我不理解有人喜欢推荐那种又厚又重,未定义行为都讲一遍的书,这种东西既没啥重要性又不适合入门,看起来真是痛苦。
至于书是中文还是英文,我也觉得无所谓,但是最终要看一遍英文。如果你先看的中文,之后一遍英文的也是十分简单的事情,顶多几个小时。
学习完之后就到了使用阶段
随便选个oj刷10道水题。
课后习题做了
迭代这个过程
再往后我就不讲了,因为我水平就到这里了~
使用工具
书是工具,但是我觉得有点过时(因为我懒得看)。
我觉得现在更好的工具是 *** 。
个人喜欢直接搜遇到的问题,blog就是很好的地方,stackoverflow也是。
使用工具最重要的问题是选择适合自己的,比如blog搜出来靠前的可能讲的并不是很适合自己的阅读习惯。
正确使用工具是及其重要的能力。
实用主义
我不是理论派,我喜欢讲学以致用,如果没啥用但是好玩也行,去解决问题就是从学到用的过程。
个人认为大部分程序猿都是在这个阶段学到大部分东西的。
比如:
题目tle了,那么可能你会因此学了某种高效算法。
需要做大作业了,那么可能你因此仿写了2048,学会了js里面的动画。
踩坑再爬出来就是提升
总有人喜欢给后面人说自己遇到了多少坑以后别碰。但是我觉得对于学习,踩坑是货真价实的提升。
*** 我懒得继续写了。。。
学习技术还是上个大学把。。。
最后一句话,证明你能力的最重要的地方是:
你解决了这个问题
你把这个东西用 *** 都懂的方式解释清楚了
天天扯图灵机/P=NP的要么是研究理论的要么是装逼的。
技术的发展是为了简单不是为了复杂。
*** 我写了这么长?
2016-09-13 12:08:56 0条评论
mickeyandkaka,
我认为字数越多,赞数越高,这样的现象是不好的。
战略性的方向:
读个好点的大学的计算机专业
原因不在于学校,在于你接触了什么样的人,什么样的环境,你就会变成什么样的人。这个甚至比你各种努力还重要。
大学逼自己多写代码多刷题。为进入大公司做准备。
只有规模足够大的工资才有平台,才有可能发挥的机会。代码不是为了自我满足,而是要真正服务于千万用户的。除非你眼光毒,不然你赌不起你的时间。
战术性的意见:
兴趣是更好的老师
大学专业课别挂,有点印象。以后好随时捡起来
了解简单的英语
独立思考,解决问题
若都能做到,几无敌手。
我认为对于不同的时代,介绍不同的术意义不大,c++精通的人,难道不能几周学会java、Python、Golang么;大学高绩点的人,相信对于最新的技术也能有所认知并学习精髓。编程是用于工作,工程中迟早会遇到你完全不会的问题,这个时候能帮你的只有解决问题的能力。
随便聊下,不爽你打我呀。
第十名、R语言
R语言,一种自由软件编程语言与操作环境,主要用于统计分析、绘图、数据挖掘。R基于S语言的一个GNU计划项目,所以也可以当作S语言的一种实现,通常用S语言编写的代码都可以不作修改的在R环境下运行。R的语法是来自Scheme。
提名词
R语言作者,George Ross Ihaka:在奥克兰大学统计系任副教授,是R语言的最初作者。
2
/10
第九名、Python
颁奖词
Python是一种广泛使用的高级编程语言,属于通用型编程语言。作为一种解释型语言,Python的设计哲学强调代码的可读性和简洁的语法。相比于C++或Java,Python让开发者能够用更少的代码表达想法。不管是小型还是大型程序,该语言都试图让程序的结构清晰明了。
提名词
Python语言作者,Guido van Rossum:生于荷兰哈勒姆,计算机程序员,为Python程序设计语言的最初设计者及主要架构师。
3
/10
第八名、C语言
颁奖词
C是一种通用的编程语言,广泛用于系统软件与应用软件的开发。C语言具有高效、灵活、功能丰富、表达力强和较高的可移植性等特点。C语言编译器普遍存在于各种不同的操作系统中,例如Microsoft Windows、macOS、Linux、Unix等。C语言的设计影响了众多后来的编程语言,例如C++、Objective-C、Java、C#等。
提名词
C语言作者,Dennis MacAlistair Ritchie:美国计算机科学家。黑客圈子通常称他为“dmr”。他是C语言的创造者、Unix操作系统的关键开发者,对计算机领域产生了深远影响,并与肯·汤普逊同为1983年图灵奖得主。
4
/10
第七名、Go
颁奖词
Go(又称Golang)是Google开发的一种静态强类型、编译型、并发型,并具有垃圾回收功能的编程语言。Go的语法接近C语言,但对于变量的声明有所不同。Go支持垃圾回收功能。
提名词
Go语言作者,Robert C. Pike:来自加拿大的程序员,曾经加入贝尔实验室,为 UNIX小组的成员。他与肯·汤普逊共同开发了UTF-8。目前为 google的工程师,参与编程语言 Go与Sawzall的研发工作。
5
/10
第六名、JavaScript
颁奖词
JavaScript,通常缩写为 *** ,是一种高级的,解释执行的编程语言。JavaScript是一门基于原型、函数先行的语言,是一门多范式的语言,它支持面向对象编程,命令式编程,以及函数式编程。它已经由ECMA(欧洲计算机制造商协会)通过ECMAScript实现语言的标准化。它被世界上的绝大多数网站所使用,也被世界主流浏览器(Chrome、IE、Firefox、Safari、Opera)支持。
提名词
JavaScript语言作者,Brendan Eich:美国程序员与企业家,JavaScript主要创造者与架构师,曾任Mozilla公司的首席技术官,并曾短暂担任首席执行官。
6
/10
第五名、Objective-C
颁奖词
Objective-C是一种通用、高级、面向对象的编程语言。它扩展了标准的ANSI C编程语言,将Smalltalk式的消息传递机制加入到ANSI C中。目前主要支持的编译器有GCC和Clang(采用LLVM作为后端)。
提名词
Objective-C作者,Brad Cox:美国计算机科学家。于傅尔曼大学主修化学与数学,于芝加哥大学取得数学生物学博士学位。Objective-C主要作者。
7
/10
第四名、PHP
颁奖词
PHP(全称:PHP:Hypertext Preprocessor,即“PHP:超文本预处理器”)是开源的通用计算机脚本语言,尤其适用于 *** 开发并可嵌入HTML中使用。PHP的语法借鉴吸收C语言、Java和Perl等流行计算机语言的特点,易于一般程序员学习。PHP的主要目标是允许 *** 开发人员快速编写动态页面,但PHP也被用于其他很多领域。
提名词
PHP语言作者,Ra *** us Lerdorf:出生于格陵兰岛凯凯塔苏瓦克,是一个丹麦程序员,他拥有加拿大国籍。他也是编程语言PHP的创始人,其中PHP的头两个版本是由他编写的,后来他也参与PHP后续版本的开发。
8
/10
第三名、Java
颁奖词
Java是一种广泛使用的计算机编程语言,拥有跨平台、面向对象、泛型编程的特性,广泛应用于企业级Web应用开发和移动应用开发。Java编程语言是个简单、面向对象、分布式、解释性、健壮、安全与系统无关、可移植、高性能、多线程和动态的语言。
提名词
Java语言作者,James Gosling:出生于加拿大,软件专家,Java编程语言的共同创始人之一,一般公认他为“Java之父”。
9
/10
第二名、C++
颁奖词
C++是一种使用广泛的计算机程序设计语言。它是一种通用程序设计语言,支持多重编程模式,例如过程化程序设计、数据抽象、面向对象程序设计、泛型程序设计和设计模式等。
提名词
C++语言作者,Bjarne Stroustrup:生于丹麦奥胡斯郡,计算机科学家。他以创造C++编程语言而闻名,被称为“C++之父”。
10
/10
之一名、Visual Basic .NET
颁奖词
Visual Basic .NET(VB.NET)是.NET Framework框架下的一种多重编程范式高级语言。Visual Basic .NET属Basic系语言,其语法特点是以极具亲和力的英文单词为基础标识,以及与自然语言极其相近的逻辑表达,有时候你会觉得写VB.NET代码就好像在写英文句子一样,从这个角度来说,VB.NET似乎是更高级的一门编程语言,当然在Basic系语言中VB.NET也确实是迄今为止最强大的一门编程语言。
提名词
Visual Basic .NET作者,Alan Cooper:交互设计的提倡者。库珀有些时候被叫做 Visual Basic 之父,虽然大多数的工作是由微软的内部开发团队完成的,但是对于Windows可视化设计工具的创意是来源于库珀的。
C++适合本地程序的开发.
Go语言适合 *** 程序和本地程序的开发.
相对于C++Go的优点:
垃圾回收
语意明确
格式统一
缺点:
效率目前没有C++高,但对于桌面程序而言,效率问题不大,因为硬件已经很快了.
C++是目前的主流语言,相信会和C一样成为经典.
成为经典的意思就是:学它的人能拿一份不错的工资,但也仅仅是不错而己.
将来的 *** 的世界,Go发热的机会很大,认为其前途看好.
Go的开发者包括Unix的创始人和C语言的创始人等,都是一代黑客之首,相信会做得很好.
1、先要确定自己学编程是要干什么?
2、再来找相对应的编程语言。
科普一下
编程语言:C、C++、Java、C#、Prolog、VB、Scala、Clojure、Haskell、Ada、Python、Ruby、Pascal(Delphi)、Fortran、Lisp、matlab、Perl、Erlang、Boo、Tcl、Bash、C
shell、Objective-C、PHP、PL-SQL、Transact-SQL、ASP、 *** P、Lua、 *** alltalk、R、D,golang,Rust
涉及到的工具:sed、awk、grep
我们现在学一门语言,大部分是要用到了才学(基本上是中国的公司用什么我们学什么),基于兴趣的不多。
解决问题case:已知大量事实,和事实之间的约束,要求挖掘关系。
果断用prolog族语言。
例如,汉诺塔、地图着色、数独问题、八皇后问题等这种考验智商,并且需要从已知规则中发现模式的问题。拥有一大堆已知案例的应用(例如大部分的人工智能情况)
除非你是研究者,程序员一般是遇不到这种问题的。当然顶级的程序员也确实得具备解决这些问题的能力。但是他们就算解决也是用c解决的。这属于叫好不叫座的科研型语言。
应用程序case:从小到超大型应用程序,非完全互联网应用
这也是大部分软件公司遇到的情况。一般有几种没办法分出高下的解决方案:C++,Java,C#,VB。当然,这里面可以有CLR和JVM的不同衍生。例如,理论上,你也可以用scala来代替(不过估计大型公司不会冒这个险)。还是在理论上,你也可以用函数式编程的Clojure和Haskell来做(估计没人会那么傻)。还是在理论上,也可以用Ada这种强悍的通用语言,但估计没人愿意接受比C++还复杂的编程语言。理论上(基本只能在理论上),不嫌弃的话 *** alltalk也行。还是在理论上,python、ruby等配合一定的图形界面库也可以胜任(但项目大到一定的程度是,你会欲哭无泪)。
但是,我另起一行。有个语言:D语言。我个人不认为不可以列入首选名单。但是貌似知名度不行啊。。。。企业支持少啊。。。。。确实是门优秀的语言。C++太尾大不掉,需要一种语言,让C++成为纯粹的C++。
最近谷歌强势的推出了golang,背景是后台程序员C++写的好的太缺,python写的后台实在是效率不行。于是一个在这之间的,注重工程管理的,并且是全静态编译的golang诞生了,你会发现其拥有C++匹配的效率,也拥有python般丰富的编程库。其go和channel机制着实让人着迷,一出来就吸引了大量的后台开发人员,有的公司甚至后台全面转向go。但是其之前版本的内存回收机制比较烂,所以也有无数坑。现在的golang已经基本解决了这些问题,编译器也用golang重新实现了。可以说已经产品化了。
与golang竞争抢这个市场的还有rust,这是一个为并行而生,意在取代c++的编程语言。与golang的定位是相同的,但是目的是不同的。rust复杂,很复杂,上手难,但是一旦你掌握,这将是一个很强大的武器。已经有公司放弃golang转向rust的。但是这个语言的致命缺陷就是复杂,我们已经有一个复杂的C++了,他啥都能干,还要一个rust做什么?当然,我不能把rust拍死,毕竟这门语言的牛逼程度时比较逼近C++的。不过我高度怀疑其会较好不叫座。
稍小一点规模的,无法接受面向对象的程序员,有不少用C的。虽然OOP程序员看他们像是不开化的人,但是他们有他们的哲学(我从嵌入式开发过来,相当长时间内也摆脱不了C,总本能的排斥OOP),但是如果读者是一个nginx或者其他的c底层基础设施绝对会对oop嗤之以鼻,内核的编程范式已经给c下了一个什么叫对什么叫错的定义了。由于内核作为标杆,大家竟然同步的统一了编程风格。不用商量。nginx给那些歧视c的人上了生动的一课,现在哪一个互联网公司能离开nginx?
解决问题case:程序规模不是很大的偏数学问题
曾经很多人用Pascal(包括扩展的Delphi),曾经很多人用Fortran,但是都明显在退步。大型通用语言(C++、Java、C#)表明了他们在各种环境的适应能力。lisp系列也在一些问题上展现出古老的魅力。(但这个语言远没有《黑客与画家》的作者给我们描述的那样神奇,个人认为。不过我的C++风格思想占了主导,可能没办法公正的评价lisp,但是据我的使用lisp经验,在大部分情况下,我最后还是放弃了它。因为大部分情况下我总能找到用C++(或其他OOP语言)更好的原因)
另外,读研的一般都用过matlab。这个工具,两个字:强大!不过仅指科学计算方面。脱离了这个方面,就得考虑合不合适了,毕竟固定的矩阵思维不是啥情况都有效的。我用matlab最多的是神经 *** ,图片和信号处理。毫不夸张的说,matlab活脱脱一个photoshop啊。。。(当然,你得会用。。。)不过matlab的神经 *** 确实不行,做的太差了,小规模的 *** 可以,3层不用BP的F网,几十个就挂掉了。有这个需求的用ANN吧。(还是C++,偷笑)
特殊应用case:需要大量处理字符串的应用
首选利器是Perl,不过如果你习惯了sed、awk、grep,也能很方便的完成相同的功能,但perl是吸收三家所长做的。
其次是C++,别拍我。诸位用过regex吗?就是boost里的那个,最近被并入C++11啦。有了正则表达式的C++,处理字符,无敌了很多哇。当然,Java程序员别拍我,我知道这种库一个大型的通用语言都会有。我提C++,一般顺带着不否定Java和C#能以相似的代价完成相同的功能。
特殊应用case:需要一个胶水,粘结不同语言写出来的程序
首选是python。俩字:精简(呀,这么说一个强大的语言有点太轻浮了,但比起ruby,确实简单呐。。。)(另外Boo在.net是可以用来取代python)
C++适合本地程序的开发。Go语言适合 *** 程序和本地程序的开发。Go的优点:垃圾回收,语意明确,格式统一。 Go的缺点:效率目前没有C++高,但对于桌面程序而言,效率问题不大,因为硬件已经很快了。c++过于复杂了,加入很多炫技的内容。这些内容脱离了事情的本质。
最明显的就是所谓的面向对象。基于面向对象的工程如果足够大的情况下,会带来很大的耦合度,如果再加上内存管理,多线程等等。项目后期基本上没办法维护和增加功能。
关于c++的语言复杂性,你可以问知乎上的任何一位高手。没一个敢说自己精通c++。你也可以去看一下所有的c++编绎器,没有任何一个敢说自己完全实现了c++的标准。不同的编绎器之间实现细节又不同。所以功能再强大没有实用性,就失去了意义,只会制造更多的问题。
过年啦,我们这些小青年都不知道送长辈什么礼物好,也许有些人知道怎么选择,但是无论知不知道选择一款合适的礼物十分重要! 那么送长辈什么礼物好呢? 给长辈和老人礼物是表达我们的敬爱之心,百善孝为先,送...
黑客帝国三部一直没看懂 1、《黑客帝国》电影系列共有三部曲分别是1999年的《黑客帝国》、2003年的《黑客帝国2:重装上阵》以及同样在2003年推出的黑客帝国3:矩阵。2、《黑客帝国3》以主要人物尼...
手机定位在哪里找到(手机定位在哪个地方)在日常生活中,由于手机的功能越来越强大,所以大部分人手上都会有智能手机。那么你用了这么久的手机,你知道手机上面隐藏的定位功能吗?你知道手机也能定位追踪位置吗?今...
手机屏幕图案解锁软件有哪些 1、首先在你的电脑中下载“91助手”或“豌豆荚”软件并安装。(这步是确保电脑中安装了手机驱动)。下载“刷机精灵”(最下面有下载地址)软件并安装。2、自由解锁(LockMe...
别奢求黑客了,都是浮云。如果这个QQ真的是你在用,还是走正规的QQ申诉渠道吧。 老实投诉吧,还找黑客呢别恶心了,你以为qq是被什么人偷走的,你如果手机被小偷偷了,你去找小偷给你偷回来? 我觉得您可能是...
计划生育服务证是集准生证、查环等功能为一体的证件。已婚妇女怀孕后,孕检、分娩、享受免费避孕药具、以及找工作等都需用到这个《计划生育服务证》。现只有极少数落后地区组织机构组织繁杂,才有计划生育服务证、准...