I know it's nothing special but after seeing a bunch of threads related to the topic I thought I might as well make a thread (and I don't feel like studying right now lol). Plus it seems like a lot of people here are self-taught so I'm here with a more academic perspective.
Feel free to ask me anything about CS/CS careers.
Some background: Currently finishing up my CS degree with a minor in math as a senior. 3.7 GPA with 1 & half semesters to go. I graduated HS in 2016 with a 2.9 GPA never having coded in my life and went to a doodoo state uni. I remember browsing this forum in 2012/2013 and avoiding the coding and actual hacking sxns because of how daunting and hard they looked lol. As of now, I did an internship this summer as an automation engineer at a massive company. I received a full time return offer the start of my senior year to come back as a software dev/engineer making $70k starting + sign on bonus. Not great but def. not complaining given my COL and only being 22. Am going to be applying to Big N, FAANGs & quant firms after about a year or so working full time.
Some general tips for people on the self teaching route. If you actually want to become good/marketable software devs or engineers, you have to know your DS&A, design patterns, system architectures and also how to develop outside the scope of just your local machine (deploying code to say AWS or working with containers etc). College offers a very nice holistic approach to learning all of this. You get a lot of theory but also a lot of practical experience. You also get to work in groups with other people; you do a lot of collaboration in the real world. I'm working with actual companies on actual projects in some of my classes (I should be getting paid lol)
And yes, it's totally feasible to learn programming without going to school but please don't fall into the trap of becoming a code monkey. Learn how to create robust, reusable & maintainable code. Take clever & creative approaches and think in the context of large systems. And please learn/know how to use Git & GitHub lol
It's an interesting field that can be really financially rewarding (you could be earning >$500k TC at the peak of your career given you make the right moves and end up in a very high engeering or managerial role) but you have to be very good at what you do. Otherwise you'll be replaced by the next guy with a degree or that person overseas lol, people are joining the field like crazy nowadays.
Feel free to ask me anything about CS/CS careers.
Some background: Currently finishing up my CS degree with a minor in math as a senior. 3.7 GPA with 1 & half semesters to go. I graduated HS in 2016 with a 2.9 GPA never having coded in my life and went to a doodoo state uni. I remember browsing this forum in 2012/2013 and avoiding the coding and actual hacking sxns because of how daunting and hard they looked lol. As of now, I did an internship this summer as an automation engineer at a massive company. I received a full time return offer the start of my senior year to come back as a software dev/engineer making $70k starting + sign on bonus. Not great but def. not complaining given my COL and only being 22. Am going to be applying to Big N, FAANGs & quant firms after about a year or so working full time.
Some general tips for people on the self teaching route. If you actually want to become good/marketable software devs or engineers, you have to know your DS&A, design patterns, system architectures and also how to develop outside the scope of just your local machine (deploying code to say AWS or working with containers etc). College offers a very nice holistic approach to learning all of this. You get a lot of theory but also a lot of practical experience. You also get to work in groups with other people; you do a lot of collaboration in the real world. I'm working with actual companies on actual projects in some of my classes (I should be getting paid lol)
And yes, it's totally feasible to learn programming without going to school but please don't fall into the trap of becoming a code monkey. Learn how to create robust, reusable & maintainable code. Take clever & creative approaches and think in the context of large systems. And please learn/know how to use Git & GitHub lol
It's an interesting field that can be really financially rewarding (you could be earning >$500k TC at the peak of your career given you make the right moves and end up in a very high engeering or managerial role) but you have to be very good at what you do. Otherwise you'll be replaced by the next guy with a degree or that person overseas lol, people are joining the field like crazy nowadays.


