# Level 4: Productivity Handbook for Software Engineers

## Productivity Handbook for Software Engineers

## Manage your attention not your time

> The new economy requires you to have 2 core abilities
>
> * The ability to quickly master hard things
> * The ability to produce at an elite level, in terms of both quality and speed
> * Deep Work

### What I do to manage my attention

1. My first 3-5 hours in the morning either at work/weekend days I specifically dedicate it for deep work for personal/professional growth
   1. No social media
   2. Clearing my space and my surrounding from any distraction
   3. Solving the problem at hand
2. I go for multiple walks as time-break
3. A great performance to reach is : 6 hours/day of focus on researching, designing, and shipping code, next 2-3 hours for meetings, breaks…
4. Maintenance day: I batch many tasks and do it in one day, things like cleaning my car, buying needed items, or fixing something at my home all of it happens in a single day. Interruption in the middle of the day is the enemy of deep work
5. I know what I’m going to learn or research for my next week before the week starts, thinking of what I want to learn at the middle of the week is a slow and a distracting process

### Learning

#### Learning totally new subject

1. Learn it **only on the weekends**, specially mornings are perfect for digging deep into a subject,

💡 Attention residue: you have limited attention for your day, there is couple of studies that indicate you can increase it a little bit, but generally it’s limited. So at the end of the day is not a good way to stat a heavy subject

1. Taking notes to build a mental model 🧠
2. Using tools such as
   1. [Miro](https://miro.com/) or [Whimsical](https://whimsical.com/) for mind maps
   2. Notion pages to bookmark related pages to the subject 🔖
   3. My iPad to draw diagrams and summaries of the most important information 〰️

#### Your are familiar with the subject and wants to improve your knowledge

1. You can learn it part of your day job, or at night: The mental model of what this technology is for, how to use it and so on is there, you can improve and maintain your knowledge at low-focus mode 🎴
2. Levels of understanding:
   1. Basics: Try to create something as fast as possible
      1. Did you learn the basics very well? 🤔
      2. Did you implement many through-away prototypes ? 💻
   2. Intermediate:
      1. Build a mind map of what you learned so far 🗺️
      2. Explain it to yourself, once you noticed a gap of how you articulated a topic, put a todo to learn it be ✅
      3. Try to improve it with time, as if you are building a game of Legos, and the Legos are the topics
   3. Advanced:
      1. Start learning about motivations behind this technology, why does it exist, what is the history of solutions that comes before it
      2. Best practices and conventions
      3. Use cases and engineering teams experiences about it (engineering blogs are extremely helpful in this context)

### How I use Notion 🏡

#### Life Wiki for monthly planning

1. Life: General improvement guidelines
2. Growth: Reading list
3. **The Week ahead**: each week I update and maintain the month list (Levels by importance)

![Untitled](/files/ZMXf20Z76sgSwshcyD4b)

#### PR Checklist 🚀

> Before submitting a PR, I check a checklist page with all of needed items to be checked (read the checklist manifesto book if you are interested)

### Other apps that I use

1. Manage my tab better with Alt-tab

[AltTab](https://alt-tab-macos.netlify.app/)

1. Search better with Alfred 🔍

   [Alfred - Productivity App for macOS](https://www.alfredapp.com/)

## Software Engineers ⚡

How I use Fig

Command line tools

Develop on the cloud


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://abdulrahman-1.gitbook.io/my-digital-garden/level-4-productivity-handbook-for-software-engineers.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
