Skip to content

Latest commit

 

History

History
63 lines (49 loc) · 4.9 KB

README.md

File metadata and controls

63 lines (49 loc) · 4.9 KB

Some advice I pass along to other software engineers sometimes.

General advice

  • Meet people! See what you can learn from what they're doing, and maybe you can share what you're learning too. Also, learn about where they're working. You can ask them if they know of any job openings.
  • Learning programming/software engineering skills
    • FreeCodeCamp - lots of good in-depth tutorials in many different areas (full stack, AI/ML, data science, even data structures/algorithms)
    • DataTalksClub - DataTalksClub has free online courses and cohorts for learning data engineering, ML, MLOps. Includes homework as well as projects and a slack community
    • Side projects - pick something you want to build (doesn't have to be totally novel or earth shattering), build it, and find ways to go deep (this is the most important part)
      • Austin Henley's project ideas
      • Publish your side projects in Github. Even if the company you're interviewing at doesn't look at your Github, it's good to have a record of what you learned
    • Write learnings in a personal blog - a good way to track what you're learning and also publicly show it
      • This also helps you solidify what you're learning. If you can explain it, it means you've learned that topic well
      • Start simple. Even text notes saved in a Google doc or Github is better than nothing.
      • Dev.to is one example of an online community where people write blogs about their learnings

Interviewing

  • Polish up resume.
    • Showcase what you've done for the "3 Cs": company, customer, colleagues. How did you bring value to these 3 very important aspects of your job? (the 3 Cs aren't relevant only for interviewing; they're also important in your day to day and affect your career growth!)
    • Not only "what you did" but "why it's important".
    • Preferably keep it to 1 page
  • Always ask clarifying questions (no assumptions, make it clear to yourself and interviewer what you're trying)
  • Mock interviews
    • Ask friends, school colleagues, etc. if they can help you do mock interviews
    • Interviewing.io also provides some anonymous interviews, might cost money
    • Youtube mock interviews - Lots of recorded mock interiews on youtube
  • Technical interview preparation
    • Data structures & algorithms
      • Blind 75 - Leetcode questions that are categorized. Very helpful in learning the types of questions interviewers ask
      • NeetCode 150 - Blind 75 + 75 more problems
    • System design
    • Interview preparation newsletters - 2 that I recommend for system design and FAANG interview questions

Books

A lot of the information in books can be found for free on the internet, but books provide a nice packaging of the ideas. A good book's ideas will flow logically, and the structure makes it easy to consume and process these ideas.

"Power skills"/leadership/career growth

Call it soft skills if you want, but these are the skills that actually help you go places and get things done

  • Crucial Conversations (Kerry Patterson) - learn how to talk to people effectively
  • Never split the difference (Chris Voss) - I'm not great at negotiating things, but this book helped me change how I approach discussions
  • Extreme Ownership (Jocko Willink)

More engineering focused

  • The Phoenix Project (Gene Kim) - project management in the form of a very relevant story
  • Staff Engineer (Will Larson)
  • The Staff Engineer's Path (Tanya Reilly)
  • The Manager's Path (Camille Fournier)
  • The Software Engineer's Guidebook (Gergely Orosz) - note: I did not read this yet, but I have read most of his newsletters and they're packed full of awesome information

Technical skills