On 18/12/2010, at 1:03 AM, Dopster <ken.kyhu...@gmail.com> wrote:

> This is a question that can be generalized for any other amateur programmers 
> looking to get into software development, and specifically startups. I 
> specify Django/Python in my own details  below, but it can be replaced with 
> PHP, Ruby, etc.
> 
> As an amateur, how could I position myself to get in the door at an 
> established startup (i.e., not founding team) or web dev shop as a junior 
> Django/[insert language/framework here] developer? What could I do that would 
> give me a chance of getting a job? My guess is that actually building 
> something is the right way to go about this?
> 
Building something (or doing something) is absolutely the way to go. Getting 
hired is always a task of standing out from the crowd. If you're young, good 
marks in a degree from a good college is one way to do this, but it's not the 
only way. If you've been in then job market for a while, your degree will be 
near useless for the type of jobs you say you're interested in; startups are a 
lot more impressed with experience than with your alma mater.

The very least you can do is build your own website/blog. However, just 
tinkering on your own thing isn't really enough. Speaking as someone who has 
been involved in hiring decisions at various times, I can tell you that I've 
been looking for three things:

 * Technical competence
 * Good written English
 * An ability to work with others.

Although it's easy to put an emphasis on the first, in my experience the second 
and third are just as important - and its impossible to demonstrate the third 
working by yourself.

Getting involved in an open source project -- be it Django, something related 
to Django, or something else entirely -- is a great way to demonstrate all 
three.
> Contribute to open source? (though as an amateur, making meaningful 
> contributions is unlikely...)
> 
Not true. You may not be immediately in a position to be able to make major 
code contributions to the deep internals of a project like Django, but you can 
make a very valuable contribution in other areas and build a reputation that 
way. Here's a few simple examples of things you could do that would allow you 
to develop a reputation without making major code contributions:

 * Django places a lot of value in having good documentation. Often, an expert 
is the worst person to write documentation, because they don't know what 
amateurs find difficult or confusing. Review Django's documentation, and make 
suggestions (including providing drafts) on areas that can be improved.

 * Write tutorials and howtos. This is really just another form of 
documentation, but one that doesn't require any involvement in the Django 
source tree itself. Use your blog as a way of publishing your tips and tricks. 

 * Do ticket triage. Whenever a ticket is reported in Django's Trac instance, 
someone has to try and replicate the issue to verify that it is real. This is 
labor intensive and not particularly exciting, but it's absolutely essential to 
Django as a project - and anyone can do it.

 * Review tickets. Before any patch in Django gets committed to trunk it needs 
to be independently verified. Reviewing the work of others is a great way to 
both build a reputation, and get to know Django's codebase.

 * Do testing audits. Django has an extensive test suite, but it isn't perfect 
- there are many areas that aren't tested, or could be tested better. 

 * Do security audits. As a web framework, Django takes security very 
seriously, so any white-hat security audits are most welcome.

 * Become invaluable to the community by providing a useful resource. For 
example a weekly summary of the activity on the Django-developers mailing list. 
This sort of thing takes a lot of effort, but would be very useful to the 
community at large that can't spare the time to track every thread themselves. 

 * Build something that the community may find useful. Django People and 
ReadTheDocs are good examples here; they were both started completely 
independent of the project, but they're extremely valuable resources to the 
community.

Of course, if you're hoping to get hired in a coding role, you wont be able to 
completely avoid proving that you can write code. But that code doesn't have to 
be a modification to the deep inner core of Django.

And although I've spoken about Django here, nothing I have suggested here is 
especially Django specific. The same broad principles will apply to almost any 
open source project.

The most important thing is to do something.

Best of luck in your attempt to find the startup of your dreams :-)

Yours,
Russ Magee %-)

-- 
You received this message because you are subscribed to the Google Groups 
"Django users" group.
To post to this group, send email to django-us...@googlegroups.com.
To unsubscribe from this group, send email to 
django-users+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/django-users?hl=en.

Reply via email to