Live data from Hacker News

Ask HN: As a senior engineer content with programming chops, what to learn next?

news.ycombinator.com

41–44 of 44 posts

Re: Ask HN: As a senior engineer content with programming chops, what to learn next?

#41
Here are a few project ideas: get into compilers/interpreters (write a lisp AST interpreter, then a bytecode VM, then a compiler to C, then a compiler to LLVM, then write a JavaScript implementation, etc.), GUI programming (try out Electron, then Swift and Kotlin), hack on databases (build an in-memory key-value store, then one on disk, then one backed by a Raft implementation, then an in-memory SQL database), write an operating system, write a web browser, write a software renderer (i.e. skip the GPU and draw triangles directly), build a game, implement Docker in bash, write a code editor component for JavaScript with syntax highlighting and autocomplete and CJK support, get into networking (implement an HTTP server from sockets, implement TCP/IP), write a native text editor, write a standard library for some language (including common containers, networking libraries, etc.), emulate x86 then original game boy or some other simple game hardware, build your own computer with nand2tetris or the digital design and computer architecture book with whatever the modern version of Logisim is.

In every one of these projects as soon as you want decent performance for reasonable input sizes you'll either need to switch languages and/or get much better at data structures & algorithms.

All of these have references you can follow easily online (except for software rendering and implementing TCP/IP, at least from my searches).

Outside of these topics you can do on your own, joining a large company with data and compute scaling challenges is always a great way to grow personally.

Re: Ask HN: As a senior engineer content with programming chops, what to learn next?

#42

Learn how networks work: http://intronetworks.cs.luc.edu/ Most SWEs I've met don't understand networks well despite writing software that interacts with them. Learn basic statistics. Apply it to performance testing, system modeling. Build off your knowledge of logic programming -- learn a formal verification language like SMTLIBv2 or TLA+. Apply it to find bugs in code, or to clearly write out algorithm or system des…

> Learn basic statistics. Apply it to performance testing, system modeling.

Any resources for applying stats knowledge to these topics?

Re: Ask HN: As a senior engineer content with programming chops, what to learn next?

#43
post #42

Learn how networks work: http://intronetworks.cs.luc.edu/ Most SWEs I've met don't understand networks well despite writing software that interacts with them. Learn basic statistics. Apply it to performance testing, system modeling. Build off your knowledge of logic programming -- learn a formal verification language like SMTLIBv2 or TLA+. Apply it to find bugs in code, or to clearly write out algorithm or system des…

> Learn basic statistics. Apply it to performance testing, system modeling. Any resources for applying stats knowledge to these topics?

The main tools I use are histograms, confidence and prediction intervals, and Welch's t-test. You should be able to find these in any statistics textbook, or Wikipedia if you're adventurous.

Re: Ask HN: As a senior engineer content with programming chops, what to learn next?

#44
post #16

Hehe, I'm doing a lot of SQL and python and feel the same about "solve pretty much anything". Is that the golden duo?

Do we work for the same company? :) Jokes aside, I do feel they can be used for most of business problems. Compilers, etc are a different thing, maybe. But its not my area of interest.

Hehe, unfortunately python is more of a personal occupation. I wish I could use it at work too, but it's really not in our stack.
Post reply on HN