学习动机

  • 掌握另一种编程语言,提高对编程语言的认知
  • 坚持学习,培养坚持做完一件事的能力,提高自信

学习资源

学习方法

  • 目的导向,结果导向
  • 通过教程掌握基础
  • 通过阅读和分析源码进阶
  • 通过开源项目、开源中间件进阶
  • 在公司里运用、布道

Go语言学习路线

零基础

学习计算机知识

基础知识
  • 计算机体系结构
  • 计算机硬件基础
  • 计算机软件知识
入门好书
  • 计算机是怎样跑起来的
  • 程序是怎样跑起来的
  • 动手制作一台计算机
备选进阶书
  • 深入理解计算机操作系统

学习操作系统知识

基础知识
  • 操作系统管理
  • 操作系统基本原理
  • 命令行的使用
入门好书
  • 30天自制操作系统
  • Linux就该这么学
  • Linux命令行与Shell脚本编程
  • Linux Shell脚本攻略
备选进阶书
  • Linux内核设计的艺术:图解Linux操作系统架构设计与实现原理

学习网络知识

基础知识
  • 网络链接
  • 网络协议
入门好书
  • 网络是怎样连接的
  • 图解HTTP
  • HTTP/2基础教程
  • 图解TCP/IP
备选进阶书
  • HTTP权威指南
  • TCP/IP详解

无编程经验的同学

学习编程基础知识

基础知识

  • 程序设计基础
  • 高等数学
  • 算法基础
  • 程序员英语

入门好书

  • 我的第一本编程书
  • 程序员的数学
  • 算法图解
  • 啊哈算法
  • 程序员的英语

备选进阶书

  • 计算机程序设计艺术
  • Linux/Unix系统编程手册
  • Unix环境高级编程

有其他语言编程经验的同学

学习Go语言基础知识

基础知识

  • Go语言规范
  • Go语言命令
  • Go语言基础编程
  • Go语言并发编程

推荐资源

  • Go语言规范文档
  • Go语言命令文档
  • Go语言编辑器和IDE
  • Go语言WIKI
  • Go语言核心技术36讲
  • Go并发编程实战
  • Go命令教程
  • Go语言第一课

有Go语言编程经验的同学

学习Go语言进阶知识

进阶知识

  • Go语言数据类型使用进阶
  • Go语言标准库使用进阶
  • Go语言并发编程进阶
  • Go语言知识体系巩固

推荐资源

  • Effective Go
  • Go语言内存模型
  • Go程序诊断
  • Go语言核心技术36讲
  • Go并发编程实战
  • Go语言实战

进阶方法

  • 打好基础,不断补充知识缺漏
  • 研读Go语言官方文档和源码
  • 学习明星项目中的代码和文档
  • 多读书,读好书(所有相关技术书,不只Go语言)
  • 积极练习、积极讨论、积极加入技术组织和社区
  • 积极发布和开源自己的程序,积极通过代码和软件项目交友
  • 积极公开自己的想法,并拥抱和吸纳不同的想法
  • 尽量多的在公开场合发声,包括公开讨论、演讲、培训和咨询
Go语言基础知识

Time waits for no one.