👆点击“博文视点Broadview”,获取更多书讯
2022年TIOBE年度编程语言排行榜的结果出来了,Python稳居榜首,C++终于超越了Java,上升到第三位。
在之前的几年中,这个榜单的排名也都不尽相同。
前几年Java是比较火的,但最近两年随着人工智能(AI)的兴起,Python又成为头部。
可以用一句诗来形容:“江山代有才人出,各领风骚数百年”。
在语言火爆程度不断更迭变化的背后透露的是技术的革新以及主流编程工具不断变化发展。
也正是这种快速的变化,才使得人们都觉得IT行业是个不断更新,需要持续学习的行业。
我不否认这一点,从事IT行业确实需要不断学习,持续精进的毅力和品质,但是如果我们透过现象看本质,就会发现:无论编程语言的流程趋势怎样变化,编程工具怎样迭代更新,其背后总有一个不变量,这就是“算法”。
算法为什么重要
01. 算法是程序的灵魂
在编程世界中, 算法+数据结构=程序。
如果将数据结构比喻成程序的肉体和骨架,那么算法就是这个程序的灵魂。
数据结构这个肉体和骨架可以用任何语言来实现(比如C++,Java,Python),而算法则是不变的、最本质的东西。
正如李开复在《算法的力量》一书中写到:“算法是计算机科学领域最重要的基石之一,…… 编程语言虽然该学,但是学习计算机算法和理论更重要,因为计算机算法和理论更重要,因为计算机语言和开发平台日新月异,但万变不离其宗的是那些算法和理论,例如数据结构、算法、编译原理、计算机体系结构、关系型数据库原理等。”
02. 突破工具的壁垒,你才能获得自由
现代的编程语言会将很多算法和数据结构的实现封装在自己的类库中,这在很大程度上降低了编程的难度和门槛,但也使人们产生了巨大的依赖性。
程序员越来越像建筑工人,只需要将一个个模块黑箱按照业务逻辑拼装在一起,一个程序就搭建完成了。但是黑箱的内部是什么样子,可能你永远也不清楚。
这样就无形中给自己的认知和视野加上了一层壁垒,开发者很难有属于自己的思维方式,就更不要提创新了。
所以Ruby之父松本行弘就曾表示,我们应当注重的是算法而不是工具。只有具备了良好的算法思维,才能突破工具的壁垒获得思想的自由。
03. 面试
一般来说,技术面试=基础知识和业务逻辑面试+算法面试。
基础知识和业务逻辑部分可以通过短时间的突击快速上手掌握,而算法则需要一段时间的积累和刷题才能达到一定的高度。
因此算法的考查是很有区分度的,可以用来筛选人才。所以现在越来越多的大厂都更愿意将数据结构和算法问题作为招聘人才(特别是应届生)的考查题目了。
如何学习算法
如何才能学好数据结构和算法呢?
我推荐的方法很直接,同时我觉得也比较管用和靠谱,这就是基础+提高+刷题的“三步走战略”。
首先必须要夯实数据结构和算法的基础,这一点无比重要。因为数据结构和算法的体系和分支是相对比较复杂的,涉及的问题也是千变万化,唯有打下坚实的理论基础,才能更加有把握地应对各种复杂的问题。
在掌握了数据结构和算法的基础知识后,还需要在此基础上进一步提高水平。提高阶段的学习是具有挑战性的,因为这部分内容理论相对复杂,题目也更加灵活多变。如果我们可以努力突破这部分,在数据结构和算法领域就会得到一次全面的升华。
最后一个阶段就是刷题。无论是参加编程比赛,还是考研或是参加大厂招聘的笔试面试,归根到底也是一种应试。要想通过考试,刷题是必不可少的一个环节。我们这里所说的刷题是在已经打下坚实的理论基础(完成第一阶段和第二阶段学习)的条件下进行的刷题,所以这里的刷题应该更具有针对性,主要目的是为了拾遗补缺,将我们在第一阶段和第二阶段学习过程中发现的薄弱环节,以及重点和难点等通过大量的题目反复锤炼,这样才能更加全面和熟练地掌握知识要点,最终赢得考试。
这里向大家推荐《算法大爆炸》一书。这本书是一本既可以帮助读者筑牢数据结构和算法基础,同时又能帮助读者提升职场竞争实力的书籍。
全书采用Java语言编写,分为上下两篇,共15章。
本书在创作过程中坚持“夯实基础、注重实践、举一反三”的创作理念,内容丰富详实、妙趣横生,讲解深入浅出、清晰到位。希望这本书能够陪伴读者在轻松愉快的氛围中学好数据结构和算法。
本书适合计算机相关专业的学生以及算法爱好者学习和深造使用,可作为应届毕业生及社招人员笔试、面试的求职参考书,同时亦可作为高校计算机相关专业师生学习用书以及培训机构的教材。
专享五折优惠,快快扫码抢购吧!
每日抽奖赠书
奖品《学习的学问》
发布:刘恩惠
审核:陈歆懿
如果喜欢本文欢迎 在看丨留言丨分享至朋友圈 三连< PAST · 往期回顾 >
我从读者变成了联合作者
点击阅读原文,查看本书详情!
本文分享自 博文视点Broadview 微信公众号,前往查看
如有侵权,请联系 cloudcommunity@tencent.com 删除。
本文参与 腾讯云自媒体同步曝光计划 ,欢迎热爱写作的你一起参与!