By contrariwise on
I know the basics of Drupal, but I'd like to get my hands dirty. There's all this stuff that is apparently relevant: html, xml, css, php, mysql, Apache and so forth. I don't even understand how all those things fit together. Where should I start? What should I learn?
At present, I know basic html and I'm an intermediate java programmer, though I can't imagine that will help. If anyone could steer me in the right direction, I would appreciate it. Book recommendations would also be appreciated.
Comments
I started in a similar
I started in a similar position: I knew HTML, CSS, and other programming languages (perl in my case).
I started off tweaking custom modules because they didn't quite do what I wanted for my own site. Then I tried fixing a few small bugs and submitting patches -- again with things that interested me specifically, that I wanted for my site. That got me familiar with PHP and got me on the road to understanding how Drupal works internally.
Then I started writing small modules for my site to tweak things -- a couple of custom blocks, and something to alter node links. These use Drupal's hook system, which is a good place to start working with Drupal as you have a simple, clearly laid-out way to interface with the core system.
People who I'd asked for help here asked me for the code for one of these, and now I have it hosted on this site :)
Good luck and happy drupalling!
Thanks. It's helpful to
Thanks. It's helpful to know how others went about it. Looks like PHP should be my first quest.
I'd say that php, (x)html
I'd say that php, (x)html and css are the most important, while xml might come in handy. And don't forget Javascript, especially the JQuery library which is part of the Drupal core. You can do a lot of nice things with Javascript. Mysql and Apache shouldn't be your focus right now.
If you want to have some basic understanding of how these things fit together, you might want to read about the 'LAMP' stack, which stands for the combination of Linux, Apache, Mysql and Php. (see http://en.wikipedia.org/wiki/LAMP_(software_bundle) for instance)
I guess you should also ask yourself what you want to do with Drupal. If you want to focus on the front-end, there's a lot to learn about theming and theme functions, but also about browser compatibility, web standards, usablility, accessibility etc. etc. This also means: really mastering html and css.
If you want to focus on functionality rather than presentation, you will not need as much html en css knowlegde, but you will need more php skills. Also, you should learn about the Drupal api (documentation on http://api.drupal.org) in order to use all Drupal functions effectively.
I hope this helps - if not, keep asking!
Wow, that was very
Wow, that was very informative. Thank you so much. You told me everything I need.
I am definitely not a "front end" person. Pretty much everything I do in java these days is in collaboration with a another girl I know who does the GUI. She has a wonderful eye for a design and an ingenious understanding of space mathematically (she can kick anyone's butt in vector geometry), but she hates the "behind the scenes" stuff. So we make the perfect team. I might convince her to learn this stuff with me so we can continue to collaborate.
I would suggest this..
If you wish to write modules I recommend this book
http://www.drupalbook.com/
You can check the table of content here:
http://www.apress.com/book/downloadfile/3483
And read a sample chapter about the theme system here:
http://www.apress.com/book/downloadfile/3486
I was in the same position as you few weeks ago and after I read this book,
it gave me a great understanding of how things work under the hood and I managed
to developed few modules of my own for my site.
NOTE: that this for is for drupal 5 but even that I work with drupal 6 it was great help for me
I read the book and then about the changes between D5 and D6 in this site
* there is a 2nd edition for drupal 6 on the way