My unstructured tips to learn programming for WordPress.
- Are you curious to learn programming during these Corona times?
- Are you looking to advance your skills or advance your pay?
- Or are you just a curious little bastard?
I’ll do my best to explain how you can do it, and to make it feel easy enough.
1. Decide WHY to learn programming
This is the most important decision to make and sets up the tone for which method (IMO) is best for you to learn programming. Because there’s a big difference between a person knowing how to code VS being a coder.
Do you want to be a programmer?
- Working in code all day long.
- Looking up documentation, functions, filters and hooks.
- Updating and repairing existing code.
Do you want to run a development business?
- Deal with clients and day-to-day business operations.
- Fix some things yourself in code.
- Specify and requirements for contract coders to execute for you.
Do you want to run your own business?
- Focus on your business profit and operations.
- Focus on customers and product management.
- Outsource all programming and development aspects.
It ultimately comes down to what you expect out of your programming ability. To be the best programmer possible and keep adding more programming knowledge over time? Or just enough to handle simple tasks but hire out for everything else?
Those of you who don’t know the answer to these questions will waste tremendous time because you won’t have your priorities straight. Your days will also be conflicted as you bounce around between not knowing how to help clients vs not knowing how to help yourself. Hahahah.
Luckily, I already know your answer for you… 😉
2. Outline your programming learning path
If you want to be a “real” professional coder….go join a coding bootcamp.
- There are many good and bad ones.
- They vary in quality, cost, subject-range, job-network & job-guarantee.
I haven’t taken any of these so I can’t speak with any authority on them. What I can share is anecdotal advice from fellow friends, roommates, and co-workers who took such bootcamps.
You have to do a ton of research to know which ones are right for you. Some are better for handholding and you get tons of attention. Some are more specialized than others. What you get out of these depends on what you put into them. You should expect yourself to put in 12-16hr days for 4-6 months straight. Lots of reading, studying, practicing.
IMO….most serious programmers don’t even like the idea of WordPress. It’s too boring and un-challenging for them. Truly talented genius programmers prefer much more backend-heavy applications with lots of data science and what not. They see WordPress in the way that many WordPress developers see Wix (too limited and inflexible/boring).
With that in mind, many coding bootcamps out there are truly designed (or at least marketed) to prepare you for the real world of coding…where you’re competing against genius coders out there working for Google. Where the best of the best of super young kids fly in from around the world. Much more modern languages/libraries.
What this means…is most coding bootcamps are teaching you so much more than you actually need for WordPress and many aren’t even teaching WordPress-specific programming. You’ll spend lots of time learning things you’ll almost never use for WordPress. Overwhelming and overkill.
If you want to DIY learn how to program, you should choose a WordPress-specific learning route.
98% of you reading this guide will fit this definition. You aren’t actually trying to be a programmer. You only want to learn how to program for WordPress-specific tasks. This is actually so much easier and WordPress is already built for this. Not only easy for end-users but also for developers to modify things.
As long as you understand basic programming concepts and terminology, you can actually “program” just fine in WordPress without being a know-everything coder. Their documentation is easy enough. The CMS is built flexible enough where complex things can be accomplished with settings (for end users) and functions/filters (for developers).
You can learn everything you need with a mix of basic programming knowledge and then following guides for specific tasks. You should also learn how others accomplish the same tasks differently (and why). Within there, you can fill in all the blanks for yourself over time.
Don’t worry about your age or other silly doubts. I used to feel like if I wasn’t a rockstar coder by 25, I was too old already. But this thinking is silly. If you’re even curious about it, you may have more natural aptitude for it than you think.
3. Where to learn basic programming
Don’t freak yourself out about learning and remembering everything. You only need to learn enough to:
- Recognize which language it is.
- Know what that language can do.
- Look up documentation in that language.
And that’s it! If you know those things…you can program many things without actually knowing/remembering exactly how to program. Take plumbing for example. I might not be a licensed plumber…but if I know the terminology of what a U-joint pipe and allen wrench and other parts, I can look things up on Google/Youtube and repair things myself following a guide.
Programming is very similar…
- Client has a problem or wants to change something in her menu.
- I check the menu code to see what language it’s in.
- Ahhh, I see it’s a combination of CSS for styling and JS for the animation.
- I then read through the code to see what part I have to edit. In some cases, it’s just a matter of changing red to blue, or 200px to 100px. In other cases, I have to change programming function behavior…and will have to look up documentation. That’s it!
If you’ve gotten this far, the job is already very easy. So what’s the hard part of programming? The hard part is finding the right part of the code to edit. Simple things are easy to find. You can find the code in 2 minutes. Complex things take so much more time, you have to read through the code following functions across many directories and files. In many cases, you have to read documentation to know where things are. And then once you’re finally there…you can decide how to alter the code.
FYI, this is why a big part of coding is cleanliness and organization. Great coders structure things in a way that’s easy to find without having to read through every line of code. The other half of the work is you developing enough experience to know how to read code quickly. If you don’t have experience, you’ll blow many hours reading many lines and not understanding what each bit does. If you’re experienced or very familiar with how developers structure things, you’ll be able to guess where the code (you need edit) is, even based on the directory and filenames alone.
What do all the different programming languages do?
- HTML is for structuring page layout and content hierarchy. Page content sections are wrapped
<header>
,<body
>,<footer>
tags. Page content itself is wrapped in tags like<h1>
,<p>
, and<b>
. These tags tell browsers how to display the content and search engines how to rank the importance of the content. - CSS is for styling the HTML output. Allows you to put colors, images, and shifting content around in different layouts. Also allows you to re-style/re-size content for different media devices (desktop vs tablet vs mobile). By nature, HTML & CSS are considered “static” meaning that nothing ever changes on the website.
- PHP is for running functions and inputting/outputting data via databases. Functions allows for conditional events such as: IF user does this, then DO that. Inputting and outputting data is what turns websites into web applications. It’s no longer a static brochure but a program, so to speak. You can have a login, make changes to data, change how things appear on frontend, and many other functions. Having conditional display qualities is what makes PHP websites “dynamic”.
- JAVASCRIPT allows for live interactivity. It allows you to change HTML and CSS content live without having to reload the page. This makes websites more like an application rather than a website…in that things animate or content changes immediately when clicked, instead of reloading a page. This makes sense for things that show better as an animation (like slideshow gallery, shopping cart item count, collapsible accordion, or game).
When looking for different programming languages to learn, you’ll often hear a bunch of head-spinning terminology confusing the heck out of you. I’ll touch on them and explain whether or not they’re useful from WordPress point-of-view.
- ReactJS, NodeJS, VueJS, Angular, jQuery – these are popular Javascript libraries, engines, environments, or frameworks based on Javascript. Used to build powerful enterprise applications (like eBay). You don’t have to learn them for WordPress unless you plan to build custom things. (I suggest leave it alone for now.)
- Bootstrap, Tailwind – popular CSS frameworks used to speed up your design work and/or create CSS uniformity within your WordPress sites. They’re only useful for experienced devs doing lots of custom themes, or beginner devs not wanting to write CSS from scratch. But you really don’t have to learn them as a beginner.
- Python, Perl, Ruby on Rails (RoR), Laravel, Django – other popular languages used to build enterprise applications…like webhosting control panels and other CMS platforms. You don’t need to learn them for WordPress.
Generally, WordPress is very basic…needs only PHP, MYSQL, HTML, CSS, JS. For that reason, higher level developers look down on it. PHP indeed feels barbaric compared to the flashier newer languages/frameworks. Sure, WordPress can be extended with more complex JS (through React) but that’s a whole other can of worms and not anywhere close to what most people will ever be doing.
Basic programming courses are for learning syntax.
- Start with HTML/CSS at freecodecamp.org.
- You can learn PHP and Javascript here as well but I don’t recommend it. I think video tutorials are easier.
- W3schools – great resource to learn proper syntax and look up helpful references for basic programming languages.
It’s easy enough that anybody can learn. Very fun and engaging. You can learn enough to be functional within a day (or even an hour). Don’t bother trying to remember all the different possibilities of HTML and CSS. All you really need to know is:
- HTML puts content inside open and close brackets like
<p>
and</p>
. - CSS styles things according to their selector class (
.header-bar
) or ID (#newsletter-side
), and lays out styles in this format{ style: setting; }
- CSS can be placed inline in HTML or done through a separate CSS stylesheet enqueued at the top of your HTML or in your initializing theme PHP file (such as
header.php
). - Don’t bother yourself with trying to remember CSS grid or flexbox. There are great references to lookup when you actually need it.
- Don’t bother with CSS variables or frameworks either. You likely won’t be writing CSS from scratch to need that yet. And once you get to that level, you’ll understand it intuitively anyway.
Learn PHP from Youtube tutorials.
- I highly recommend Dani Krossing’s PHP tutorials.
- Super easy, super fast.
- Great way to understand PHP in the fastest time possible.
Most PHP courses are way too long and unengaging. They try to “teach by doing” but that doesn’t help much when what they’re doing isn’t related to WordPress. I don’t like PHP books either. They are written too much like PHP glossary references and lack the helpful human commentary that video courses can give you.
All you really need is an overview of what PHP can do. Conceptual understanding of variables, functions, statements and loops. That’s it!
With that alone, you can do lots of manual CSS styling and PHP conditional functions already. Also good enough to hack templates and fork plugins, create custom ACF blocks.
Learn Javascript from Youtube tutorials.
- I like Dani Krossing for basic JS courses as well.
- From an end-user POV, Javascript is somewhat similar to PHP (having functions and variables) and also CSS (affecting styling).
Personally, I think you can skip learning Javascript as a beginner coder. You can do basic courses just for exposure. But in your realistic day-to-day coding work, you won’t use JS anywhere near as much unless you’re creating custom plugins. As long as you have a general sense of how JS works, you can look up code references when needed. Most of your JS use (as a beginner) is for live styling effects only and not for application-type functions.
WordPress programming tutorials.
- Most of them are built around creating your own theme.
- Some use Underscores or other starter theme.
- Some use child themes based off a framework (like Genesis).
WordPress programming tutorials almost always assume you already know how to code, and now just getting familiar with the WordPress theme logic. They don’t actually teach you how to program.
These are good to follow to learn (how to create custom themes) and get a sense for what’s being taught but you’ll need to know much more. There are many details and nuances to creating a custom theme that are never covered in these tutorials. What I recommend is doing these tutorials to get the basics down but then study other existing themes/child-themes on the market to get a real sense of all the other stuff. Read the code carefully and you’ll see what I mean.
4. WordPress programming basics
This part will help you feel familiar with WordPress. Being a programmer alone is not enough. Just because you know how to program doesn’t mean you know how to do things in WordPress, or how to do them in the “WordPress way”.
WordPress-specific programming things you need to know:
- WordPress template hierarchy and template hierarchy chart – tells you how to edit template files as well as the proper naming method for creating your own template files.
- WordPress function reference – tells all the functions that are included within WordPress core. Useful to know so you can simply use existing functions instead of writing your own from scratch.
- WordPress code reference – great general reading to know all about WordPress core function, classes, hooks, and methods.
- Theme documentation – read your theme documentation to know where it places important files. Also to know what functions, filters, and hooks it already has (only common with developer-grade themes).
- Read through all your theme files – start with
index.php
. It will call either functions or other files. If it calls a function, look up the function to see what it does and what file it calls. If it calls a file, navigate to that file and see what functions and files they call as well. Do this painstakingly until you’ve read all files. You will then understand exactly what every file does.
If you’re not the type to read dictionaries for fun…then don’t bother reading all these and just learn as you go. After enough clients, you’ll learn all these naturally. You’ll be surprised how much you absorb in passing.
Programming tools & workflow tips.
Picking the right code editor (aka “IDE”). You got 3 options:
- Visual Studio Code – pick this if you don’t know what you’re doing and following guides. Most people use this.
- Atom – nice and simple. Clean vibe and pretty.
- Sublime – costs money but great and lightweight. Hardcode devs like this.
Other workflow tools:
- GitHub – get familiar with this. It serves 2 main functions…one is allowing you to push code to a central repository which can then be managed there (track changes) and also contributed to by other team members or contractors.
- Local by FlyWheel – awesome super simple desktop app for serving WordPress locally off your computer. Also provides an external URL if you want to share with clients.
- hosts.cx – allow you to (test) point any domain to any IP for testing purposes.
5. Common tasks for beginner WordPress coders.
Edit (or fix) HTML content.
- Change hard-coded text in template files.
- Change or add CSS selectors in template files.
- Edit HTML content in posts or widgets.
With HTML knowledge, you can begin reading source code (right-click any web page and hit “View Source”) and understanding how frontend content and styling is reflected in backend code. You start getting an idea of what things have to be adjusted and where.
You can edit HTML content from within the WordPress backend or within the theme php files.
Change CSS styling.
- Change styling for text, images, or content containers.
- Change colors, sizes, or other visual effects.
- Change animation behavior on mouse hover.
- Add custom CSS selectors or ID’s in Gutenberg blocks.
With CSS knowledge, you can begin playing with different CSS styling possiblities. Right-click any element on the webpage and click “Inspect”, then try changing CSS options to temporarily restyle things. If you like your changes, simply commit them officially to your theme stylesheet or Customizer > Additional CSS to make them permanent.
Copy-paste PHP snippets into functions.php
file.
- Useful for code snippets that change functionality for WordPress core, theme, or plugin.
- Creating simple plugins instead of relying on functions.php snippet.
All WordPress functionality is done via the functions.php
file inside your theme directory or through a WordPress plugin. The same code works in both places. The only difference is that if you have a lot of function code, it’s probably best added through a separate plugin (much neater and “best practice” this way). The other issue is that anything you put into your functions.php would be lost if you switch your theme.
While it doesn’t take any PHP skill to copy-paste snippets into the functions.php file, the knowledge helps you understand what each snippet does and to make sure they don’t conflict with each other. Also useful for keeping things tidy and knowing when you can delete unused ones.
Making changes to your WordPress theme.
- Content changes – open the php file and add, delete, or modify any part you want.
- Editing widgets – add or remove widget positions. Don’t forget to adjust the styling.
- Editing page templates – edit existing ones or add new ones, that come with new layouts and new styling. Also useful when you need to create custom page templates to go with your custom post types.
The biggest challenge here will be figuring out which files you need to edit. This is easiest done by reading your theme documentation. If that doesn’t help, you could use one of those plugins that show you which template files are used, and which hooks are used.
Create a custom post type.
- I personally prefer and am most familiar with ACF Pro. Big user base with many respected developers, lots of official and unofficial documentation, great performance.
- I like the vibe of Meta Box as well. Much cheaper price than ACF Pro and does some tasks easier.
- Toolset and others, I’m sure are good as well but I have little familiarity with them.
Once you’re creating your own CPT’s, you’re practically in the realm of creating your own plugins already. After all…. plugins give you either custom content, custom design, or custom functionality.
Creating a post type requires registering the post type, whether via theme functions.php or as separate plugin, then create the frontend template file and of course accompanying CSS. Just follow the guides and you’ll figure it out soon enough!
Create a custom Gutenberg block.
- Very similar to creating a CPT.
- Register your Gutenberg block, then create template file and accompanying CSS styles.
- There are a few extra details, such as deciding how you want your Gutenberg block to show on the backend…name, icon, alignment and width options.
- Many helpful guides out there.
Learning this is so useful for weaning clients off of bloated pagebuilders. It’s also useful for creating your own little custom content blocks that fit your needs better.
Using developer-grade themes and plugins.
At this point, you should be good enough to use developer plugins that are built more lean and unstyled, giving you lots of flexibility over how to use them and style them.
Developer-friendly themes will also offer lots of flexibility that newbies themes don’t. Mainly the ability to quickly edit your general template style, and then hook and filter extra things as you need. The other massive benefit (and possibly the true benefit) is that you’re now in a community with far more skilled developers and have a better sense of how pros do things.
Any chance you get to do things the “newbie” way or the “developer” way, I hope you choose the latter from here on out. Don’t give up opportunities to learn. 😉
Forking themes and plugins.
Take existing stuff out there and hack it to your heart’s delight. Chop out everything you don’t want and add extra stuff you like. Rename or whitelabel things to your own company name.
Creating your own theme.
Please be careful. Don’t turn your client site into that Frankenstein site that never gets updated. Underscores is great for learning but very rarely have I actually seen a clean custom-built one. More often than not, it’s a messy bunch of unused code and rat nest of a functions.php file.
Best way to create your own theme is to use a framework (Genesis or GeneratePress) and then start with a child theme that looks similar to what you want. Then hack carefully from there. You can certainly learn how to write from scratch but you’ll blow many hours familiarizing yourself with typical boilerplate code. I’d say read through 2-3 different child theme developer’s work to get a sense of what you need or not and where you should place things. Good luck…it’s a LOT of work!
5. What’s the hardest part about learning how to program?
Getting overwhelmed by information.
The biggest stress for me was feeling like I had to remember everything or else I would lose what I just learned forever. And in fact, it was the reason why I stopped-and-started so many times over the years.
If I could give tips to my younger self, I would comfort myself by saying, “All you have to learn is how to read code. Don’t worry about writing it.” If you know how to read code and have a general idea what each bit does…that’s already half the work!
Most issues that require code fixes spend 50-75% of the time finding the right file and line of code to resolve, and then the remaining time in writing and testing it. Even if you aren’t good enough to rewrite code, simply passing that bit off to your developer saves on their time (and your costs) tremendously!
Not having a mentor.
No matter how DIY-capable you are, you really need a mentor or someone to bounce noob questions off of. Sure there are programming forums, Stack Exchange, and what not but it really helps so much more to have a developer friend who works on the same platform, knows what you’re doing, and can point you to better references.
I would even say that for certain aspects of coding, you really shouldn’t DIY at all…as it causes you to learn and accidentally memorize many wrong ways of doing things. Better just get straight to the best solution so your cluttered mind doesn’t have any chance to imprint anything else!
Differentiating between PHP functions vs WordPress functions.
You’ll often run into moments where you’ll see many ways to accomplish the same task. The built-in PHP way, the WordPress way, or even a method made available by your theme. Ideally, I would pick only the WordPress or theme option.
Knowing that many methods exist will also help you understand why many guides out there may not work exactly for your site.
Learning how to code in “best practices”.
Most people might be tempted to say remembering syntax or commands is the hardest part, but that’s really only for day-one beginners. With error logs, you’ll resolve those issues easily. The hardest part for me was actually to understand how things should be coded.
As they say, PHP’s great strength is also its weakness. It works even if you don’t code perfectly. This allows lots of room to create messy code that ultimately breaks one day when the 50,000th (straw) line-of-code has been added.
But what does coding for “best practices” mean? It means that you code in the way that is logical for other WordPress coders. Easy for other people to understand and fix. It has to follow some general standard of coding principles, but also a popular method of placing things.
Pretend if you were to fix an air conditioning problem in your house. You might expect the air ducts to be in the ceiling, and cendenser somewhere on the back side of the house. But it would be annoying and time-consuming if the ducts were in the basement and condenser on the neighbor’s front lawn. Sure it still works just the same but it takes you longer to fix if you weren’t the original installer with intimate details.
So how do we learn how to code for others?
Learn to copy other (better) WordPress coders.
If you don’t know what you’re doing, you can start by learning how to copy other programmers. Read through different programmers code and copy the one you like best. The will tend to organize code in certain directories, files, and naming systems. Good code is organized, easy to understand, and makes sense. Clean and efficient!
Over time, you will adjust your style several times as your skills grow with each project. You learn why certain functions and template files should be organized a certain way. You’ll learn which bits of code should be separated into their own file (making it easier to update later) and which bits can be thrown into one long file (and rarely updated).
It won’t take too long before you realize which coders are doing things correctly vs the ones that make you go, “WTF?! Does this programmer even know WordPress?!” You might also see some of what I call “overly-cautious” coders that needlessly split things off into many files. Hahaha.
Anyway, over time you’ll develop a better sense of how professional WordPress coders work. And can mirror their style in your work. You know the exact boilerplate directory and code layout to use, and also where you can have freedom to organize things in your way.
6. How to grow beyond a beginner programmer
BASIC vs INTERMEDIATE vs ADVANCED programmers:
Beginner programmers for me are anybody simply only coding to fix or edit pre-existing code out there. They are good at applying quick CSS fixes, registering simple PHP functions, and following developer guides. Their #1 challenge is speed. They can do most things but complex tasks take longer since they spend more time researching functions/hooks they haven’t memorized yet.
Intermediate coders for me are those who can code things (themes and plugins) 100% from scratch. And do it often enough. Since I do not code things completely from scratch…it’s too time-consuming for me, I don’t consider myself an intermediate coder either. Their main challenges are being cautious (limiting features to avoid high-maintenance code) and being overly proper (wasting too much time to do things so correctly).
Advanced coders for me are those who build commercial-grade themes and plugins. The best ones have grown beyond “simple” client work and more likely running a commercial software business or service. They’re very good at coding and can pretty much do just about anything. Their biggest challenge is coding so other coders (especially intermediate coders) can understand, and strategizing so future code fits in easily (won’t require much rewriting).
Never stop reading other people’s code:
I especially enjoy studying other people’s code. It’s a bit like seeing someone’s personal poetry and recognizing their little nuances. Half the time, I see things that make me go, “Ewww! I would totally do that differently!” and the other half of the time, I see things that make me go “Wow! I never thought of that!”
I always learn so much from seeing even the tiniest and simplest bits of code. There’s always more to learn. One day, I hope to code at the commercial enterprise level. But until then, that’s what I have senior developers and code mentors for. 🙂
Explore more complex WordPress tasks:
- More JS stuff – try writing more of your own JS instead of relying libraries.
- RestAPI stuff – create dynamic application pages.
- React and headless projects – lol, now we’re just reaching.
The easiest way I could put it, is to create solutions that don’t exist. Don’t just give up when something doesn’t exist in the documentation. See if you can find your own elegant way to hack things. Good coding isn’t only in properness but also in cleverness as well!
Get a job as a programmer, working alongside other programmers.
That will open the door for you to work on bigger and more complex projects without the stress of being the sole person responsible for it. You’ll also get to work with more talented programmers…exposure to more time-efficient tools and workflow. Exposure to more languages and libraries. I can’t think of a faster way to improve.
James Mota
Succinct. Great newsletter. Thank you very much, here in Brazil.
James Mota
…and a GeneratePress/Blocks team fan.
Christ0pherzzz
As I helped to inspire this post, I felt it’d be rude not to comment! 😉
Great read and I got a lot out of it. It’s nice to know my imposter syndrome is unjustified and that the constant chopping/changing, or “hacking” as you put it that I’m regularly doing whilst trying to learn locally is pretty much standard protocol. It’s also nice to know that for the most part I’m on the right path and making the right decisions up until now.
One thing I will say though is with GenerateBlocks I’m not even sure I need to learn custom Gutenberg blocks. I know you said we should chose the developers way from here on out but the “Add to reusable blocks” feature (along with being able to export/import) makes it seems like a needless exercise. If I wanted to be truly meticulous I could essentially create my own tailored page builder with very little effort.
Have you seen the recent video guides for the soon to be released new GeneratePress version? You’ll now be able to easily add dynamic content to blocks. It looks insane. Pairing this with the elements section aswell, the power you’ll have without ever needing to touch an actual file is a bit incredible! With all the hooks they have there’s not a reason to even look at so much as even a template file. I’m starting to think GeneratePress is too good now and it could stifle my learning! 😄
Either way, I feel I’m making good progress and I’m sure I’ll refer back to this several times in the future on my journey to hopefully turn this into a career rather than hobby. Thank you Johnny and keep up the good work. 🙂
James Mota
Truth. The new version promises, for those who are fans of GP / GB. This week I had a job interview asking for exactly what is in that post. It is important to remember that they also provide support for other themes and commercial plugins, in addition to developing their own. So it is still important to know how to develop and support the WordPress Core and its languages, regardless of themes. We have good questions here. Thank you for sharing your views.
Johnny
I’m glad this helped you, James. Excited for your personal growth.
James Mota
I’m watching the Dani Krossing’s PHP tutorials. Thanks by indication!
Christ0pherzzz
My bad, I accidentally replied to James. I guess that’s what happens at 2am when you can’t sleep and browse through blogs :/ . Can you move it to a separate post thread of it’s own? Is that an easy thing to do? You can delete this reply then.
Christ0pherzzz
As I helped to inspire this post, I felt it’d be rude not to comment! 😉
Great read and I got a lot out of it. It’s nice to know my imposter syndrome is unjustified and that the constant chopping/changing, or “hacking” as you put it that I’m regularly doing whilst trying to learn locally is pretty much standard protocol. It’s also nice to know that for the most part I’m on the right path and making the right decisions up until now.
One thing I will say though is with GenerateBlocks I’m not even sure I need to learn custom Gutenberg blocks. I know you said we should chose the developers way from here on out but the “Add to reusable blocks” feature (along with being able to export/import) makes it seems like a needless exercise. If I wanted to be truly meticulous I could essentially create my own tailored page builder with very little effort.
Have you seen the recent video guides for the soon to be released new GeneratePress version? You’ll now be able to easily add dynamic content to blocks. It looks insane. Pairing this with the elements section aswell, the power you’ll have without ever needing to touch an actual file is a bit incredible! With all the hooks they have there’s not a reason to even look at so much as even a template file. I’m starting to think GeneratePress is too good now and it could stifle my learning! 😄
Either way, I feel I’m making good progress and I’m sure I’ll refer back to this several times in the future on my journey to hopefully turn this into a career rather than hobby. Thank you Johnny and keep up the good work. 🙂
Johnny
I did see the new GP coming out and very excited for it. Tom is absolutely an underrated pioneer. It’s really such a massive step forward for developers and if it goes smoothly….I may have to declare GP as the official Genesis-killer. We’ll see.
Ecvis
Very nice todo list. 🙂
One question, how do you recommend, or could you think about it out loud a bit, one should find a dev mentor? I have always taught that would be great but never did it as I do not know how to approach this “problem”.
Should this be a local “service”, or are there recomended online ways to book someone? I think that very advanced devs don’t have time for this … dunno … any advice would help.
Johnny
Join FB groups for this and start asking your newb questions. StackOverflow has also been around for only a hundred years.
Ecvis
Hey Johnny,
tnx for a quick reply. I know about stackoverflow and FB groups, but I was refering to this sentence:
“Sure there are programming forums, Stack Exchange, and what not but it really helps so much more to have a developer friend who works on the same platform, knows what you’re doing, and can put you to better references.”
Where what I taught is implied, was something other then genneral community help, but some other sort of mentorship.
Anyhow,
tnx
Johnny
This is a good question and one that could probably be its own post. Having a programmer roommate would be ideal. You can just yell over your shoulder anytime you’re stuck. Making friends from coding bootcamps. Otherwise, start with forums or by hiring people to help you with your projects. Then you have more right to ask them questions for free. If you’re lucky, you’ll meet someone who was previously mentored by someone else and now happy to pay it forward. I found several mentors over the years from different places but can’t even recommend the same route for others. I felt my mentors reached out to me because they liked me as a person. So lol, I wouldn’t know how to teach you to be a likable beginner.
Ok how about this…whatever question you ask, show that you already did the work and researched yourself. That you tried 3-5 methods and still couldn’t figure it out. So that they only have to fix one little part of your function. Rather than them literally having to code out everything for you to even explain the concept you missed.
Ecvis
Thank you very much for taking time to write this answer. In my case its not even about getting help with solving a particular problem, but more about having someone review your code, show you a better way to go about a problem etc, warn you about problems that might happen down the line …
Gotta find that roomate it seems 🙂
Johnny
That’s a code audit. Then finish your code and pay someone else to go over it and improve for you. It’s a very common thing you can do to hire better coders to refactor your work and make pointers.
Voyage Parapente
I am also trying to become a better WordPress developer, and not tinkering the whole thing all the time.
Most of the books are really basic, and barely go beyond wordpress set up, what is the difference between Pages and Posts, how to install a theme or a plugin…
One book stands out though : “WordPress Plugin Development Cookbook”.
Also on Udemy, “Become a WordPress Developer” is really worth it.
If you have any other resources worthwile, please share.