电气·电子学
网络工程师 CCIE 网络规划设计师 信息安全工程师
数 2 张宇 基础 30 讲、高数 18 讲,1000 题,油管 DayDayUpChannel 李永乐 线性代数 汤家凤
408 王道,视频和全部课后习题,一个月 顺序:数据结构》计算机组成原理》操作系统》计算机网络
-
本科时期先学机械相关(机械 设计、三维建模、加工工艺设计)、 再者机器人的控制, 从最简单的单片机+PID 出手,再到做出基于麦克纳姆轮的全向移动机器人。
-
研究生主要做机器人控制系统的开发、机器人的底层算法,包括运动控制、轨迹规划、碰撞检测、参数辨识等,可研究 的方向很多。
机械工程(一级学科),下设开设机械设计、制造、微机原理、控制原理等, 专业特点与自动化专业有一定的交集。
本科期间多参与国内外的机器人竞技比赛,如 RoboMaster、robocon、ICRC 等,此类机器人竞赛会让你迅速学习到机器人相关的初级知识。
-
硕士期间如还在研究机器人, 那么学机械的可能会去学习机器人的底层算法(运动学、动力学、碰撞检测、轨迹规划、力控制等), 自动化的可能会去学习机器人的运动控制算法、定位导航等。 具体的都要看你的研究方向。
-
博士专业控制科学与工程,本科机械设计制造及其自动化,硕士机械工程
推荐机械电子工程。原因如下:机器人学是一门综合性很强的学科,涉及机械、电子、控制、电气等多个学科知识。相比之下,机电专业涉及面广,比纯机械专业更懂电路设计,电气专业更懂机械,比自动化专业更懂硬件。当然,机电专业涉及面广也导致其涉及某专业领域的深度不够。
用更简单的话说,机器人是机电一体化产品,系统的了解机器人学机电专业是不二之选。当然,这也并不是说其他专业不适合机器人学。机电专业更适合从整体上认识机器人
-
计算机科学导论 Introduction to Computer Science and Programming:面向无编程基础或者只有一点基础的人群,使用 Python 作为教学语言。 Intensive Introduction to Computer Science Open Learning Course:CS50,哈佛很火的一门课,在网易公开课上可以找到翻译的视频内容。涵盖的主题有算法(设计、应用、分析);软件开发(抽象、封装、数据结构、Debug、测试);计算机体系结构等等。基本上是一门大杂烩的导论课。使用的语言是 C、PHP、JavaScript。 Programming Abstractions:介绍了更加高级的编程主题(递归、算法分析、数据抽象等等),使用 C++作为教学语言。
-
数学 Mathematics for Computer Science:介绍了学习计算机所需要的一些数学知识,内容包括集合、关系、证明方法、数论、图论等等。 Discrete Mathematics:离散数学。
-
编程语言 Learn to Program: The Fundamentals:面向无编程基础或者只有一点基础的人群,使用 Python 作为教学语言。 Learn to Program: Crafting Quality Code:如何编写高效与正确的代码。需要有 Learn to Program: The Fundamentals 的基础。 The Structure and Interpretation of Computer Programs:经典的 SICP 的 Python 版。
-
计算理论 Introduction to the Theory of Computation Principles of Computing (Part 1):介绍了 CS 中基本的数学和编程理论,需要有 Python 基础。
-
算法与数据结构 Introduction to Algorithms:MIT 的算法导论课,用《算法导论》作为教材,网上可以找到视频资源,网易公开课上有老版的翻译。
-
数学 Coding the Matrix: Linear Algebra through Computer Science Applications:线性代数以及在计算机中的应用。 Discrete Mathematics and Probability Theory:离散数学与概率论。
-
计算理论 Theory of Computation - Fall 2011:介绍了机器模型、上下文无关文法、图灵机等,使用的教材是 Michael Sipser 的 Introduction to the Theory of Computation。
-
算法与数据结构 Data Structures and Advanced Programming Efficient Algorithms and Intractable Problems
-
操作系统 Operating Systems and Systems Programming:UCB 经典的操作系统课程,介绍了操作系统的基本概念、系统编程、网络、分布式系统、内存分配、多线程等等。 Introduction to Linux:介绍了 Linux 以及一些简单的命令行使用。
-
程序语言理论 Programming Paradigms:编程范式。 Compilers:Stanford 的编译原理课。 Principles of Programming Languages
-
计算机体系结构 Computer Architecture:CMU Computer Architecture
-
计算机网络 Computer Networks Fundamentals of Computer Networking
-
编程工具 IDE Python: PyCharm Java:IntelliJ IDEA C/C++: Visual Studio
书单
学习开发,需要看很多专业的书籍,从书中可以系统化的学到基础知识,为技能提升打下坚实的基础。下面是一些常见的优质书籍,不管主攻的是什么语言,这些书都可以提供很好的参考。
- spring in action
- Mybatis in Practice: A Step by Step Approach for Learning Mybatis Framework
- Spring 实战(第 3 版)
- redis 设计与实现
- 深入理解 Java 虚拟机:JVM 高级特性与最佳实践
- 七周七并发模型
- Spring 技术内幕:深入解析 Spring 架构与设计原理(第 2 版)
- effective java
- java 并发编程实践
- java 网络编程
- 重构:改善既有代码的设计
- HTTP 权威指南
- UML 精粹
- 设计模式 : 可复用面向对象软件的基础
- 分布式 java 应用
- 实现领域驱动设计
- Effective Java
- 深入分析 Java Web 技术内幕
- 大型网站技术架构
- 代码整洁之道
- 架构整洁之道
- Head First 设计模式
- maven 实战
- 区块链原理、设计与应用
- Java 并发编程实战
- 鸟哥的 Linux 私房菜
- 从 Paxos 到 Zookeeper
- 架构即未来
编程基础 UC Berkeley 的 3 门课就可以了。
-
CS 61A:编程入门(用的 Python,之前用的是 Scheme)
-
CS 61B:算法与数据结构(用的 Java)
-
CS 61C:计算机体系结构(用的 C)
-
中文独立博客列表