Comment by omnicognate

Comment by omnicognate 2 days ago

38 replies

An important aspect of this for professional programmers is that learning is not something that happens as a beginner, student or "junior" and then stops. The job is learning, and after 25 years of doing it I learn more per day than ever.

cyclotron3k 2 days ago

I've reached a steady state where the rate of learning matches the rate of forgetting

  • sph 2 days ago

    How old are you? At 39 (20 years of professional experience) I've forgotten more things in this field than I'm comfortable with today. I find it a bit sad that I've completely lost my Win32 reverse engineering skills I had in my teens, which have been replaced by nonsense like Kubernetes and aligning content with CSS Grid.

    And I must admit my appetite in learning new technologies has lessened dramatically in the past decade; to be fair, it gets to a point that most new ideas are just rehashing of older ones. When you know half a dozen programming languages or web frameworks, the next one takes you a couple hours to get comfortable with.

    • doix 2 days ago

      > I've forgotten more things in this field than I'm comfortable with today. I find it a bit sad that I've completely lost my Win32 reverse engineering skills I had in my teens

      I'm a bit younger (33) but you'd be surprised how fast it comes back. I hadn't touched x86 assembly for probably 10 years at one point. Then someone asked a question in a modding community for an ancient game and after spending a few hours it mostly came back to me.

      I'm sure if you had to reverse engineer some win32 applications, it'd come back quickly.

      • mickeyp 2 days ago

        SoftICE gang represent :-)

        That's a skill onto itself, and I mean the general stuff does not fade or at least come back quickly. But there's a lot of the tail end that's just difficult to recall because it's obscure.

        How exactly did I hook Delphi apps' TForm handling system instead of breakpointing GetWindowTextA and friends? I mean... I just cannot remember. It wasn't super easy either.

      • Agentlien 2 days ago

        I want to second this. I'm 38 and I used to do some debugging and reverse engineering during my university days (2006-2011). Since then I've mainly avoided looking at assembly since I mostly work in C++ systems or HLSL.

        These last few months, however, I've had to spend a lot of time debugging via disassembly for my work. It felt really slow at first, but then it came back to me and now it's really natural again.

    • nkrisc 2 days ago

      You can’t keep infinite knowledge in your brain. You forget skills you don’t use. Barring some pathology, if you’re doing something every day you won’t forget it.

      If you’ve forgotten your Win32 reverse engineering skills I’m guessing you haven’t done much of that in a long time.

      That said, it’s hard to truly forget something once you’ve learned it. If you had to start doing it again today, you’d learn it much faster this time than the first.

      • Wowfunhappy 2 days ago

        > You can’t keep infinite knowledge in your brain.

        For what it’s worth—it’s not entirely clear that this is true: https://en.wikipedia.org/wiki/Hyperthymesia

        The human brain seemingly has the capability to remember (virtually?) infinite amounts of information. It’s just that most of us… don’t.

    • thesz 2 days ago

        > When you know half a dozen programming languages or web frameworks, the next one takes you a couple hours to get comfortable with.
      
      Learn yourself relational algebra. It invariantly will lead you to optimization problems and these will also invariantly lead you to equality saturation that is most effectively implemented with... generalized join from relational algebra!

      Also, relational algebra implements content-addressable storage (CAS), which is essential for data flow computing paradigm. Thus, you will have a window into CPU design.

      At 54 (36 years of professional experience) I find these rondos fascinating.

    • steve_adams_86 2 days ago

      > I must admit my appetite in learning new technologies has lessened dramatically in the past decade;

      I felt like that for a while, but I seem to be finding new challenges again. Lately I've been deep-diving on data pipelines and embedded systems. Sometimes I find problems that are easy enough to solve by brute force, but elegant solutions are not obvious at all. It's a lot of fun.

      It could be that you're way ahead of me and I'll wind up feeling like that again.

  • TeMPOraL 2 days ago

    That's one of several possibilities. I've reached a different steady state - one where the velocity of work exceeds the rate at which I can learn enough to fully understand the task at hand.

  • everdrive 2 days ago

    But just think, there's a whole new framework that isn't better but is trendy. You can recycle a lot of your knowledge and "learn new things" that won't matter in five years. Isn't that great?

  • epolanski 2 days ago

    I use spaced repetition for stuff I care for.

    I use remnote for that.

    I write cards and quizzes for all kind of stuff, and I tend to retain it for years after having it practiced with the low friction of spaced repetition.

  • bryanrasmussen 2 days ago

    to fix that you basically need to switch specialty or focus. A difficult thing to do if you are employed of course.

emil-lp 2 days ago

I worked as an "advisor" for programmers in a large company. Our mantra there was that programming and development of software is mainly acquiring knowledge (ie learning?).

One take-away for us from that viewpoint was that knowledge in fact is more important than the lines of code in the repo. We'd rather lose the source code than the knowledge of our workers, so to speak.

Another point is that when you use consultants, you get lines of codes, whereas the consultancy company ends up with the knowledge!

... And so on.

So, I wholeheartedly agree that programming is learning!

  • mlrtime 2 days ago

    >One take-away for us from that viewpoint was that knowledge in fact is more important than the lines of code in the repo. We'd rather lose the source code than the knowledge of our workers, so to speak.

    Isn't this the opposite of how large tech companies operate? They can churn develops in/out very quickly, hire-to-fire, etc... but the code base lives on. There is little incentive to keep institutional knowledge. The incentives are PRs pushed and value landed.

    • emil-lp 2 days ago

      That might be the case for USA, but this was in a country with practically no firing.

  • teiferer 2 days ago

    > We'd rather lose the source code than the knowledge of our workers, so to speak.

    Isn't large amounts of required institutional knowledge typically a problem?

    • emil-lp 2 days ago

      It was a "high tech domain", so institutional knowledge was required, problem or not.

      We had domain specialists with decades of experience and knowledge, and we looked at our developers as the "glue" between domain knowledge and computation (modelling, planning and optimization software).

      You can try to make this glue have little knowledge, or lots of knowledge. We chose the latter and it worked well for us.

      But I was only in that one company, so I can't really tell.

hnthrow0287345 2 days ago

It can be I guess, but I think it's more about solving problems. You can fix a lot of peoples' problems by shipping different flavors of the same stuff that's been done before. It feels more like a trade.

People naturally try to use what they've learned but sometimes end up making things more complicated than they really needed to be. It's a regular problem even excluding the people intentionally over-complicating things for their resume to get higher paying jobs.

dude250711 2 days ago

> The job is learning...

I could have sworn I was meant to be shipping all this time...

  • rTX5CMRXIfFG 2 days ago

    Have you been nothing more than a junior contributor all this time? Because as you mature professionally your knowledge of the system should also be growing

    • MyHonestOpinon 2 days ago

      It seems to me that now days software engineers move a lot more. Either within a company or to other companies. Furthermore, companies do not seem to care and they are always stuck on a learning loop where engineers are competent enough to make modifications and able to add new code but without deep insights where they can improve the fundamental abstractions of the system. Meanwhile even seniors with 25+ years of experience are noobs when they approaching a new system.