RATIONALE
Programming should be considered a tool that you use to apply your theoretical knowledge of computer science into practice. Having strong programming skills will open doors for:
- Software Engineering e.g. web developer, app developer etc.
- Robotics
- Machine learning
- Ethical Hacking
- Anything else that involves coding
RESOURCES
Schools tend to introduce programming through either Python, Java or C++. Either language is fine for CS. I've listed the uses each language has in industry below.
- Java: Web Development, Android Apps, Enterprise Software
- Python: Web Development, Machine Learning, Scripting
- C++: Machine Learning, Game Development, Embedded Systems
| Course | School | Prerequisites |
|---|---|---|
| Learn how to think as a programmer | Harvard | none |
| Python | freeCodeCamp | none |
| Java Programming Methodology | Stanford | none |
| C++ Tutorial for Beginners | freeCodeCamp | none |
RECOMMENDED BOOKS
| Book | Author |
|---|---|
| Effective Java | Joshua Bloch |
| C++ Primer | Stanley B. Lippman et al. |
| Python Crash Course | Eric Matthes |
CHECKLIST SUMMARY
- Data types
- Mathematical operators
- Logical operators
- Conditionals
- Loops
- Objects
- Polymorphism