程序员应该如何学习算法?

163 篇文章 13 订阅
73 篇文章 1 订阅

算法不是纯粹拼智商的,初学者不要上来直接撸《算法导论》!这是血泪

  • 建议一:首先你得会一门程序设计语言

  • 建议二:基础知识,数据结构,推荐大家看一下《大话数据结构》这本书,这本书看过感觉,讲解的比较容易理解,因此,入门了解这些基础知识,这本书非常的合适。

  • 建议三:需要刷更多的题,持续刷更多的题

数据结构三大块

一维数据结构

  • 基础:数组array(string),链表linked list

  • 高级:栈stack,队列queue,双端队列deque,集合set,映射map (hash or map),etc

二维数据结构

  • 基础:树tree,图graph

  • 高级:二叉搜索树binary search tree (red-black tree,AVL),堆 heap,并查集disjoint set, 字典树Trie,etc

特殊数据结构

  • 位运算Bitwise,布隆过滤器BloomFitter

  • LRU Cache

算法八大点:

基石三大点:

  • If-else,switch --->brach

  • for, while loop -->Iteration

  • 递归Recursion (Divide & Conquer,Backtrace)

五大高级点:

  • 搜索Search:深度优先搜索Depth first search,广度优先搜索Breadth first search,A*,etc

  • 动态规划Dynamic Programming

  • 二分查找Binary Search

  • 贪心Greedy

  • 数学Math,几何Geometry

算法经典友好书籍

《算法红宝书第四版》

  • 对每一个算法知识点讲得都很详细,同时不是很繁琐,比较容易上手。

《图解算法》

  • 图例很多,语言通俗易懂,学起来比较有意思。

《算法导论》

  • 大家小学的时候肯定都有字典或工具书。

  • 我们就可以把《算法导论》当做工具书来使用,在学完了基本的算法与数据结构,大家想对某一个知识深入学习或者复习的时候,这个时候可以查一查《算法导论》。

曾有人说,数据结构这个东西,如果你不去学,可能一辈子都感受不到它的好。但一旦掌握,就会被它的强大威力所折服。

  • 它是底层开发的重要一环,保证底层系统的稳定性和高效性;......

  • 从功利角度,它是大厂必考,你不可避免,从长远角度,它将决定你的技术上限。

  • 一旦拿下了数据结构与算法,就如同站在巨人的肩膀上,在开发江湖占有一席之地。所以说难也得好好学

编程基础

 Java基础:Java入门基础视频教程,java零基础自学就选黑马程序员Java入门教程(含Java项目和Java真题)

Java Web-能制作中小型网站&企业管理系统
Javaweb:新版JavaWeb基础教程,Java web从入门到企业实战完整版
MySQL数据库: MySQL数据库入门到精通,从mysql安装到mysql高级、mysql优化全囊括

Java开发框架-Java企业级服务端开发技能
Maven:Maven全套教程,maven项目管理从基础到高级,Java项目开发必会管理工具maven
Git:Git全套教程,完整的git项目管理工具教程,一套精通git
SSM框架:2022新版SSM框架教程_Spring+SpringMVC+Maven高级+SpringBoot+MyBatisPlus企业实用开发技术
MybatisPlus:MybatisPlus深入浅出教程,快速上手mybatisplus
Spring Boot:SpringBoot2全套视频教程,springboot零基础到项目实战(spring boot2完整版)
传智健康:Java项目《传智健康》,完整的企业级医疗行业项目(基于SSM+Zookeeper+Dubbo+Spring Security技术栈)
瑞吉外卖:Java项目实战《瑞吉外卖》,轻松掌握springboot + mybatis plus开发核心技术的真java实战项目


零基础必备:全套Python教程_Python基础入门视频教程,零基础小白自学Python入门教程

python多线程黑马程序员python多线程编程_哔哩哔哩_bilibili

