# Efficient Work Tips for Programmers

> Boost productivity and tackle workplace challenges with ease

Hello, I'm programmer Fish Skin.

When it comes to programmers, many students who haven't graduated yet might think that a programmer's job is all about writing code all day. However, once you enter the company, you'll realize that writing code is just the most basic part of the job.

To work efficiently and achieve growth and promotions quickly, there are many things and methods you need to pay attention to.

In this article, I'll share some programmer work tips I've accumulated over my career. It should be a light read for everyone~

💡 Note: The following methods may not apply to everyone and are merely suggestions.

## 1. Work Methods

### 1. Don't Rush Before Requirements Are Clear

When I first joined the company, I had a fresh graduate mentality: my colleagues were all seniors, and I needed to complete the tasks they assigned to me as quickly as possible.

Back then, I had an inexplicable confidence and thought some tasks were simple, so I just went ahead and did them.

Once, I thought a task was straightforward and told my mentor I could finish it in two days. However, after modifying the code and delivering it to the product manager, I realized I had completely misunderstood his requirements. It took me a few more weeks to complete the task.

Speaking of misunderstanding requirements, I recall a joke:

> A wife calls her programmer husband: "On your way home, buy a pound of buns. If you see someone selling watermelons, buy one."
>
> That night, the programmer husband came home with one bun...
>
> The wife angrily asked, "Why did you only buy one bun?"
>
> The husband replied, "Because I saw someone selling watermelons."

So, always remember: clarifying requirements is the first step in our work as programmers! This includes understanding the background, significance, and specific functional points of the requirements.

If the product manager doesn't provide a requirement list or enough information, make sure they provide a clear requirement document to ensure your understanding and goals are aligned before designing and developing.

Never accept one-sentence requirements, and never rely solely on verbal descriptions! Otherwise, if the product manager denies it later, you'll have no recourse.

![Requirement Document](https://pic.yupi.icu/1/1696339052753-853d6116-984f-4f94-8bdf-9cf40c61109a.png)

### 2. Don't Rush Development Before Upstream Is Confirmed

This point is similar to the previous one. For us programmers, there may be many upstream dependencies from different positions or departments, such as the product manager who proposes requirements, the tester who verifies functionality, the developer who provides dependent interfaces, or the operations team that grants resource permissions.

If implementing a requirement depends on some upstream factors, I personally don't recommend jumping straight into development (though you can start with design). In the workplace, there are always unexpected variables and risks.

For example, a while ago, I needed to develop data table B based on data table A provided by another department. Initially, they gave me the structure of data table A, but it wasn't clear, and the table hadn't been created or populated with data. If it were my early days, I might have started coding based on that structure. But later, the structure of data table A changed several times, and the table name was altered multiple times! They apologized, but I just smiled: "No problem, go ahead and change it. I haven't started yet, so let's wait until the table is live."

If it were the old me, I might have been frustrated, haha.

![Mental Breakdown](https://pic.yupi.icu/1/1696339052793-e3154265-d287-48e8-851c-86c43a831b75.png)

So this approach is quite useful and has saved me a lot of time.

However, for urgent requirements, it's best to hold a meeting with all upstream stakeholders to confirm the plan first, then proceed with development and alignment.

### 3. Learn to Reserve Time

As mentioned earlier, when I first joined the company, I was quite confident (now I realize it was a bit arrogant). I always thought I could complete tasks quickly and believed that finishing tasks faster would earn me recognition from my boss.

This led me to schedule tasks too tightly, often leaving me with unfinished bugs from one task while the deadline for the next task was approaching. Not only did this exhaust me physically and mentally, but it also made me look bad and disappointed others.

After managing a project for a while, I realized that often when working on a new task, users would suddenly report bugs in historical features, forcing me to drop everything and fix them.

So now, when working on tasks, I always reserve extra time to account for unforeseen issues. After all, as we all know, sometimes a single bug can take a whole day to debug...

![Reserve Time](https://pic.yupi.icu/1/1696339052824-38062959-00d7-4c9c-a00f-3583376a4737.png)

Even if I know I can complete a task in two days, I might give myself more time. If you finish early, it exceeds expectations; if you finish on time, it's normal; but if you miss the deadline due to bugs, others might think "you're not up to it."

Is this some kind of psychological game?

### 4. Learn Upward Management

In the workplace, many people have strong technical skills but still don't gain the boss's favor or get promoted. Why?

A major reason is the lack of **upward management** awareness.

Upward management refers to the ability to interact positively with superiors in daily work, proactively propose solutions, solve problems, provide continuous feedback, and maintain good relationships with superiors.

Here are some ways to practice upward management:

1) Proactively Offer Solutions: When you encounter problems or difficulties, don't just present the problem to your superior; try to propose feasible solutions.

2) Continuous Communication and Feedback: Within reasonable limits, regularly communicate openly with your superior, including expressing your ideas and plans, providing feedback on your work and achievements, and aligning with the team's goals.

Don't assume that your "awesome" work will be recognized if your superior is unaware of it or if it doesn't align with the team's or their personal goals.

3) Demonstrate Leadership: You should not only work under leadership but also make correct decisions without explicit guidance, embodying the "ownership mentality" in our company's culture.

