Are you a programmer or software developer looking for a new way of expressing frustration? Do you work in a tough, high-octane environment where the only acceptable form of expressing your frustration is with a deep sigh or resting your weary head on the desk?
It might help you to know that hair pulling, teeth grinding, and in some extreme instances, screen bashing (with a head, as long as you own it) is ‘acceptable’ behaviour in some places, because when you get into a really tight corner, you just need to let off some steam.
Yes, life gets tough for everyone… and programmers are not excluded.
So what do you do when things get really difficult and your frustration levels peak? In this article we will be sharing some valuable insights on what to do before things get really tough, how to get going when that software development project gets somewhat rough, and how to cope after a really challenging assignment.
How to prepare for potential challenges
1. Prepare your environment
By environment we actually mean your core development environment. This is your fundamental responsibility and you would not expect your programming partner or buddy to take up this chore on your behalf.
Also, you’ll always want to work with a high end Integrated Development Environment (or IDE) whenever you get the chance in a software development project; the reasons are obvious. IDEs that come with Intellisense are good examples. This is a great feature that can considerably increase your productivity as it provides logical code elements that you can select from a drop-down menu when typing code. Other bonuses are readily available templates/libraries that can be imported to make coding neater and friendly debugging tools. These are just a few out of the many advantages you gain when you work with a sophisticated IDE. But which should you use? Well, Eclipse and IntelliJ are examples of neat IDE’s that come in handy for Java programmers, while PhpStorm is a good option for developers that work with PHP.
PHPStorm
PHPStorm

2. Build a Code Snippet Library
A code snippet library is something you should have collected and archived over the months and years as you move from one project to the next. Experienced software developers always create and update personal code libraries which contain pre-written and pre-tested code that might come in use for future projects. More often than not , you do not need to re-invent the wheel (but only tweak it) when you have a decent snippet database.
You can choose to organize these snippets on your local development machine, and yes, there are a couple of softwares that come in handy for doing this. Code Bank and Snippet Manager are just two in a long list of many that help you in organizing your snippets. Another option is to store it online, and in this case you can also choose to share and make it available for other developers. There are quite a number of platforms, such as Snipplr and Pastebin that can be used to store and manage your code libraries effectively.
3. Frameworks
Frameworks are also good to know and master when you carry out regular projects and there are more than enough frameworks to help you get started with your projects. If you are into web development and familiar with frameworks, you will agree that they don’t just save you time; they also save you from a lot of pain. You can find useful frameworks for almost every design task on the Internet. For example, Web designers can use the Twitter Bootstrap Framework which comes with fantastic, inbuilt components that help in building responsive applications or sites quickly.
Twitter Bootstrap
Twitter Bootstrap

4. Make comprehensive code notes
All good coders will have notes next to every step, so if a new editor enters the project, they will easily be able to navigate the original programmer’s coding logic. Lack of editing in a source-coder is a sign of rushed or lazy work, which is not an impression that you want to give.
How to deal with mid-project hiccups
When you’re in the middle of an overwhelming project and your deadline is fast approaching , you will need some skill-sets, separate from your technical skills, to ensure that you can keep moving. The top three amongst the list are:
1. Patience:
Contrary to popular belief, patience is not a ‘gift’ or something the next programmer has and you don’t have. It is simply a chance to show how cool you can be when things get really tough. So the higher the number of ‘jams’ you get into, the more opportunities you get to show how ‘cool’ and collected you can be.
2. Perseverance:
And while you are showing off how cool you can be, you also need to keep persevering until the job at hand is completed. However, the human brain is like a muscle, you might need to take a break or get some rest before you can continue with the job. And remember, there is no feeling like that high you get when your codes run perfectly.
3. Be realistic:
There’s no point in hitting a deadline with ‘buggy’ code. If you’re not going to make your deadline, you’ll do more harm to your reputation by releasing something that doesn’t work… even if it is on time.
And when it’s all over...
When it’s all over, don’t forget to pick up the journal called ‘Lessons Learned’ and document what you did right and wrong (and maybe share this with other members of your team).
After all, experience is a good teacher and a well-documented experience is a better one.
Enjoying a satisfying career in programming requires High Frustration Tolerance.
How to measure your HFT? Well, that is a discussion for another day.
