0

How to optimally use GenAI to leverage my coding prowess and become a better software engineer?

Profile picture
Mid-Level Software Engineer at Seed6 months ago

I have 3+ years of coding experience, primarily in Java, and working in a Fintech startup. The backend is primarily powered via Spring Boot here.

I heavily use Gen AI services like ChatGPT & ClaudeAi while coding. While this has helped me learn new things, I am beginning to see a mental pattern emerge.

I often find myself generating code rather than writing it myself. Sometimes this also leads to drag, as I am left explaining the context to GenAi. The pro is that I perhaps get a more optimal, finetuned code leveraging the large language model's knowledge capabilities.

Is that an optimal path I am headed for? Or should I introduce an emergency tweak in how I work to better my career as a stronger, confident software engineer?

Thanks.

108
3

Discussion

(3 comments)
  • 2
    Profile picture
    Tech Lead @ Robinhood, Meta, Course Hero
    6 months ago

    From my experience, AI is the most useful when you use it as a macro. In other words, you should use it to do things that you already understand and know how to do. In the past when I had to write a block of Android code that I've thematically written 10+ times before, I would copy paste it from another project or file and make the corresponding tweaks. Now I just get ChatGPT to do it if possible.

    If you're using AI in territory that's even just slightly unfamiliar, you should treat it as a mentor. If you're a good mentee, you wouldn't just get an answer you don't understand and run with it. You would ask follow-up questions until you fully understood the answer your mentor gave you, why they chose that approach, and how they came up with it.

    Here's some other good resources covering this:

  • 2
    Profile picture
    Eng @ Taro
    6 months ago

    While this has helped me learn new things, I am beginning to see a mental pattern emerge.

    When I started coding 15 years ago, and I came upon a coding roadblock, I'd go through the following sequence:

    1. I would do a Google search describing my problem.
    2. I would usually click on the first StackOverflow link to find the answer. I'd have to read through a few answers
    3. I'd have to tailor an answer to my specific situation.

    I'm pretty sure this is how a lot of people who came up coding around my time learned how to solve any coding problems they were having. I learned a lot this way. But, with these new generative AI tools, you can learn even faster because you can ask the tool about very personalized pieces of code, and you can ask follow up questions within the same context. The previous flow is reduced down to:

    1. Ask ChatGPT how to solve my problem given this very specific piece of code.

    For me, these tools have been the biggest time savers when I need to integrate multiple libraries together. This is because the most time-consuming part can be parsing through the documentation of different libraries. A lot of libraries don't have the best written documentation. Being able to get an example piece of code of three libraries being used together and tweaking that example saves me a lot of time.

    Is that an optimal path I am headed for? Or should I introduce an emergency tweak in how I work to better my career as a stronger, confident software engineer?

    Knowing the higher level concepts is the most important thing. If you are just blindly copying and pasting code from ChatGPT, that is going to catch up to you because you will be forced to come up with your own solution when ChatGPT can't give you the answer you are looking for.

    If you know the underlying concepts, and you are using ChatGPT to speed up your work, there's no issue. Even as a professional software engineer, you end up delegating work and working on higher level system design as you get more and more experience.

    Sometimes this also leads to drag, as I am left explaining the context to GenAi.

    In my experience with using ChatGPT, if it doesn't produce something useful within the first few responses, I will usually give up on it and figure out the solution myself. I've found that when I try to add extra context, ChatGPT will still continue to give poor results. I haven't used Claude yet, but someone told me they had better coding results with Claude.

    • 0
      Profile picture
      Mid-Level Software Engineer [OP]
      Seed
      6 months ago

      Thanks Charlie!