I’ve been learning on and off about programming for 3 years now. Mostly front-end, html/css/js, for school projects. My degree isn’t in CS or IT, so projects that give the opportunity to code are scarce and often short. So I get that I may simply may not have enough hours in coding.
So I’m delighted to be taking CS50 as a Minor at the moment, this has given me the chance to sink a lot of hours in coding, and currently I am in week 5 Data Structures.
But every time I start on the problem sets, I feel overwhelmed and feel like I don’t understand anything. I have to Google/GPT the most basic of things. Even though I’ve been programming regularly the past 6 weeks, I don’t feel as if I have improved and I’m starting to doubt if this is a career for me.
In a year I would like to find a career in development. Have any of you felt this way? And what has helped you get rid of this imposter syndrome?
Just for fun, this is what chatgpt would have told you:
It’s completely natural to feel overwhelmed and doubt your abilities when faced with complex programming tasks, especially when you’re just starting out or challenging yourself with new concepts. Many people in the field of programming have experienced the imposter syndrome at some point in their careers, so you’re not alone.
Here are a few suggestions to help you overcome imposter syndrome and gain more confidence in your programming skills:
- Recognize your progress: Take a step back and reflect on how far you’ve come in your programming journey. It’s important to acknowledge the skills and knowledge you have acquired over the past three years. Celebrate even the small victories, as they all contribute to your growth as a developer.
- Embrace the learning process: Programming is a continuous learning experience, and it’s normal to encounter new and challenging concepts. Instead of being discouraged by what you don’t know, embrace the opportunity to learn and grow. Remember that every problem you solve, even with the help of Google or GPT, is an opportunity to expand your knowledge.
- Break down the problem: When faced with a daunting problem, break it down into smaller, manageable tasks. Focus on solving one part at a time, and gradually build up to the bigger picture. This approach can help make complex problems appear more approachable and less overwhelming.
- Seek support: Don’t hesitate to reach out for help and support. CS50 is a great course with a strong community. Engage with your peers, participate in discussion forums, attend office hours, or join study groups. Collaborating with others and sharing experiences can provide valuable insights and encouragement.
- Practice regularly: Consistency is key when it comes to improving programming skills. Try to allocate regular blocks of time (even small ones) to practice coding. The more you code, the more comfortable and confident you’ll become.
- Focus on projects and practical experience: While courses are important for building a foundation, practical experience through personal projects or internships can significantly boost your learning and confidence. Look for opportunities to apply your programming skills outside of the classroom, even if they’re small projects or contributions to open-source initiatives.
Remember, the imposter syndrome is common in the field of programming, and many experienced developers have gone through it. Believe in yourself, be patient, and keep pushing forward. As you gain more experience and tackle challenging projects, your confidence will grow, and the imposter syndrome will gradually fade away.
Just keep going.
Mood swings occur in any field. If you like the task of coding, problem solving and researching you are fine.
Everybody needs to look up stuff. The human brain was made to find patterns and think, not to store information indefinitely. For this we have made computers.
Try not to learn something by heart. But to hone your skills in doing/processing/solving things.
Looking at code and understanding it is much more appreciated than knowing specific algorithms.
Sure patterns are helpful and are actually necessary to be known. But those will come with time.
I see new developers say this all the time but how do you expect to know things without looking them up?
6 weeks really isn’t a lot of time at all.
As you code more you’ll start to notice patterns in code that you can apply elsewhere.
Once you’ve been doing it a long time it’s basically a matter of combining things you’ve done 1000s of times in different ways.
Stick with it, often it’ll “click” after a while.
That’s the great thing, you never get rid of imposter syndrome! The thing that helped me was the mantra “there’s always someone better than you”. It’s true for everything, so I can focus on just having fun and delegating to those that know more (which is also an important skill since nobody knows everything).
As for improving skills, practice makes perfect. 6 weeks is pretty much nothing. If you work out on one muscle group for 6 weeks, the chances of you seeing significant gains is minimal. You’ve gotta stick with it for months or years. Just look at the weight-loss journeys of people - it takes some years to lose their weight.
Don’t be hard on yourself, find interesting tasks or sites with challenges you consider interesting and try to solve them. https://exercism.org/ is OK, but there are many different ones out there. I can definitely recommend watching videos that explain data structures visually. They’ll make much more sense.
Good luck!
Removed by mod
Don’t rely too much on chatgpt before you understand the basic concept.
You should also read the books. E.g. pick axe book(i.e. programming with ruby). You could also find the recommended books in your CS50 course. Also ask your online course buddies and instructors for help.
If you only have exp in html, css and js, don’t regard yourself as you are already familiar with programming. Learn as a beginner. Go back to the earliest topics you have trouble with. Try to get the concept and work your ways to the situation where you feel overwhelmed.
Good luck!
I personally disagree with this massively. ChatGPT is really good at explaining concepts.
Don’t ask it to write your code though.
LLMs aren’t going to give you a roadmap or prioritize concepts. They also frequently produce contradictory information.
They’re good tools if you already have some experience and vocabulary in the field, but a more structured approach to building some projects and acquiring skills is better.
Indeed. But you just have to learn to use them like any tool.
Most things that used to be a Google followed by skimming articles can now be a question to them.
They are also remarkably good at explaining code snippets. If you drop a line of code in there and ask it what it is it’ll explain it piece by piece with correct terminology and answer any follow up questions really well.
That gets around the not knowing terminology problem that many beginners have
I do this frequently with the legacy SQL I have to deal with at work. It can handle some really nasty stuff very well.
I to this day still have to Google tons of stuff, even very simple things; sometimes it’s just hard to remember that function’s name or whatever, it’s no big deal.
Programming didn’t click for me until I actually built something. Just a little command line game. Eventually after a certain point I realized: oh my god I can do anything! (with enough time)
You’ll get there, but try working on something bigger with zero stakes where you can feel out how code you write in one place ripples out to other places.