python基础进阶:Python深入浅出进阶教程【敢信?】收藏=点赞十倍
Python实战Djongo项目:python企业级开发项目-手把手从0到1开发《美多商城》
mysql数据库:MySQL全套教程,MySQL从基础到黑马订单案例实战
机器学习算法:3天快速入门python机器学习
聚类算法:360°解读机器学习经典算法——聚类算法
数据挖掘:Python教程,4天快速入门Python数据挖掘,系统精讲+实战案例
Web服务器:Python高级语法进阶教程_python多任务及网络编程,从零搭建网站全套教程
180分钟爬虫入门:180分钟轻松获取疫情数据,Python爬虫入门课
Scrapy框架:Python爬虫基础,快速入门Scrapy爬虫框架
多线程:python多线程编程

人工智能入门:智能机器人软件开发教程基础,从helloworld到神经网络
人工智能深度学习:智能机器人软件开发教程基础,从helloworld到神经网络
图像与视觉处理:人工智能教程|零基础学习计算机视觉快速入门

有用记得收藏哦,不定什么时候就失效了


刷题刷题刷题!力扣经典算法题

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: AI 可以被用来帮助程序员完成一些重复性的任务,但是它不能完全取代程序员。在未来,AI 和程序员将会协同工作,而不是取代人类。程序员需要具备独特的技能,包括创造性思维和解决复杂问题的能力,这些技能是AI暂时无法替代的。 ### 回答2: AI技术的发展确实让一些人担心程序员职业的前景。然而,我认为AI不会完全取代程序员的工作,而是在某些方面提供协助和改进。 首先,虽然AI在处理大量数据和重复性任务方面具有优势,但程序员不仅仅是编写代码的人。他们还需要具备分析问题、设计解决方案、沟通和协作等能力,这是AI无法完全复制的。AI只能帮助程序员提高工作效率,但无法代替创造性思维和人类的感知能力。 其次,AI技术本身需要程序员的参与和指导。AI并非自主学习和自我调整,它需要程序员根据实际情况进行指导和训练。程序员的角色是提供AI算法和模型的基础,为其配置正确的参数,并监督其工作。因此,程序员仍然是AI技术发展的关键驱动者。 最后,尽管AI在某些特定领域可以替代人类工作,但程序员职业本身也在不断发展和演变。随着新技术的出现,程序员需要不断学习和适应。AI的出现可能会改变程序员从事的工作内容,但可以预见的是,程序员的需求将从简单的编码转变为更复杂的系统设计和优化。因此,程序员需要继续提升自己的技能和知识,以适应变化的就业市场。 总的来说,虽然AI对程序员的工作有一定的影响,但它不会完全取代程序员程序员仍然发挥着不可替代的作用,是AI技术发展的关键参与者和指导者。 ### 回答3: AI目前已经在某些领域取得了重大进展,但是否会完全取代程序员的工作是一个复杂的问题。虽然AI在编程方面的发展日新月异,但目前的AI技术仍存在许多限制和挑战。 首先,AI目前主要用于解决相对简单且明确的问题,如图像识别和自然语言处理。但在复杂的编程任务中,尤其是需要创造性思维和问题解决能力的情况下,AI仍然无法与人类程序员相比。 其次,开发和维护AI系统本身需要高度技术娴熟的专业知识,这一层面的专业人才仍然必不可少。程序员需要对AI算法进行设计、优化和测试,确保这些系统的稳定性和准确性。 此外,程序员在项目开发过程中还需要与客户、团队成员和其他利益相关者进行沟通和协作。他们需要理解和满足客户的需求,提供技术解决方案,并确保项目的顺利进行。这种人际交往和沟通的能力是AI目前无法替代的。 最后,虽然AI在辅助编程方面取得了一些成果,如自动生成代码和修复错误,但仍需要人类程序员的参与。他们可以理解整个系统的复杂性,进行调试和优化,以确保系统的高效运行。 因此,虽然AI在编程领域有着巨大的潜力和应用前景,但在可预见的未来内,AI不太可能完全取代程序员的工作。程序员仍然是设计、开发和维护AI系统的重要角色,而且他们的技能和专业知识在数字时代仍然是不可或缺的。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值