Learning challenges / philosophy

Events happening in the community are now at Drupal community events on www.drupal.org.
mroswell's picture

I think (I philosophize) that an awesome woman coder is easy to spot, and no one doubts her skills. As a mediocre (currently) middle-aged female new Drupal coder I think it's harder to gain respect, to be included in the conversation, and generally to be seen as having the potential to gain the skillset. Sometimes, I wish I were male and 25. The assumptions are different.

(Recently told on a job interview that they were looking for someone fresh out of school... both in initial phone call, and at the interview... so, in that case, she didn't mean male, she just meant half my age...)

Anyhow, enough philosophizing about barriers: They're real, they're annoying... Now I've got to overcome them.

How to get good? I think one helpful thing would be to be able to print the handbooks. This link is several years out of date: http://drupal.org/node/20874
This one just has the getting started PDF.
http://drupal.org/handbooks

I've got the Pro Drupal book (and the new Packt module book), but I think I basically need a book of hints, or something like that. Or, something like this, for which I'd love a recipe just for printing the thing!
http://drupal.org/handbook/customization/tutorials/beginners-cookbook

Any good ideas for how to print handbooks without having click on each page?

A second thing that might help is promoting a meetup culture of "basic is cool." So many meetups feature shining stars, and then people with more basic problems may be too afraid to ask their questions. (Last night I asked a basic question and then I felt stupid when I saw how easy the answer us... I sincerely wished I hadn't asked! So lots of self-censoring going on.) Asking leaders to promote questions at all levels maybe a helpful idea.

Third thing would be publication of a Drupal workbook. I find slide presentations don't really get me where I need to go. I would probably find a good Drupal coding workbook to be a great thing. I look forward to the Lullabot book, which will strengthen skills on the admin side. I think the market-still-to-be-filled will be a workbook style, book, with work-aday, routine examples. Heck, maybe even old-fashioned multiple choice...

Fourth: I need to spend time LOOKING at code.

Fifth: need to get in there and try stuff.

These are my thoughts for the evening, on how to get good, and eventually get to the point where the skill is so obvious that gender and age don't exclude me from the conversation.

Here's hoping... and striving...

Comments

But is "age" age?

Grammarian's picture

Half your age, or half your salary level?

Jean Gazis
www.jeangazis.com
www.webhostny.com – Drupal hosting

Nah, age, definitely. Was

mroswell's picture

Nah, age, definitely. Was willing to work for the salary level: electoral work, my passion for the next few months.

Anyhow, would love insight especially on how to print Drupal handbooks... I know I'd be in a better position if I could easily put 'em into a binder, and read on the train. I'm hell-bent on climbing this learning curve... (or, rather, peacefully bent!)

Printer-friendly version

add1sun's picture

You can click the "printer-friendly version" link on a top level handbook page (or any page) and you will get a nice clean, all in one page document of that page and all its children. You can print it to PDF or regular ole paper. I don't think you get clean page breaks on the sections or anything but better than printing each handbook page individually. :-)

Lullabot loves you

Learn Drupal online at Drupalize.me

zactly

esmerel's picture

It does print out the whole thing, sans clean page breaks, but enh, who's counting at that point :) You still get titles and stuff like that so if the handbook is fairly clean you should still be at least reasonably ok.

<-- printed out the cck handbook the other day=)

"Keep on movin' forward..."

mroswell's picture

Ah, the secret sauce is logging in, of course! Yay! I'm going to send this stuff to Kinko's (which is no longer, I think it's called FedEx Office, or something like that) for binding.

Noticed no comments on the challenges of being a woman on a drupal learning curve... maybe just me :)

(or maybe just hard to talk about online.)

Hmmm... Maybe a good model for learning is a meetup of just two or three people, to directly share what they know (if they are willing.) Or maybe workplaces should be encouraged to offer official mentorship to new Drupal coders... Or maybe it's just "gather what you can from books, IRC, and trying..." until at some point client work to spec doesn't feel so scary.

Actually, now that I can print the handbooks, I think my plateau on the learning curve will begin to rise again!

I have two pictures of my learning curve. One is the plataeu, where I've been for a bit, after a ginormously rapid initial rise in the first few months of drupaling.

      _______ 
     /
    /
   /
  /
/
/

The other picture is of a curve that's so steep that it almost bends back on itself, requiring one to walk upside down... which would be possible for some creatures, but not me.

(I can't draw that one!)

In any case, planning to move forward. and up...

Margie
(The title of this post comes from a song by the DC-based duo, Emma's Revolution. Great song, great group!
Listen to a bit of it here (song #9) :
http://www.emmasrevolution.com/listen/album/roots-rock-revolution/
)

tracy_pilcher's picture

An interview is a two way process. I'm deciding if I want work for them while the interviewer is sizing me up. Recently, I had a potential client say that he was looking for someone younger to work on his project. I ended the conversation there wishing him the best of luck.

My name is Tracy (spelled like the male Tracy). Some people do ask if I am a female. Most assume that I am, and that I have somehow misspelled my own name. I get a lot of "Tracey", "Tracie" and for some reason people use Stacey and Tracey interchangeably.

In addition to being female and middle aged. I don't have a college degree. I am sure that definitely put my resume immediately in the circular file. So, I have found other ways to get the notice of potential employers. I blog and write about everything that I am working on (while protecting the client's privacy) when time permits. I have taken on some gratis projects for truly deserving organizations.

I too have found the learning curve of Drupal daunting. And I have been hesitant in asking questions because I too assume that what I will ask is fundamental. I have to contend with my inner voice that tells me "I should know that". Only now after almost 2 years using Drupal do I feel like I sort of have a clue about how to do things.

In general, I found that Drupal can do about 98% of what you want, but it's that other 2% that can break you :-) I will try and update my Drupal website http://www.hellodrupal.org in the next few weeks with what I have been doing recently and share the hard earned lessons in Drupal.

Tracy

Self-taught is OK

karens's picture

I'm self-taught, so it can be done :) I'm a middle-aged woman who grew up before the age of computers and I taught myself HTML. I taught myself PHP. I taught myself Drupal (it was before the Pro Drupal Development book, which may make it easier now).

My best formula for learning Drupal is to set up a local environment you can work with (there is a recipe somewhere on drupal.org about how to do that using MAMP or WAMP or XAMMP.) Once you have a place where the out-of-the box stuff is working and you don't have to worry about breaking something important, like a public web site, you can start playing around.

I'd start with an existing module (pick one that is maintained by someone reputable in the Drupal community so you can be pretty sure it is written to Drupal standards) and just pick out one thing at a time. Like I'd like to change the text on a form or hide something or whatever. So I make small changes, one at a time, and see what happens when I do that. Start with easy things, like changing the text, and work up to more complicated things, like changing the workflow or creating a custom module. And continually ask yourself questions as you do it. What exactly is that function supposed to do? Why did they do it the way they did?

Drupal API (http://api.drupal.org/) is your friend. Every time you see a new function or one you don't understand, go to the API and look up the function to see what the documentation about it says. When you have questions, Google drupal.org and groups.drupal.org for the thing you have a question about. See if there are already threads discussing those issues that will help you understand them.

If you've done that kind of homework and still have questions, your questions are probably legitimate ones, or are certainly ones you shouldn't be afraid to ask. You may even uncover places where the documention is wrong or badly written or the code needs work.

As to meetups -- in our local user group we've tried to have some sessions that are for those who are new to Drupal. And lots of people are new to Drupal, so if your user group hasn't already done that, someone should suggest it. Then you need to sweet talk your local gurus into being available to answer questions at those sessions. Many of us are willing to do that from time to time if someone asks.

Source Code Repository

lishevita's picture

I'd like to add another suggestion to this list.

When you set up your personal environment (at a lot of companies they call this your "sandbox") in LAMP, WAMP, MAMP or whatever, give yourself a personal source code repository, too. If you work for a company that uses CVS or SVN or one of the other revisioning system tools like that, then you should learn how to use those to set up your own personal "branch" where you can change things as much as you want without effecting the company-wide source code repository. If you work on your own, I recommend setting up an SVN server on your personal machine, or where ever you've set up your sandbox.

Put your copy of Drupal in there, along with all the modules you use or work on. As you work, commit your changes frequently. You write a bit of code, test it, see it works so far, commit it. Work on some more code, test it, see it works, commit it. When you commit, give yourself log messages that will help you figure out something about that commit later. Don't make your log message "committing again", but rather "Fixed placement of hello world text" or "changed form handling with hook_form_alter and ahah". Later, when you've completely messed something up and no matter how hard you try to get it back to normal nothing at all works, you can always go back to your repository, figure out which revision number has the version you want to start trying from again, and roll back to a sane point in your work.

Here is the link to the SVN Redbook:
http://svnbook.red-bean.com/
(I suggest reading the intro and then scanning the docs a little, then when you need to do a task just search for the words you want in the HTML version of the book, like "create" or "roll back".)

For those that prefer CVS:
http://ximbiot.com/cvs/wiki/

Git

ceardach's picture

If you're working with version control alone, I recommend Git (http://git.or.cz/). You can start up version control very quickly, and branch and merge extremely fast. Because SVN and CVS are centralized, you need a place to check your commits to, which will have more overhead to get started. But using Git is solely a matter of installing and you're ready to go immediately. Plus you don't need internet access, which will allow you to code when offline.

Great Post

Tanisha's picture

I too am learning somewhat on my own and find myself consumed with the many possibilities. When it comes to stuff like this I want to do it all at once and have it work. Taking time out to perform one task at a time and learn it is sage advice.

My biggest drawback is having the confidence in myself to know that yeah, I'm doing it and it ain't all that bad. I'm not the most experienced but I don't give myself enough credit for what I have done. Hang in there. Seems we are in perfect company here in the drupal community.

Tanisha

One reason why this method

karens's picture

One reason why this method works well is that you always have something that works or you can easily get back to something that works. The original module works. Then you make a change and it still works so you're OK. Then you make another change and it breaks, so you undo that change to get back to working code and figure out why it broke. Sometimes you learn more from the changes you make that break things than from the changes that work :)

If you do a whole mess of things at once and things are broken or you try to write a whole module from scratch and it doesn't work, it's really hard to figure out what's going on.

Unfortunately prejudice is a

brendoncrawford's picture

Unfortunately prejudice is a very real problem in professional software development environments. There is racial prejudice, age prejudice, and of course gender prejudice. The best way to overcome this is to beat them at their own game. Work twice as hard as the 26 year old white male college graduate, and make yourself twice as valuable. Eventually they will not be able to ignore you.

Be careful not to spend too much time in the books and classrooms. These people just want your money. The best way to learn is to dig into any and every piece of software you can get your hands on. Study the architecture and learn it inside out. A lot of CS students hit an income cap because they are not taught to think outside of the box. This is your biggest advantage over the college drones that are half your age. Most of the best developers I know were self taught after years and years of agressive learning and discipline.

Read and write code all day every day. Don't worry about all the books, and talking heads. They will tell you nothing that you cannot learn on your own. I would also warn you to not use Drupal as your starting point into programming. This will lead to bad habits. Start with the basics first, then once you have mastered those, move into Drupal. This way you will be able to recognize and avoid a lot of the bad Drupal habits that people fall into.

Become a guru. Learn about Object Oriented models as well as procedural and functional models. Learn and understand the UNIX philosophy of software - simplicity and modularity. UNIX has been around for 40 years... there is a lot to be learned from it. Learn how to write bug free code. Learn how to write code that comments itself. Learn how to efficiently debug code using stacktraces. Learn how to always write reusable code. If you are using PHP, take the time to understand all of PHPs flaws and how to avoid them. Commit to heart the idea that "good programmers focus on good data structures, not good code". These are all the thigs that will separate you from the punk kid half your age. These are the things that in the long run will get you the good job and will make you valuable. Commodity propgrammers are a dime a dozen, but truly competant developers who understand and apply all these concepts are extremely rare.

It takes about a decade of hard work and dedication to really become an expert software developer. Everybody has to pay their dues, no matter how much education or money they have.

PS: Make friends with recruiters.

Most of your sentences could be paragraphs or essays

mlncn's picture

Here are a couple I'd be interested if you have links to or suggestions for more resources:

  • "Start with the basics first, then once you have mastered those, move into Drupal."
  • "Learn how to write code that comments itself."

benjamin, Agaric Design Collective

benjamin, agaric

Specialize early

chadj@drupal.org's picture

I would just add that you should pick a few important modules and develop special expertise. Drupal is a niche but a big one. Choose a small area to master while you're learning Drupal. Your areas of specialty are portals to opportunity.

ChadJ


Site Monitor
Keyword Marketing

This is wise advice. Being a

moshe weitzman's picture

This is wise advice. Being a leader of a niche is extremely rewarding, and often lucrative. There are many areas open for taking. Become the WYSIWYG expert. Or the 'wiki in drupal' expert. Or intranets or installation profiles. The following people are experts now but were Drupal nobodies just a few years ago.

pwolanin - menu system and book module
yched - cck
date/calendar - karens
groups - moshe weitzman
multimedia - aaron winborne

Hey there, nobody's a

mroswell's picture

Hey there, nobody's a nobody. :)

I agree

Alexei Rayu-gdo's picture

I agree when they want a kid fresh from school they want to assign some easy task like self-terminate all br into br / - So don't get upset by it.

  • Alexei Rayu.

Drupal Related Services | SiteHound Drupal Free Distro

I had a pithy response but

laura s's picture

I had a pithy response but it could not get past the spam filter. Maybe because I linked to Dries' blog? :(


Laura
pingVision, LLC (we're hiring)

Laura Scott
PINGV | Strategy • Design • Drupal Development

wrote an article about module development

chachasikes's picture

a few weeks ago i did a code sprint (ben was there too). thought it was such a good experience -- the 'group module development' experience that i decided i ought to spell out why it was awesome, in detail, for drupalchix. basically -- making modules with other people is really fun, and working with other people helps you learn faster!

here's a link: group module development

Women in Drupal (Formerly DrupalChix)

Group notifications

This group offers an RSS feed. Or subscribe to these personalized, sitewide feeds:

Hot content this week