Growing As A Developer

Aug 29, 2020

baim-hanif

At the time of writing this post, I have become a recent graduate from UC Davis. Congratulations to all 2020 graduates! I believe that graduating from college is only the beginning of our journey to new opportunities, and we must brace ourselves for new things to come.

I like to reflect on major turning points in my life – and as you can guess, graduating from college is one of them! I wanted to take the time to talk about my experiences with college, and most recently, what did I learn during this time to help jumpstart my career as a developer.

My College Experience

The function of education is to teach one to think intensively and to think critically. Intelligence plus character – that is the goal of true education.

Dr. Martin Luther King, Jr.

I had a nonlinear college path. When I graduated high school, I had no idea what I wanted to do in life. And to be completely honest, I don’t blame my past self, or any of you for feeling this way. Back then, I wasn’t particularly interested in any subject – nothing in math, natural, or physical sciences. I also wasn’t a large fan of the arts as a career either. I did what most of my classmates did: I enrolled in a business program.

It turns out that I didn’t like business very much! I didn’t like taking accounting and management classes, so I started looking out for fields better suited for me. Then, one semester changed my college path – I took an economics class. I instantly fell in love with the field. To me, Economics was great because it asked interesting questions! Economists like asking big picture questions such as: Given the state of x, y, z, what would happen if I do a and b? It was a major step in my life that sparked my curiosity and passion for solving systems.

Since I decided to switch to Economics, I transferred to UC Davis. Transferring to Davis was one of the best decisions during my undergraduate years. I met some of the most passionate individuals about their fields of study. And most importantly, I took classes with some of the most inspiring and challenging professors in Economics and Computer Science who shaped me to who I am today.

There are several things that I love about college:

  1. College professors want you to think
  2. Meeting like-minded friends and classmates pushed me to be better
  3. College classes opens new interests and passions

If you’ve read my bio, you can see that I switched into software development despite having a background in Economics. A lot of Economics students in data were interested in learning computer science to work with large datasets – including me. This and the fact that my housemates in Davis were all computer science students influenced me to take my first computer science class in Fall 2017.

I fell in love with Computer Science after my first class and decided to pursue it as a minor. I know this may seem weird because I mentioned that I also like Economics! So what made me switch? To put simply, I became addicted to coding. I usually took coding classes with harder professors who gave challenging programming assignments, and I liked the feeling of solving a problem and seeing it process in real-time. I imagine coding as like playing with legos! I can choose which parts to build, and how to build it – and each small component I change can have a drastic effect on my output. In other words, it’s like figuring out Economic systems, but I also have the satisfaction of building the systems!

I am thankful to my professors and friends who led me to my passion in economics and computer science.

College Isn’t Enough

I learned very early the difference between knowing the name of something and knowing something.

Richard Feynman

I personally think that I learned a lot in college. After all, I learned how to work with data. I learned how to code and studied the fundamental concepts behind both Economics and Computer Science. This is, however, when I first started seeing some missing gaps that I needed to fill – I need experience. I knew the bare bones behind programming techniques, but I have never applied them to large projects or real-world scenarios. I also haven’t seen live-examples besides simple algorithm implementations or small programs.

You can see many online posts on Reddit or Facebook complaining about this pitfall. To me, this isn’t the issue. College taught me how to think. It taught me how to learn the basic fundamentals of a topic so I can attempt to work with it past school settings. A professor cannot teach the complexity of language theory in ten weeks nor give us projects which utilizes five modern APIs. They can, however, give us an introduction and the critical thinking training we need to learn new technologies in the future.

I knew that school could only teach me so much, so I decided to look for other venues to learn. To many people, this can come in the form of:

  • Internships
  • Taking supplemental classes through Coursera or Udemy
  • Buying and reading programming books
  • Working on programming projects
  • Following & contributing to open source
  • Reading programming blogs from experienced professionals

I have done the last four bullet points. For example, during one of my programming classes (ECS 140A), I was exposed to a new programming language called Go. I found the language interesting and fun to work with, so I decided to experiment with it by trying out Go with Hugo, the static site generator. Later I started following professional tutorials and tips from Jon Calhoun, an experienced Go Full Stack Developer. I wanted to go further, so during the shelter-in-place directive due to COVID-19, I decided to work on personal projects I was interested in using Go. I didn’t know what large Go applications usually looked like and am not extensively experienced in system design, so I took to GitHub and searched for large open source projects written in Go. This gave me a good idea on how to structure my Go projects, and look through some of the popular software engineering designs and architecture in production!

In other words, I learned a lot in school, and I learned even more by chasing after knowledge during my own time.

Still not convinced? Try taking a look at the following:

Did you learn anything new in the articles?

If you did, congrats! This is a good reason for you to start learning new things on your own! If you did not, I can almost guarantee you there’s still a lot more things out there for you to learn and experience!

My Personal Tips

Learning and growing as a developer is hard. It takes a lot of time and energy to get better, especially for a field like software engineering. The good news is… if you’re planning to go to or going to college, you’ll have a lot of opportunities to work with the fundamentals and make lasting connections with those who help you grow.

If you’re not planning on going back to school, or just want to refresh or learn new technologies, there are many helpful resources online that you can check out!

There may be times you get stuck – if that’s the case, don’t be afraid to take a break or ask online for help.

In the end, your dedication and curiosity will be the key traits to take you further down the road.

Resources

Yiping Su
Yiping Su
Software Engineer

I am interested in data, software engineering, and the application of computer science concepts in real-world scenarios.

Related