What Makes a Good Developer? The Penny Arcade Answer
3 min read

What Makes a Good Developer? The Penny Arcade Answer

Great insight to the world of making games and other stuff. [PATV](http://penny-arcade.com/patv).
This is another nifty thing I stumbled on recently. This is a 2-part video explaining almost everything you need to know about developers. What exactly is a developer? What challenges do they face? How do you improve? It's a great insight to the world of programming in real-life (not just school).

Here is the link to the video by Penny Arcade. If you're wondering why a site on web comics would have a video like that well it's because Penny Arcade (PA) isn't just a comic. PA also hosts PAX or Penny Arcade expo a gaming convention similar to E3 along with selling merchandise and even a charity called Child's Play. One of the recent "new things"(maybe just new to me) on PA is the video series. They do a lot to expand and give back to the gaming industry and the founders Jerry Holkins and Mike Krahulik are very much celebrities in the industry.

Extra credits is one of the video series available at Penny Arcade TV section of the site. It takes a look at the development side of games. They also have topics on improving gaming and issues in gaming like difficulty, micro transactions, etc.

This particular video is very interesting to me because it takes about being a developer. It's not focused on just the gaming industry but the whole world of a developer. I'm going to list down some interesting things talked about in the video.

What do Developers do?

Taking out the stereotypical image of a developer, a developer is a problem solver. Whether you're fixing a bug or making a new feature it boils down to breaking down a problem, analyzing the parts and creating a solution. You're given tools you've never tried before and face problems you've never encountered before.

How do you get better?

If you're already in the world of development then of course you want to get better. Why wouldn't you? Anyway, the video talks about growing by developing that analytic way of thinking, exploring the software/games you interact with and question why it was built in that particular way, etc.

What makes a good developer?

According to the video, what separates a good developer from the crowd is being able to solve problems quickly and elegantly. A huge factor in this regard is the tools a developer knows and the experience he/she already has.

Read other people's code

In the video, they suggest looking at available code (for example open source projects) and seeing how it's structured and how it's made. For me, this is a very good learning habit. As a new graduate without a lot of experience in the workplace yet, there is an infinite amount of knowledge to learn. There is only so much (or so little) school can teach the rest is up to the person to explore. You can learn a lot on efficient ways to solve a problem or how to optimize your code. You would also get to learn a whole lot on what works, what doesn't and what best to do in particular projects.

I've learned a lot through this. Not copy pasting but understanding and learning. When I was still figuring out "how to program", it was great getting to know what is possible by looking at other people's code. As one of my professors once said "There are limitless ways to solve a problem". What I need to do to keep learning and growing is to always find out why my solution may not be the best. I would even go as far as to say projects are the maybe best way to learn. Especially those where you need to learn something completely new to you at the time. For example, creating a user interface when all you know is output to a console. You get the point.

Surround yourself with good developers

This was one of my mistakes in a way. Due to us not knowing that the school won't help you get an internship and having to go back and forth to Canada as required, it was very difficult finding an internship in very little time. I wasn't surrounded with good developers in my internship. The main reason was that there was no developers. I created a system for the company. It was great in knowing I built almost the whole system by myself (compared to a group project, I got to develop and know every single aspect of it) but it comes with the price of not getting to learn from an experienced developer.

If you don't have that opportunity then there's stack overflow or forums like DaniWeb.

The crew at PATV explains being a developer more in depth and more entertainingly so head on over to  http://penny-arcade.com/patv/episode/so-you-want-to-be-a-developer-part-1 and watch the video.