Share this content on Facebook!
12 Feb 2016
Finding Top Programmers - Helpful tips for Hiring the Best Developers

Finding the right programmers can be a daunting task. For non-technical people like entrepreneurs and small businesses, the job can be downright nerve racking. People search for the one elusive "Super Developer" or "Uber Programmer" to solve all their software problems, by 50 % the time, with no bugs. These super programmers are out there. I've met them. I've endured them. They go on a different plane than us mere mortals. And they also all work at Google.

iOS



Nevertheless, you can find excellent developers who will complete projects promptly, with the desired specifications. One answer to finding awesome developers is knowing how to evaluate them. This document will help you through the means of selecting programmers with the proper qualities.

Because everybody's into acronyms let's coin anyone to describe the traits associated with an excellent developer - JUICED (despite the word's negative connotation with steroid use and OJ Simpson.) Even if you don't want your programmers to kill to have code out on time, you are searching for somebody aiming for the aim post.

Judgment

Let's begin with J (is the first letter from the word "Juiced") which represents Judgment. Not judgment as in you're waiting till judgment day for your web developer to finish the project. Judgment as in your programmers have good judgment and so they exercise it. To stress why judgment is really important I'll allow you to in one big key to software development:

Most software projects fail because individuals work on the wrong things.

No longer anything else in this article yet still be more informed about software development than 97% of businessmen (and never have to spend thousands of dollars on expensive degrees). Precisely what does it mean to "work about the wrong things?" I'll present you with an example. Say you have a task to build a website tracking gas prices by geography. The consumer enters an address and sees a listing of gas stations and the newest prices submitted with a user.

Now your developer should code up a Google map, since it is cool an interesting. But, he could spend too much time, when a simple list may have sufficed. Before spending a lot of time coding one particular feature, an excellent programmer will use judgment and look with the customer or project manager to ensure time spent is consistent with budget, timeline, and priorities.

Understanding
Naturally a programmer must understand the application in order to make it be the customer desires. With a basic level, it helps for your programmer to have a solid grasp of written and spoken English. I've managed many programmers with English being a second language with excellent results. Today you're likely to run into programmers with English like a second language, therefore it is not really a problem.

While the spoken language is important, the programmer must learn the language with the client's business. Each industry and project possesses his own set of terms, an original nomenclature. A good programmer will see the language and how it relates to the final application.

Along with comprehending the problem space, an outstanding programmer will accurately read and interpret the work specifications. Because no spec is perfectly written, a great developer will ask relevant questions after reviewing the important specifications. These questions demonstrates an understanding of the application and may reveal missing details or an inconsistent design.

Intelligence
While a fantastic developer doesn't need to become a Star Trek big brain alien genius, they are doing need a certain kind of intelligence. Programming requires traits beyond simple problem-solving and pattern recognition. Writing code involves plenty of abstract thought. One needs to hold in mind several interconnecting concepts, choose the software design patterns and tools appropriate to the problem at hand, recall the correct syntax, and write the code. Aptitudes in math, science, and Rubik's cube solving would place you on the right track to finding an experienced candidate.

Mental focus plays no small part in programming. Obtaining a bug in several thousand lines of code is usually a most frustrating game of "Where's Waldo?" A decent developer are able to troubleshoot bugs, regain the state of mind when the code was originally written, making the appropriate corrections. Beyond having good bug fixing skills, an intelligent programmer designs software that inherently reduces bugs through modular design.

Competence
A competently written program looks good inside and outside. From the outside (the important customer's point of view) the application form has a good graphical user interface and fulfills the functional requirement. The system behaves as expected, solves the desired problem, and supplies peace of mind. For a well written application, the whole is bigger than the sum of its parts. It possesses smoothness. To accomplish this quality, the developer takes the end user's perspective when creating the application. How many times are we used troublesome websites or applications and thought "Did the programmer even make use of this?" With the end user shows courtesy and also competence.

While users know well written applications when they discover their whereabouts, it takes a fellow programmer to distinguish competently written code. Precisely what does this mean? Competently written code is extensible - written with future alterations in mind. Extensible code has ample comments, functional organization, meaningful variable names, and manageably sized modules. A good programmer can write code that work well and meets requirements, but be a challenge to add features to. A secret developer writes code knowing it will need to be maintained - either by him or somebody else. Programmers of this caliber not merely write extensible code, they recognize and appreciate other developers that do the same.

Experience
This can be one of the most controversial areas when judging potential programmers, let's quickly spend some time exploring it. Experience might be categorized in two ways - the buzzword approach as well as the expert approach. The buzzword approach, also known as the HR (Hours) method, involves scanning a candidate's resume trying to find a minimum number of years using certain languages, technologies, databases, software packages, etc. Unless the HR person checks the proper boxes on her or his list, the developer never gets at night first round. Programmers themselves refer to this as the "grep" method, named as soon as the Linux command line tool that scans files for a certain string.

A strict buzzword approach fails on several counts. While using the right words doesn't make a classic novel, or even a good read. I've personally worked programmers with a decade of 9-5 experience of a particular language, who still didn't grasp fundamental concepts of software design. Their code was difficult to maintain, and the overall system suffered. I've also trained individuals who had never written a line of code who intuitively understood software design. Within six months of programming, their code quality surpassed the individual with ten years of experience. Ultimately, the buzzword method fails because HR people not have the mindset to spot excellent programmers.

The other way to judge a programmer is the expert method. You consider depth of knowledge inside a particular technology along with the difficulty of the problems solved. Programming is around problem solving more than about knowing the commands in any one language. Here's another secret - look for programmers who have labored on or taken a training course in compilers. Once a developer understands how to make his own programming language, mastering a new one becomes routine.

Again let's utilize the natural language analogy. Say this is to write a novel in Spanish. You might have two candidates: individual who took three years of Spanish in high school graduation and one who translated a 500 page novel from French to English in a year. The HR method would select the first candidate instead of even consider the second. Which will you choose?

Ultimately whenever we think about experience, we're referring to the difference between theory and exercise. In theory, somebody with 3 years of Spanish should write a greater Spanish novel than somebody which has a year experience in French. And at first, the Spanish student will produce more words for you personally novel. But in the long term, the translator will outperform and make up a better work.

How do we find great programmers determined by experience? Use a hybrid approach. Search for somebody with depth of experience in a particular area, then evaluate for adaptability. We utilize a custom selection process that screens for problem solving abilities in addition to expertise in a particular language.

Dependable
While dependable developers could possibly be an oxymoron, as the personality type who enjoys and excels at programming ironically dislikes structure (at the very least social structure). The "Tao of Programming" tells a parable about programmers who rebelled when told they had to work 9 to 5. But in the freedom to make their own schedule, "they came in at noon and worked for the wee hours of the morning". This story illustrates why people say managing programmers is a lot like "herding cats."

The final trait of a solid developer could as well be "Trustworthy", but "Juicet" isn't a word. As programmers usually have access to critical business and personal information, the importance of trust can't be underestimated. Your best developers hold to a personal standard of trust and integrity, deliver code dependably, and have a skeptical eye to societal norms. Is going on balance.

So you are looking for a programmer individual preference can trust and who has self discipline enough to be on schedule. Give this developer scheduling flexibility and fascinating projects and he'll achieve maximum productivity.

Final Words on Juiced
There's an overall quality into a "Juiced" programmer - being juiced as to what you do. Good programmers have passion for their craft. They're excited to solved problems and develop new and interesting things. Quality developers see programming as art; albeit art sometimes only another practitioner can appreciate. When evaluating developers, look for individuals who program because they like it.

iOS



Comments

There isn't any comment in this page yet!

Do you want to be the first commenter?


New Comment

Full Name:
E-Mail Address:
Your website (if exists):
Your Comment:
Security code: