

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

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.<p>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.<p>I've tried looking at open source and I get swamped in a sea of questions almost immediately.<p>What can I do to become better?
======
EliRivers
"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.

~~~
kls
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.

------
aspir
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.

------
dragonbonheur
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.

------
MarlonPro
I wonder if I wrote this myself on my sleep. I have the same problem.

------
tzaman
Find another profession. A kind that requires people to give you directions.

------
YuriNiyazov
Have you ever looked into Algorithms and Data Structures?

~~~
stuckcoder
Not much, no. Are there any resources you'd recommend someone at my level look
at?

~~~
YuriNiyazov
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.

