Live data from Hacker News

Ask HN: What made programming finally click for you?

news.ycombinator.com

1–10 of 48 posts

Ask HN: What made programming finally click for you?

#1
The "Aha!!" moment where things start falling into place and you understand really what it is about and now you can concentrate on breaking up and solving the problem at hand rather than worrying about the lagnuage, syntax or the act of programming. Because you know if you can solve the problem you can implement it in no time.

Re: Ask HN: What made programming finally click for you?

#2
For me it was about to 2 years to get to the level of “if I can imagine the algorithm I have no doubt I can implement it”, but that was gradual and there are many more levels such as being able to code to a standard style or idiom, I would hesitate to identify an aha moment, but if there were one it would be after doing 2 online algorithms courses from Princeton and Stanford.

Re: Ask HN: What made programming finally click for you?

#3
I started learning Python when I was 12 years old by reading books. I could understand the mechanics but I couldn't solve a problem I hadn't seen solved before. I tried to make a game of hangman, but I simply couldn't design it. I gave up on it.

Several months later, perhaps a year, I sat down to try it again. For some reason it wasn't so hard this time. I was able to get it to work.

I don't remember what my other projects were, but I remember struggling to design some more software. I couldn't tell where to begin or how stuff should work. So I'd just jump in somewhere and start somehow. I'd flesh out one component, and then when I'd go to write a component that integrated with it, I found my first design was wrong. I ended up throwing out drafts and restarting.

Through a grueling repetition of this I learned to have a better intuition. I increased my capacity to hold a large and complex program in my head, and to reason about it. I remember a job interview at 18 years old, when someone told me, "you write decent Python." I was quite proud.

I don't think they're was a single moment where it clicked. It was a painful teething process of repeatedly painting myself into a corner, throwing everything out, and starting again. I was very lucky to have supportive adults in my life who helped me out, along with kind strangers on the internet who looked at my broken code.

I'll tell you about one small moment of realization. Once I was asking for help online with a problem relating to my masking an import with a local variable, or something like that. After this was explained to me, Ned Batchelder gave me a command; "now, realize that importing is just a special case of assignment."

It legit blew my mind. It felt like a zen master had imparted special wisdom to me. It was a magical pedagogical moment I've never experienced again. Thanks again, nedbat.

Re: Ask HN: What made programming finally click for you?

#4
I tried teaching myself programming for a few years, on and off.

But it wasn't until I took a statistics class, which involved programming in R, that I began to realize the purpose of functions: to handle inputs, and return outputs.

The class involved data engineering, so I created functions to deal specifically with data.

And it was then that I realized "Ohhh... functions in any language just operate on data... so... with this knowledge, now I see the purpose of application routes in web frameworks like ExpressJS, Python Flask, etc."

A course on relational databases helped me understand how to store data.

And from there, I finally realized the purpose of a REST API, and how browsers connect to servers.

At that point, I realized "Wow, I finally understand how to create a full stack app (including database design)"

Re: Ask HN: What made programming finally click for you?

#5
This would suggest that you're free to choose your application model and interface design. But usually you're not.

A big part of todays programming work is spent on understanding what others have come up with about how the environment your app runs in is modelled and how it talks to your app and expects your app to talk and behave. This includes data models, process models, event handling etc.

So while there might be a big click when you discover that you need a place to store your data and have algorithms/code operating on that data, in common programming tasks it has to click again an again about others' ways of doing things and adjusting your code to fit that model.

And yes that can be fun and enlighting. Again and again.

Re: Ask HN: What made programming finally click for you?

#6
I've been programming since my teens and professionally for 15-odd years. I think programming really only "clicked" in the last few years. Now I know with reasonable certainty how I will structure a project and how much time it will take.

What made it click? There wasn't a specific point, but I think it was when I started to seriously branch out into multiple languages. I've dabbled in other languages before, but when I seriously started working with other languages and made larger projects in them did I understand how to structre the code so it's not terrible.

Re: Ask HN: What made programming finally click for you?

#9
The first thing they taught me in programming in uni was: "Divide and conquer". It took me some time to truly understand what that meant in terms of programming. I remember that when starting a software project, I always started to feel very anxious if I was unable to picture the WHOLE program in my head; after some time I understood that by dividing it into smaller problems, and solving each one of them one at the time (without thinking at all in the other parts), things will eventually be connected and work, like magic. By truly adopting this basic paradigm you start to think naturally about interfaces to connect these smaller parts of your program, and from there things just flow.

Re: Ask HN: What made programming finally click for you?

#10
I don’t think there was that one “aha!”-Moment, but I always found out when something seemed to hard, if I would revisit it after couple weeks it suddenly seemed so easy. I guess there is a lot of cross-knowledge you can apply from learning thing A to things B and C. So I guess the best advice is never stop learning, just ingest knowledge; the actual programming topic doesn’t really matter.

However a couple things stand out:

- learning to use a debugger

- test driven development

- static typing

- learning a systems language (stack, heap, memory management, pointers etc.)

Post reply on HN