I have been struggling to learn programming for years. I am 32 years old, and I have tried many times, even when I was younger.
I tried learning HTML, CSS, and JavaScript. I also tried C++, and now I have started learning Python. When I begin studying, I understand the basic concepts such as variables, loops, and conditions. However, when it comes to practicing, I cannot understand even very small projects. For example, I cannot build a simple calculator.
At the moment, I am learning Python through FreeCodeCamp. In the workshops, I usually understand the topic and what they ask me to do, but I do not understand why or how the solution works.
Could anyone help me understand what I might be doing wrong?
Maybe I need to study algorithms and data structures more deeply. I am not sure. I also do not know exactly what field I want to specialize in, such as web development, mobile development, Flutter, or something else. However, deep inside, I feel that I want to become a professional in something.
Hi! I suggest figuring out what you genuinely like. Use your genuine interests and relate it back to coding and then you can find something you like doing and can see yourself doing. I personally like aesthetics and design so web dev work and designing things with code makes sense for me. I really did try with data analysis and I am not sure if I like that so I am so so on that. I definitely don’t like insane math so I won’t do something so related to that.
Try making your own projects and making stuff for fun without it having to be following instructions or following whatever FCC wants you to do. Those are really just guidelines and you can use your knowledge to make whatever you want tbh.
Hi! I also think that you should first figure it out, that why you are learning to code and write down an essay on that in a single piece of paper, and if you can’t write that essay this means that coding is nothing but a distraction for you from your real life goals. I know that it can be overwhelming for you at first, but I would also suggest to give yourself a break from coding and just figuring out the problems you see in the environment to solve. Then look for the solution of that problem and when you get even 1% surety then come back to coding. Focusing and giving time to DSA is not a good choice if you are not comfortable with small applications like calculator.
This is a key insight, but with unclear guidance on how to actually go about it.
I like to think of the workshop and lessons as showing you what you can learn more about, but not necessarily teach you everything about a given topic. Think of it as the lesson in class, and you need to go do homework later, and study for the test later. Just like school that comes in the form of secondary re-enforcement via projects.
The trick with doing projects is picking a project built around what you already know and adding just a little more scope to learn something new.
If you know: variables/loops/conditions you are at a “project level” of writing logic in functions. Which is fine, but doing a calculator is much larger and will make you feel lost as it requires any number of skills you know and don’t know to execute. It also is open ended as there’s multiple ways a calculator can function and multiple ways to implement it.
Lots of this goes back to understanding the topics you roughly understand and then using them as the baseline for a project. Do the project as a way to practice what you learned and build other projects later integrating more you learned. You don’t want to do anything huge or fancy, just doing it is how you learn.
I’d pull up codepen.io (or whatever simple development environment) and pick a few lessons you’ve gone over and can practice directly. Write a function, call that function, pass args into that function and log it to the console to “see” what your code does.
Then think or Google of a few problems or variants of a problem (AI could help brainstorm problems around what you already know, just tell them you want to work a given topic). Then practice this way.
Good luck, keep learning, keep growing and keep asking questions!