8
15 Comments

The feeling of always falling behind as a developer

One of the issues I have as a developer is the feeling that I'm always falling behind. There's always a new framework or library, new features or changes to a language that I need to learn about, etc. It's difficult to stay on top of it all; there's way too much information being shared (of varying quality) in too many places to keep track of.

I'm thinking of starting a newsletter that lets people subscribe to receive curated content with the best docs, tutorials, articles, etc. - specific to their stack or the technologies they are interested in.

Would this be helpful to you? What would you like to see in it? Would love to hear any thoughts from fellow devs.

posted to Icon for group Developers
Developers
on May 26, 2020
  1. 8

    As a developer that has maintained products in production for long periods of time, I disagree with many of these answers saying it's easy to learn another language/framework. There are so many bugs that are hard to find if you don't know the quirks of the language/framework.

    Sure- it takes me just a few minutes to pick up a language to do a Leetcode problem in a language I've never used before. And it took me less than an hour to pick up basics of React coming from Angular.

    There are 2 types of "new" technology, both which require caution in their own way:

    1. Tech that is new to the developer.
    2. Tech that is new to the world.

    It is incredibly helpful when a developer thoroughly knows the tool they are using. In a complex software system, one has to look at using languages and frameworks as tools. With any tool, there are people that can basically figure out how to use the tool well enough, and there are the people that know the tool inside out. Those who know the tools inside out can potentially be much more productive, make much wiser decisions, and cause fewer bugs.

    For example, I kind of know Ruby. I've used it for a few months, and I know java/python/typescript really well. How hard can picking up Ruby be, right? 2 weeks ago I pushed a bug into production due to a Ruby feature I thought I understood but didn't. Caused thousands of users to get error pages on the site. It then took me half a day to debug the issue.

    I know Ruby, but clearly not well enough to avoid this. This type of bug and long debugging process hasn't happened in other languages/platforms that I'm an expert in, in a really long time. Happens to me frequently in Ruby.

    Also, my favorite backend is to use Node. I love Node. But I'd be weary to use Node from 6 years ago, when it has more bugs, hidden undocumented behaviors, etc. New tech is fun, but can also waste a lot of your time figuring out the hidden unintuitive behaviors, debugging why it's not working the way you thought it would.

    I feel the right time to use new tech for a personal project is when I really don't already know tool that does this well (e.g. when I picked up Angular for frontend tech because I didn't know any frontend frameworks, AWS when I didn't know any cloud tools, etc), and when it's already battle tested, the bugs are well documented, and there's a strong community to help you figure out why it's behaving differently than expected.

    If there's a newsletter that lets me know about battle-tested tech that can do something actually new really well, I'd love to subscribe.

    Side note: my favorite time to pick up new tech is when working for an employer. Then you're essentially getting paid to learn, and have coworkers accelerating your growth by providing feedback. But it seems riskier to do for indie projects.

    1. 1

      Here's the problem, though: even if you know very well your stack, technologies evolve pretty quickly too. Something you're used to do today might break tomorrow. Keeping up with these changes can be hard, and I think it's one of the reason of this post.

      Can you really know a tool inside out, as you say, like a programming language, when there are thousands of traps and potential bugs in situations you never experienced? With an evolving systems? I'm not so sure. That's why we have testing, CI, and everything else which try to bring sanity in this complexity.

      For your example with Ruby, if you knew that you would create a bug, you would have avoided it. Now, let's say that you wrote Ruby for 15 years, that this new feature was introduced with the last version, would you have break everything anyway? I think so.

      That's why, I think, many developers believe that IT knowledge is transferable. First because there are many common roots between technologies, and second because, even if we use the tech stack we know the most, we can always make mistakes anyway. I'm not sure the fact that we "mastered" the tool change really something, especially in situation you've never been before, especially when you know that the context influence so much.

      Of course, I'm not saying that using new shiny technology just for the sake of it is good. However, thinking that there is too much to know is closer to the reality that having the feeling you've mastered your tool. The important point is: we shouldn't try to know everything, but what's common with the tools we use, to be prepared when we need to change them, or when they evolve.

      1. 1

        I feel like the better I know a tool the easier it is to keep up to date with changes and know what those changes mean to me in current projects.

        Change logs make more sense.

        I’d be familiar to some extent with the future plans for the tool, open bugs and so on.

        For a tool I’m not so good with, most changes don’t mean so much and go ignored until it hurts or I start to make sense of things.

        Also shiny new tech changes a lot more then more mature and battle tested tech.

  2. 8

    I think an important thing to consider when feeling this way is to know that EVERYONE feels this way. There is no way any human could ever understand every single new piece of technology that comes out. Luckily, programming is a highly transferable skill. If you know PHP, you can learn Python or C++. If you know React, you can easily learn Vue.

    A lot of these new frameworks and technologies talk a lot about how different they are from one another, but perhaps your newsletter can talk about how they are alike to ease this anxiety that people like me or you have felt.

  3. 2

    There was a time when the next great thing in development to learn was a given. These days, there are a lot of "great next things" being hyped everywhere you turn.

    Even things that gain traction and popularity today are likely to be replaced with newer and better implemented alternatives in the near future.

    At the end of the day, or project as it were, the only things that matter are 1) does it work? and 2) does it work well?

    Users and customers do not care how you built it. They just care that it helps or interests them and that it works.

    The only reason to worry about "next great things" in development is if you are trying to get on the front side of a hiring wave.

    Beyond that, learning something new in development should provide a direct benefit to a project you are creating or satisfy a personal desire to learn something new.

  4. 2

    I can't agree 100%, as a Software engineer, I dont care about the language or framework, I just use whatever gets the job done the best, with the foundations set, you shouldn't care about the language, nor the framework, to pickup on the language you just read the docs, for the framework the same, you will be able to piece stuff together easily because of the foundations and the experience, and eventually with time you will memorize it if you keep using it.

    PD: I also think its useless to learn every new language or framework if you never won't use it. So just learn it because it's shiny and trendy, im against that. I'm also against the idea of you always have to use a framework just for the sake of it. Usually if a framework adds more problems than solutions, it's a moment to think whetever using it or not, if the pain points are greater, then it's moment to use it.

    I get that feeling more when visiting sites like codesignal or leetcode that actually challenge my logical thinking, but switching langauges/frameworks is easy.

    1. 1

      Learning a language can teach you much more than the language itself, but a philosophy and new methods to make your code more maintainable / scalable. Especially if the language you learn is different enough of the ones you know.

  5. 2

    Twitter & Hacker News are my goto sources for keeping up with latest tech. Not saying they are perfect, just what I use atm.

    Good luck.

    1. 2

      You are right. Twitter is generally the place where the word spreads faster. Whether it's about technology or anything.

      1. 2

        Also social validation - you can guess fairly well how good / useful / successful things are just from a post's popularity & comments

  6. 2

    I agree with @robmerki.

    One of the things I've noticed is that when you're doing hobby projects or a side project, you have an excuse to go out and try the latest tech. In fact, I'd argue that if you know you will not be turning your project into a business, it's the perfect place for this kind of experimentation.

    But when it comes to building a business, particularly SaaS, it makes sense to go with technologies that have been tried and tested. Not only will it help you ease your development process, but there will also be more support material available, more documentation, more tutorials, more compatible infrastructure.

    And if you're smart and keep your code decently decoupled, you can always swap out components for newer, better versions as business needs arise. This is where frameworks are a great tool that provide enough abstraction for you to swap out core tools under the hood, including databases, queues, caching layers, etc.

    Even "older" stacks can have a bit of magic sprinkled in!

  7. 1

    You know what is even more poignant reality? Whatever we write as developers is already obsolete when we commit the code. And it’s okay because software engineering is a constant progress cycle 👍🏻

  8. 1

    I know I used to feel this way. But then FOMO is gone after I stopped comparing myself to others. The more frameworks used the more the problems it seems. A project that has minimum dependency, the better. (Disclaimer: This is just my opinion)

  9. 1

    There is no requirement or need to learn the greatest and latest. Choose what your best at but still stay updated and familiar with whats new. If a framework provides something for your specific needs, then venture into learning it. As others said, anyone who already has pre-existing programming knowledge will be able to learn new things much more easily.

  10. 1

    Yes, it would be helpful for me.

    I used to read WDRL newsletter, but it has been discontinued.

    I occasionally vist Codrops Collective to see what's new in web development.

  11. 1

    Yes I know this feeling

Trending on Indie Hackers
Meme marketing for startups 🔥 User Avatar 11 comments Google Whisk - Generate images using images as prompts, not text prompts User Avatar 1 comment After 19,314 lines of code, i'm shutting down my project User Avatar 1 comment Need feedback for my product. User Avatar 1 comment We are live on Product Hunt User Avatar 1 comment Don't be a Jerk. Use this Tip Calculator. User Avatar 1 comment