I’ve been learning Python by myself for about 3 years now and I can say that I know quite a lot but I don’t really feel confident in my own programming skills and always after a while of practicing or reviewing I end up quitting because I feel exactly this.
I don’t know how to explain it, but I really feel like I’m in a cycle repeating the same noob exercises over and over again.
For example, lately I have been practicing a lot PyQt but I really feel that I am wasting time when I don’t learn a new concept or I don’t memorize something and I need to look at my notes to remember how to do it, and also that practicing with online courses, especially with Youtube is often a challenge because the authors do things differently and I get confused by that. And when I want to learn something new the amount of information overwhelms me and I feel tired because of that.
As a Linux user I know that what I just said is stupid, because for example it is impossible to learn all the commands in the world, you just really learn the ones you use most regularly but in programming I feel that for example asking ChatGPT (or any ChatBot) counts as cheating for some reason, I don’t know how to explain it.
I really consider this probably a mentality problem more than a skill problem because honestly even though I know I can I don’t feel sure how to program, many times I even doubt the name of my variables or my functions.
Thanks for reading my silly post!
Memorizing isn’t a huge deal and will happen naturally as you use things more.
For instance I’ve been doing c# for almost 20 years and I still have to Google how to do a switch expression every time! It just doesn’t stick haha
Once you do something for the 1000th or 10,00th time you won’t need to look at your notes.
As your knowledge grows you’ll find you actually have to look stuff up more.
It’s an endless field and it’s all out there so you don’t need it in your head. It’s better to learn how to find the info you need.
I’m not alone! Been a dev for almost 10 years and every time I declare and initialize a dictionary I either have to Google it or stare at it for a minute to realize what I’m doing wrong 😂 I blame JSON.
It sounds like you have the mindset that you have to learn programming before you start doing it. Which is especially hard today as there’s so much information, so much to learn, so many tutorials to watch. There’s always something to learn. Don’t expect to reach a point when you “know” programming.
Instead try this: Stop practicing and start programming. Start with a project that you want to do, for whatever reason. Some small utility, a really tiny game, a joke program, whatever that gets you to focus on creating something rather than learning something. You will learn the things you have to learn in order to progress on the project. This is completely normal, and a good skill to have, even for professional programmers.
This is the advice I always give people. You have to have some small goal in mind. Learn the basics of the language how to get started and then just start programming. When you run into a problem, Google it. As you work through the problems, you’ll learn how to handle them going forward (for the most part).
Are you building something that you like or want? That can really help you stay motivated, because you’re seeing progress and getting something you want out of the work.
I’m rarely motivated to learn about programming for programming’s sake, but I do like creating something that fills someone’s need.
Mm, makes sense, actually at first I wanted to just create a simple addition game app but then I got sidetracked into trying to create a GUI for Yt-dlp… Thanks for your comment! I should try again the addition game instead of trying something more advanced.
That sounds great!
I’d suggest starting small. It’s really easy to take on too much and get bogged down in boring/hard stuff.
If you’re doing this as a hobby or learning activity, focus on building something small that you’ll be happy with. You can always expand it later.
PyQT is the devil. The documentation is maddening and broken.
Learning a language without a project is never going to work. Find a thing you’re interested in and make it.
No one mentioned “imposter syndrome”, so let me:
It somewhat sounds like imposter syndrome. The feeling that you don’t really belong, because you feel you can barely keep up with your seniors.
I’ve had it before and it sucks, but you need to realise that most of us have felt this way - you are 100% not alone in this.
How to get rid of it? You HAVE to realize that most of us have no clue what to do and are just winging it too :p
Dunno if this will help you feel any better or not, my field is finance so I learned VBA out of spite. There’s notes in my subroutines, notes written down, websites bookmarked, all that. Sometimes I still have to google excel formulas just to make sure I’m doing them right.
I started looking at c# and python, and the only reason it even makes sense to me is because of vba. I feel like having a reason to use it and data to practice on helped a lot. And fuck, I googled for hours, upon hours, just to finally get something that I later found a much easier way for. Self learning is admirable af.
Oh, check archive.org for books on python. I find the for dummies series to be particularly helpful. I hate YouTube tutorials so I usually go for something published.
After your comment, and the comment from @[email protected] I was inspired and both of you were right! Sometimes you need a little inspiration to get things done.
The problem is that trying to do something that I have no experience yet (a Yt-DLP GUI) basically started wrong because I had not even created anything with PyQt which is huge and has thousands of classes, and now I needed to learn even more things because my concept of a Yt-DLP GUI needs to use a lot of libraries that I don’t know yet, so for now I left it on standby and started with the game that I mentioned yesterday and I did it! It’s easier this way, because I really only search the internet for PyQt elements, I don’t mix them, and it was really easier this way!
This is normal. Learning to not be overwhelmed with everything is part of the process. It’s better to focus on learning that you CAN do something rather than knowing exactly how to do it. I have to Google things constantly, especially if I’m moving between languages.
It’s also important to realize that some people who put up videos or content actually have no idea what they’re talking about. I’ve interviewed people who were extremely cocky, got everything wrong and I find out they taught courses on udemy.
There are also multiple ways to approach most problems. I think given the amount of content out there nowadays the best approach to learning is posting on forums like you’re doing now. Get feedback, discuss tradeoffs, learn to design more complex systems. Interaction and communication are a HUGE part of it that always gets glossed over.
Every single wanabe developer starts with writing some python GUI, while i ve been working for 7 years and yet yo write a single GUI in python… I did write a GUI in java, once, for 3 month or smth. It got scrapped for a web version.
what do you enjoy? whatever that is find a problem you want solved and try to solve that problem watch videos when you can and look up information but most likely there wont be any info on exactly what you want to do otherwise it probably already would have been done and you wouldn’t want it fixed, if someone has done it before exactly then for educational purposes I would try to make it first then look at there solution afterward. for me when I did this I went down a parsing and reverse engineering rabbit hole, this helped me build confidence because regardless of how good the documentation is, regardless if someone else has done it before I can figure it out I know I dont need anyone to tell me how to solve the problem, then when I can find documentation on top of this skill the documentation becomes 10 times more useful. I cant guarantee this will help you as much as it did me, I did this for a long time before I started programming as the game I played in my spare time had very little documentation and I was forced to do the same process and just figure it out.