27

What are product skills and how to develop them in the age of ChatGpt and CopilotX?

Profile picture
Mid-Level Software Engineer at Series A Startup2 years ago

Hey John, I hope you are well. I am really passionate about CS (specifically Software Engineering) and I want to pursue a career in it. But I can't help but be a bit concerned about the future availability of coding jobs due to Al (chatgpt4 and stuff). I understand it's hard to predict how things will be in the next 10-15yrs, but my main concern is that I may be putting in all this hard work for nothing. I'm concerned Al will make my future job(s) obsolete before I even get it. Any thoughts on this?


If you build full "product skills" and use the best tools for the job, which today might be hand coding, but later may be Al guiding, you will probably be fine.

I see....by "product skills" do you mean hard and soft skills?

Software is just a tool to help accomplish something for people many programmers never understood that. Keep your eyes on the delivered value, and don't over focus on the specifics of the tools.

Source: https://twitter.com/ID_AA_Carmack/status/1637087219591659520

Saw the above discussion on twitter and it got me thinking with advent of ChatGpt4 and Github Copilot X, what can I do to not get negatively affected by this change.

What are the various skills referred to as "product skills" mentioned in the above discussion and how should we go about developing them?

3.7K
2

Discussion

(2 comments)
  • 46
    Profile picture
    Tech Lead @ Robinhood, Meta, Course Hero
    2 years ago

    Saw the above discussion on twitter and it got me thinking with advent of ChatGpt4 and Github Copilot X, what can I do to not get negatively affected by this change.

    I'm not afraid of AI at all when it comes to replacing software engineers, and you shouldn't be either. In 95%+ of cases, the best software engineers I have worked with had a massive arsenal of useful skills on top of raw coding ability. This is because building quality software is an extremely ambiguous and complex process that only gets more multi-faceted as companies and user volume scale up.

    Once you move past the scale of an early-stage startup, the engineering part of shipping software includes more of the following:

    1. Communicating with PMs and designers to make sure that you're in sync and that the designs and requirements are engineering-feasible
    2. Crafting thoughtful timelines to make sure that everything is shipped predictably
    3. Meticulously thinking through system design
    4. Communicating status updates to huge swaths of stakeholders, including varying degrees of leadership
    5. Devising an experimentation plan as bigger features need to be A/B tested (Big Tech in particular is notorious for wrapping everything in an experiment)
    6. Creating a strategy around logging and data analysis to understand user value and monitor for bugs

    I can easily come up with 10+ more things, and as you can see, all of these important behaviors are non-coding.

    All of this reflected in my career as well: By my later days across Meta and Robinhood as a tech lead, coding was maybe 20% of my day. If a robot is going to abstract that 20% away from me, I don't really care - I still have this whopping other 80% to add value to my team.

    For a great resource on how you can also make this behavior shift and be safe from the robots, I recommend this video: This Is How You Become A Layoff-Proof Software Engineer

    What are the various skills referred to as "product skills" mentioned in the above discussion and how should we go about developing them?

    My interpretation of "product skills" is just reading it as is: Skills that improve the product.

    Of course, writing code is one of the most straightforward ways to improve a software product. But it's far from the only way to do so:

    • Talking to users and discovering a sorely needed missing feature improves the product
    • Diligently analyzing logs and identifying a tricky crash improves the product
    • Being the person who is able to build consensus among the quarreling 5 different teams in your org so you can actually ship new features at a reasonable pace improves the product

    A very accessible way that anybody can improve their product skills is to build side projects, which I talk about in-depth in this video: How To REALLY Level Up Your Coding Ability With Side Projects

    I have shipped ~30 apps to Google Play with 3 million+ users combined, and having to own each of those products end-to-end helped me build up a lot of non-coding product skills like:

    • Crafting intuitive UI/UX
    • Empathizing with the end-user by reading and replying to reviews
    • Product management by using my intuition and user feedback to come up with useful new features

    Lastly, here's a good thread around how to develop into an exceptionally well-rounded software engineer: "What are the Core skills a SDE should be consistently developing?"

  • 6
    Profile picture
    Startup Engineer
    2 years ago

    Hard work is never wasted if it is used to build good habits.

    The "product skills" Carmack is talking about is basically capital D "Design", specifically Human-Centered Design since he's not talking about art or philosophy but something with utility. AI is probably centuries away from figuring out what we want, value, and find aesthetically pleasing. That is my guess 🤷‍♂️

    In case you're wondering what I mean by "capital D Design": https://start.uxdesign.cc/