« Documenting your code in a useful way | You need to be at Day Camp 4 Developers! » |
Of the questions I get asked regularly, the most common is, “how can I be a better developer?” It seems everyone wants to get better at what they do, to get a better job, earn more money, or simply to enjoy their work more. And by the number of times this topic comes up, it seems people haven’t figured out the best way to accomplish it.
But rather than leave the answer for individual conversations, I want to address my best suggestions for improving your developer skills right now.
Experience matters. Practice matters. They say practice makes perfect, but that’s not true; you can never be perfect. That’s why you keep practicing.
Professional athletes know this: they practice the fundamentals of the game all the time. Pilots know this: they practice emergency procedures regularly. CodeRabbi recommends doing regular “code katas”, or programming exercises to improve your skills. This is a great way to grow. Practice regularly.
Regular practice means increasing your code output. But to grow it also means increasing your challenge level. Writing 4 CRUD applications a week instead of 3 won’t help you grow that much. Learning how to manipulate arrays using each and every one of the array_* functions will help you grow.
There can be learning value in reinventing the wheel. Write a micro framework, or an error handler, or a session manager. Please, for all of us, don’t ever release them (unless you invent a novel solution), but write them, learn them, understand how they work. Understanding how something works is often the first step in being able to use other people’s implementations. It’s also a lot harder to criticize something when you understand the architectural challenges that went into it.
A great way to practice new things is to fix a bug in open source. Pick any project on GitHub that you like and it will have bugs, feature requests, and the like. Fix one. Push the pull request to the maintainer. Take the feedback to heart, and fix the issues so it can be merged into master. And then relish in the fact that your code is part of a big project. Because that’s a worthwhile accomplishment.
Athletes and pilots don’t practice alone. They have coaches, instructors, mentors. You should too.
There are lots of ways for you to seek the help of others. One great way is with mentorship, through PHP Mentoring.
If you’re looking for specific skills, though, often it’s best to seek the help of a teacher or a class. In fact, one of the best ways for you to learn and practice something new is to take a class or a tutorial that’s hands-on, and make your mistakes with the watchful eye of an expert over you. Take the opportunity, when it’s presented, to take a class, and learn from someone who has been there before.
When it comes to object-oriented PHP, I offer the kind of hands-on class that I so highly recommend. I’ve learned that students succeed when they practice what I teach. This means actually working with object-oriented application development, getting the hands dirty, making mistakes. It’s a great way to learn.
It’s been over a year since the last section of The Object Oriented PHP Masterclass, but beginning on February 7th, I’m offering it again! This will be an online, week-long class designed to help you take the principles and apply them with practice. Registration opens on December 17th, and I highly recommend you don’t wait because the last two classes sold out. Plus, if you register before the end of the year, you can use the class as a tax deduction! See you in class!
Brandon Savage is the author of Mastering Object Oriented PHP and Practical Design Patterns in PHP
Posted on 12/3/2014 at 8:00 am
Paul Michael Jones (@pmjones) wrote at 12/3/2014 1:10 pm:
“Write more code than you do right now.”
I assert that it would be more important to *read* more code than you do right now. The best way to be exposed to good writing is to read it; then you can learn from it.
« Documenting your code in a useful way | You need to be at Day Camp 4 Developers! » |