image

We’ve been thinking about adding a few more members to our project teams at Wikidi, and it got us thinking.

What skills do we look for in new team members? And, what skills really transform an average coder into an outstanding developer?

Development isn’t just about spewing code – it’s about helping to build and create the digital world. So, what other skills do you need to have in order to make sure you’re a developer that thrives in whatever direction web development goes in the future.

1. Code: It’s the be-all without the end-all.

You should be able to code as a developer. This might seem like we’re stating the obvious, but there’s a lot of people building websites these days without anything close to programmatic chops.

That being said, you can’t just depend on your knowledge of code these days. A good developer should be pushing themselves to see the bigger picture. This means understanding how their team interacts with each other and the impact this has on the product they’re building.

Additionally, a deeper knowledge of the technologies you are using will help you utilize the tools you have and really extend the boundaries and potential of the things you’re working on.

Here’s a few helpful resources:

The Design of Everyday Things

The Pragmatic Programmer: From Journeyman to Master

Clean Code: A Handbook of Agile Software Craftsmanship

2. Don’t get too comfortable – stay informed.

Keeping up with technology is tough. It’s changing at such a quick pace that staying up-to-date on everything is probably close to impossible. So, here’s what we would suggest.

Narrow your focus. Become an expert in a couple specific areas of interest to target your strengths and maximize on your abilities as a programmer.

However, it’s still important to pay attention to what’s going on in the industry. Pay attention to what’s popular and understand what’s changing. Read tech blogs and follow what’s happening because it will give you an idea of upcoming shifts and trends that will help you understand users and how they will use the things you build.

In more simple terms, you don’t want to be roasting meat for a group of guests that have all just gone vegetarian. Developers need to be able to adapt and build according to industry demands.

This doesn’t mean building using your favorite new trendy technology. It means building as a result of the current or upcoming challenges that you believe will be relevant to users.

3. Testing.

Don’t build something if you’re not prepared to make sure it works properly. You need to be an excellent problem solver as well as good at debugging code. We like to think of it as paying close attention to the little things.

Another important part of testing is that sometimes it takes you outside the code. Be able to problem solve for issues that deal with usability and user experience.

Here’s a few recommended reading lists about testing we thought you might find helpful:

Best Software Testing Books: Top Recommended

Best Selenium Books: Top Recommended

8 Best Software Testing Every QA Engineer/Tester Must Read

You can also check out our post on the importance of website testing.

4. Communication and social interaction are skills.

The stereotype of a silent developer who only opens his or her “mouth for peanuts” maybe be an outdated concept at this point. We now live in the age of exchanging knowledge: podcasts, vlogging, TEDtalks, and conferences.

All the more reason to make sure you learn how to communicate and deal with people.

In any walk of life, you’re going to encounter human interaction – and developing is no different. Learning how to communicate your ideas and designs clearly and effectively is an important skill that a developer needs to have.

Be more human, be understood, and learn how to use situations to your advantage. The world of web development can be a competitive place – make sure have an edge.

5. Teach yourself and always be hungry for more.

As we mentioned before, web development and technology is always changing. New releases, versions, features, tools, etc. – it can be tough to stay on top of it. This is why a great developer should also be a great self-learner.

Learning to learn is probably one of the most important skills a developer can have. Being able to quickly acquire knowledge is crucial in a fast-paced environment like web development. So, teach yourself to learn and develop a passion for learning more.

You’ll never be the best and you’ll never have all the answers. Motivate yourself to keep learning by remembering that there is always someone better.

Having the desire to explore new technologies and the skills to adapt quickly to a market that’s technologies and platforms are constantly changing will provide you with a strong foundation of skills that will never stop being relevant and will always be in high demand.

6. Learn to manage your time.

If you can manage your time, you can manage your projects. It’s as simple as that. A developer who uses good time management methods are able to deliver projects more consistently than those who don’t.

Learn how to multi-task and learn how to delegate tasks to other resources if you have to. You should avoid bringing work home with you, which means making sure that you utilize your time at work in the most efficient way possible.

What are some great ways to stay on task?

  • Make a to-do list
  • Set deadlines and reminders
  • Check your timelines daily to stay on schedule
  • Keep your clients or team members up-to-date

In an earlier post, we mentioned a couple great time management methods and a couple helpful tools.

Here they are again, with a few other helpful resources:

Getting Things Done (GTD)

The Pomodoro Technique

The Blog of Tim Ferriss

Merlin Mann’s 43 Folders

Chromodoro

NodeTimer

7. A picture is worth a thousand words.

A great developer should not only be able to code, and communicate well, but being able to “white board” is also very handy.

Developers should be able to draw or prototype their intentions for a couple of reasons.

  • It’s the cheapest way to fail.
  • Producing a visual is the quickest and often, most concise, way to get your ideas across.

Let’s be honest, no amount of documentation can replace a simple diagram!

It’s definitely worth it to spend some time on honing your skills on the white board. Your sketches need to match what you’re trying to communicate.

Working on your white boarding skills will help you on more levels than one. Great white boarders are not only able to produce easy to understand diagrams, but they often excel in other areas because of their strong communication skills.

8. Be reckless, be lazy.

Michael Greer (ex-CTO of The Onion) offered this insightful comment on Quora:

  • Laziness
    Refuses to do anything twice: writes a script or algo for it.
  • Cowardice
    Thinks to test, worries over load and code impact
  • Recklessness
    Tries new stuff constantly, launches same-day ideas

Sometimes what we think of as negative qualities can actually be positive ones. Being “lazy” in this context means you find the fastest and most efficient way of doing something to avoid spending too much effort on a task.

Here’s a few ways you can put that type of “laziness” to good use:

  1. Don’t repeat yourself.
  2. Collect code snippets.
  3. Use frameworks.

Also, bear in mind that being lazy as a programmer, doesn’t mean that you should stop experimenting. It’s good to take risks!

Risk-taking breeds innovation and pushes you to think outside the box. A good developer should never stop trying out new things.

9. Enjoy what you do.

Sometimes you’ll have long days or a problem that just won’t go away. Don’t fight it, enjoy it.

Appreciate what you and your team are trying to achieve and it will make your work that much sweeter. Part of being a developer that stands out from the crowd is recognizing your worth in the collective aspects of your job: you’re not an island. 

If you embrace the challenge and the teamwork, you’ll find that your job is a lot more fun and rewarding!

10. Never forget that you’re solving a problem.

Remember that an essential part of programming is solving a problem. Everything that you create, build, or code is meant to be a solution for some dilemma. Technology you use or the language you prefer shouldn’t distract from the main meat of the job: problem-solving.

So, make sure you learn how to answer questions and provide solutions to problems. If you lack the ability to do this, you will always have a gaping hole in your skill set. 

The best way to make yourself a better programmer is to study best methods and writing efficient code. Get involved in projects like TopCoder, which allows you compete to solve a problem against other programmers. A website like this acts as an arena to challenge developers. It pushes you to keep your skill set sharp, it wakes up your competitive spirit, and it will allow you to see other ways of solving a problem.

Similarly, it’s helpful to join a community or forum like Stack Overflow for times when you get stuck. This is a great place for finding answers for coding issues, and it’s also a wonderful resource to peruse in general.

And if it you’re at a complete loss, there’s always Google.

Did you find this helpful? What other skills did we leave out? 

Share your knowledge in the comments below ! You can also join us on Facebook or @testomatocom.