EDA工程师软件编程能力“劝退指南”
本文作者为我的某个不愿意实名的优秀学生,现就职于某EDA公司,文章内容非常简洁,相信很适合对热爱技术的同学。

一、编程语言
- C语言
- [C faq](http://c-faq.com/index.html)
- [C89 draft](http://www.port70.net/~nsz/c/c89/c89-draft.html)
- [Programming Quotes](http://quotes.cat-v.org/programming/)
- [The GNU C Library](https://www.gnu.org/software/libc/manual/)
- [awesome-c](https://github.com/oz123/awesome-c)
- [stackoverolow C tag](https://stackoverflow.com/questions/tagged/c%2b%2b), sorted by votes.
- [Notes on Programming in C](http://doc.cat-v.org/bell_labs/pikestyle)
- Coding style:
[suckless.org](https://suckless.org/coding_style/)
[GNU](https://www.gnu.org/prep/standards/standards.html#Formatting)
[Linux Kernel](https://www.kernel.org/doc/html/v4.10/process/coding-style.html)

- C++语言
- [C++ faq](https://isocpp.org/wiki/faq)
- Book: [Effective STL](http://www.uml.org.cn/c%2B%2B/pdf/EffectiveSTL.pdf)
- [stackoverolow C++ tag](https://stackoverflow.com/questions/tagged/c%2b%2b), sorted by votes.

二、脚本等其他编程相关
- Bash
- [GNU Bash Manual](https://www.gnu.org/software/bash/manual/)

- CLI
- book: [The linux command line](http://linuxclass.heinz.cmu.edu/doc/tlcl.pdf)
- [GNU coreutils Manual](https://www.gnu.org/software/coreutils/manual/)
- [Opening the Software Toolbox](https://www.gnu.org/software/coreutils/manual/html_node/Opening-the-software-toolbox.html#Opening-the-software-toolbox)、

三、Verilog解析相关
- verilog:
- [yosys formal](https://zipcpu.com/blog/2017/10/19/formal-intro.html)

四、其他相关
-MISC:
- port70.net/~nsz.
某个(我)不知道是谁的大佬的blog.
- http://www.port70.net/~nsz/00_prog.html
- github.com
- Awesome list: https://github.com/sindresorhus/awesome
- Free Programming Books: https://github.com/EbookFoundation/free-programming-books
- wiki.osdev.org
- search engine:
- 搜索的时候可以加上 " site:stackoverflow.com" 来筛选网站
- 使用" filetype:pdf"来筛选pdf文件.
- 搜不到东西的时候多加点context.

五、Get an Linux Environment
- 虚拟机安装:
- 挑一个linux发行版. (比如从[这里](https://distrowatch.com/))
- 到对应的官网或者从[这里](https://mirrors.tuna.tsinghua.edu.cn/)下载安装包.
- 安装
- WSL: Windows Subsystem for Linux
- 建议不要使用windows自带的terminal, 可以用[alacritty](https://github.com/alacritty/alacritty)
- 直接安装:
- 挑一个linux发行版. (比如从[这里](https://distrowatch.com/))
- 到对应的官网或者从[这里](https://mirrors.tuna.tsinghua.edu.cn/)下载安装包.
- 找个没用的u盘, 用[ventoy](https://github.com/ventoy/Ventoy)做成启动盘, 把安装包放进去.
- 插上U盘重启进入BIOS, 将U盘对应的启动顺序改到第一个, 保存退出重启安装.
- done
- (硬盘里没什么东西可以丢话的可以放心装:)