好吧,我也是第一次写博客,之前写的"为什么要学C++"介绍的不够详细,而且竟然有人看并点赞(心中有些小激动),所以我重新认真系统的写一下,至于开始写博客的原因,是因为听到许多人说把自己所学的内容写下来,有利于交流,相互进步;与此同时,我有所感觉,很多人在选择编程语言的学习上有困惑,而在网络上进行搜索应该选择学习哪门语言时,因为不同的人对不同的编程语言持有不同的观点而有所困扰,这篇博客,作为我将正式开始将我学到的在CSDN分享以及讨论,我就客观系统的将我的想法(ps:不包含主观的对哪门语言热爱_),以C++和java为代表的编程语言如何选择(不光指这两门),以及如何学习编程语言(还是以C++和java为代表),还有最重要的为什么要学C++?
我先自我介绍一下吧,我是一名的通信专业的学生,第一次接触到编程语言,是从大一的c语言基础课开始的,后来觉得编程是一件很有意思的事,就继续自学了C++的部分基础,突然,在一次月黑风高的晚上,我偶然参与到了一个C++群中讨论java和C++哪个更牛逼_,然后我被群里一位大佬说服了,去学习java了,之后嘛,我就被java吸引住了,简洁的语法,丰富好用的标准库,在学习java的过程中,我对编程有了基本的认识,渐渐明白了编程的本质就是操作地址,后来呀,就一发不可收拾,我自学了javaSE(基础),javaEE(网络部分)网络部分的前端和servlet后端基础都学了差不多了(目前有深入框架的念头,此时C++我已经不不知道是什么东西了),啊哏,扯远了,好吧,回到话题,为什么我又学回C++,原因?还是一个突然(_),在一个乌云密布的晴天,我上了一堂我们专业课(单片机课程,)需要c51基础(就是c语言)操作,而这原理就是在操作寄存器的地址,语法简单,比汇编语言操作机器简单的多(ps:我也自学了一点汇编基础,汇编是中级语言,C++和java是高级语言),而且c的效率能够达到汇编的90%(ps:已经很高了),而C++又保持了c的特性,既面向对象又面向过程,我觉得再研究下C++可能会对学习有帮助,有着java基础的我,在学习C++的同时我突然对其有了基本的认识,为什么有人憎恨C++有人迷恋C++,为什么C++如此高效,为什么C++程序员站在鄙视链的顶端(这句话不是我说的,是一位老师说的),下面,就让我系统的介绍下C++值不值得学,以及适合什么样的人学,以及如何去学(ps:感谢听了我一大堆废话,下面的内容我部分借鉴了网上,至于为什么,主要原因是因为本人语文相当不好,在语句的表达上可能会有点那啥,如有侵权,还请原谅)
C++,作为存在了20多年的语言,在TIOBE排行榜上也几乎一直位于前五的位置 ,回望这几年,各种新语言层出不穷,那么,C++为什么一直保持着无可撼动的地位?
我想原因之一是C++,一直被称为效率之王,同时,在一些领域,C++一直保持于无可替代的作用,比如驱动,Android底层等等;
C++在保持着面向对象设计的同时,也可以面向过程设计;针对项目规模,可以分而选之;
然而,对于C++来说,它的新鲜血液太少了,甚至有些人声称C++已死,我想,这主要是因为其入门门槛太高以及代码不易维护的原因,而对于java,它可能跟倾向于面向人,为了人们的方便而创造的一些特性,它不需要你去思考代码内部是如何处理内存的,一个垃圾回收机制帮你省去了很多要思考的问题,对于C++来说,它的特性在面向人的同时也要面向机器, 它需要你去思考如何创建内存,回收内存,栈区,堆区还是静态区的使用,以及一大堆乱七八糟的特性(ps:有一段时间我甚至认为C++不适合正常人类去学),这是难倒了大部分程序员的原因,但后来学习的同时一想,这或许也是C++如此高效的原因,因为它是面向机器操作(ps:你得把自己想成一台机器,也就是你得了解计算机原理,才能知道为什么有这么多的特性);
对于就业,由于C++难以维护,标准库中实用的方法过少,而且开发对于程序员来说又需要很精通的掌握C++,那么,所以学习C++的风险以及时间成本也是相当大的,同时,很多企业都倾向于使用java,是因为其易于维护,跨平台,框架比较高效(不单指时间),对于程序员,只需要你记得它们的语法和方法就能使用,所以,相对时间成本低,学习也容易;
至于C++为什么这么难以维护,我想,可能是因为C++的设计者是一个完美主义吧,它加的很多特性能够允许C++在任何场合都能够高效操作,但写起代码以及理解其中的构造,可就繁琐多了,这也是业内流行的一句话能不用C++就不用C++,这句话表面看起来是在贬低c++,但也恰恰说明C++在各行各页都能用,而且用起来非常高效,那么为什么又要尽量避免使用C++呢,我想正是因为使用C++需要考虑的特性太多了,虽然高效,但是开发时间很长,对普通程序员来说,维护起来更是要了命.因此,限制了C++广泛流行于企业中的正是它较为完美的特性.
打个比方,如果说C++像是一把手术刀,运用起来需要精准的切除某个器官,或者开膛破肚,那它绝对是一把好手,然而java,更倾向于一把菜刀,容易使用,足够满足平时需要;虽然手术刀也能切菜,但确实相当麻烦,你用手术刀(C++)切菜绝对比用菜刀(java)花费的时间多,思考的问题多(我切哪才能更好的那啥<不知道怎么表达>),但切的菜却会把用菜刀切的好看,试想一下,在一个不看重效率的项目中,谁愿意高薪聘请一个熟练的C++程序员,而不是低薪聘请稍微有点经验的java程序员,这也正是当前java市场饱和,而C++程序员却很难聘请到的原因,如果各位为了工作而学习编程,那么我推荐java(现在java可能市场有点饱和,工作也不太好找,而且大部分都是搬砖工作,乏味,不过java未来的工作岗位可能还会有所增长),而对于C++,我们应当保持着学术性的研究的态度去学习,如果想要利用C++工作,那么就得沉得住心,耐得住寂寞,刻苦的钻研;
C++,在现实中,企业都用起做什么?
1:游戏行业:几乎所有 3A 游戏都是使用 C++ 编写的。并且游戏的服务器要求高效,高并发,这正服务设计C++的原因
2:嵌入式设计
3驱动
4系统开发
5编译器开发
其它的我就不一一列举了,总之C++什么都能干,但这在几行中擅长而且无可替代.对了,如果你是从事逆向破解或者黑客等技术,那么必须得会C++;
我推荐的学习路线:1.如果你觉得自己只想找个工作,也不想深入也不想研究,那么学习java就行(ps:java现在的框架和技术未来有一天可能也会更新换代,如果你一门心扑在java的ssm或者ssh框架上,小心被淘汰);2.如果你是一个大学生,时间很充裕,那么我觉对推荐掌握好C++知识,及时未来转其他语言时你就能知道它内部运行的原理,学起来很快而且开发起来更高效,比只会一种语言的人更有竞争价值;或者说你可以两门一起学{java(也可以是Python,C#等)和C++},以java为主,在java学习不漏下的情况下学习C++(ps:因为你不知道你是否有天赋,如果你发现你真的很那啥(直白点就是笨))那么C++没掌握,反而浪费了不少时间;
最后说一句,last but not least,学习C++真的很有成就感,这也是为啥那些业界大牛基本都会C++,而且鄙视以java(不是精通java得人,而是指那些只会一点java,工作全靠搬砖的人,ps:java对程序员很友好的,这也是为啥有些人搬砖也能混口饭吃)为代表码农.
============================================================
本篇文章博客内容到这里就结束了,写的有点累了,如果只要有一个人点赞(_)的话我就会继续再加一篇C++以及java的学习路线和方法的文章,我会一直把我的笔记整理到了博客上,感觉放到博客上以后想查的时候不会找不到,当然了,各位小伙伴学习编程时记得一定要做笔记哦,因为内容太多以后容易忘,只看帮助文档不知道哪里是重点,;
文章写得不好,如果有一些大佬们有幸莅(ps:这个字念li;找了好久…)临,发现其中有不足的地方还望流行评价斧正,还有,如果有小伙伴对自己未来的想要走哪个编程语言的方向想跟我探讨一下,或是想讨论一些知识,可以发我邮箱2836782639@qq.com.
终于写完了,好累啊,这种文章虽然不想写,但不得不写,我希望小伙伴们能找到自己的路;(我这辈子语文作文都没写过超过1000字,真是文思如泉涌啊,哈哈~~)
ps:今天也要元气满满的学习编程哦;_
我已经把学习路线和方法整理出来了,大家有兴趣的可以看一下哦…链接:路线和方法
转载:https://blog.csdn.net/weixin_45483906/article/details/101931902