I remember when I started my freshman year, I honestly wasn't too sure about what it meant to have a CS degree. All my exposure to Computer Science had been those times trying to build websites, make computer games, move robots, and participate in programming competitions.
In fact, I never knew there was a major called "CS". I had always assumed that when I went to college, I would need to get a coding or Software Engineer Major. Never would I have expected that there would be something called "Computer Science". How is computer even a science?
(Now that I think about it, maybe I was a special case, or I lived under a rock because I always associated jobs to be equivalent to majors, like doctor and lawyer majors, rather than a generic study or specified school to take, like Bio/Chem major and Law School.)
That aside, as a rising freshman, all I knew was that though CS would be hard, it was generic and I had a good chance at finding a job at a company. Every company needed someone to code for them. With some vague names of jobs that I could take up, like "Software Engineer" or "DevOps", and the idea of getting jobs at Google, Facebook, or Microsoft, I felt ready to take on college life.
But after my first year, I found that I had no clue what I actually wanted to do. The intro courses like Discrete Math, Data Structures, and Computer Architecture didn't reveal much about life as an engineer. While going through it, though I understood it was the fundamentals, I didn't really see the point for getting a job. If I didn't plan to work in Assembly and I wasn't going to teach, at least for a while, what did that mean for my future? Were those my only options - called to work on the underlying bits that people used in their code or on their computer, or walk through the steps in an algorithm proof on "existence" and idempotence for the rest of my life?
That can't be it. There must be more.
With these thoughts, I decided that taking matters into my own hands would help. all I needed to do was get an internship, and I'd be set. I'll get a Software Engineering job and I'll be successful. Build myself up to nab a space at one of the "Big 4", or an internship that'll lead to those fated giants of the industry.
But even when I got an internship over the summer and finished it, learned a lot, and found it to be an amazing experience, I felt more incompetent than ever.
Things like coding processes, unit tests, sprints, and frameworks flew over my head, and I felt like I dragged the company down rather than built it up. I felt like I was in a recursive loop heading all the way back to the beginning. I really didn't know what I wanted to do.
The unthinkable question came into my mind - what if I ruined myself by becoming a CS major? What if I'm not cut for it. What if I'm taking the wrong path. (All these what ifs)
But fortunately, as the years after that summer followed, I realized that wasn't the case (at least I hope ._.). I learned that it's ok to not know. It sparks motivation and devotion. It allows for discovery.
And to be honest, nothing is more beautiful than recognizing that it's possible to not know everything in life and being open to just what life has in store.
Because of the uncertainty of what I wanted to do, I pursued many things and discovered the broadness of CS: Graphics, Computer Vision, Research, Operating Systems (no please tho), Algorithms, Artificial Intelligence, Robots.
I got to take Object-Oriented Programming with Prof. Downing and learn more properly how to do an internship. I took Software Engineering with P. Downing (again) and did an "actual internship" in a semester. I wrote up a thing in Graphics that actually displayed 3d models of Vocaloid girls and manipulated their movements (as well as get weird looks from passerbyers as I worked). I got to explore the hackathon lifestyle and apply what I knew to building projects that solved real problems in the world.
The point I'm trying to get at is that it's ok to not know what you want to do as a CS major - what class to take, what subject to follow, what job to pursue.
Sure you can worry your life away, and I know people who remain stagnant by the fear of making a decision. But honestly, can worrying add a single hour to your lifespan?
So don't worry about how you don't know what you want to do, and go do stuff. Take that class that seems like a mini-internship. Go to a hackathon. Work on side projects/open-source products. Explore all that there is in CS. The amazing thing about having a broad field is that there is a never-ending supply of things to explore.
And who knows, maybe with time, you'll break through the waves of discovery and find that specific niche that you want, that dream job you've prayed for, or that path in life that is perfect.
So keep on fighting the good fight, enjoy your time as a CS major, and I know that you'll find your passion eventually. :)
As always, thanks for reading my post :) Always thankful for you guys in taking time out for me :P I know that things are getting rougher, and you're getting more into the thick of things school-wise, but don't fret. Keep on working through all them projects and homeworks! You got this. I know you'll be fine.
Anyways, hope you guys have a great rest of the week, and I'll see y'all in the next blog post. Ciao!