Is it over?
Posted by WorldlinessOk1568@reddit | learnprogramming | View on Reddit | 32 comments
I'm a 3rd year Computer Science major with a minor in math. As I am getting to more difficult classes that are more computer science heavy I realized that I really have nothing to show for it. I have a really good gpa and have never gotten a bad grade in my life but I feel like I have been cheating myself on learning everything so far. I just prepare myself for the test and forget everything about the class after taking it. Now that I am looking for internships I realize how little I have to show for the past 3 years of my education. I have zero personal projects and find it so hard to get into one. Everything I read online is just about starting. But it feels so hard to just start. I can't even do the easiest leetcode questions, I feel like everything I have done up to this point is useless. I am literally having to teach myself a language from ground up again that I started with junior year of highschool. What should I do to try to pick myself back up?
Mental_Wind_5207@reddit
Pick one language that is your language. It doesn’t matter which one because when you learn one language well, you will dig into how it is structured and how it works on a deep level. Dont just build stuff with it, understand it deeply.
As you do this you will come across details as to what was the design philosophy behind the language, and this will give you a baseline from which to judge other programming languages. Once you learn one language really well, the other languages aren’t hard because you can always compare and contrast what the new language is to the one you know well.
Make up little games for yourself, like try to make the most simple project with as much of the language as possible. Or design the same thing in 10 different ways. Try to get a sense of the most common problems that exist, and the most common ways to solve them. Then try to come up with new creative ways to solve them.
An example could be your standard fizz buzz program. You could make it so that you need to use a web scraper to find the words from different websites. Or that you have to get the words out of a database that runs locally on your computer. Or you could create a program that listens to someone speaking and if the person says a certain trigger word it presents fizz. Lots of things you could try.
d-k-Brazz@reddit
Do some code
Do some more code
Make a pet project
Automate some of your routine, by writing code
Do something for yourself, not for showing up
d-k-Brazz@reddit
As an interviewer I would first check you with some simple leetcode like task, just to ensure you are able to create an algorithm and provide reasoning about your solution.
Then I would get you talking. About what you have done, how did you do it, why this.. why that..
I would give you some real world task and we would discuss would you solve it. Maybe some drawing, maybe some pseudo-code
I love interviewing people who’s hobby is software engineering, people who come to the interview extremely unconfident, but given some hints they shine, they able to apply my hints to what they already know know and would come up with new knowledge right on the interview
Because they are passionate about programming
Be passionate
cnbrth3537@reddit
Does your school offer Learning Assistant positions? You could mentor students in classes you already took (should be easy for you to get into because the only requirements is having a good gpa and a good grade in the class you want to LA for)+it reinforces the material you learned bc you essentially take the class 2 or 3 times except you getting paid for it. I’m an electrical engineering major and I feel like I understand circuit analysis and debugging a lot better because I’ve essentially listened to the same material for 3 semesters straight.
Also shows leadership and some other social skills on your resume
xjrsc@reddit
5th year student here. I did ok in school, a B+ average with some failed exams. I had no projects until halfway into my second year. I remember next to nothing from my studies aside from a general awareness of concepts I learned. I'd fail any math exam if I had to do one today, even calc 1.
I made personal projects, learned how to program that way, found an unpaid work term, then starting getting paid internships. It took 2.5 years from first project to first internship. I have barely touched leetcode.
It isn't over, you just need to get started on projects now. Read advice here and get passed your imposter syndrome. Even if its tic tac toe, just do it and learn to code that way. You do not want to graduate without internship experience.
antiproton@reddit
It's over, yeah. No one else has ever experienced what you have - certainly no one who comes to this sub to post... because that would be easily searchable.
It's not all bad news though. I'm sure you could find a top flight job in either the food service or housekeeping industries.
SonahLab@reddit
I took the opposite approach during college. I always focused on GPA my entire life growing up, until I got to college. Then I realized GPA doesn't matter, it's 1 line on your resume (I never put my GPA on my resume to this day, mostly b/c my university's name carries itself on the 'Education' section of my resume).
I chose to focus on:
1. Building my resume (school projects, personal projects, hackathons)
2. Working at tiny startups for experience
3. LeetCode.
Also there's a lot of stress on students to land summer internships (especially in the US). But after watching a lot of Waterloo kids do internships all year round, I applied for internships in spring/summer/winter. I focused less on exams/GPA, worked on my skills, and maximized opportunity for internships by applying year round and to everything.
But I vividly remember my entire 2nd/3rd year being consumed by this goal of landing internship/job in Big Tech. I put myself under immense pressure during those years and I had so many moments of Imposter Syndrome, especially being surrounded by insanely smart people at Berkeley.
So my advice to you is to start building out some personal projects and sharpen your interview skills. Nothing is achieved over night and everyone needs to start somewhere, and there's no better time to start than right now. Be consistent and it's okay to feel demotivated if you feel behind, get ghosted by companies, or rejected after interviews. But get back up and keep working towards some concrete goals with timelines attached to hold yourself accountable.
izitru@reddit
Not over. Right now you study and do well on tests. That makes you smart on theory. Practical experience is what you need next--you will get that in an internship or a workplace. Its like this: theoretical knowledge is studying about a baby while you're pregnant; practical knowledge would be having the baby and raising it. So basically you are pregnant with knowledge and now its time to deliver. Get an internship or start a project with people/person you admire. You're fine, but will be much happier when you apply the knowledge to something concrete and meaningful. Can't wait to hear what you do!
Unlikely_Cow7879@reddit
Your major problem right now is the market. I’m not sure of the solution other than try getting an internship by applying everywhere. Don’t push only for faang like some do.
ReginaldDouchely@reddit
I don't really understand these posts. In my classes we built things. Are you building things in your classes?
PangolinWonderful338@reddit
Reads, sounds, (checks air), tastes...like Impostor syndrome.
- Just look up how many "Is it over | Is it too late | Am I too old..." posts between anything remotely competitive & intellectually comparable.
- Comparison is the thief of joy. It sounds like you are surrounded by intelligent dweebs gloating about their personal projects whilst you work on surviving Y3.
- What interests do you have with CS? If you were forced by your parents into a Uni-level hostage situation->Maybe pivot towards arduino or something more hands on to have fun. Maybe look into data sets that strike your interest.
WorldlinessOk1568@reddit (OP)
I got into it because of I liked the problem solving and my favorite favorite physics teacher in highschool taught it as well. I just wanted to do something at the time that was so fun and was surrounded at the time by a bunch of my friends who enojoyed what we did in class everyday. Now that I am at university I feel like I my brain has slowly turned to mush by how much of a crutch I use chat gpt. I feel like if i don't compare myself to other people I will not be able to gauge where my progress is.
Adventurous-Move-191@reddit
Stop using chat gpt. I use it to explain new concepts to me or interpret really verbose documentation. If you are using it to come up with coding solution or debug your code you might as well not practice at all.
PangolinWonderful338@reddit
Most people view this world and their hobbies like being on a ladder. The best at the top & someone always above you. We constantly climb this ladder with more achievements & successes.
- I explained this to a coworker and they replied:
"My ladder is horizontal. When I look up I see the sky, not another person's achievements. When your shit falls it won't fall on me."
Slow and steady remove your crutches.
Ok_Response_5787@reddit
Really well said
WorldlinessOk1568@reddit (OP)
Kinda beast quote and I will definitely have something to think about when I go to bed. It feels hard to not be comparative with how we do everything. Why do something if you aren't going to be the best at it? When you work towards something should that not be the goal? How do I become less thoughtful of others while also chasing my goal of being better?
PangolinWonderful338@reddit
If you aren't actively working on something, are you progressing? To me a few years ago I would have said no. Then I had a seizure on the job & realized I was going too fast, too furious, too gungho.
- You might just be experiencing boredom with your own self or own routine and habit in some way. You might be bored of competition or bored of keeping up with everybody else. Experiencing boredom is actually fine and a massive sign of growth.
- You mentioned leetcode. Try codewars? Try other things and other projects. Dont sell yourself short, but don't beat yourself to the pulp when things to shoot right. Being challenged and getting your "AHAH!" moment is always worth it.
- Handling boredom comes out in weird ways for people who are driven to always be active.
- In a world that moves fast -> It is actually extremely hard to take a moment and reflect on what we are doing & why we are doing it.
If anything, here is one takeaway with my favorite quote from the world's greatest chess instructor, GM Danya Naroditsky:
- "A lot of people go into the process of reading a chessbook wanting to put a checkmark in the box that says, "I read this book." And, you want to keep in mind why you're reading this book. You have to be reading the book with the express purpose of wanting to take as much information that's in the book, and funneling it into your brain. I have been guilty of this; reading this book and patting myself on the back and saying "I read 40 pages of the Karpov book today, like, look at me!", but then I would ask myself, well, who am I doing this for? Did I learn 40 pages of material, or did I just put a checkmark next to it?"
ZeldasDoritos@reddit
It sounds like you have been alone in your head for awhile, so I hope this wisdom brings you at ease.
Computer Science was never meant to be learned in isolation and the field is literally dependent on community backbone in order to grow. Tech is arguably one of the most community oriented STEM fields out there, especially evident in it's history. Lean into this strength!
I guarentee you have at least 5 classmates who feel exactly like you. Next time you go to class, talk to a few classmates and ask them if they are doing any side projects, how they feel about leetcode, etc. Do not feel discouraged if you hear a few people talk about their side projects/ease with leetcode- find comfort in being aware of people more knowledgeable than you in your community- you can learn a lot from them!
Once you got enough feelers, start figuring out what you want to do with that info. Is someone working on a side project that sounds interesting? Then see if you can do something similar or ask if there is any way you can join in on it. Are a lot of students struggling too? Then form a study group together and collectively figure out what projects you can work on either together (get that github practice in) or independently. Even if you are surrounded by many people who "have it together", ask them what got them there and how you can more involved. Whatever you do with the feelers, make sure it's rooted in community and doing work consistently. Personal projects have really frustrating hurdles, so you need that support system to get you to keep going.
Your professors are also goldmines of knowledge too, so ask them what types of personal projects you can work on or some general guidance- literally email them to schedule a meeting.
If there is one thing college gives you, it's the opportunity to connect with people (your first network). One of the best lessons I took away from college is it only takes one person to get the momentum to build a community- so if you can't find community that will help you grow, then that is a sign you need to put in the work to build it. The other big lesson I learned in college is that people really admire someone who openly wears humility and accountability on their sleeve- it builds trust and leaves room for stronger connections to grow.
Whenever I have feelings of imposter syndrome kicking in with thoughts like "I could never achieve x", I pause and ask myself "But why not me?". And I keep asking why until I have measurable steps I can take to improve.
Hope that helps! Even with the stuff we are passionate about, it's easy to feel lost or overwhelmed when we try to tackle it alone. Most of the time, a bunch of people feel the same as you and are waiting for anyone to say the frustrations/insecurities no one else is saying outloud.
Ok_Maintenance6967@reddit
Same, my advice is to find literally anything cs related you may be interested in, and take your time enjoying it. Because, you definitely have the skills, its just the application that may be getting to you like its getting to me. I started ricing an old laptop with Arch Linux (Hyprland), and its teaching me a lot about how things work behind the scenes, and day by day I can't wait to customize it more. Will I get a grade for it? No. Will someone hire me because of it? Likely not. However it spurs me on to learn more about cs and potentially branch into a field related to it.
Sorry for the rant, but we are kinda going through the same thing, so it struck home.
Also dont compare yourself, everytime I do, it makes me depressed.
Sioluishere@reddit
I feel like I am writing these posts, OP.
If you want, we can start a group study kind of thing where we learn from scratch.
I too have grades, best GPA in fact in my college but nothing to show for it except some research projects, which I feel is not enough.
PeterBrobby@reddit
Leetcode isn’t real programming, it’s just memorising and regurgitating algorithms.
WorldlinessOk1568@reddit (OP)
I agree with you but it feels like everything tech revolves around it. It feels like a really hard thing to avoid if you want a future in the industry.
PeterBrobby@reddit
Just grind through leet code examples before applying for jobs, there are courses and books.
WorldlinessOk1568@reddit (OP)
Thanks beast
PeterBrobby@reddit
Beast?
CuteSignificance5083@reddit
You shouldn't use Leetcode as an indicator of your programming skills. At most it is an indicator of your DSA knowledge. The real metric of general knowledge/skill is what projects you have made. Since you say you haven't made anything, the best time to start making a project is right now, whenever you have some free time to spare. Pick something you find interesting and just start making it. The hardest thing is looking at a blank editor, but once you write the first few lines (even if it's just a bunch of comments outlining the general program flow you are going to implement), you'll naturally fall into a pipe-line of problems you have to solve, allowing you to iteratively reach a solution over time. There's no shame in using google or any other forms of documentation, everyone does it, and if they don't then they're either lying or making something trivial. The only thing I'd avoid, or at least use with extreme caution, is any form of generative A.I. Ideally, you'd use it as a tool or a tutor, asking it to explain concepts or answer some questions you might have. However, in reality most people (especially beginners/learners!) fall into the trap of having the A.I. do everything for them, and essentially "outsource" their thinking to the machine. By that point, you may as well not waste your time, since you will learn nothing.
You should also avoid falling into the trap of "collecting" languages as if they are Pokemon. You should be focusing on language-agnostic concepts, which can be implemented in a variety of languages (some of which will be better suited than others to whatever you're making). Of course, it's ideal to have a basic grasp of the language you are going to use, but if you're firm in your language-agnostic concepts, it will be easy to just pick up the syntax along the way.
As an answer to your question, it's definitely not over. You just need to change your approach to education. And you need you ask yourself if you really enjoy Computer Science, because if you do, then everything you do will feel a lot less arduous.
sumplookinggai@reddit
No, it has just begu
JustSomeCarioca@reddit
Be proactive. Learn to program, build projects, and program every day. Stop doing the minimum necessary (i.e. get good grades), and start thing long game, endgame. My goal is... work for a company with a sslary X? No, my goal is to be able to do X, Y, and Z, and to do that I need to learn this, and build small projects like that.
It will not be overnight, so be patient and gentle... with yourself.
WorldlinessOk1568@reddit (OP)
It feels so hard to try and restart with something that I have been doing for the past 5 year but I think you are more than right. Thankyou for your comment.
JustSomeCarioca@reddit
Be proactive. Learn to program, build projects, and program every day. Stop doing the minimum necessary (i.e. get good grades), and start thinking long term, endgame.
Not "my goal is work for a company with a salary X", but rather "my goal is to be able to do X, Y, and Z, and to do that I need to learn this, and build small projects like that."
It will not be overnight, so be patient and gentle... with yourself.
Sweet_Witch@reddit
Is CS interesting to you? You have been learning for years and nothing stuck. Why are you studying cs in the first place? Was it your idea or your parent's idea to get a good job?
WorldlinessOk1568@reddit (OP)
CS is very interesting to me I have just feel like I have been taking it for granted all of these years and not really prioritized it. I thought it was so cool what went on behind the screen of a computer or phone that I wanted to learn more about it outside of highshool. I started studying cs because of ai, I remember discovering ai when it could not ever do phyisc problems back in 2022. I wanted to know how it thought and what made it think how it did. It was a little bit of both, I am from a single parent household in the middle of nowhere MS. I lived in a single wide trailer with my mom and sister. I never thought about money until I started hanging out with other people in highschool. I took a computer science class in highschool and a majority of my friends were in the class and I loved the environment of learning something new everyday with my friends and how challenging it was as well. I saw how much you could make with the degree and how much fun it was in highschool.