Developer Education

Every developer starts their journey in different place. Eventually, we walk some common paths. Some things aren’t as intuitive to learn, and thus more difficult to learn.

We learn by trial and error. We learn by experience. But we also learn by reading books — from the stories and ideas of the people that came before us. We also connect with other people. Lately, I’ve been thinking about how to create a developer education program. Here are some ideas.

Books

A good place to start is with books. There are some books that most software developers would consider essential. These are the books that developers read, regardless of which languages they use.  The following list contain some of those definitive titles.

  • Design Patterns by Gamma, Helm, Johnson, and Vlissides (Gang of Four)
  • The Programmatic Programmer
  • Clean Code by Robert Martin
  • Patterns of Enterprise Application Architecture by Martin Fowler

It’s important for each developer team to create their own source of local knowledge. By doing so, you harness the knowledge of your team, while expanding it. Amazon is a great resource for discovering information about books. However, it is not so good for determining if the book is right for your team.

You can leverage their customer reviews, to help create a team library. Physical books are harder to share for remote teams. In this case, maintaining a text file to preserve your knowledge about a book is useful. This has a couple of benefits. First, it lets your team members identify the books that are valued by the team. Second, you can make notes about the book without marking it up.

Conferences

Attending a conference is another great way to build your knowledge and experience. listening to talks is great. Sometimes, you learn about something that might be new to you. Sometimes, you gain a new perspective on current knowledge. PHP conferences tend to favor the more practical talks. The value of attending a conference is easier to sell, when you can apply it to your job. Some  communities may favor soft talks. Soft talks are non-technical, and are sometimes more thought-provoking or inspirational. When you watch a talk, you aren’t just getting information. You’re also gaining the personal insight of the speaker, applied to that topic. Most people think of attending a conference, as a passive experience, but it doesn’t have to be.

Many programming conferences also have workshops. These workshops are hands-on, and designed to build your skill on a particular topic. You get to practice using a technology, as well as ask questions that go below the surface.

Another great aspect about conferences is meeting other developers. Conferences provide the opporutnity to meet other developers, you might not otherwise meet. These relationships come in handy. When you need help with an issue, someone to join your team, or when you need some work, you have a net.

Meetups

Meetups are monthly events, designed to support the local community. There are meetups happening all around the world. I run the Seattle PHP meetup. A monthly PHP meetup has some casual networking, a presentation or two, and usually food. For those without a nearby user group, people call Nomad PHP their “local” user group. The difference is Nomad PHP happens entirely online, and you have to pay to hear the talks.

Not only are meetups great for learning new things, but you can also gain speaking experience. Do you want to speak at a conference? Meetups provide a great way to practice your material. It’s also an opportunity to build your presentation skills. Something to think about for your career development.

Brown Bag Talks

A brown bag talk is like an informal meetup within a company, usually for a team.  They get their name because you bring your lunch with you to the session. They’re also known as “Lunch N Learn”. It’s a great way to share knowledge and improve your team.  A brown bag talk may be about something you learned recently, or a technique or tool that might be of value to the team.

Conclusion

There are several ways to improve your development teams’  education. Blogs and magazines are also valid choices. I didn’t discuss them though, because sometimes they’re too vast. Sometimes a magazine also publishes articles on their websites. Perhaps I’ll discuss them in a separate article.

Sorry, but comments are closed. I hope you enjoyed the article