Isaac Sukin
Hi, I'm Isaac Sukin, and I'm posting here because I hope that the story of how I got involved with Drupal can encourage others to get involved as well.
Drupal.org Profile: http://drupal.org/user/201425 (IceCreamYou)
CertifiedToRock: http://certifiedtorock.com/u/201425
Personal blog: http://www.isaacsukin.com/blog
Other blog: http://www.mediacurrent.com/user/blog/isaac%20sukin
Twitter: http://twitter.com/IceCreamYou
About me
I'm an 18-year-old freshman at the Wharton School at the University of Pennsylvania (undergraduate). I've been working with Drupal for over 3 years. I'm the author of several popular modules including Facebook-style Statuses, Shorten URLs, Tweet, and Application Toolbar. I was a mentor in this year's Google Summer of Code for the Facebook-style Micropublisher project. And I am proficient in many web technologies including PHP, MySQL, (X)HTML, CSS, and jQuery/AJAX. This summer I worked as an intern for the Drupal firm Mediacurrent. Previously I did some freelance web development, and I have worked on websites with the Royal United Services Institute in London and the Woodruff Arts Center in Atlanta among others.
I have also been involved in 3D graphic design for 10 years, and am now the co-leader of an internationally renowned amateur 3D design group, the Community Bonus Pack (CBP). Since I became co-leader, the CBP has won 49 international awards, and its products have been downloaded well over 200,000 times. In addition, several of my short stories and poems have been published in regional literary magazines, and I have won dozens of awards in Model United Nations and math.
How I got involved with Drupal
I wrote the complete story of how I got involved with Drupal in a recent blog post, but I'll give a shorter summary here.
In the summer of 2007, I decided I wanted to build an online community of young people interested in politics in order to encourage their interest and activism. I had never built a website, and the extent of my programming experience was two weeks of C++ and just enough Visual Basic to make a window's background display random colors.
I did my research and ultimately chose Drupal for two reasons: the "About" page clearly stated what Drupal would do for me (make it easier to build websites), and the "Modules" page quickly turned up some modules that provided functionality I wanted. Joomla! was my second choice, but I rejected it because some of the extensions were paid and I had no budget.
After about 8 months of persistence, I cobbled together the first iteration of my website. It was woefully insecure, and had about twice as many modules as it needed, and probably 30 times as many menu items. Eventually I decided I wanted to add Facebook-style statuses to the site, but there wasn't a module that added that functionality, and a custom content type wasn't good enough -- so I wrote the module myself. Over the next few months I read a lot of snippets and other modules' code. I read inordinate amounts of documentation and asked dozens of dumb questions in the forums. And ultimately I created the first version of the Facebook-style Statuses module, or FBSS.
I learned PHP by reading documentation and source code for Drupal and other contributed modules in order to build FBSS. I made sure to heavily utilize the resources available to me (api.drupal.org, drupalcode.org, drupal.org documentation and search, php.net, dev.mysql.com, api.jquery.com). Since January 2008 I have worked on Drupal websites or my modules (or their issue queues) almost every single day, and I have also spent a lot of time reading community blogs and tutorials.
Three years after I started using Drupal, I am the primary maintainer of 6 modules on drupal.org. At the time of writing, they are collectively used on nearly 6000 websites according to drupal.org statistics, and only about 1% of all issues in their queues are not yet fixed. FBSS alone is used on nearly 2500 websites, and I've received very positive feedback from its users. I've also written many other modules that I haven't released on drupal.org.
I consider myself an expert in Drupal development. I am very familiar with most core subsystems in Drupal 6, and I am comfortable with the APIs of most of the top contributed modules. Today I am involved in the Drupal community mostly through my modules' issue queues, and I also spend some time on IRC when I get the chance. I also had the awesome opportunity to participate in the Google Summer of Code initiative this year as a mentor for a Drupal project. I've reached this level of expertise with Drupal when just 3 years ago I had almost none of the web-related knowledge I have today, and I did it through persistence and the advice of other members of the Drupal community.
I have found the Drupal community to be extraordinarily helpful and welcoming, and that friendly attitude has encouraged me to act the same way towards other, newer members of the community. I got so involved in Drupal because I liked programming, but I stayed involved because I loved the community.
A note about jobs
I have made very little effort to solicit web development-related work, but I get contacted every few weeks by people who have seen my work on drupal.org and want to hire me. The job market for Drupal developers is exploding; if you are looking for skilled employment, Drupal is a great place to start.
In addition, knowing how much the Drupal community bolsters one's knowledge about Drupal and its standards and best practices, I would much rather hire a Drupal developer with an established track record of community participation than one with an impressive client list and no community history. Someone who has participated in the community is more likely to be able to solve difficult problems efficiently and effectively the Drupal way -- in a way that other Drupal developers (including those at your company) will be able to understand and easily expand in the future.
Advice to new and prospective Drupal users
The most important thing you can do is to believe you can do it. There is a lot to learn about Drupal, but it's easier if you break it down and don't worry about how much there is all at once. For a long time I just focused on learning the Form API, and that's fine -- although there are lots of other Drupal APIs, I never would have learned any of them if I had tried to learn them all at once. You can do it -- and once you get started, you'll love doing it too. You also don't need to know everything about Drupal to use it well -- luckily there are thousands of free modules and themes out there to do most of the work for you.
The biggest mistake I have seen people make when they are just starting with Drupal is assuming that they can figure everything out without doing any research. In Drupal (as in most things) there are lots of solutions to most problems, but most of them are suboptimal. Luckily there are a lot of resources available to people just starting with Drupal. Read the documentation, read a Drupal book if you have the money, read whatever you can find. Always search on drupal.org for an answer to any question you have. If you can't find the answer, ask in the forums or the appropriate issue queue or on IRC. If you've done your research -- and you say so in your request for help -- you'll find many people happy to help you.
If you are getting started with developing modules with Drupal, bookmark api.drupal.org, drupalcode.org, php.net, dev.mysql.com and/or postgresql.org, and api.jquery.com. Read the beginner's tutorial first, and then I recommend learning more about the Form API because the basics are probably the easiest part of Drupal coding. Also read the Drupal Coding Standards thoroughly!
Everyone should join regional Drupal user groups -- no matter where in the world you are, there's probably one in your area. These groups offer invaluable resources and opportunities to get together with other people experiencing similar challenges and exciting solutions in the Drupal space.
I also recommend getting involved in the community from the very beginning, including asking (and answering!) questions in the forums and hanging out on IRC. There's no better way to learn about Drupal than getting involved in the community and you'll meet lots of interesting people from all around the world all united by the same goals and interests. In short, there is a lot more you can get out of Drupal than the software alone. If you're not involved in the Drupal community already, I hope you'll explore it.