About programmer work efficiency
This morning I came across an article by George Stocker, "How to Destroy Programmers' Work Efficiency", and an article by Joel Spolsky, "A Shot and a Change of Place." These two blog posts talk about programmer productivity issues, specifically patterns that reduce productivity. So I thought about sharing my practical experience of improving my productivity.
Passion
The first tip to improve your work efficiency is to be passionate about the projects you work on every day. You must be sincerely optimistic about the project you want to do. You have to imagine how cool it's going to be a year, two years, three years from now. A few times I took a moment to think: hey NDepend (my project) has evolved so much over the past two years. Two years ago, I imagined that all these new features and improvements it would have would be science fiction. Today it is a reality and has been shipped to real-life users around the world. So cool!
Patience and Faith
So not only passion, but even love and patience are needed. Measuring the work achievements of the past X years has made me realize that doing one feature at a time, one improvement, one bug fix, and one line of code is written. This one-at-a-time thinking keeps me improving. Every success in the past breeds more success in the future. Motivate yourself every hour to be more productive because there is nothing more important (professionally) than this.
It seemed like I spent the whole day solving an annoying bug today, and if I hadn't been so stupid all the time I probably would have fixed it in half an hour! There is no pressure at all. Too many things like this have happened in the past. Looking back on the road I have traveled over the years, I understand that this is the path I want to take. This is confidence.
Start now
The central point of a project should be that we know where to go. Short term (days, weeks), medium term (months), long term (years). What the short term means to me is that my code base is filled with priority comments, with priority 5 being more urgent than priority 4. This may sound like a very basic to-do list approach, but to-do lists have powerful advantages. Action plans appear where programming operations must occur. Therefore, starting work on an action plan eliminates the process of figuring out where to start programming priorities. Starting this behavior right away (or not starting it right away) is a productivity killer. So anything that helps you start writing code right away is a productivity asset.
Another benefit of action planning is that when all the planning is done, the job is done. Since all tasks surrounding programming (writing tests, code reviews, verification, etc.) can and must be arranged in action plans, no action plan is no longer a simple definition of work done.
Focus
Of course at some point the action plan has to be laid out and then the code has to crawl to where they most likely should be. Usually this is what happens when starting work on a thing (a product backlog item). At this point the product backlog items are transformed into (several or many) priority backlog items, with the priority depending on the size of the product backlog item. It might be a bug that takes an hour to fix, or a feature that will take 3 months to develop.
You shouldn’t have more than 10 priority to-do items at a time, because an important tip to increase productivity is to focus on what you’re doing. Therefore, this function can be broken down into 90 first-class priority to-do items and 10 second-class priority to-do items, and then we can select 10 of the 90 first-class priority to-do items to complete. If the Type 2 priority to-do you are currently working on is too worthwhile, you can convert it into a Type 3 priority to-do and so on.
In this way, every morning you only need to look up the to-do items in your workspace and you will know what to do immediately. You don't have to think about what to do today, just start right away and stay focused.
Goals
Imagining mid-term (months) and long-term (years) goals can cultivate work passion and day-to-day work efficiency. There must be two to-do lists kept to do this. Since NDepend closely follows the release of Visual Studio, our sprint period is about 12 to 18 months. So we have a mid-term list of things that need to be done between now and N months before we release the next major version. The mid-term list is driven by both ROI (return on investment, the ratio of feature performance to development investment) and user voice, which provides good input on the performance of each future feature. The same applies to long-term lists, except for lists that are not bound by a sprint period.
Psychology
So far, I’ve highlighted several project management and organizational experiences that illustrate how keeping passion intact can lead to increased productivity. But passion, patience, information, getting started, focus, and goal setting are all about psychology. Here are a few classic psychology practices for staying productive:
It’s certainly essential to have a healthy and happy life. Personally, I need other things in my life besides programming: friends, family, kids, and hobbies. There are a few hours every day that must be dedicated to something other than code. One must sleep well and work during normal hours. When you are most focused on work (usually early in the morning or late at night) you must determine the time and try to work during this special time. This may sound obvious to you (and me), but the super obnoxious individuals out there need to be aware of this. You can't write code for 14 hours a day and still be productive on a long-term project.
I find that exercise has become the most creative way to enhance my programming career. Running regularly is a productivity routine for me. Not only does this process allow me to come up with new ideas naturally, but endurance exercise also triggers the rapid secretion of endorphin hormones, which can very well relieve pain and stress. People who run can actually easily become addicted to this, which is a very enjoyable process. I regard exercise time as part of my working time. Doing this is very practical and never miss a meeting. Incidentally, I recently discovered that Alan Turing came up with a lot of his great ideas while running (he almost ran the 1948 Olympic marathon).
In addition to exercise, I also meditate every day, especially MBSR (Mindfulness-Based Stress Reduction). Doing this makes me quieter, more peaceful, and more focused. MBSR is very simple and can be done several times a day during a meeting of just a few minutes. It is mainly based on developing people's ability to feel the present moment through breath observation, awareness, and feeling of the environment. The key is to develop the ability to "not be happy with things and not be sad with yourself". We all know that if a person wants to build muscle, he must exercise, but few people understand that the brain can and must be trained to function well. In general, MBSR and meditation are used to train and develop the brain and cognitive abilities.
When linking psychology and work efficiency, we often hear the concept of "flow". "Being in a state of flow" means being completely focused on the current activity. Achieving the conditions for "flow" is the god of work efficiency: maintaining passion for work and solid skills. We often hear that it takes 10,000 hours of practice to master a skill. "Flow" happens more to experienced programmers. Another condition for the magical "flow" to occur is to accept tasks that are challenging enough. It's impossible to achieve "flow" by doing simple things. The good news is that programming is not an easy job.
Of course, avoiding interruptions is also a very important aspect when it comes to work efficiency. There are some interruptions that you can control, such as processing emails twice a day in batch mode instead of debating online, browsing social networks from time to time, etc. This is where meditation and exercise play an important role, because concentration is improved. . There are also uncontrollable interruptions, whether they're colleagues, meetings or kids (if you work from home). You have no choice but to deal with these interruptions and focus as quickly as possible.
For those of you who didn’t get to work with me, here’s a bonus theory. For example, I do 3 hours of coding work in a group arrangement, and then I go to the beach for an hour. This doesn't just work for me. I think of it as a reward if I want to go to the beach after I finish work. Reward theory may work for people who are not passionate about their work. The first responsibility of your career is to find a job that makes you passionate.
Receive LAMP Brothers’ original PHP tutorial CD/"Essential PHP in Details" for free. For details, please contact the official website customer service: http://www.lampbrother.net
PHPCMSSecondary development http: //yun.itxdl.cn/online/phpcms/index.php?u=5
WeChat development
Mobile Internet Server Side Development http://yun.itxdl.cn/online/server/index.php?u=5
JavascriptCourse http:// yun.itxdl.cn/online/js/index.php?u=5
CTOTraining Camp
|

Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

