Ⅰ 请问,怎么有步骤地学好数据结构与算法java语言这门专业
1. "我想学好基础的数据结构和算法! "
不多说,有这心就往下看。
2. "我应该准备些什么? "
a. 这本橙书: 《算法 第四版》
--亚马逊中文版: amazon.cn 的页面
--线上资源: Algorithms, 4th Edition by Robert Sedgewick and Kevin Wayne
b. 注册Coursera, 依次加入这2门课: <算法, 第一部分> <算法, 第二部分>
Part 1: https://www.coursera.org/course/algs4partI
Part 2: https://class.coursera.org/algs4partII-006
如果没开课, 就先标记, 这样开课时会通过邮箱提示你.
3. "我应该做些什么? "
先熟读书内1.1和1.2, 最好把课后习题都做一做. 网站上开课后(即使已经开课几周了, 没关系), 跟住上课内容: 课本知识 + 视频内容 + 课件重点+ Exercises (独立完成且满分) + Programming Assignments (独立完成且尽量满分) + Job Interview Questions. 从Part 1到Part 2, 跟住, 跟住, 跟住!
关于做书后练习题,参见:
算法 第四版(algorithms 4th edition ) 这本书有配套的习题答案吗? - 孟祥丰的回答
4. "我学完了呢!"
再去跟隔壁斯坦福的算法公开课, 他还给证书! 因为参考书籍基本上就是是《CLRS》, 所以也就是强迫自己去仔细研读算法导论.
---课程名称:
<算法设计与分析, 第一部分>
<算法设计与分析, 第二部分>
---课程地址
Part 1: https://www.coursera.org/course/algo
Part 2: https://www.coursera.org/course/algo2
Ⅱ 这几个Java网站,有点刺激
一、LearnJava在线
这是一个非常不错的学习Java的在线网站,纯免费。这是一个个人项目,旨在通过简单有效的在浏览器中进行练习让你快速掌握Java编程语言。通过直接从网络浏览器运行实际代码,你无需在本地安装和执行代码就可以尝试编码,这无疑提高了编程效率和上手效率。
你可以根据目录进行练习,有基础部分和高级部分,首先有例子代码,告诉你需要注意的事项以及详细的讲解,旨在把你教会后再让你进行练习。
二、StackOverflow
说到学习Java,怎么能不提StackOverflow呢?StackOverflow是一个与程序相关的T技术问答网站。用户可以在网站免费提交问题,浏览问题,索引相关内容,在创建主页的时候使用简单的HTML。在问题页面,不会弹出任何广告,销售信息,JavaScript窗口等。
干净清爽,基本上所有的问题你在StackOverflow都能找到答案,你可以提出公共问题,也可以提出私人问题,甚至可以在StackOverflow上找工作。
三、DZone
DZone上会有T前沿的新闻和文章,会有Al、大数据、云、数据库、DevOps、loT、Java还有开源项目关干Java新特性的介绍,新特性的使用都会在上面,是你掌握前沿动态不可或缺的网站。
四、LeetCode
LeetCode是一个很牛逼的刷题网站,它的重要性不用我多说7吧里面包括大量的算法题,这些算法题是大厂面试必出的题型,据说掌握了这些算法题后,你可以吊打中国任何一家大厂,是不是真的咱也不知道,毕竟咱们没做过几道题。
问题可以区分难易程度,有解决措施,接受度,困难程度等,还有大厂公司的面试题因为LeetCode太牛逼了,LeetCode推出7中文版,中文为力扣几平和英文版的一模一样,如果小伙伴英文不手首是很好可以看看中文版。
五、Java官方文档
学习Java,还有什么比官网更权威的呢?我之前一直不知道官网能做的这么干净,你来看一下包含各种内容,总榄,编程语言,工具,特性,JM等,只不过语言有一些生硬,需要强大的英文功底,不过现在有谷歌翻译后我觉得这些问题也都不是问题。
六、Coursera
Coursera是一个在线课程网站,是为大厂量身定做的,就和国内很多在线教育机构类似,不过真实性如何不能确保,毕竟身边没有小伙伴抱过课程。Coursera是大型公开在线课程项目,由美国斯坦福大学两名计算机科学教授创办。旨在同世界顶尖大学合作,在线提供网络公开课程,它与全世界最顶尖的大学和机构合作,提供任何人可学习的在线课程。
七、Java World
Java World是一个纯Java学习网站,它里面包括很多Java文章,它不同干DZone的领域那么多,Java World只缓衫专注干Java,哦对了,还有安卓,是你提高视野,学习Java新特性毕哪数不可或缺的网站。
八、Java程序猿圈
Java World是一个纯Java学习网站,它里面包括很多Java文章,它不同干DZone的领域那么多,Java World只专注干Java,哦对了,还有安卓,是你提高视野,学习Java新特性不可或缺的网站。
Ⅲ 算法工程师可以自学吗
算法工程师确实可以自学,但需要付出巨大努力。这项工作要求极高的数学素养和逻辑思维能力。学习者需掌握高等数学、线性代数、离散数学、数据结构及计算机组成原理等知识。建议有计算机、电子通信或数学等相关专业背景的人士更容易上手。
自学算法工程师的关键在于系统化学习。首先,可以从理解基本数学概念开始,如集合、函数和极限等。接着,学习高等数学中的微积分和线性代数,掌握向量、矩阵和特征值的概念。离散数学则涉及逻辑、集合论和图论等内容,对于算法设计至关重要。
数据结构是计算机科学的核心,学习栈、队列、链表、树、图等数据结构的原理和实现方式。此外,计算机组成原理帮助理解硬件层面的知识,这对于优化算法具有重要意义。
自学过程中,需要通过大量编程练习来巩固理论知识。可以选择Python、C++等编程语言,编写代码实现算法。同时,可以利用在线课程、视频教程和编程平台进行学习,如Coursera、edX、LeetCode等。
自学算法工程师需要时间和耐心,建议设定明确的学习目标,坚持每天学习,逐步提高自己的技能水平。加入技术社区,与其他学习者交流经验,共同进步。