Taro Logo
35

How do I learn these essential skills that are not taught in school?

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

Came across this post on CSCQ where the original poster asks about what these missing essential skills. One reply had me wondering, how I can actually learn these points:

  • How to write things in a way that other people really understand what you're saying.
  • How to structure code so that you can come back to it in 2 years and understand it.
  • How to show off the work you've done.
  • How much testing is the right amount, and not too much or too little.
1.8K
1

Discussion

(1 comment)
  • 26
    Profile picture
    Robinhood, Meta, Course Hero, PayPal
    2 years ago

    Great question! I love all these skills - They are all very important for a software engineer, and school is indeed quite bad at teaching them.

    Writing In An Easy To Understand Way

    • The best way to get better at this is to get feedback. Sometimes your audience will tell you that they have no clue what you wrote. If they don't, you can always ask. Find the most junior engineer that's connected to whatever technical writing you put out and ask for feedback.
    • Honestly, I feel like going through the ELI5 subreddit is a good way to build up this muscle.
    • For advice on how to do clear, accessible technical writing (like software design documents), check out this Q&A from a Microsoft engineer: "How to improve on non-technical skills like writing Software design document?"

    Writing Code So Future You Doesn't Hate You

    • The same feedback concept applies here. Find the newest engineer or the most junior engineer on your team (bonus points if these are the same person!) and ask them if your code makes sense (just put them on your code review).
    • Of course, just revisiting your code helps a lot, and I wouldn't do it after 2 years, 3-6 months is probably enough. If you do this introspection properly, future you will definitely have thoughts on how this code could have been structured to make it easier to grok.
      • For me, I did this all the time with my side projects. I went for depth over breadth, so I copy-pasted code from old apps a lot. Since I had to read my own code constantly, I became very attuned to why it sucked.

    How To Show Off Work You've Done

    How Much Testing Is The Right Amount

    • It varies a ton based on circumstance, and there's really no right answer here. While the previous 3 questions are more well-defined in terms of good principles, this one is incredibly hazy. I also came from Meta, so I'm sort of a black sheep here (Meta probably has far fewer automated tests compared to peer companies).
    • I go in-depth on how I think about automated testing efforts in this discussion: "What's the best way to carry out an end-to-end (E2E) testing effort?"
A startup or start-up is a company or project undertaken by an entrepreneur to seek, develop, and validate a scalable business model.
Startups241 questions