Live data from Hacker News

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

news.ycombinator.com

1–10 of 44 posts

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

#1
I am a senior software engineer who has been in the field for about 25 years. I mainly use Python and SQL and feel like I can use it to solve mostly all problems. I also have a good knowledge of programming techniques like functional, OO and logic programming. I am aware that as a senior software engineer one has to have other skills like caring about the team overall, and mentoring juniors. I am wondering what should I learn next. Somebody said I should learn Go or Rust but I feel like if it’s another programming language, its really nothing new. Spend a weekend, do some tutorials and you should be good since you are a senior engineer and you know the basics that underpin programming languages.

What novel thing should I learn next that will enhance my capability as a senior engineer? Or open to my eyes to things that I haven’t considered till now?

I realize this is a vague request but was just wondering if there were other people with the same dilemma.

Thanks in advance!

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

#2
Have you ever dabbled with Elixir or Erlang? If not, consider giving it a try. My old boss switched a project we were on from Python to Elixir because the abstractions in Elixir for recovering from a failure, text processing, message passing, and so on felt cleaner.

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

#3
It doesn’t feel like a vague request so much as one whose answer is very personal.

You could maybe characterize what you’re saying as that you’re feeling directionless in your career. You like it, but it feels mature and like you’ve reached a summit. You’re craving a new peak to try climbing but can’t find one that’s appealing.

Maybe somebody will throw out an idea here that will inspire you directly, but my sense is that you may need to shake up how you’re looking at the possibilities. You’re thinking in terms of languages and styles and (rightly, for where you are professionally) feel like those are trivial additions to your repertoire rather than peaks to climb.

So maybe you need to think in some other terms. What do you want to be doing professionally at Year 30? What were some things that inspired you at Year 1 or Year 5 that circumstances pulled you away from — can you revisit those? etc

The second of those questions is on my mind because I felt similar to you last year and was coaxed into refocusing on a fun specialty that my career had long ago pulled me away from. It’s a rich and interesting field and tends to draw in storied people with personalities I enjoy, so it’s been really rewarding to dive back into it whole-heartedly. I feel refreshed in a way I hadn’t expected.

But you might be moved by a different question entirely; my emphasis here is just on maybe asking yourself some different questions than you have been.

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

#4
> Python and SQL and feel like I can use it to solve mostly all problems

This is a weak position in terms of your market value. Obviously python is far from being the best option for many domains outside ML or simple web monoliths. Just like any tech has its applicability areas.

I personally would not consider any developer really “senior” until he got commercial experience with both statically typed and dynamic languages.

It’s not about the typing discipline per se, but rather about whether a developer was exposed to different kinds/levels of challenges (like system programming in java vs building microservices with nodejs).

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

#5
if you haven't used rust, its definitly going to be new territory for you. The borrow checker doesn't exist in any other language and its an incredibly bovel abstraction for proving an absence of race conditions or memory leaks.

That said, its not easy to master. normally when I start learning a programming language, my toy problem of choice for a taste of the language is to implement a merge sort.

with elixir -> 1 day swift -> 1 day rust -> 1 week.

rust is significantly harder to learn that any other language I've picked up. including js when I was first learning to code. Its worth it once you start getting it in your head.

Anyways, languages evolve and go out of date anyways. As you know, sql is not going away. I consider it one of the foundational knowlege things. where it doesn't go out of date. I think the next big thing in the course is ML. the libraries might change but the math doesn't. Time invested in learning ml and ai are a long term value generating asset.

just my 2 cents

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

#7
I've been working on documentation a lot. Nobody seems to want to do it, yet everyone seems to want more.

Everyone can write docs fine, just the way everyone can write code fine. But good docs are a lot of work. The ones that people understand at a glance, instead of having to crawl around. This is something that Google and Oracle can't do, so I don't expect it to be easy.

Also just writing better code. Declarative programming is very easy to read and modify, but can be difficult to think in that way if you're not used to it.

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

#8
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 designs.

Learn C++ or Rust, and use it to write performant systems code -- the kind of stuff Python can't do. Learn how to convince the CPU, memory, disk, and network to give you all the performance they're capable of. Note, the goal here is not to learn another language. The goal is to learn how to think of programming in terms of interfacing hardware resources together -- as opposed to a pile of functions that compute something.

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

#9
I can't offer any advice, Captain, besides perhaps suggesting you play a bit with machine learning and see if it catches your interest.

What caught my eye was that you use logic programming. Would you mind sharing what your use case is and how it fits your Python workflow?

Post reply on HN