Developers January 12, 2020

I feel like I'm never going to release a product, since it takes so much too learn from the development perspective. (Already a dev)

Aaron B. @GeroviVaper

Hi guys

In my apprenticeship, I've been mainly working with java and creating api's.
Now, after the apprenticeship, in order to release my product, I need to know react, redux, nextjs, firebase and learn about the deployment.

I feel like I'm always in the learning loop, since I never can't really get anything done. It seems so far away from me, to be able to actually build the product itself. Does someone have some tips for me?

I'm a dev for 5 years now, and it's kinda tough.

  1. 10

    Start smaller. Start with a product that doesn't need any of that. Nomad List started as a spreadsheet and then became a static website. Indie Hacker was just a blog. Dozens of other products you've heard of started with some small but useful, then added one feature at a time. You don't need to begin with a complex SaaS with tons of bells and whistles built with all the hottest tech.

  2. 7

    You don't have to learn those things. I usually go the other way - I always think that I have to build something in order to learn these things. Just get started and learn what you need as you go. That way you'll see progress every day, even small steps, but that'll keep you going and help with frustration.

    1. 4

      Agreed. Learn what you need as you go.

      It's tough but possible. I only know React before and I'm a dev with less than 2 years experience. In 3 months, I learn Redux, Node.js, Google cloud function, postgresql and firebase just to build an app for my idea. Even if my startup failed, I still can put all that I've learned in my portfolio.

    2. 4

      I second the whole thing.

  3. 3

    My gut feeling tells me that the real problem is something else. I feel this because I've been where you are, many of us have I believe.

    Can I ask, what's the product that you're trying to build? If you don't want to give away your secrets that's okay but maybe you can give a brief description of some sort.

    Secondly, what's your plan for getting there? How many hours a week do you have to work on it? Make a to-do list of the things you need to implement (and post it here). What other things do you need to do to get to launch?

    My point here is two fold. First, I find it really helps when you're stuck like this to go back to pen and paper and start writing down what needs to get done. Secondly, people here on IH have a lot of collective experience doing this stuff. Chances are, someone will have some tips on how to get things done faster, or some advice on what to do differently.

  4. 3

    The other option is to just do a server side rendered app using Java and just use a little bit of Javascript where it's appropriate. Unlike the JS ecosystem, Java is a very stable ecosystem and you can use the knowledge you already have.

  5. 2

    Set a clear product definition. Flows, screens, functionality etc...
    Then try building those things using the stack you have chosen.

    Remember that technology is a means to an end, use it as such. Trying to "learn React" or Redux is very ambiguous and probably feels un-rewarding if you haven't set a goal for yourself.

  6. 1

    If you're coming from a java background ignore all the front end craziness for now. Spring Boot tutorial with thymeleaf should be fine for now.

  7. 1

    Try JavaScript :P

  8. 1

    Can you partner with a frontend dev so you don’t need to learn how to build the frontend?

  9. 1

    HI Aaron,

    I'm also a developer with Java background and I also had pain with UI stuff. But it turns out that Java ecosystem is much wider than just tool for creating API.
    To start slow you can try Java based UI frameworks like Vaadin, which have short learning curve because you need to write code on Java using your favourite IDE. For me it didn't feel like learning new stuff, it looks like I'm just working as usual but product is different - pretty and functional UI.

    After some time you may face some limitations of such frameworks but it can easily extended via small custom pieces of JavaScript/React/etc.

    Also if you decide not to use Java based frameworks take a look on Angular (beware of AngulareJs) instead of React. Angular is typescript based framework which is more friendly for developers who usually works with languages with static types like Java. Ideas behind Angular much clearer for me and writing on Angular feels like Java but using a little bit different syntax

    I'm ready to answer your questions

  10. 1

    Don't be surprised. You'll be learning every day for your entire software career. Self-education is an integral part of it and you cannot avoid it.

    My suggestion would be to focus on a core set of technologies so you don't need to flit from one to the next. For example, pick a database and stick to it for a number of years. Pick a frontend framework and stick to it. Don't allow the popularity of the tech around you to dissipate your energy.

    You mention React, Redux, NextJS, Firebase.. if you pick up React, don't then move onto Vue. Just stay with React and use it to build all your frontend-heavy apps. You'll incur obvious overhead on your first application, but you'll become more productive as time goes on.

    Redux.. arguably not needed, same with NextJS.. Firebase.. it's not much to go through that. It's a fairly simple service. You will always be going through docs and learning interfaces for different services.

  11. 1

    In a software dev career you will always be learning, technology is constantly changing. Though, the more you learn, the easier learning gets.

  12. 1

    Hi, well that seems about right. I've been a dev and team leader for over 13 year. Trust me the learning never stops. Best advice I've received, just do it, and don't try and build the perfect system go for the least viable product first.

  13. 1

    Hey Aaron, you wrote that you need to know those tools to "release my product", but do you mean "realize my product"? There's a big difference if you think about it.. you may have a thousand ways and a thousand tools to get to your goal, but what you should have first is a clear picture of what your goal is and stick to it, expertise with these tools will follow as a consequence of building your product. Sounds like you're comfortable building the core logic for your product, but you're less sure about front end frameworks and cloud deployments? I don't know much about your app, but I'd focus on getting the api running on firebase first, maybe you don't need react? Maybe your first customers might happy with just a text box and an ok button? ;) good luck!

  14. 1

    YES, you can do it! You can build a project step by step and learn on the go. I am doing it right now too! This year, I started to build a new project by myself with no expertise in backend development (using Laravel). I am struggling daily and I write a code slowly but I am keep going. I learn something new everyday and luckily there are a tons of tutorials and blogs about development and frameworks out there. So, it is kind of easy to start these days. Last but not least, it is a great feeling if you find out you can create something just by yourself. Good luck with your project.

  15. 1

    Hi Aaron!

    The magic moment is when you realize that you don’t have to use all of those things.

    Of course it depends on what you’re trying to build, but realizing what user would see on their browser is a set of HTML, CSS, and JS should somehow liberating.

    Now I’ll give you a chance to contemplate on it.

    1. 1

      Well I'm afraid that nocode tools will restrict/limit my possibilities in the solution. That's why I want to learn those other tools.

  16. 1

    in order to release my product, I need to know react, redux, nextjs, firebase and learn about the deployment.

    Depends on your product, but most of the times you don't really need to know any of those. There are a lot of services that allow you to link together APIs or create apps using drag and drop editors.

    Also, if you don't like the learning/implementing part you can team up with someone else who already knows those technologies, or hire someone to do them for you.

    The development world is moving pretty fast, but you don't have to move along with it. If you knew how to make a website 20 years ago, you can write almost the exact same code today and it will work good enough.

    You don't need to use the latest and trendiest technologies just to get a product out.

  17. 0

    Go take a react & firebase bootcamp, you will learn all stuff within few hours, at least you can get started, then keep learning while you grow.

  18. 0

    it's what you ve been led to believe. You can build anything you want with LAMP+jquery .

    1. 1

      Totally agree. Just get it done by any means necessary. Software development is the fun part. The real work comes when you have to market it, keep it running, dealing with customers, and expanding your team.

      You’re not alone. There are many well crafted websites and applications out there that no one uses.