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.