Ask HN: I've tried to learn programming for 3 years, but I'm not progressing.

4 points by stuckcoder ↗ HN
Title is pretty self-explanatory. I picked up python 3 years ago hoping to learn it on the side. Fast-forward to today, I can only seem to think in simple conditional loops and functions. People often tell me to make stuff, and when I do, I follow tutorials and simply copy what I'm told to write to move on. I find that in the end I haven't really learned anything, and even when I do try to understand every step or function called, etc, I get confused way too quickly.

It's weird: I'm stuck in this weird middle-ground where I can breeze through beginner exercises and understand them conceptually, but I've still yet to attain a higher more complex understanding of programming.

I've tried looking at open source and I get swamped in a sea of questions almost immediately.

What can I do to become better?

10 comments

[ 2.1 ms ] story [ 71.8 ms ] thread
I wonder if I wrote this myself on my sleep. I have the same problem.
Find another profession. A kind that requires people to give you directions.
To my belief In your learning process you were more concerned about Implementation details and end product which is pretty normal but in the moment you lost the point to understand underlying code. I think its good you realized its something we all do in different forms like as in understanding Trigonometry or Logarithms. I would suggest you to take some basic algorithms and spend a week devouring and playing with them sooner or later everything will start sinking in, Hope this helps.
Have you ever looked into Algorithms and Data Structures?
Not much, no. Are there any resources you'd recommend someone at my level look at?
It depends on how comfortable you are with getting your knowledge from college textbooks (which can be rather math-heavy) rather than online tutorials.

http://www.algorist.com/ (gentle, but most of the code is in C, however, which it doesn't sound like you know)

http://en.wikipedia.org/wiki/Introduction_to_Algorithms (Standard Thick reference)

http://en.wikipedia.org/wiki/The_Art_of_Computer_Programming (One of those classics that everyone mentions, but very few have actually read)

Other than that, actually read through Wikipedia articles on various sorting and searching algorithms, trees, graphs.

You may have hit the limit on online tutorials and books. It's likely time to go to user groups and reach out to experienced peers feeling generous (looking to devote a few hours to helping you out).

Due to the nature of this forum, you probably won't get a magic solution to your slump -- you're past the point of cookie cutter magic bullets, which is a good thing.

However, my one piece of quick advice might be to, rather than just copy code, copy it and then try to understand _why_ those lines are there, even in the libraries and frameworks you use. You likely know what everything does at this point, but if you take it to "next level", you'll eventually be able to start making things from scratch.

Take a detour through FreeBasic where there are no limits (you'll even understand pointers, data types and objects), then go back to Python. Challenge yourself and have fun. For example try to write a program that stores a key-value pair and that enables you to retrieve information through sockets or can even be compiled to a library.
"People often tell me to make stuff, and when I do, I follow tutorials and simply copy what I'm told to write to move on."

That's not making stuff. You have to think about it yourself. Programming is not memorising syntax and copying other people. Programming is thinking about solving problems in a way suited to the tools you have. That is what you need to work on.

Also I think the just build something on your own and suffer through it, way of learning was more effective when physical books where the primary source of programming information. Because you had to transcribe the code from the book to the program. Now days it is just too easy to copy and paste.