软件工程师脱颖而出的六大秘诀
1. 数据结构与算法
为什么?
数据结构和算法是计算机科学的支柱。算法是指解决问题所需的逻辑计算步骤。数据结构是一种有效组织和存储数据的方法。
学习常见的算法和数据结构将帮助您更有效地解决应用程序中的问题。
资源
图书
- 《算法导论》(作者:Thomas Cormen、Charles Leiserson、Ronald Rivest 和 Clifford Stein)
- Robert Sedgewick 和 Kevin Wayne 的《算法》
课程
2.计算机网络
为什么?
网络是指网络之间的数据通信。了解计算机网络的基本概念将有助于开发人员理解计算机发送和接收数据背后的奥秘。
资源
图书
课程
3.操作系统
为什么?
学习操作系统能让你了解计算机的底层工作原理。你将学习进程和内存的管理方式,以及应用程序如何与其他进程并发运行等等。
资源
图书
- 《操作系统:三个简单的部分》(作者:Remzi H Arpaci-Dusseau 和 Andrea C Arpaci-Dusseau)
- 《操作系统概念》(作者:Abraham Silberschatz、Peter Galvin 和 Gerg Gagne)
课程
4.数据库管理
为什么?
数据库是有序的数据集合,用于存储和检索数据。作为一名开发人员,您将处理大量数据;了解如何有效地存储和检索这些数据将大有裨益。
资源
图书
课程
5.设计模式
为什么?
设计模式是针对软件开发中常见问题的可复用解决方案。学习设计模式将帮助您更有效地解决开发人员面临的问题。充分了解设计模式将使您能够权衡各种潜在解决方案的利弊,从而选择最适合您工作的工具。
资源
图书
- 设计模式:可重用面向对象软件的元素(作者:Erich Gamma、Richard Helm、Ralph Johnson 和 John Vlissides)
- 《深入浅出设计模式:大脑友好指南》(作者:Eric Freeman、Bert Bates、Kathy Sierra 和 Elisabeth Robson)
课程
6.编译器设计
为什么?
编译是指将高级代码翻译成机器码,以便 CPU 能够理解。通过理解编译过程,你将理解编程语言的构造,从而更好地使用编程语言;例如,能够更好地优化代码,提高调试技巧等等。
资源
图书
- 《编译器:原理、技术和工具》(作者:Alfred Aho、Monica Lam、Ravi Sethi、Jeffrey Ullman)
- 《编译器设计》(作者:Keith Cooper 和 Linda Torczon)
课程
标题照片由Jessica Ruscello在Unsplash上拍摄
文章来源:https://dev.to/jrdev_/6-things-every-software-engineer-should-know-to-standout-52k1