Uncertainty & confidence as a CS student at Ashoka
Disclaimer: I’m only a fourth-year and in no way more qualified to be giving out “advice” except by virtue of having spent 3+ years at Ashoka. This is as much for myself as it could be for you if you’re just starting out. Besides, others may have faced issues that I may not have, so I’m speaking solely from my own lens.
I came to Ashoka 100% certain I’ll major in Computer Science because I had worked with Java through grades 9-12 and loved it. I had brilliant teachers and had a lot of fundamentals covered even before the first day of college. Yet, in Intro to Computer Programming, despite already knowing most of the content, there were moments when it all felt inadequate. I thought I had a lot to catch up on already because some people just knew so much more. Later, as a TA for ICP, I met many students more than comfortable with content at higher levels and many who enjoyed the content but were afraid of not knowing or performing well enough. The technical nature of the content and large intro classes can make the major especially scary to students without prior experience. This can be especially worse for women due to the skewed gender ratio and lack of female faculty/ role models. Now I’m not saying any of that will change dramatically any time soon. But there are ways to deal with this uncertainty and doubt as you continue on this tumultuous path that is ‘CS@Ashoka’.
First off, remember that computer science is vast and changes exponentially every few years. Even if you know a few ideas or frameworks inside-out, there are others that you’ve never heard of, some that could very well become the next big thing. If you’re unaware of something, don’t fret because you may never need it. Even if you do, you may worry about what you “should” have known, but with almost every resource freely available, trust that you can teach yourself. This becomes especially important after the first year because (surprise!) CS classes aren’t about learning how to code. Use the degree to dabble into different areas/ fundamentals within CS and delve deeper into areas you are drawn to. Regardless, you’ll have to rely on yourself to get through. (Although, group projects can either be quite smooth or absolutely disastrous, so you’ll have to find people whose working style complements yours early on.)
Another important thing I’ve learnt, which also holds for other interests, is that there will always be someone better than you at something (maybe even everything). As you finish your degree, you’ll find many others more confident/ involved in the CS community, more comfortable interacting with faculty, more privileged/ talented/ hardworking with more stuff on their resume. In a small department it’s easy to look at what others may be up to. This becomes worse if you have friends at engineering schools or schools abroad. But looking outwards will stop you from working on what you truly want to do at the pace you’re comfortable with. And yes, it’s hard to care about all of this when there are 2000+ applications for CS jobs/programs and ~500 for every other job/program because everyone wants to do <\insert AI/blockchain buzz word>. It may be excruciatingly competitive, but refer to paragraph 2! Besides, if you take your time to understand and apply things you find interesting, you might find a niche that helps you stand out further. And when you put these few years into perspective, one less project or one bad grade won’t mean much. (I’m guilty of most of this too, but I’m trying.) Understand the content, try to get decent grades, get some external experience, work on a few projects, but know that your mental/ emotional/ physical health is more important. I have to sleep for 8 hrs even during finals because I can’t function otherwise. Try to do your best but go at the pace that works for you.
Lastly and most importantly, CS is way more than what you’re going to be exposed to in classes and internships. The possibilities of what you can do with a CS degree are virtually endless. Rid yourself of the notion that you must get a PhD at a T5 school or work as a software engineer at FAANG. This also holds for the subarea. You don’t need to do machine learning or cryptography. There is obviously merit in these. But them being the most common goals among CS majors everywhere doesn’t mean they have to be your goals too. There’s scientific computing, HCI, computational linguistics, operations research, quantitative finance, and many other interdisciplinary, sometimes less ‘fancy’ areas that benefit from computer science. This is even more relevant for people whose skills/ interests don’t lie as neatly within programming or research or a specific area but want to turn CS into a career because of their love of technology. It’s helpful and enjoyable to study the subject in isolation because it’s so vast, but exploring other areas can open up multiple paths. (This is yet another reason to maintain whatever hobbies you enjoy and make friends in other departments to fall back on when <\insert course> eventually takes your sanity.)
All that said, feel free to reach out to alumni or seniors to share your concerns and get some insight; I’ve done that plenty of times and it’s always helpful. They’ll often be able to tell you what they would have benefited from, so you get both perspective and time to do your best. (Personally, I’ve gone back-and-forth about what I want to do multiple times and I’m still unsure, so I haven’t worked on one thing consistently. I also suffer from generalized anxiety + panic disorder and am prone to depression. I may be able to talk about it and how CS fits into it if you reach out.)