just my thoughts
TLDR: Computer Science makes me feel more confident in my problem solving ability. But I still have to do the work. Unfortunately, there was no silver bullet.
I went into school as a self taught programmer. Fluent in various languages (python, javascript, ruby). With a very large chip on my shoulders. I thought it would be a breeze because I had been doing it professionally for a number of years. I’ve solved my fair share of problems. In the first few classes, all of my related experience made it easy for me to rip through the classes with ease. Until the ease stopped and the pain started. Turns out, going past programming 1 and 2, I did not know computer science at all. Programming as I knew it was a means to an end. It was a way to encode my wants, with what I knew of the the capabilities of the packages available to me. I knew nothing of the capabilities of the machine I was running software on.
I write this so that my fellow engineers who did not go the traditional route would be able to get a sense of what they would encounter if they decided to go back and learn CS. For me, CS gave me a deeper intuition of what I was encountering while working with computers. I had a need to go deeper with my understanding of things.
To me CS is, knowing that information is flowing through a network of computers. Communicating different important things over many layers of communication. Negotiating amongst themselves about where to go next, what is being sent and how much of it is certified coming from where it’s reported that it’s coming from. It’s endless streams of XOR operations happening at the routing layer, giving us secure communication.
To me CS is, opening up ports, starting processes, branching threads, endless IO operations being handled on Silicon. It’s knowing about the fact that all of the abstractions of our daily computer use is what gives us even the ability to view a computer as useful in the first place. Abstractions that make the consumer experience possible. More importantly, abstractions that make the developer experience useful to him/her. Abstractions like brain friendly high level languages - C/JAVA and then Ruby/Python.
To me CS is, knowing that commercially writing software is a discipline that requires a structured general approach - Software Engineering. And of course we can go deeper. And I could but I won’t. Because thats not the point. To me, I think the absolute most important thing, I think Comp Sci has exposed me to is the fact that each and every abstraction we use in our daily developer life, is an ode to Computer Science. An evolution. An opinion of another way. Or even a more efficient way. And now I can appreciate that fact. Each time a new thing comes out, I can now understand more readily, its a new way to achieve some end. As a self taught developer, I was never really able to appreciate that understanding.
It’s a host of ways that I have changed in terms of how I think about computers since my time with the Lightmatter team. I’m grateful for all that I’ve learned before doing my degree, and I’m grateful for all that I am learning now as I have finished that journey. It’s been a blessing to have had both experiences. And I am grateful that I can say that I have had them both.
If you liked this post consider clicking: