Hacker News new | ask | show | jobs
by adelineJoOs 661 days ago
This is something I am currently thinking about. I am a software engineer who also happens to be a amateur musician. I used to do at least 2h of exercise on my instrument for a year, and then not less than that for many years after that. Lots of time I did allocate to fundamentals and standard songs I did not want to lose - and even today, more than a decade after my peak and active time, I have a feeling of where I am skillwise when I comes to those things I practised.

But for software engineering? This seems a lot harder to me. What seems to make most sense to me currently is really high-level stuff like "build up a local dev environment from scratch", "implement a minimal change than is visible in the frontend, but results in a change to the data storage in backend" and "write an integration test". Those seem to touch on many areas of skill and should be "trainable" in some sense, making them a good target of deliberate practice.

Thoughts or experiences anyone? :)

2 comments

While learning to write compilers, I would memorize small, but critical, programs like converting a char range, like [a-zA-Z_], in string format into a table or reporting an error if the range was invalid. At my peak, I could implement the function that did this in about 60 lines of Lua in about 3 minutes.

I haven't done exercises like that recently, but I found it helpful at the time.

20-30 years ago that was a role in competitive programming team - fast typer with knowledge of data structures, whose job was exactly that: very fast and bug less writing of them during competition
I came to a belief recently that memorization is way too underrated of a skill. Most of programmers, myself included believe that why you should memorize something if you can look it up, but... I'm not really sure by now.

Perhaps we rely too much on our ego that we can come up with everything on the fly where we should instead look into how other crafts did it in the past?

I've spent maybe 40-60 hours a week on average programming since I was 15 or so (42 now, but I don't program as much nowadays). I'm very logical in general, so I was naturally drawn to programming, but that's a ton of work to put into something. Software engineering comes easily to me now, from the very high level to the very low level.

I don't know tons of stuff about tons of stuff, but I do have a fairly good sense for how computers work at all levels of the stack, which helps.