For years I’ve been preaching about being an expert, not a jack of all trades. There are several reasons for this to run down quickly.
- Experts are called when no one else can fix or build something, so they command higher pay.
- Experts stay booked if they also do quality work and know how to keep clients happy, so long as their niche can support a full schedule. Even as relatively rare as nuclear power plants are, the best nuclear machinist engineers are called all over the world for their trade.
- Jacks of all trades can do lots of work, but as soon as something gets complex, they either tap out or disappoint their clients. I get those projects more than should ever happen to good people.
One of the key ways to jump to the next level is to keep learning. Hone your skills in an area until you are confident and efficient. What I’ve done for years is learning at the school of hard knocks by solving client problems. Hunting for snippets or StackExchange solutions has sufficed for me so far, but recently, I’ve needed to fill in the gaps that method created.
a quick story
I started school in Ohio in one of the state’s highest-ranking K-12 schools. My Algebra teacher was a college professor at the community college at night and her husband was a tenured professor of math at BGSU half an hour away. He actually taught our class how to do quadratic equations without showing any work one day when he substituted for her. I was doing really well in Algebra.
We moved to Florida after the first semester of my 10th grade. I’d started Algebra in the regular track because schools in rural Ohio were college-prep, so there was no such thing as an honors program, AP, or anything over a 4.0 GPA. I was reading books and falling asleep in Algebra in Florida, so my parents got me into several honors classes. The problem? I’d missed 6 weeks of their curriculum, which was actually trigonometry.
I struggled for the rest of my math life. I failed College Algebra I. I re-took it the next semester and attended every class in the front 5 rows, did EVERY homework problem in the book, all of the extra credit, and finished with a 109%. I applied the same dedication to Calculus I the next semester and had to drop out before the first exam. That said, I did get a very high A in both Stats I & II, so my take-away is that I am missing fundamental math blocks.
the same applies to work
Since I’ve learned how to code on my own, I’m also missing large blocks in programming. I’m comfortable calling myself a developer but that’s because I’m a coder but I’m clearly not a programmer. Some days I spend an hour or two… or two days… trying to solve a problem in my code or someone’s code I inherited. Arrays, if/else/elseif/for/foreach, and loops give me fits because I know what works, but I didn’t know why.
Queue Treehouse. I got a year subscription on a really good deal from AppSumo a few years ago. In June of 2014, Zac Gordon put out a request for any Genesis developers who were interested in guest teaching and we had met and hit it off at WordCamp Orlando a year or two prior, so he had an easy candidate.
As a result of teaching, I learned a lot, because there’s no better learning tool than needing to teach something. I also started taking a lot of courses. In the last year, I’ve taken Sass, PHP, Git, Grunt, Console Basics, and also taught Modern WordPress Workflow and an intermediate Genesis Theme Development course.
learning pays off
One of the most exciting courses I’ve seen in a while is Hello Tonya’s Apprentice course at WordPress Developer’s Club. https://wpdevelopersclub.com/ I just heard about it on Sunday and have already dived in. I joined the Slack team and have already helped and been helped. It boasts some pretty big names in WordPress development and everyone is pretty big on getting developers a certification underway and ensuring a common knowledge base level. Object-Oriented Programming? I don’t know it yet, but I sure want to.
If you do, then you have to join her 10-person limit course with plenty of one-on-one time and real-world projects. The Apprentice program is on my list as soon as we replace some equipment and I ensure I have a beginner’s knowlege of some more languages and concepts.
So what are you waiting for? What are you learning? How has your programming or coding career evolved over your career? Let’s chat.
Vajrasar Goswami says
Very valid points. Constant learning and moving forward with what is learned (even in baby steps) is progress.
Also, Tonya’s Dev Apprentice program is a real deal. She is already running Know the Code show on WPDevelopersClub website and is very active (and helpful) when someone approaches with any sort of query.
OOP is also in my bucket list from a long time and am looking forward for the course.
Jeff says
Great article Jesse! There is definitely no better job security than mastering your skill.
With the hope of becoming a full time WordPress developer, and being a total newbie to both web development and WordPress, I’m starting with the basics and striving to understand the code. For me slapping together themes by following documentation and using plugins is not enough. I would never be comfortable taking on clients without understanding the mechanics behind my projects.
Jesse Petersen says
With practice and experience comes confidence. I had no choice but to take on clients after my last job, so I got thrown into the fray right away. Thankfully I had quite a few friends who had been waiting for me to have enough time to make them custom websites. Some of my clients have been with me since the first 6 months in 2009.
Patrick says
Excellent post, mate.
My two favorite points:
1) Never stop learning.
2) You must learn the basics.
I’ve always been in a career where continuing education was mandatory, so putting in a full day and then studying at night is familiar territory. I think I like developing so much because there’s always progress to be made; you’re never “there.”
It’s great having you in the club. We’ve got a nice group of hard-working people, and that makes the journey so much easier and more fun.
Jesse Petersen says
It’s been really fun to be working with you on a project. Being an introvert, making new friends this was is so awesome to me. Here is to many more projects.
Alexandra Spalato says
Great article and so true!
i’m also a self taught, have good work, but so many gaps in my knowledge.
fortunately learning is my favorite hobby, and i have also lastly discover WPDC which seems to be exactly what i was searching for, already applied for the next dev apprentice, and hope to be in!
never hesitate to invest on yourself, our brain is our number 1 tool!
Jesse Petersen says
I hope you get in!
Paul Douglas says
Great post. WordPress has launched so many careers. I am working toward being a successful WP developer. I have been paid for 18 sites. I started last fall and I have not been out of work since. Thank you Jesse for your inspiration (your blog posts have played a role in my evolution) -pd
Jesse Petersen says
Thanks, Paul. I’m just glad people read my content. 🙂
18 sites is definitely well on your way to a commanding confidence with clients. I’m looking forward to watching your progress.
Marjorie Ray says
I love this post. I also have blocks of skills I’d like to get under my belt and, in the past, I’ve gotten overwhelmed with all there is to learn. The thing I really like about Tonya and the WPDevelopersClub is the clear path towards truly understanding programming. Tonya suggests introductory courses to take on CodeSchool and then segues into her weekly challenges and development school, of which the curriculum is still being developed. I have already learned alot and value the clear guidance in the slack group and through the website mentioned above.
Tonya says
Hats off to you, Jesse,
Through your personal story, you framed how the gaps in knowledge, especially in the elementaries, can make your daily workflow harder. I want to personally thank you for supporting WPDC.
So many developers have the pain points of time spent searching for a solution and then dealing with the side effects from snippets or external code. It can be so frustrating.
You nailed it on the head with needing to know more than “how to” write a foreach loop. Knowing what the foreach is doing, how it interacts and iterates through an array or object’s properties, when to use it, and how to test it are vital tools in the Software Developer’s toolbox.
The path to excellence starts with a deeply rooted understanding of the elementaries (I’m working on Elementaries of Web Development for WordPress now actually). Layer-by-layer, you systematically build your expertise with theoretical and practical knowledge which is heavily supplemented and balanced with actual implementation. I call this model: Learn. Do.
Once you enter the wonderful world of OO, it becomes your go-to design pattern. Why? Well one, you begin to think in objects. It elevates and streamlines your build process. Your code is built in modular, reusable, well-formed, quality, and fully-tested modules of functionality. You then pull these modules into your project, pass in (inject) a configuration and dependencies to each, and quickly your project comes together.
None of us can afford to stop learning. I learn everyday. Ours is a “thinking” career. Investing in yourself, asking questions, thinking about and understanding each line of code you place within your project, learning the elementaries, and reading lots and lots of code defines you in this discipline.
See you in our Slack Community.
Happy coding,
Tonya
Amanda Rush says
Hey Jesse this is a great article. Learning is never, ever done, and I think the best thing to do is (a) learn a particular skill, and (b) keep yourself refreshed on the basics. There’s a lot that goes into our discipline and sometimes we lose track of some of the things we’ve learned over the years.
Jesse Petersen says
That is true. There’s some complacency that can develop with that confidence and command of one’s expertise.