Skip to content
This repository has been archived by the owner on Nov 6, 2022. It is now read-only.

A notebook containing everything I learned or found useful as a software engineer

License

Notifications You must be signed in to change notification settings

yltw27/software-engineering

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

49 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Software Engineering

A notebook containing everything I learned or found useful as a software engineer

I. Have a plan

  • This roadmap Learn to become a modern backend developer gives you a basic idea of what you should know/learn as a backend engineer. They also provide videos and roadmaps for frontend and DevOps engineers.

  • The tech lead engineer in my team once said A professional software engineer should be able to learn new stuff during working hours. It's good that you are willing to spend time out of work to learn, but it's not mandatory. Everyone has a life. If you feel it's hard to find time to learn, you should talk to your line manager.

II. Mindset

  • Keep improving and be confident about your problem-solving skills - You should be confident that you can solve a problem even if you don't know the root cause, techniques, or what tools to use yet.

  • There are endless issues to be solved, tasks to be completed. Be nice to yourself. Know when to rest and how to prioritize things.

Meetings

  • Always interrupt the meeting when you cannot follow and say something like "Sorry. I'm not following. Could we summarize what we've discussed so far?" When you are not following but keep pretending you understand everything, you are wasting your time. Remember, probably some people in the meeting are thinking about the same thing and they will appreciate that you speak up.

PR Review

Think of these questions before you are going to ask for PR review or when you are reviewing others' PRs

  • What is the purpose of this change? Is it necessary? Is there another way to do it?
  • What could happen if ... goes wrong?
  • Refer to this list of system quality attributes and think of what the PR creator might not think of

III. Keep Learning

Following the roadmap

JavaScript and ...

  1. JavaScript, The New Hard Parts
  2. React
  3. TypeScript

Next:

Developer 101

Web Security Knowledge

Design and Deployment Principles

  • Make functions as small as possible

Web Design

Infrasturcture

UI Design

Tips

  • Thinking about how the UI should look at any given moment, rather than how to change it over time, eliminates a whole class of bugs. link

IV. Tools

Some tools I use on a daily basis:

  • I use a Visual Studio extension named Markdown All in One to edit this document. Visual Studio has loads of plugins that can make your life easier

  • Figma, Mermaid.js for diagrams

  • Google Calendar to schedule everything and set up reminder for note review

  • asdf - A tool to manage node version across projects

V. Resources

Online Courses

  • Frontend Master - Javascript: The New Hard Parts (Highly recommended!!!)

About

A notebook containing everything I learned or found useful as a software engineer

Topics

Resources

License

Stars

Watchers

Forks