4) Accept Feedback: If your superior offers suggestions or criticism, don't take it as an attack but as an opportunity to improve. Respond positively to feedback, showing your willingness to learn and grow.

## 2. Time Management Techniques

1) Create a Clear Task List

Organize your daily tasks by priority and check them off one by one to boost motivation.

2) Time Slicing

Divide your day into segments, focusing on one small task per segment to reduce the pressure of continuous high-intensity work.

3) Break Down Complex Tasks

Divide large tasks into smaller steps and tackle them gradually. This is especially useful for writing papers or handling large projects. When a task seems daunting, this approach is essential.

4) Learn to Let Go

Reject unimportant tasks and don't let minor issues disrupt your rhythm.

5) Reduce Noise

Limit phone usage and set your work environment to "Do Not Disturb." You're meant for big things—don't get lost in social media.

6) Balance Work and Rest

Rest is crucial. After a period of work or study, take a break and grab a drink.

7) Utilize Fragmented Time

If you're really busy, use commuting or other fragmented time to complete small tasks like replying to messages or reading articles.

8) Batch Process Tasks

Group similar tasks together to save switching time. I also advise our operations and sales teams to do this. If you check messages every minute, you won't have continuous time for other work.

9) Countdown Method

Set a strict time limit for tasks to encourage quick completion. If you've seen my tutorials, you know the classic "20-minute" rule serves this purpose.

## 3. Task Management

### 1. Don't Rely on Memory

Never rely solely on memory. Sometimes, when I leave my office, several colleagues approach me with various tasks, and by the time I return, I've forgotten some. So, it's essential to have a task recording tool.

What tools do you use to record tasks?

I used TickTick before, a high-level memo app, but I stopped using it because it required opening a separate app, which wasn't convenient enough.

### 2. Use WeChat for Recording

Now, my most commonly used temporary recording tool is WeChat, which we use daily.

In my work WeChat, the File Transfer Assistant is always pinned at the top. When I'm not at my computer and think of or receive work tasks, I send them to the File Transfer Assistant and mark them as unread. Every time I open WeChat, there's a noticeable red dot reminder.

