暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

学习算法和数据结构编程语言的选择

编程Cookbook 2020-01-14
18

有很多朋友问我,学了两年的Java和一年的Go,为什么大三开始重新学起了C语言和C++?其实,在一开始,我也有尝试着用Java来学习数据结构和算法等相关知识。但在了解到一定的算法和数据结构相关知识和特性后,我决定使用C语言或者C++来学习它们。

在当下的环境中,它们拥有绝对的优势,现在的书籍和课程基本上都可以找到对应的C语言版本,特别是大学的课本之类,资源找起来相对较容易一点。

C++作为老牌的语言、编程语言的老大哥,在各种编程环境中都占据了市场,C++给我的整体感觉是简单和基础(仅仅在语言特性,不涉及服务器端的开发),很多学校的计算机系都以C语言作为学生的第一门编程语言,就是因为这个原因。

现在的算法竞赛(CCF和PAT等)大多使用的语言基本就是C、C++、Java、Python,这四种语言是也是常年占据编程语言排行榜前几名,其中以C++使用最多,因为编译时间短,较快。

而在研究生机试阶段,C++/C语言的优势就更明显了,很多学校的专业课会包含C语言或者C++,在复试阶段的机试环节也要求使用C/C++来编写代码。

在后起之秀Java和Python面前,C++没有丝毫的落后。C++向下继承了C语言,C语言能够使用的功能和函数库,C++都可以使用,但是C++还向上拓展了C语言没有的功能,比如STL(Standard Template Library)工具,即标准模板库,在标准模板库中,封装了很多实用的容器,随着C++11的崛起,更多的功能在开发。不需要费力去实现他们的细节而直接调用函数来实现很多功能,十分方便。相信很大一部分人在写算法时都会使用Java或者Python,因为现在的学校在培养学生时,或者开发者在自学时,都会根据就业选择相应的语言去编程和开发,大多数的人也就理所应当的选择了就业率最高的Java和最有前景的Python。不得不说,这两门语言在大数问题上是很优秀的,可以很好的解决C++数据过大时难以处理的问题(注意:是难以处理,不是没有办法),但是他们在高精度方向的处理是让人很头疼的,而且Java和Python,更多的是运用在其他的方面,例如Web浏览器,网络应用系统,机器学习,大数据等方面,已经高度封装,不利于学习数据结构这类型的知识。

个人建议学习算法还是以C++或者C语言为起点,因为语言简单,较为底层,我认为越是高级的语言,越不适合学习底层逻辑,数据结构和算法是像蝴蝶、蜜蜂一样的精密物,而面向对象的语言(Java和Python等)更像是大炮,拿着大炮打蝴蝶,好像有点过了。语言只是一种工具,数据结构和算法是思想,只要能理解了算法和数据结构的含义,培养好编程意识,不管什么语言都能够轻松应对。


更多我的原创文章:

大学三年,我这样学——小白的自述
大学三年来,学开发我用它们。
解读项目开发全过程(李歘歘个人博客系统)
大学期间,技术和算法的抉择
我在改bug上的成长之路
Go语言摸索之旅
架构搭建不愁——SpringBoot框架整合
架构搭建不愁——Beego框架整合
这个假期,该做点什么?

点个“好看”你懂得!


文章转载自编程Cookbook,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论