Six factors helps novice programmers improve productivity
Six factors to help novice programmers improve productivity
Being a programmer your job is to produce quality code that solves the problem in efficient way. By improving your productivity you can minimize the time require to build the quality. More you concentrate on programming and task on hand more are the chances that you produce high quality code.
In my experience instant messages of any form, emails, phone calls and improper use of tools may lead improved distraction and lower productivity. Let’s discuss the ways in more details and their resolution counter parts.
Points helps programmers improve productivity
Distraction of any kind is able to break your productive programming cycle no matter how optimize your development process is or how mature tools you are using. It’s always a good idea to minimize distraction that triggers your productivity the most. In short minimizing distraction will help programmers improve productivity. We have compiled a common list of distractions.
Instant messaging, Notifications from browsers (Gmail & Facebook in most cases), Emails and phone calls are some of the common and known distraction breaks your productivity. Spending some little time on such distraction may ultimately cost you some hours of productivity lose as you need some time to get into your focused and organized programming mind set.
Do one thing and completely focus the task on hand. Organize your activity on different time slots. Organize time schedule in such a way that you can allocate continuous longer time slot to your programming activity. You can have email checking – reply, Meetings and phone calls time in place. But they should not overlap your productive hours. Distraction free longer activity time will improve your productivity.
Start working on things without setting priorities to tasks would lead towards poor productivity. You may need to prepare some sort of task scheduling for the project you are working on. There are various sophisticated task management applications available, my personal favorite is Trello. You need to prepare a queue of tasks in some organized manner. Doing things in organized and systematic way would improve your focus on tasks. It will influence your work quality and boost productivity. So the bottom line is to create and follow some sort of schedule this helps programmers improve productivity.
Using task organizing tools. Trello will help you prepare a work queue, work priority and dead line for work. You can even invite member to various project boards and create a team on it. Generally these applications offers real-time collaboration, who is doing/working on which task(s) and what is need to be done. This will defiantly help you stay organized and productive.
Do check whether it offers functionality you need, do you get covered with updates and bug fixes and finally if it’s paid then is it worth investment? You need to ask these questions before finalizing the tool. Buy tools or IDE if needed. Not always open-source or free tools are good choice for your work. You may invite good amount of frustration, decently large learning curve and decreased productivity in the hunt for free tool. For instance choosing Visual Studio Paid version or free ware alternative software would be beneficial if you are suppose to do .NET programming and require advanced team foundation services, advanced testing and other such features. Choosing leading tools for certain technology will help programmers improve productivity.
Decide your tools before starting your project. In most cases you may not need to change tools for different projects. But if you need to change for instance do make research understand the learning curve and finalize it.
Yes, debug the code you write. If possible check each method you write with debugging to make sure you are efficiently use them and methods are behaving the same way you intended them while writing code. It’s a good idea to debug the code before sending it to production because fixing bugs on live systems are expensive then fixing them on development machine.
Any decent IDE would offer you a debugging functionality. Check the features guide if not sure about your IDE. You may consider TDD (Test Driven Development) or perform Unit Testing on your code.
Give proper and meaningful name to variables, methods and classes. Follow case convention for class name, properties and methods. Class and Method name should be written in capital camel case like ClassName and MethodName while the property names should be written as variableName. Follow your preferred pattern but stick to it through the project. This will help you quick start on project work when you resume working on project.
This naming convention is very helpful when other developer need to work on the same project. He/she might need to understand the convention on first place and rest of your code will be way easier for them to understand and resume working on it.
You should use version control for two main purposes. Make incremental changes and revert back to point functionality to your active code. Another one is team collaboration on your project. Version control will make you able to maintain the version of your code that you can revert to the previous check point.
If you have no exposure with version control systems, GIT would be a good start. Here is the link to start your first ever practical GIT version control journey. If you are using proper tools chances are like GIT is available out of the box.
Do hunt for a good GIT code hosting provider. If you are the only developer or a team up-to 5 members than bitbucket has a decent free offering for you. Read the features and terms. If you find it all good then signup and start using GIT distributed versions control system.
There are six factors to understand and change your working pattern accordingly to maximize your productivity. You need to manage distraction, organize tasks, use proper tools, debug your code in development (do run automated test if possible), casing and convention, and version control are the core element that you need to focus/include in your working pattern. This will not only result into better productivity but also boost your focus and quality of coding. This is my view on how novice programmers improve productivity, let me know your view on the same!