TE
TechEcho
Home24h TopNewestBestAskShowJobs
GitHubTwitter
Home

TechEcho

A tech news platform built with Next.js, providing global tech news and discussions.

GitHubTwitter

Home

HomeNewestBestAskShowJobs

Resources

HackerNews APIOriginal HackerNewsNext.js

© 2025 TechEcho. All rights reserved.

Ask HN: What made programming “click” for you?

7 pointsby newsoulover 2 years ago
How did programming become one of those things that let you enter a flow state? Was it some concept or mental model related to a style of programming or doing lots of projects?

5 comments

liberiaover 2 years ago
The &#x27;View Source&#x27; in browsers is what got me started initially in webdev. It was amazing seeing how sites were pieced together, and it was all progress from there. In the start I copied a lot of code, but then got comfortable writing my own.<p>Also the ability to write code in an editor and see it instantly reflected in the browser by hitting refresh was a game changer. No compiling. No writing code in a black box where you don&#x27;t get instant feedback or don&#x27;t know if the code is behaving correctly.
codazodaover 2 years ago
I don&#x27;t know the answer to this and I wonder how many others will feel the same way.<p>I started copying code out of books a long time ago when you had to do that to run a program at all. Slowly I learned to debug as a result of my own typo&#x27;s as well as typo&#x27;s in the original books. Slowly I started writing very tiny things that were my own ideas and I think I got into a flow state even working on those. I do notice that I&#x27;m in less of this state when I&#x27;m learning a brand new language though.<p>Keep in mind that being in a flow state isn&#x27;t really about being able to just type the code. I&#x27;m constantly looking things up and moving back and forth between previews, edits, etc. It&#x27;s just that I seem to block out the rest of the world because I&#x27;m focused on the task. If someone speaks to me during this time it will either break my flow or I&#x27;ll accidentally ignore them (or sometimes even respond subconsciously).<p>Anyway, just thought I&#x27;d share what little insight I have.
thekombustorover 2 years ago
When I was learning programming, I had a very experienced friend holding my hand along the way. I felt that this was great for me as a beginner, although sometimes she would way over-explain something that was irrelevant as a beginner.<p>As time went on, I relied on her less and less, until one day I realized I didn&#x27;t need her anymore to write anything. At some point during that time, it had &quot;clicked&quot; for me.<p>I think another part of the click happened when I transitioned from Java to Scala: it made me realize just how much time I was wasting manually transforming types&#x2F;managing collections when map&#x2F;filter&#x2F;fold etc were sitting under my nose the whole time in Scala.<p>Yes, I know that Java has ways to accomplish the same things with streams&#x2F;collectors, but it&#x27;s not even close to as fluent as it is with Scala. For me, the only language I can truly enter a &quot;flow&quot; state in is Scala.
clusmoreover 2 years ago
I have a very vivid memory of following a tutorial for Game Maker which guided you through building an Asteroids clone. There was a section on programming the gun, where you had a variable canShoot which is set to false after each shot and then reset with a timer, to prevent rapid fire shooting. Then as an exercise it asked you to add a second gun with a separate cooldown timer. I remember thinking &quot;okay but what&#x27;s the name of the second canShoot variable?&quot; and was completely stumped. I gave up and moved on to other things, until a day or so later it occurred to me that the name wasn&#x27;t relevant, canShoot is not a built-in with magic properties making it suited to this function, and all the other code actually contained the necessary logic.
surprisetalkover 2 years ago
For me, flow is disrupted when I try to <i>learn</i> and <i>program</i> at the same time.<p>Programming is bliss when I restrict myself to tools and domains that I deeply understand.