# 编程学习笔记

> 由兴趣和危机意识驱动的学习，通过计算机获取认识世界的一个角度。

> Any fool can write code that a computer can understand. Good programmers write code that humans can understand.
>
> -- *Refactoring — Improving The Design of Existing Code* by Martin Fowler

榜样

- [@antfu](https://github.com/antfu)
- [@reuixiy](https://github.com/reuixiy)
- [@BlackGlory](https://github.com/BlackGlory/)
- [@timqian](https://github.com/timqian)

## 计算机科学

- 操作系统
- 数据结构
- 算法
- 网络

## Web 技术

- MDN Learn
  - ~~HTML~~
  - ~~CSS~~
  - ~~JS~~
  - ~~Web forms~~
  - Cross browser testing
  - Accessibility(A11y)
  - Git and GitHub
  - Client-side web-dev tools
  - Client-side JS frameworks
- ECMAScript articles by  Dmitry Soshnikov
  - ~~JavaScript. The Core.~~
  - ~~JavaScript. The Core. 2nd Edition~~
  - ECMA-262-3 in detail
    - ~~Execution Contexts~~
    - ~~Variable object~~
    - This
    - Scope chain
    - Functions
    - Closures
    - OOP: The general theory
    - OOP: ECMAScript implementation
    - Evaluation strategy
  - ECMA-262-5 in detail
    - Properties and Property Descriptors
    - Strict Mode
    - Lexical environments: Common Theory
    - Lexical environments: ECMAScript implementation
- ~~How to Read the ECMAScript Specification by Timothy Gu~~
- Frontend Masters
  - ~~Complete Intro to React, v8~~
  - ~~Vue 3 Fundamentals~~
- Understanding ECMAScript on v8.dev
- freeCodeCamp
  - ~~Responsive Web Design~~
  - ~~JavaScript Algorithms and Data Structures~~
  - Front End Development Libraries

## 方法

1. 要对自己有足够的信心
2. 明白自己想解决什么问题
3. 通过看大量知识缩小思考范围
4. 依葫芦画瓢才会融汇贯通
5. 把解决方案写下来
6. 记住——编程的核心是逻辑

---

## 参考资料

### CS

- https://csdiy.wiki/
- https://teachyourselfcs.com/

Network

- [The Illustrated QUIC Connection: Every Byte Explained](https://quic.xargs.org/)

### 学习方法

- [用Webpack4配置 React + Express + Less 开发环境](https://manateelazycat.github.io/web/2018/12/09/webpack-and-react.html)
- [谈研发人员的进步](https://manateelazycat.github.io/think/2023/05/08/developer-better.html)
- 程序员练级攻略
- 编程入门指南
- [左耳听风](https://time.geekbang.org/column/intro/100002201) by 陈皓
- 编程随想
  - [学习与人生——700篇博文之感悟](https://program-think.blogspot.com/2020/12/Study-and-Life.html)
  - [如何【系统性学习】——从“媒介形态”聊到“DIKW 模型”](https://program-think.blogspot.com/2019/10/Systematic-Learning.html)
  - [如何完善自己的知识结构](https://program-think.blogspot.com/2013/09/knowledge-structure.html)
  - [《如何阅读一本书》——书评及内容纲要](https://program-think.blogspot.com/2013/04/how-to-read-book.html)
  - [什么是【真正的】兴趣爱好？以及它有啥好处？](https://program-think.blogspot.com/2015/12/Hobbies-and-Interests.html)
  - [学习技术的三部曲：WHAT、HOW、WHY](https://program-think.blogspot.com/2009/02/study-technology-in-three-steps.html)
  - [用提问来促进思维——兼谈【非】技术领域的 WHAT HOW WHY 三部曲](https://program-think.blogspot.com/2012/03/think-what-how-why.html)
  - [成功学批判——简述其危害性及各种谬误](https://program-think.blogspot.com/2015/06/The-Mythical-Theories-of-Success.html)
  - [读书笔记：《反脆弱——从不确定性中获益》](https://program-think.blogspot.com/2018/12/Book-Review-Antifragile-Things-That-Gain-from-Disorder.html)
  - [书评：《你的灯亮着吗？——找到问题的真正所在》](https://program-think.blogspot.com/2009/07/book-review-are-your-lights-on.html)

### Web

- https://developer.mozilla.org/en-US/
- https://javascript.info/
- http://dmitrysoshnikov.com/
- https://roadmap.sh/
- https://andreasbm.github.io/web-skills/
- https://github.com/trekhleb/javascript-algorithms
- https://v8.dev/blog/tags/understanding-ecmascript
- https://timothygu.me/es-howto/
- https://www.patterns.dev/posts/
- [学习JavaScript数据结构和算法 代码库](https://github.com/PacktPublishing/Learning-JavaScript-Data-Structures-and-Algorithms-Third-Edition)
- [Frontend Masters](https://frontendmasters.com/)
- https://www.freecodecamp.org/learn
- https://web.dev/learn/
- https://fullstackopen.com/en/
- [Web Interface Guidelines](https://interfaces.rauno.me/)
