A software engineer is a software developer that embraces the task like a disciplin. And as any disciplin, like martial art, the various aspects get decomposed and trained inidividually.
As I didn't find much litterature, because I didn't search to be honest, on the practice. This is my attempt at doing just that. Look at all the things that I have learned in isolation and try to describe them the best that I can.
This has a lot of benefits:
- context-switching becomes easier.
- the content can easily be extracted into a blog post.
- management relations; it's good to be able to refer back to the work you did when asking for a raise or being evaluated.
- reading it later is useful to find meta patters to your work
The worse thing you can do is start filling your brain with other stuff like HackerNews / Twitter.
Use a paper notebook to write things down while away from the computer.
Being bored is the source of all creativity. Go for a walk, do some house chores that can be done on autopilot like the dishes.
Don't become a slave of StackOverflow.
There is a loooot to learn though. Pace yourself.
Like any skills, it stays shape when trained regularily.
Learning is also reading what other people are doing. Study the masters.
This article is for myself and is more of a brain dump for now.
Is it possible to decompose software development as a disciplin?
Learning how to describe issues, communicate with management, is an integral part of the disciplin.
Having the vocabulary to name variables accurately and precisely is important to convey what your code will do.
Being able to read fluently helps immensely to acquire new knowledge.
I like to take the socratic approach and ask a lot of questions. Questions are rarely unwelcome in my opinion because they show interest.
Being able to accurately convey the state of the code base is crutial to get management buy-in for addressing code debts.
Being aware of frictions in the daily workflow and addressing them creates a positive productivity loop.
Code has a mass. The less code you have, the easier it is to change it.
Learn how to type faster than your train of thoughts.
How much context can you hold into your brain at the same time? It would be interesting to know if this is a fix-sized limit or if it can be increased. What I know for sure is that the lack of sleep reduces that space dramatically.
Thinking is best done away from the computer.
I find that it's hard to know when I stopped being productive.
I noticed that video games that require
Necessary to keep the brain in shape.
- exercise
- drink water
- healthy diet, whatever that is
This is so important. Sleep is an interesting subject.
One common misconception is that if you miss 1 hour of sleep one day, it's enough to sleep another hour more the next day. This is completely false! It takes a long time to recover from a lack of sleep. Some scientists believe that we never entirely recover.
A lack of sleep has an impact on every part of the body:
- more cancers
- less muscles
- less energy
- less brain activity
- fat storage
30min of walk every day
A big topic right there
Obviously software design patterns are important.
- https://lobste.rs/s/xigh0i/what_makes_someone_good_programmer
- The Pragmatic Programmer book
- https://twitter.com/zimbatm/status/1153978311879602176?s=20