A notebook containing everything I learned or found useful as a software engineer
-
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.
-
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.
- 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.
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
Following the roadmap
Next:
- Learn a state management library (e.g. Redux, zustand)
- Preact
- JavaScript Performance
- Full stack fundamental
- Functional Programming
- Web development basics
- Learn how to use Chrome DevTools Note
- Make functions as small as possible
- 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
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
- Frontend Master - Javascript: The New Hard Parts (Highly recommended!!!)