The Beginner Pattern


You were there once, remember? You were the cautious explorer, venturing out into an unknown language with little idea what it might hold in store. You learned functions, found tutorials to help you take your first steps and maybe even reached out to other developers to help you along the way. You were a beginner – everyone has to start somewhere, after all – and every little bit helped.

So, it worries me when I see things like this talking about a move of the PHP community away from those introductory topics that we all came to know and love as we moved forward into our PHP development careers. Samuel doesn’t think it’s the PHP community’s fault, not by far. He does suggest, though, that we’re “forcing newcomers to our community to build their PHP homes from attic to basement” by not pointing out or writing up as many tutorials and articles targeting the introductory developers.

In the spirit of trying to bring PHP back to the masses, I’m going to suggest a “design pattern” of sorts that the PHP community can help to bring even more people into the language and help them really find the heart of the language and what it’s all about:

  • Learn – The first step in the pattern is to learn about the task you’re trying to accomplish. Obviously you can’t teach others if you don’t know about it first. Find out the best way to do it – the tips and tricks if you can – and remember them. They’ll come in handy in the next piece of the pattern.
  • Write – You don’t have to be the Hemingway of PHP to write a tutorial. This piece has an obvious fit with the first step of the process. Take what you’ve learned and write it up into something anyone can follow. Just posting a list of commands and code isn’t enough – sorry. Write it so that someone who doesn’t know anything about the topic can pick it up and run with it. Plain english (or whatever your native language is) is best…technical terms are good when they’re needed, but don’t try to use them to make yourself look important by using too many multisylabic words in too many places con only lead to trouble. And remember, tutorials don’t have to be about anything fancy. Find out something cool about an everyday PHP function? Write it up! Trust me, no one will think anything about an “advanced developer” writing about a cool thing they figured out about str_replace.
  • Share – Obviously, a good tutorial or article isn’t any good unless people know about it. Sharing is an integral part of this pattern. If you don’t let others know, you might as well not write it. You never know when someone might need a little nugget of the wisdom you’re sharing, so broadcast it out there. Don’t be ashamed to bring it to the masses in the forums or post about it on your blog. There’s nothing wrong with a little self-promotion if you can help out some developer in need with exactly what he needs.
  • Learn – Wait, this again? That’s right, the pattern loops back on itself in an endless cycle. Once you learn a new skill, write about it and share that knowledge with at least one other person, you’re back where you started. You’re moving forward in your development and coming across new challenges each day. So, guess what? Write about them! Share it! You get the idea…

The pattern is simple Learn then Write then Share. Learning is handled by one object (you) and then writes to a local resource (your brain, duh) and the resources are exported into external data sources for other objects to use. Simple, right?

So, go out there, learn something new, write a tutorial about it and share it with the masses. Idling in your development on a project? Think about the things you’ve learned so far and share those.

Remember, there’s new developers starting every day – help them out and share the tips and tricks you have stored in that head of yours. They’ll thank you for it.

Photo from pagedooley Creative Commons Attribution License

Category: Community, PHP 16 comments »

16 Responses to “The Beginner Pattern”

  1. Christoph Burgdorfer

    Hi Chris,

    I completely agree – sharing what you’ve learned is the best way forwards. Some people can even remember things better if they write it down. So why not writing it down and then sharing it? It’s a win win win situation.

    I’ve started a project years ago where I wanted to provide a possibility to leave your comments, make howto notes. It’s a simple (old style) mediawiki, however hardly anyone is using it (sometimes not even me, because I’m lazy). But if enough people would be using it, it could be a great source of “How Tos” … try it out and share: http://www.how2s.org … i can make you an admin account, if you want. It’s all a bit messy still :(

  2. enygma

    @Christoph looks like a good start you have there – definitely a lot of topics. Looks like the PHP section is still just starting out (http://www.how2s.org/index.php/PHP). Could turn into a nice resource though! Keep up the good work!

  3. Mario Mueller

    Hi Chris,

    as I’ve described in my trackback’ed article, I’m missing something like a buddy-project. Anything that takes care about the people who are new to PHP. The “eat those howtos” approach seems a bit too static for such a dynamic language.

    Regards,
    Mario

  4. Joris

    Yup, approved :)

  5. Avoiding Notices: When to Use isset() and empty() | BrandonSavage.net

    [...] This blog entry implements The Beginner Pattern. [...]

  6. Julian Egelstaff

    Nice post, this language sure has come a long way since when I started with PHP 3, I agree it’s a little more difficult for newcomers, but maybe that’s inevitable. I was reminded of this post when I read another about when to use isset and empty:

    http://www.brandonsavage.net/avoiding-notices-when-to-use-isset-and-empty/

    Knowing that is an important part of writing good solid secure code, and I’m certainly not complaining that people are writing about these issues. But I also feel that these best practices are maybe “too much information” for beginners and it can get in the way of how marvelously accessible PHP can be to newcomers, particularly non coders that come to the language from a web design background. I posted more detailed ideas about that in the comments over there if you’re interested.

    –Julian

  7. Satya Prakash

    Recently I have transferred my blog from satya61229.blogspot.com to the current wordpress self hosted site (follow the link).
    I am happy to tell you that I did the same as “Write” something as other can gain something.
    My first post became very famous that was related to exchanging variables among html, js, php etc. thats I saw many developer are confused when they are new. It attracts 60 hits for many months. now it has decreased considerably. I tried to re-write it in another post so that it looks good in formatting but that’s not google like. ;)

    anyway, I can proudly say that I shared and shared well.

  8. Configuring PHP: Essential INI Settings | BrandonSavage.net

    [...] This blog entry implements The Beginner Pattern. [...]

  9. Thinking out loud » The Learn->Teach->Learn Design Pattern

    [...] You can read the blog entry here -> http://blog.phpdeveloper.org/?p=198 [...]

  10. Pavan

    hey very nice article. Thanks for putting it so neatly.

  11. To The New PHP Programmers… | BrandonSavage.net

    [...] spent some time writing about beginner issues, and implementing The Beginner Pattern, because I think it’s important to help new developers to the community get better. But if [...]

  12. How To Write A Function In PHP | BrandonSavage.net

    [...] This blog entry implements The Beginner Pattern. [...]

  13. Five Cool PHP Array Functions | BrandonSavage.net

    [...] This blog entry implements The Beginner Pattern. [...]

  14. Micro Optimizations That Don’t Matter | BrandonSavage.net

    [...] This blog entry implements The Beginner Pattern. [...]

  15. Class Post implements The_Beginner_pattern « self::blog();

    [...] Beginner Pattern A few months ago, I was reading Brandon Savage’s blog and came across The Beginner Pattern. I was surprised that, in PHP community, there’s a lot of people interested in dividing [...]

  16. PHP tutorials: array_map and array_filter « Adriania

    [...] PHP tutorials: array_map and array_filter adriano posted this in Uncategorized on 08/02/2010 This can be a series of tutorials. I hope it will be. The credit for the initiative goes to the blog post “The Beginner Pattern“. [...]


Leave a Reply



Back to top