My Experiences as a CS Student
I didn’t decide to major in Computer Science until the end of my sophomore year in college. It was one of those decisions that was so blatantly obvious, it makes you wonder why you never thought of it in the first place. For me, majoring in Computer Science felt so right, and I never second-guessed my decision or considered dropping out of the department.
But it wasn’t all a walk in the park–despite having taken some CS classes in high school, my experience in the CS department was sometimes rough. There were definitely a few times when I had this overwhelming feeling that everyone else was smarter and more experienced than me. I had a few bad experiences as well. In general, I did pretty well, but there was initially an underlying insecurity, the fear that someone would find out how little I knew. Slowly, as I took more advanced classes, especially in areas in which students started off on more equal footing (Operating Systems) or of more theoretical nature (Discrete Math, Data Mining), I started to realize that that just wasn’t true. In fact, many of my classmates avoided taking some classes I chose to take, because they were too “math-y.”
I mostly kept to myself and didn’t really socialize with many of my classmates, and in retrospect, I think my seclusion closed me off from what was going on with everyone else. It was when I did a few group projects and spoke with other classmates that I realized, I’m not the only who is struggling in this class–it’s just a hard class. I’m not the only one for whom this project took an entire 5 day marathon, running on just a few hours of sleep each night. If I could do it all over, I would try to get to know more of my classmates in a social and academic setting, fostering a support network for everyone going through the same difficult projects and classes.
At Princeton, Intro to Computer Science (COS 126) is a prerequisite for all engineering students. I would occasionally hear from friends that they really liked the class, and thought it was fun, but Computer Science was just too hard for them, and therefore they weren’t going to major in it. I dismissed it as personal preference back then, but now it just makes me really sad. I think a part of me was also proud that I was doing something that was “too hard” for others. Now I wish I had said something encouraging like, “It was really difficult for me too…but it gets better.” As a software engineer, occasionally getting stuck on a tricky bug is expected, but as a first-timer to programming, you might not realize that getting stuck is the norm. Unless you make it over that learning hump, you don’t know that you’ll eventually spend less time stuck on stupid bugs and more time building awesome stuff. You may think you just don’t have what it takes.
Debugging is sometimes a pain in the ass, but getting something from a non-working state to a fully-working state is so incredibly fulfilling. One of the things that I miss about college assignments is that there is a point at which they are done. When your code is working as expected, and the planets are orbiting the sun and not spinning off wildly, you can breathe a huge sigh of relief and finally get some sleep.
Some of my fondest memories from college are of discovering the joy of coding–I would start in the evening, and Blair Cafe (it wasn’t really a cafe but a study space) would be filled with other students chatting and studying. Slowly, they would trickle out, and by 2am, it would be just me, James Blunt on repeat, and my laptop. Maybe it was partly the euphoria from not sleeping, but there was something so blissful about having that time alone to code.
I sleep more normal hours now, as I don’t quite have the stamina I had in my youth, but I still look forward to meeting-free afternoons (which is, thankfully, most afternoons) when I can put on my sweet headphones and lose myself in some code. Once I’m wired in, all I need are some groupies, and I can die happy.
Related posts:
- My Experiences as a Female Software Engineer
- Thoughts about School and Work
- Why Chinese Mothers are Not Superior
- Introduction
- GWT History Management

Comments (4)
What I love and appreciate about your blog is that I am currently living through the things you have already experienced in your career. As a college sophomore myself, I have decided to switch from a Business to a CS major. I aspire to learn as much as I can to fulfill my interests in computers and technology but a few things worry me. Do startups in Silicon Valley sufficiently look for programmers to hire?
[I agree with your previous post and would like to have my options open working for a startup fresh out college first before trying something like Google. I predict I will still be broke and have nothing to lose/risk anyway. Since I wish to move out there one day (from Los Angeles), I was hoping you could answer this question for me and the rest of your readers. :]
Hi Anthony,
Yes! Startups in Silicon Valley are hiring like crazy, as are the big companies as well. Good engineering talent is really difficult to find right now, as most are already in full-time positions or pursuing their own startups. Let me know if you have any other questions/concerns, and I’ll try to answer them for you!
Jean
Your post is quite comforting as i am a junior in all upper division classes. i am just about to finish two CS classes among a few other Upper Div GE’s: 1) assembly language 2)Programming Languages(C,C++, and Fortran). And boy oh boy do i feel like a lost soul! I am doing well in both classes, but i always feel insecure as if i am not going to succeed in programming because its still confusing to me. I understand bits and pieces from the classes, but i still cant put it all together and it really frustrates me sometimes. When i have a project i have the hardest time just starting up, and then comes the problems with converting my thoughts into code… EEK Luckily there are people like you and some professors i have had whom all have explained to me that it is all a part of CS and that everyone faces a programming hump, where once that hump is passed everything just begins to fit and work out. So thanks again! and i sure hope that i get over that programming hump soon…
Hi Jean,
This article is so encouraging as I’m thinking about changing my major to ” computer software engineering”.
I have some concerns to ask you about:
What kind of jobs are available in this field?
Is the job-hiring depends on your GPA?
What about how many hours a worker works per day?
I really appreciate your help.