I still remember in the beginning of college (when college was actually in-person and I could sit at my favorite table on campus), I was on the path to becoming a psychology major. Learning about how people “tick” was quite fascinating and I always enjoyed whipping out what I recalled from these classes as fun conversation tidbits (“Hey, did you know that if I generated alien sounds that followed language rules and formed phrases, you would be able to figure out what the next alien sound should be? Pretty neat, huh?”).
However, something changed after I took my first ICS 111 class (Introduction to Computer Science) on a whim. I had never considered myself to be fit for computer science (because I didn’t believe I was good enough at math–although after having taken some discrete math classes, I’m thankfully more confident in my math abilities now), but this class piqued my interest. Afterwards, I told myself I’d just take a few more CS classes just to have some more experience, and then I decided that I might as well minor in CS, and then well… today I’m planning on majoring in it!
Now as a 3rd year undergraduate student, I have to consider what to do with this assortment of CS skills. For so long, I’ve been in the mindset that these CS classes are for supplementary purposes so asking me about my future in software engineering throws me for a loop (did someone say for-loop?). I do know for sure that I enjoy programming and am interested in seeing what a future in software engineering could be like.
After my experiences with hackathons last semester, I found it quite fun to design the architecture of our application (see here for a picture), but found myself wishing that I had more training in how to do so. Perhaps that’s a possible career path for me? Who knows. In general, though, some skills I hope to continue developing are: requirements gathering (figuring out what a to-do list of a project will look like), testing, and designing with security in mind.
For testing, I remember a quote saying something like programs not tested are not complete (and not even worth showing) which has made me very uneasy after I’ve “finished” projects because this is a skill I haven’t developed yet. I have heard about testing capabilities in Javascript using mocha (what a cute name), so I really look forward to learning about it soon! There’s really just so many software engineering experiences that I haven’t had yet, and I’m excited to go through as many as I can before I graduate.