[GitHub Global] Translate Vibe Coding 零基础教程/40 编程学习/09 程序员工作技巧.md to en
This commit is contained in:
committed by
GitHub
parent
e263bea182
commit
5f14d53562
@@ -0,0 +1,257 @@
|
||||
# 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.
|
||||
|
||||

|
||||
|
||||
### 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.
|
||||
|
||||

|
||||
|
||||
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...
|
||||
|
||||

|
||||
|
||||
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.
|
||||
|
||||

|
||||
|
||||
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:
|
||||
|
||||

|
||||
|
||||
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.
|
||||
|
||||

|
||||
|
||||
## 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)
|
||||
Reference in New Issue
Block a user