跳到主要内容

电气·电子学

网络工程师 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 门课就可以了。

参考