Video Face Swap
Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Article

Hot Tools

Notepad++7.3.1
Easy-to-use and free code editor

SublimeText3 Chinese version
Chinese version, very easy to use

Zend Studio 13.0.1
Powerful PHP integrated development environment

Dreamweaver CS6
Visual web development tools

SublimeText3 Mac version
God-level code editing software (SublimeText3)

Hot Topics











In PHP, password_hash and password_verify functions should be used to implement secure password hashing, and MD5 or SHA1 should not be used. 1) password_hash generates a hash containing salt values to enhance security. 2) Password_verify verify password and ensure security by comparing hash values. 3) MD5 and SHA1 are vulnerable and lack salt values, and are not suitable for modern password security.

PHP is a scripting language widely used on the server side, especially suitable for web development. 1.PHP can embed HTML, process HTTP requests and responses, and supports a variety of databases. 2.PHP is used to generate dynamic web content, process form data, access databases, etc., with strong community support and open source resources. 3. PHP is an interpreted language, and the execution process includes lexical analysis, grammatical analysis, compilation and execution. 4.PHP can be combined with MySQL for advanced applications such as user registration systems. 5. When debugging PHP, you can use functions such as error_reporting() and var_dump(). 6. Optimize PHP code to use caching mechanisms, optimize database queries and use built-in functions. 7

PHP and Python each have their own advantages, and choose according to project requirements. 1.PHP is suitable for web development, especially for rapid development and maintenance of websites. 2. Python is suitable for data science, machine learning and artificial intelligence, with concise syntax and suitable for beginners.

PHP is widely used in e-commerce, content management systems and API development. 1) E-commerce: used for shopping cart function and payment processing. 2) Content management system: used for dynamic content generation and user management. 3) API development: used for RESTful API development and API security. Through performance optimization and best practices, the efficiency and maintainability of PHP applications are improved.

PHP type prompts to improve code quality and readability. 1) Scalar type tips: Since PHP7.0, basic data types are allowed to be specified in function parameters, such as int, float, etc. 2) Return type prompt: Ensure the consistency of the function return value type. 3) Union type prompt: Since PHP8.0, multiple types are allowed to be specified in function parameters or return values. 4) Nullable type prompt: Allows to include null values and handle functions that may return null values.

PHP is still dynamic and still occupies an important position in the field of modern programming. 1) PHP's simplicity and powerful community support make it widely used in web development; 2) Its flexibility and stability make it outstanding in handling web forms, database operations and file processing; 3) PHP is constantly evolving and optimizing, suitable for beginners and experienced developers.

PHP is suitable for web development, especially in rapid development and processing dynamic content, but is not good at data science and enterprise-level applications. Compared with Python, PHP has more advantages in web development, but is not as good as Python in the field of data science; compared with Java, PHP performs worse in enterprise-level applications, but is more flexible in web development; compared with JavaScript, PHP is more concise in back-end development, but is not as good as JavaScript in front-end development.

PHP is mainly procedural programming, but also supports object-oriented programming (OOP); Python supports a variety of paradigms, including OOP, functional and procedural programming. PHP is suitable for web development, and Python is suitable for a variety of applications such as data analysis and machine learning.
