views:

167

answers:

3

I always wonder how you can work as independent developer without having all the skills required or at-least the skill set of 2-5 people in one person? So what do you think what you should know if you wanted to be an independent developer. Here are few of my findings except program..

For Web Developer

  1. Some kind of industry framework (e.g; django)
  2. Good asthatics
  3. Good knowledge of CSS
  4. Must know some javascripting library (e.g; jquery)
  5. Databases
  6. You must be able to make icons etc using photoshop or any other such package
  7. Project management skills and tools required for this (subversion, trac etc)
  8. Business skills

I have only enlist what i have find most important skills required for the independent developer in web development (please help me complete this list) but i will really appreciate that if someone can also enlist all the skills required by independent GAME developer so that he/she can develop it without anyone help.

I really dont know if this question is subjective, though it look like but its quit important for me so thats why i ask.

Thanks for reading.

+1  A: 

Well, if you're talking about game development, then you'll have to add a few more to the list:

  • Decent knowledge of Graphic Design/Vector Design
  • Performance concerns - noone likes a game that runs at snail pace
  • Security aptitude/awareness - People will try to hack your game for the highest score
  • Very high HCI commitment (UI) - Understand the way the user will use your system, and it will be more successful.

I am sure there are many more. I just want to say though, I like to remember the saying: "Jack of all Trades, Master of None" when you go into this type of working. You will eventually master things, but nowhere near as quickly when your mind is focused on 50 different things.

Kyle Rozendo
really like this "Jack of all Trades, Master of None"
itsaboutcode
You can't underestimate the value of understanding Audio. From sound effects to music, audio can change a mediocre game to good or a great game to ok depending on how well done it is.
Andres
Very true that!
Kyle Rozendo
+1  A: 

When compiling a list like this I look at the different phases of the software development lifecycle. This is not exhaustive, but can be added to your list:

Requirements & Analysis:

  • Techniques for gathering requirements from customer (user stories, interaction diagrams etc)
  • Prototyping solution (choose a screen mockup tool or get really quick at knocking up html prototypes)
  • Data modelling
  • If you work remotely, find tools and techniques that allow you to communicate effectively with your customer (Skype now has screen sharing built in)

Design & Development:

  • How to design so that you can unit test
  • Be able to automate your build and deploy cycle
  • Find/Create a development environment that has integration between your IDE, source control system and issue tracker
  • Know where to go for help on technologies (you can't know everything). As you are on SO, you have partly solved this problem ;o)

Testing & Vertification

  • Use tooling where applicable (code analysis tools, test coverage tools, etc)
  • Develop automated tests, there lots of tools that can help (Selenium etc)
Paul
+3  A: 

Many people advocate the "T-Model": You become (and market!) yourself as an expert in a certain area but provide services in other areas too (which most of the time have a relation with your field of expertise). The horizontal bar in the "T" would be the broad range of services you offer and the vertical bar would be your field of expertise with deep knowledge.

That is for the "technical" expertise.

What I find lacking in your initial question are the "non technical" skills. You basically feature just one bullet point called "Business skills". In my experience there is a lot more to it and "Business skills" are of very high importance.

Business skills needed are: time management, some good negotiating skills, customer care, financial planning and riskmanagement as well as some good marketing skills. You could be a good programmer but not having a thriving business due to being unable to negotiate good contracts, not using your time in an efficient manner or simply being unknown to potential clients because you do not market yourself.

And of course, make some good developer friends and treat them very well. You will need developer friends, a lot!

markmywords
+1 for friends. My friends working as independents hire out snippets for cash or beer when it becomes too much.
whatnick