Web programmers are occasionally faced with extreme technical challenges. When this happens, great programmers use common tools and tactics to get to the best solutions.
I’m surrounded by awesome programmers here at Webbuilders Group. Having been a programmer myself, I've come to appreciate how the habits of successful programmers can help in all areas of my job. Here are 5 work tips I’ve learned that you can apply to your industry:
1. Don't memorize answers, memorize places to find answers. Being able to memorize lots of information is impressive, but it has its limits. Your brain would be better off learning where the cookbook is than memorizing all of the recipes inside it. There's simply too much we're all tasked to remember in today’s data-centric world. Google provides an awesome place to find quick answers: from math problems, to the Olympic medal count, to data models for automotive collisions. However, Google is only one cookbook. You want to build more niche sources where answers can be found to specific problems or challenges as they arise. I’m not saying you don’t need to understand anything anymore, but if you have places you can go to help develop solutions to problems or challenges, your life will be a lot more satisfying. In the example of the cookbook, you don’t need to memorize the ingredients, or even the steps - but you still need to appreciate the chemistry that happens, and why 'kneading' is different than 'stirring'. The point is, reserve as much of the brain’s memory power for where it's needed most.
2. Create shortcuts for common tasks in your day. This is more than just creating bookmarks of common websites you visit. It's about finding ways to automate or streamline tasks you repeat in your day. Again, taking an example from good programmers, they often use an "auto complete" system which allows them to quickly generate code without typing everything out (sort of like when you start typing in Google and it begins suggesting results even before you've finished typing). It might only save you 5 seconds, but multiply that by a few thousand during a big programming build and you've saved everybody a ton of time and money. Think about some things you do in your every day. Can they be simplified, streamlined, or automated? Perhaps you spend a lot of time sorting through and organizing emails, when you could create filters/rules in your email program to do that automatically.
3. Build a network of colleagues. It may seem like you're rowing the boat in the other direction when you take time to help others, (getting further away from your own tasks) but time and again I see how someone I once shared some knowledge with or helped was able to reciprocate by helping me with a problem of my own. Even if you think, "I have everything I need in my 4 walls" today, you may not tomorrow. Challenge yourself to stay connected with knowledge people in your industry or profession. Share what you know and lend a hand. Your peers will return the favor.
4. Make your questions count. Programmers used to have a unique advantage when it came to accessing external help. On-line discussion forums, made up of members from around the globe (experts who may have already solved the problem a programmer is challenged with) remain a regular source of great information. Consumer forums now follow this model. Want some advice on which new car best fits your needs? Or how to find a great hotel in a strange city? The answers are out there. If you ask your question properly, people will gladly share their knowledge. The best programmers ask their questions in a way that encourages a helpful response. Great programmers:
a. Don’t ask lazy questions. They first try to find the answers via existing sources (past forum posts, FAQ pages, operating manuals, etc.)
b. Carefully choose the right audience for the question. (Don’t ask a high-performance car specialist which winter tires you should put on your Honda Civic)
c. Take the time to phrase their questions clearly and with correct grammar
d. Are precise about their challenge, and if appropriate say what they’ve already tried
e. Don’t ask a yes/no question unless they want a yes/no answer
f. Don’t ask pointless questions like “can I ask you a question?” or “Does anyone have an answer?” Just ask the question you want answered.
5.Retry. retry. retry. Programmers who successfully overcome really tough technical challenges tackle problems from a number of angles. This is largely about willpower and ambition: something seemingly impossible may be possible just by allowing ourselves to take a fresh approach. It may mean aborting a previous path you spent many hours pursing. It can be hard to abandon anything you’ve put your blood, sweat, and tears into - but that shouldn't cloud the end goal. It's better to be objective and realize that if something isn't working, it's time to rethink. Steve Jobs had the vision of fitting the power of a laptop and a phone into the palm of your hand. Do you think he gave up when the engineers told him it wasn't possible because the components were too big to fit in such a small case? Imagine when they got to where they thought they had a solution, after countless hours of development, only to realize it wouldn't work because of some other factor (such as the battery life). Do you think he stopped there? Don't let others tell you something isn't possible. In fact, be skeptical of your own doubts!