HACKER Q&A
📣 morningbrew

How do you keep improving?


For those, who have less responsibilities outside of work and more free time, how do you actually keep improving?

Let's say I have 10 extra hours per week which I literally waste and feel bad afterwards. How could I use them productively to improve as software engineer? I know there are some blogs, or books (i.e. Designing Data-Intensive Applications). Just feels like I forget most what I've read afterwards. Another approach is side projects, but it's also hard to come up with any decent idea. Please just share what works for you. Thanks.

Not sure If relevant, but I'm Web Engineer with experience in C#, Java, Javascript.


  👤 errantmind Accepted Answer ✓
IMO, build anything and don't do it for the future. Build something that is interesting to you personally right now. Don't build for your resume, or fame, etc. Projects like that never get completed, more often than not.

Also, I find it is helpful not to tell people anything about a project I'm working on in the early stages. Something about keeping it a secret makes it a little sacred to me and keeps me from taking satisfaction from work I haven't yet done.


👤 karmakaze
The thing I've found the most worthwhile is experiment with different flavours of programming languages. At first it was out of interest, then it became frustrating because I couldn't use the lesser known ones at my day job, then ultimately I incorporate much of what I learned in the context of whichever language/codebase I'm in.

Examples would be dabbling in metaprogramming, functional pure/not (Haskell/F#/OCaml), lisps (Racket/Clojure), capability-based (Pony/Clean/Rust), supervised-tree actors Erlang/Elixir, simple Go, VM ecosystem jvm/.net, cross-platform Dart+Flutter, etc. Oh and if you use js, definitely invest in TypeScript.

I typically have a toy db+web app that I keep rebuilding in various incarnations. I also mix in different datastores (MySQL, PostgreSQL, CockroachDB) and frameworks both server-side and client.


👤 c0110
Everyone learns differently, so find the way you learn best. If you learn best by doing, you should do side projects, and they don't need to be novel ideas. There are tons of lists of project ideas (e.g. https://austinhenley.com/blog/challengingprojects.html).

Also, improvement can come at an accelerated rate if you have a short feedback loop e.g. a mentor or another person to work on a project with you, as opposed to going solo. It also helps with motivation.


👤 hazza_n_dazza
I think one way to improve is to do things outside your comfort zone. So you are great engineer, but can you cycle, read poetry or draw? Often the greatest breakthroughs come in the shower or on a hike. Calm the mind, enjoy, relect and improve. Might not be the answer you were looking for but wasting time isnt always a waste.

👤 PaulHoule
I was a hard-boiled quantitative thinker but now I do art projects and I look to heroes like Walt Disney and Jim Henson for the seductive engineering of theme parks, animatronics and Muppets, etc.