Welcome to computer science field!
In order to improve your software development and software engineering research knowledge, we recommend that you learn about some topics of computer science related to software engineering field.
Why should I care about these topics?
– Because these topics will provide you knowledge so that you can develop COMPLICATED software that only A FEW developers can create. They will help you create INNOVATIVE software that no one has made. They will provide you a more broad view and tools for your software engineering research.
Here are some important topics that you will want to learn about. Please learn them BY THE ORDER.
- Discrete Mathematics. Please read this Kenneth H. Rosen (2012). Discrete Mathematics and Its Applications. McGraw-Hill book and this Alfred V. Aho and Jeffrey D. Ullman (1994). Foundations of Computer Science book (free online version). Alternatively, please watch this MIT 6.042J Mathematics for Computer Science course (Textbook).
- Computer Networks. Please read this Andrew S. Tanenbaum and David J. Wetherall (2011). Computer Networks. Pearson Education book and this James F. Kurose and Keith W. Ross (2021). Computer Networking: A Top-Down Approach. Pearson book and this Brian Svidergol et al. (2018). Mastering Windows Server 2016. Wiley book.
- Computer Architecture. Please read this David Harris and Sarah Harris (2013). Digital Design and Computer Architecture. Elsevier book.
- Programming Language Theory. Please read this Michael L. Scott (2015). Programming Language Pragmatics. Morgan Kaufmann book or this Robert W. Sebesta (2015). Concepts of Programming Languages. Pearson book.
- Compilers. Please read this Alfred V. Aho et al. (2006). Compilers – Principles, Techniques, and Tools. 2nd Edition. Pearson Education or this Keith D. Cooper and Linda Torczon (2012). Engineering a Compiler 2nd Edition. Elsevier book.
- Speech and Language Processing. Please read this Daniel Jurafsky and James H. Martin (2008). Speech and Language Processing. Pearson book.
- Digital Image Processing. Please read this Rafael C. Gonzalez and Richard E. Woods (2018). Digital Image Processing. 3rd Edition. Pearson book.
- Applied Cryptography. Please read this Bruce Schneier (1996). Applied Cryptography – Protocols, Algorithms and Source Code in C. Wiley book.
- Abstract Algebra. Please read this Thomas W. Judson (2021). Abstract Algebra Theory and Applications book.
- Mathematical Cryptography. Please read this Jeffrey Hoffstein et al. (2014). An Introduction to Mathematical Cryptography. Springer book.