How I got started with Software Engineering
…as a computer science major at UT Austin
- Maybe you’re trying to “get into tech” but don’t know where to start.
- Maybe you tried learning pointers once but now you’re scared of asterisks and ampersands.
- Maybe you keep hearing about the “cloud” and are now confused why companies are so obsessed with fair weather.
Disclaimer: The content I post is NOT a replacement for a college degree. I strongly encourage pursuing a four-year computer science degree for career purposes.
Computer science can feel like one big inside joke, but I’m here to let you in on it. All you gotta do is start with:
Harvard CS50: Introduction to Computer Science
This is CS50x , Harvard University’s introduction to the intellectual enterprises of computer science and the art of programming for majors and non-majors alike, with or without prior programming experience. An entry-level course taught by David J. Malan, CS50x teaches students how to think algorithmically and solve problems efficiently. Topics include abstraction, algorithms, data structures, encapsulation, resource management, security, software engineering, and web development. Languages include C, Python, SQL, and JavaScript plus CSS and HTML. Problem sets inspired by real-world domains of biology, cryptography, finance, forensics, and gaming. The on-campus version of CS50x , CS50, is Harvard’s largest course.
I believe that Harvard CS50 is an amazing starting point for understanding software engineering.
I recommend auditing this course for free, and doing the following:
- Watch every lecture, section, and short. Don’t forget the lecture notes.
- Do every practice problem, lab, and problem set question.
- Watch DorsCodingSchool’s solutions to understand the problem-solving thought process
- Use the debugger
- Read the manual and the docs
- Learn how the third-party software used in CS50 works. Can you explain what Docker is?
Explain the Cloud Like I’m 10
What is the cloud and why are companies so obsessed with it? Todd Hoff’s book, Explain the Cloud Like I’m 10, is my favorite explanation to this question.
Harvard CS50W: Web Programming with Python and JavaScript
This course picks up where CS50x leaves off, diving more deeply into the design and implementation of web apps with Python, JavaScript, and SQL using frameworks like Django, React, and Bootstrap. Topics include database design, scalability, security, and user experience. Through hands-on projects, students learn to write and use APIs, create interactive UIs, and leverage cloud services like GitHub and Heroku. By semester’s end, students emerge with knowledge and experience in principles, languages, and tools that empower them to design and deploy applications on the Internet.
Harvard’s CS50W: Web Programming with Python and JavaScript is a natural extension of what you’ve learned so far. You can also check out the rest of the CS50 series. I personally recommend the courses on artificial intelligence and databases.
Other Roadmaps
There are many popular roadmaps out there, like
…and more! I recommend checking them out.
I like my roadmap the most because it’s
- Opinionated
- Concise
- Intuitive
Keep Going
At some point, you’re going to want to build something. If you ever feel that way, you should just go for it. This is the best way to learn. I recommend a mix of:
- reading the manual
- watching YouTube videos
- reading opinionated articles online
- asking ChatGPT
Have fun!