
Ask HN: How do I level up my programming skills? - aryamaan
I am a backend engineer with almost 3 years experience. I work in Java. I feel that I am not growing as a developer.
What are things I can do which will level up my skills? I also feel need of brushing up my knowledge about networking, compilers and OS; please share some good resources about them, if you know those.
TIA
======
sedeki
Anecdote: I emailed Richard Stallman the exact same thing. He basically told
me to learn Lisp.

Without stepping on anyone's toes, I think you should learn to program against
the CPU, not stay in a sandbox of sorts.

Regarding the topics you mentioned, there are a few classic books that cover
exactly that and they've gotten good/fantastic reviews on Amazon. I'm talking
about the Dragon Book, Tennenbaum's books on OS development and Richard W
Stevens on TCP/IP.

(Maybe you are asking for another layer of abstraction -- in that case,
ignore.)

------
stray
Operating Systems (3rd Edition), Deitel -- is an excellent way to fill in gaps
in your understanding of the OS. Don't buy it new -- used copies can be found
on amazon for less than $20.

Learn a radically different programming language: Common Lisp.

Seibel's Practical Common Lisp is a very good introduction -- Keene's Object-
Oriented Programming in Common Lisp will give you a wildly different way of
looking at OO -- The Art of the Metaobject Protocol will forever change any
preconceived notions you might have regarding objects.

------
smt88
If you're a web programmer, you probably don't need to learn much more about
networking, compilers, or OS. For better or worse, those parts of our apps are
almost entirely abstracted away. When "serverless" infrastructure matures, the
transition will be complete.

If you're going to work on infrastructure/systems projects, then sure, dive
into those things.

My suggestion is to contribute to some open-source Java projects, perhaps with
a charitable angle. If you come up with an idea of your own, write it in a new
language or using an unfamiliar technology.

------
herbst
If your stuck just to different things. Learn a new language or start project
out of your scope. There is always something new to learn in IT, but it really
comes down to your interests.

