Classes at UC Berkeley Helped Me With My Career

Classes at UC Berkeley helped me with my career

Author: Xing Voong, posted on August-05-2024

In 2017, I wrote How to Transferred to UC Berkeley and Many Other 4 Years Colleges from Community College. After working in the industry for a bit, I wrote A Reflection On My Time Working As A Software Engineer. Now I want to look back and see how my education and classes at UC Berkeley (or Cal) have helped me with my career. Besides my college education, I also did a coding bootcamp to improve my skills and chances for employment.

Table of content
I: Lower Division
II: Upper Division
III: Comparing College Education and Coding Bootcamp
IV: Summary

I: Lower Division

CS 61A. Structure and Interpretation of Computer Programs

When I was at Cal in 2017, CS61A was the Intro to Computer Science class that anyone would take if they wanted to explore the field of computing. If you do not have programming experience, this class is hard and intimidating. I would not say it is beginner-friendly. Nowadays, the school offers CS 10: The Beauty and Joy of Computing and Data 8: The Foundations of Data Science. I did not take CS10 but have heard great feedback about it. I took Data 8, so I will write more about it later in this blog.

Besides some programming concepts in Python and Scheme (a programming language), I learned to think through, and then predict how each line and each function of code behave and what output to expect. I did not enjoy this class because I had it in my first semester when there were a lot more distractions and fun outside of a classroom.

CS 61B. Data Structures

One of my favorite classes, I liked it so much that I decided to come back to become a lab assistant in this class. As the name, I learned about data structures and how to build software with them. My project partner and I made a version control system, similar to git from scatch for this class. Data structure is important for interviews while git is a must-known for the field. It also helped that I took this class in the summer when the City of Berkeley and Cal are beautiful. In the summer, there are fewer students, the classes are smaller and more personal. It’s also a shorter term so I stayed focused better.

CS 70. Discrete Mathematics and Probability Theory

I have written mathematical proofs in Vietnamese before. But in this class, I learned to write proofs for computing in English. I use the skill of writing proofs in my writing a lot, also when I need concrete argument and logic for data science projects, or daily life to persuade someone. This class is a prerequisite for another upper division algorithm class.

Data 8. The Foundations of Data Science

I don’t remember learning much in this class since I took it pretty late in my college career as part of my Data Science requirement. The class covers sql, some python, and some statistics.

II: Upper Division

CS 170. Efficient Algorithms and Intractable Problems

A lot of concepts in this class keep coming up in interviews, and the research papers that I read for machine learning related. This is a more in-depth and broader subject than what I learned in CS 70. I wrote longer and concrete proof in the class. I went to the office hours to get help for this class. It was challenging that I could not do the homework just by myself.

CS 188. Introduction to Artificial Intelligence

Even though the exams were hard, this was an easy upper division class with a light workload. It covered condition probability. There were four projects which I needed to make packman (agent) that can get optimal points in a gaming environment that have fruits and ghosts (environment)

Stat 140/ Data 140. Probability for Data Science

I love this class. It was so well run with lectures, labs, and homework that helped me understand statistic concepts with code, data, and visualization. The professor and teaching assistant of the class are knowledgeable. They care about students and learning. I felt so privileged and grateful to be able to take this class at Cal. This class serves as core knowledge of statistics to understand machine learning.

CS 189. Introduction to Machine Learning

Again, I got fooled by the word introduction. I took this class twice. I dropped it the first time because I freaked out at how hard it was. This class required strong knowledge of linear algebra, data science, python, and coding. However, this class enlightened me. It put everything I know about math, coding, and human sense into place. I remember walking out of a lecture from this class and having tears in my eyes because it hit the punch. Too bad that I took it in my last year at Cal there I had no time left to take more machine learning related classes. But this class has helped me get interviews, get jobs, write interesting blogs, and further self-study in the field of machine learning and AI.

Web Design Decal

Decal is “students teach students” with credit units at Cal. This is an easy yet fun intro class to web design and front end development. It’s good when you can visualize the codes you are writing.

History 182a, Science, Technology, and Society

This class is a change of pace and taste from all the technical classes I have at Cal. Here is the description on the class website “This course provides a foundation with which students can understand the complex interactions of science, technology, and the social world”. I read new articles and assigned reading pieces, wrote reflections then discussed them. After this class, I care more about ethical data technology. I also read tech news differently in a way that how society perceives technology and how I can contribute my voice to it.

III: Comparing college education and coding bootcamp

All the science, math, and engineering classes from K-12 to college taught me to apply rigorousness and science through each step of creating a product. It makes what I build more concrete and last longer. The nontechnical classes from college taught me research, development, and documentation (RDD) skills which can not be overlooked in software engineering and the process of building a product.

In coding boot camp (Hack Reactor), there were opportunities to improve research and development (R&D) skills but it was just at a glance since the timeline is so short. However, I learned about web development, and how to make web apps in three months. I put in around 12 hours/ day, except Sundays in those three months. They are for sure a great complement to my college education and skillsets.

That being said, there are a lot of opportunities in college such as hackathons and clubs where you can learn the skill of building something quickly from coding boot camp. You can also learn R&D before and after coding bootcamp, or at your current job, take classes, read books then work on R&D projects before and after coding bootcamp.

IV: Summary

In this article, I broke down the classes that are helpful for my tech career. In hindsight, many if not all classes that I took from UC Berkeley were great either for my tech career or my personal development outside of my career (which I did not list here). I then compared college education and coding bootcamp, their strength and weaknesses in terms of learning to code.

Since all the classes have their resources online, so does coding boot camp, I hope this article can provide you with more perspective on different paths that lead to software engineering, what those paths have to offer, and what skills you want to learn. I also hope that this article eases the heated conversation about who is better, coding bootcamp grad or college grad, but shifts the focus on what you need to learn. For hiring, you could focus on what your companies need to hire more effectively and not leave out candidates from a pool full of hardworking and talented individuals.