![File Transfer Assistant](https://pic.yupi.icu/1/image-20240804144855349.png)

If I receive work messages that I can't handle immediately, I mark them as unread and pin the chat to remind myself to deal with them later. In the workplace, it's normal to encounter situations where messages are read but not replied to—perhaps the other person is temporarily unavailable or hasn't figured out how to respond.

### 3. Use a Work Record Sheet

Besides using WeChat for temporary work messages, a more systematic tool is needed to record daily tasks.

I use Tencent Docs' online Excel sheet, which can be opened directly in WeCom or a browser. The online Excel sheet is now very flexible, allowing easy customization for recording information, grouping data, etc.

For example, I group tasks by date, recording work items, notes, related documents, and progress. If a task isn't completed on a given day, I simply move it to the next day; if I'm worried about forgetting a task, I record it in the sheet in advance.

Reviewing the work record sheet daily helps avoid missing tasks, better manage time, and allows for self-reflection by reviewing past records.

Here's an example of my work record sheet:

![Work Record Sheet](https://pic.yupi.icu/1/image-20240804143618230.png)

Since leading a team, I've also developed a habit of planning the upcoming week's personal and team tasks in advance each weekend. This helps prepare better, control progress, and keep work orderly.

### 4. Review Red Dots Before Bed

Due to the high volume of work messages I receive daily, I can't respond to everything quickly—it would prevent me from focusing on tasks.

However, every night before bed, I review the "red dots" in WeChat/WeCom to ensure no messages are missed. This might be why my sleep schedule is irregular.

![Review Red Dots](https://pic.yupi.icu/1/image-20240804144027111.png)

## 4. Daily Record Summaries

Friends often complain to me that they've been in the company for a long time but feel they haven't grown much and don't know what to say during reports.

If you feel the same, you likely lack the habit of daily summaries.

I used to have a problem: when taking notes during online courses, I'd sometimes procrastinate, thinking I'd watch a few more episodes before recording. But as the number of unwatched episodes piled up, the pressure to take notes increased, and eventually, I gave up.

Does anyone else relate?

The same goes for work summaries. It's best to record your daily work, completed tasks, and milestones immediately, forming a habit of daily recording and regularly organizing, summarizing, and reflecting. Don't let tasks pile up until you're too lazy to record them, only to forget what you've done by the time you need to write a summary.

I've maintained this habit for three years, and it has greatly helped me. It constantly reminds me to reflect on my work rhythm and state, motivating me to try and break through.

## 5. Efficiency Improvement Principles

1) Complete Defined Tasks First

When unsure what to do, start with clear tasks. For example, if I lack inspiration for writing, I don't force it but move on to other tasks to manage overall progress.

2) Completion Over Perfection

Don't strive for perfection; completion is more important. Agile development and continuous iteration embody this principle. (Of course, if imperfect completion is meaningless to you, proceed at your own pace.)

3) Use Existing Code When Possible

Unless you're learning.

4) Plan Before Starting a Project

Conduct thorough research and design. This not only facilitates future program expansion but also avoids unnecessary rework.

5) Break Down Large Goals

Plan well, mark key milestones, and don't procrastinate because the goal seems distant or become complacent due to optimism.

6) Develop Good Habits

Find your golden hours for work. (Mine happen to be in the early morning...)

7) Record More If You Have Poor Memory

Even if you can't remember, use documents or bookmarking software as your second brain.

8) Build Your Tool Library

Use search software to access tools on demand.

9) Communicate with Team Members

Also follow some UP hosts to broaden knowledge channels and learn more tools and methods. Just hearing about something can save hours of searching when needed.

10) Find Your Flow State

For example, wear headphones, chew gum, drink coffee, or take deep breaths.

11) Experience Speeds Up Repetition

Therefore, take on more projects, accumulate experience, and practice makes perfect.

## Final Thoughts

Some might think: planning everything and confining life to Excel sheets is exhausting!

I say: Yes, it is exhausting. But after forming the habit of recording and planning, I no longer feel lost. I have clear goals, know what to do next, and don't worry about missing tasks. Plus, seeing my work record sheet fully completed gives me a sense of accomplishment!

That's all. Though abstract, I believe you'll find it enlightening and insightful.

In summary, I hope these tips help you achieve promotions and raises soon~

## Recommended Resources

1) Fish Skin AI Navigation Site: [AI Resource Collection, Latest AI News, Free AI Tutorials](https://ai.codefather.cn)

2) Programming Navigation Learning Circle: [Learning Paths, Programming Tutorials, Practical Projects, Job Search Guides, Q&A](https://www.codefather.cn)

3) Programmer Interview Cheat Sheet: [Internship/Campus/Job Hunting High-Frequency Topics, Enterprise Exam Analysis](https://www.mianshiya.com)

4) Programmer Resume Builder: [Professional Templates, Rich Examples, Direct to Interviews](https://www.laoyujianli.com)

5) 1-on-1 Mock Interviews: [Essential for Internship/Campus/Job Hunting Interviews to Secure Offers](https://ai.mianshiya.com)