 All right, so today's topic is becoming a better developer. If you have questions or anything along the way, feel free to post them in the chat. We'll try to make this as interactive as we can. So just to give you a little background on me, I work at Bluehost, I'm a WordPress developer, I have been for, I guess, what is this? Probably like 15, 16 years now. And you can find me at WP Scholar. If you just Google WP Scholar, you should be able to find me. So if you have follow-up questions that you don't get to ask here, you can always follow up with me on Twitter, wherever you'd like. So let's kind of jump in here. So this is one of my favorite topics just because as developers, we have to learn so many things. And so really the thing I think makes developers good is just their ability to learn. And so this topic is mostly about how to learn things well, but specifically how to learn things well within the WordPress space and kind of what that looks like. We're gonna show you a visual roadmap of where you're at in your development journey, what you can expect moving forward, and then also give you a way to kind of self-evaluate where you're at and what you should probably be focusing on. So with that short intro, we'll jump in. So this presentation starts with a story about two psychologists, Dunning and Krueger. So some of you may have heard about these two people, but the whole thing that started their research was a story about a guy who basically robbed a bank. He went into a bank, he had no mask on, and he holds up the bank, gets money, hops in a truck, drives down the road, nobody followed him. He apparently lived only a few neighborhoods away. And within an hour, the police were showing up at his door, they arrest him, they take him to jail, and he's just absolutely dumbfounded as to how the police could have possibly found him. So come to find out, he had put lemon juice on his face, which obviously if lemon juice is used to make invisible ink, it would make him invisible as well, right? So therefore he didn't need a mask and they shouldn't have been able to find him because they wouldn't have known who he was. Obviously those are ridiculous, and there's no way that that would actually work. So Dunning and Krueger started this study of do smart people know they're smart and do stupid people know they're stupid. And so they started this study. And as a result of their study, they came away with what is called the Dunning-Krueger Curve. So we'll take a quick look at that. So this is the Dunning-Krueger Curve. So on the left-hand vertical, we have confidence, and on the bottom, we have competence. And so you can see there's a huge surge in confidence in the beginning, but as you become more competent, that tapers off and then appropriately rises later as competence comes further along. So with that, there's kind of two concepts, right? So we have something called the illusory superiority. This is where you hit the peak of that curve and new developers are often more confident in their abilities than they should be. And then the thing that we're all more familiar with is imposter syndrome, which is where you have more experienced developers that are often less confident in their abilities that they should be. So looking at those two things, this is where those land, right? So you have people that think they know more than they do, and this often comes when they start to learn something new, and we'll find out why in a minute. And then, of course, imposter syndrome, where all the confidence comes crashing down. So the thing that kind of take away here is it takes competence to recognize competence. As a person who has interviewed developers, hired developers, the thing that I've noticed is that sometimes the people who are more confident in their skills are actually the least experienced people. And the people who downplay their skills are often the more experienced people, which is a little counterintuitive, but when you think about it from the Dunning-Kruger curve, it makes perfect sense. So let's take a look here. So I've broken down this curve into different phases. So these will be the learning phases that you would go through. Really when you're learning anything, but of course, like I said, we're gonna overlay this within the perspective of learning to be a WordPress developer. So the first phase, and this is where that huge confidence spike comes in, is the imitation phase. So the imitation phase is marked by enthusiasm, right? You're learning something new, you're super excited about it. It's a good thing that you're confident in your abilities because that's the thing that's gonna drive you to continue to learn and to continue to grow. And just as a side note, all of these phases and stages, everyone goes through them, they're not avoidable, but there are things that you can do to kind of shorten the timeframe in which it takes to go through a given phase. So obviously, if you would like to try to avoid the imposter syndrome or illusory superiority, sometimes just understanding the concepts that are gonna help you work with and get around some of those things a little better. But you can also shorten these timeframes. So the very first phase here, imitation is really marked by you as a new learner following along and imitating somebody who is showing you a concept, right? So you sign up for a new, I don't know, video course or whatever it is, and the instructor's walking you step by step. They say, type this out, put this semicolon here, all the little details, things that we might normally miss if we were trying to do this on our own from the get go. So the fact that you're able to copy what they're doing and have some form of success is what contributes to that confidence, right? So you're like, hey, I can't actually do this. I'm able to follow along. I can understand what's going on. And so you get that confidence, you're enthusiastic, but in order to really make it through this process in a timely fashion, we wanna focus in on what we're doing, right? So the one thing we don't wanna do is take course number one, imitate the instructor, take course number two, imitate that instructor, number three, and imitate that instructor, you're gonna end up in this phase and you're gonna stay there, right? You're not really gonna progress. So you've gotta have some goals. So first of all, you wanna make sure that you understand your learning preferences. If you're going about this in the wrong way, you're learning from a video when you like to read or you're learning by yourself when you do better with other people, understanding whether you should be going in person to do a bootcamp or you should be doing an online video course or you should be following an instructional step-by-step text guide. These are all things that you kinda have to feel out for yourself. And then you wanna obviously choose a destination. So one of my favorite quotes, if you aim for nothing, you'll hit it every time. So a few things about choosing your destination, right? So you gotta determine what it is you wanna do and why it is that you wanna do it, right? So you say, hey, I wanna build websites. Well, why do you wanna build a website? Well, I wanna build a website because I see all these people trying to sell stuff unsuccessfully, maybe it's during the COVID time, right? And so your goal was to help people move from brick and mortar to online. So these could be different goals that you might have. So then you have to ask yourself, who do you know that actually does this? So it's important to actually find those people, have a conversation with those people and have a general idea of, hey, what are the resources that I should be learning from? Where is it I should be going to learn? But keep in mind your learning preferences, right? And then talk to these people and say, hey, what is a reasonable timeframe in which it would take me to get from A to B? How long before I can build my first website from scratch? Well, maybe not scratch, but building a website with WordPress plugins versus building a custom theme from the ground up. So understanding the differences and the concepts of where you're trying to go. And I'm a big believer in two different kinds of learning. So when you're first getting into an industry, there's what I call exposure learning, which is where you're just going through courses. And it's okay to go course to course to course, just to get an idea from people who've been there and done that as to what's out there, what's it like to learn different things? Am I going to like one more than the other? And the goal isn't to necessarily really, really learn it, it's just to wrap your head around what's going on. And then there's the learning for the purpose of being able to do the work. And that's where you have to get specific. And then of course, you also want to ask yourself, how much will you be able to learn, right? Do you feel like what you're trying to learn is a bit much? Do you think you need to start with a smaller goal? For a lot of people in the WordPress space, they'll start with a basic website, right? They'll say, okay, I have a WordPress instance, I'm going to put a off the shelf theme on, I'm going to put some plugins in, and I'm going to do some configuration. And that may be your starting point for getting into WordPress. I think that's a lot of people's. And then later on it'll be like, well, it'd be really nice if I could tweak the theme, right? So you start getting into doing customizations with CSS and different things. And then you kind of work your way backwards, right? And to like, well, how can I write code to make it do this? And you learn to write a little snippet or two. And then eventually you write a whole plugin. So these are kind of the ways that you end up, or this is how I backed my way into WordPress. And I think a lot of other people do as well. So moving on, focusing on next steps, we want to make a plan beforehand about what we're going to do and how we're going to react in certain situations. And if you've followed the Atomic Habits book, they have something called implementation intentions. And these are just super helpful in helping you get in the habit of continuously focusing on learning. So it's like a statement here says, I will do X at X time in X location. And that might look something like this. I'll complete one lesson from my JavaScript for WordPress course at 4 p.m. every weekday in my office, right? So you're saying, I'm going to reserve that last hour of the day. I'm going to focus on learning this new thing. And so focus starts with eliminating things, and it improves with concentration and compounds with continuation. So this is kind of my... It's all about getting in the habit of doing it. So you're in the habit of doing your learning, right? You've found a resource that works for you and you're able to, ideally, find somebody who is a good teacher, whether they're actually in person or you're doing a video course or whatever it is, try to go deep, use all their resources, and really learn from them if you like them, right? So then we're going to move on to our next stage here. So this is what I call the practice stage. You'll notice that there's a significant dip here in the practice stage in confidence. There's a good reason for that. It's called confusion. And confusion happens when you basically... Well, my next slide looks pretty well. But during this phase, we want to focus on feedback. So when we're talking about confusion, whoops, we skipped a whole slide. How do we do that? There we go. Yeah, so this is the look, ma, no, handle, bars phase where you're basically... You were imitating and copying someone and now you're trying to actually do some sort of project without all that guidance, right? You're kind of left on your own and you're like, hey, try to build this thing. And a lot of times we fail. There's little tiny things that we miss. We forget a semicolon. Can't figure out why everything's broken. So a lot of things like that will kind of damper the confidence and it can be very confusing because you don't know what you don't know at that point. So in terms of feedback, you want to make sure you have people looking at her code in some way, shape, or form, ideally. So obviously, if you can find a code mentor, that would be ideal. There's plenty of people. The WordPress community is a great place to find a code mentor and so many people are willing and able to give a helping hand in that area. And then you can find a peer, somebody who's learning along with you. Maybe they have a slightly different understanding or just a fresh set of eyes and they'll be able to point you in the right direction. Another one that a lot of people don't think of, you can actually pay another developer to spend their time and walk you through what you missed and maybe different ways of thinking about things. And then if you can't find a person, there's always chat GPT, you can put, paste your code in and say, why is this breaking? Why is this crashing my site or whatever it is, right? Probably not the best because chat GPT isn't always perfectly accurate, but I would expect that it would be very helpful in identifying issues with existing code or at least giving you an idea of where to look. And the other thing is to tighten up your feedback loops, right? So one of the things that I remember making as a mistake when I first started is I would change 100 lines of code and then I would try to see if my thing would run and then it wouldn't. Well, now I have 100 lines of code, I've got to go check and that's not working very well, right? So I learned that I should be changing one line of code, testing, changing one line of code, testing and even though it feels like it's going slower, you're actually tightening up that feedback loop and limiting the surface of that feedback loop so that when a problem happens, you instantly know where to go and where to look. So things like setting up a local development environment so that you're not running through this loop of make a change, push it up to the server, open up the way for it to upload, go to the browser, reload the page, realize you made a mistake, make a change, push it up to the server, like that's a very slow process, but if you can just make a change, load it in the browser, you're saving several steps, right? Learning how to debug code is a big thing because that's going to tighten up that feedback loop. If you are guessing why your code is broken versus knowing why your code is broken, that's a very different experience as a person who is learning. My general rule, well, typically if I'm working with developers or if I've hired a developer and I'm telling them, you know, if you get stuck, I'm telling them within 30 minutes, you should be reaching out if you've made absolutely no progress in 30 minutes. As you're learning new stuff, that time may be longer, like an hour, or maybe, you know, it's all at a personal level, right? Maybe it's an hour and a half for you, who knows? Just give yourself the time to do the research, but know when you're stuck and be sure that you have a way to ask for help at that point. So that's going to speed up that feedback loop and help you kind of get through that practice phase. But then the next thing we have is a build phase. And this is actually essentially two phases and one here, but we're going to break it down into two individual build phases. So this first build phase, again, here, is marked with uncertainty. And as you'll note, this is the very bottom of the confidence loop there, or whatever you call it. And so that's where your imposter syndrome typically will kick in. And the reason why is because, you know, where you were doing practice projects before, now you're trying to build real things. And they typically don't go the way that you want, right? So it's always a little longer and, you know, there's always these little screw balls that get thrown at you. And so you've got to figure it out. So there's a lot of uncertainty with that. And so this is where you want to start to collaborate with other people in order to kind of break through that. So the interesting thing I would like to highlight is that when you hit that imposter syndrome stage, typically that is the point at which you are, the first moment at which you are hireable. So for those who are out there trying to learn and find a job, you're not gonna feel like you can go get a job at the point that you can actually do that. But that's the point at which you really should go get a job to be working with a team of people. And so that you have multiple code mentors that you can turn to at any given time and they can help you. So, you know, find an entry-level position, get involved, work with a team. That's the ideal scenario right there. I like can refer to quote whether you think you can or you think you can't, you're right. It always boils down to your mental perspective. So if you don't think you can, maybe you should give up. But if you think you can, I'm sure you can, right? Like you'll be able to do it. So as long as you are persistent and imply yourself to it, you'll be able to do it. So again, finding a code mentor, imposter syndrome is real and finding a good code mentor will help counteract that. And like I said, if you can get a job and find a team of people to work with, even if it's just like an entry-level contract position like, hey, I would like to work with this agency as a contractor and just do X, Y, Z. Like I know X, Y, Z, but I would also like to learn A, right? You throw in one extra thing. So you're doing work that you know is, you know, 90% of it but you're reserving 10% and saying, hey, I'm gonna need help with this. And that's how you can kind of grow incrementally by working with other people. And that's, you know, if you don't have to get a official job, you can grow into a contract type of work, freelance work. And my just general recommendation there is if you can find three agencies that specialize in what you're wanting to do WordPress, I would assume. And you can just take on some small projects and then typically they do have teams of people and they will, you know, I've worked with people in the past and they've made other people available and said, hey, if you get stuck on this, you can reach out. So you still kind of get that team but you can also focus on the things you're good at and then continue to just incrementally learn some things. And yeah, so hackathons are also a great way as mentioned here in the comments. And pair programming. This is something that a lot of times people are afraid of but even if you're doing it with a friend who's trying to learn the same things, everyone's gonna have a different perspective and being able to bring those perspectives together and to think through how to code something out is very, very beneficial. So collaboration is one of those things where everyone brings their perspective. And so this image here, some people are gonna see an old lady and some people are gonna see a young lady. And once you see one, usually that's what you see and you don't see the other until somebody else points it out, right? They say, hey, you know, this is where the chin is and so on and so forth. And then usually you can see it. So it's kind of the same way it is with code. Learning version control is one of those things that you want to do as soon as you're in this build phase. It's important and very helpful if you're trying to debug your own code, being able to jump back to a previous state and say, okay, well, this is where it worked. This is where it started getting weird and so on. So that's one of those things that I think you should start to learn at that point. Aside from the fact that generally, I tell people who are looking to hire a developer that if their developer doesn't use version control, they should probably find another developer. So again, this is something you should start to learn pretty early on. But yeah, so it's all about feedback, all about collaboration. And then as you build more and more things, you'll enter into kind of this second phase of a build. So this is where you're gonna experience efficiency. And so this is where you're gonna start to automate things and reuse your existing code. So in this phase, one of the things that you'll start to realize is there's this stuff called code scaffolding that you can leverage to help get your projects off to a faster start. If you found them earlier, great. But at this point, you're gonna really know how to use some of these tools well. And you'll have preferences and a better idea of which ones to use. A lot of times new developers resist some of the tools that everybody uses because they feel like, oh, well, I see this cool new thing over here or this thing over there. And they don't get the whole background as to why most developers in this space are using this particular tool. And generally, I haven't been led wrong with kind of following the more larger crowd of developers. Still keeping an eye out for new things and kind of experimenting, but knowing that until those things are proven, I'm gonna stick with what most people are doing. Yeah, a good presentation on version control is actually a good idea. That might be something we could do on another presentation here. So yeah, so automation is one of those things, right? So when you first start automation is not something you should really be doing because you really need to learn and understand better what's going on before you start to automate. So for example, one of the things you're gonna wanna do is have a easy way to automatically format your code. And this sounds minor, like something you could skip over, but if you think about it, you actually as a developer spend 90% of your time reading code at about 10% of your time writing code because first you have to look at the code and figure out in general, like what's going on, where are things located? You're gonna have to read the code again to figure out what, where would my bug fix or where is my bug happening? And you'll have to read it again to figure out how to add your bug fix into it. And then you'll have to read it again to make sure your bug fix makes sense. And then when your bug fix doesn't work, you're gonna have to read it again to try to figure out. So you get the point, like you're gonna be reading code a lot. So if you don't have a consistent format to it, it's gonna be harder for your brain to process and it's gonna eat up a lot of that 90% of your time trying to read it. Code formatting is one of those secrets that if I could tell you just have a tool to do that, great. I use a editor called PHP Storm and I have a shortcut and it will format an entire file or an entire project. So usually if I inherit a project, the very first thing I do is just format all the code and the entire project, at least all the custom code that I have to change. So then we have linting tools. Linting tools are tools that allow you to essentially, they read your code and tell you if there's errors or likely errors, things like that. And so these are some things that you'll definitely wanna get familiar with because linting tools are essentially like having a codement or look over your shoulder and tell you, hey, you're not escaping this code, it's not secure or hey, you shouldn't use that function, it doesn't use caching or hey, you did some weird formatting over here, you should probably be consistent with it. That's more important when you're working with teams of people because you want your code to be consistent and look like one person wrote it instead of 10 or however many people it was. And you wanna have all these code quality checks and things automated as much as you can. And then we have build tools. So being able to automate the process of converting your stats into CSS or being able to automate deployments or any of those types of workflow type things as well, very important. And then testing, of course. And then we wanna be able to reuse our code. So just automating things is great but we also wanna be able to reuse code. The key to being a more productive developer is knowing that, hey, if I can just create some code that does this one thing and package it up so that I can use it over and over again and improve it as I go, that's going to be more usable and save you more time in the long run than saying, okay, well, I'm just gonna put this code here and then the next project you're like, ah, I remember I used that code, I'm just gonna copy and paste it here and then you copy and paste it to another project but you fixed a bug here in this project and a bug in that project and then you wanna use it on a new project but now you're not sure which copy you divert to use and gets confusing. So if you can package things in plugins, that's great. That's obviously kind of a normal thing in the WordPress space. If you can reuse by creating like a parent theme or maybe a block theme or something where you can reuse a design. And then we have packages, right? So we have the ability to say, give me just a bit of code that I can just flop into a project, whether that's a theme or a plugin, being able to use a package manager to control all that like Composer or MPM is very helpful. So, oh, a question that might have gotten missed. What Linter do you suggest for PHP? So WordPress actually has a PHP CS, PHP coach sniffer, which is the tool that will do the linting, but they have WordPress standards. They actually have like four different standards you could choose to use. There's also some other tools that you can mix in there like there's some PHP compatibility tools. But yeah, yeah, there's the link. Thanks, Michael. So those coding standards are a great place to start and being able to package those as a whole and use those is very helpful. So yeah, so we're talking about packages and package management. These are the things that are gonna help you to reuse your code. And then of course, Alicia here mentioned that on local, if you happen to use local WP as your local environment, they have what they call blueprints, which will allow you to take an entire site and make a copy of it and then change things out and so on. So if you do a lot of the same type of website, it's a great scaffolding tool to use. And then of course, as you create things and make them reusable, make sure you add documentation so that six months down the road, you don't completely forget how it works because it's most likely you who will forget and then you're really just doing yourself a disservice. All right, so we've experienced most of the curve at this point and efficiency is kind of where we just hit. So what is after that? So essentially, we're looking at the mastery phase. So not everybody reaches the mastery phase and that's fine, but I think everybody should strive for that, master your craft. So this is where we're moving from efficiency to effectiveness and there is a difference and really this phase is focused on strategizing. So this is where you start to get into architecture and design patterns, excuse me. So, whoops, skipping a hit. So from an architecture standpoint, making sure that as you write code that feature A is not too dependent on feature B and feature B is not too dependent on feature A, you wanna make sure that there's the right dependencies between all the things. And then you also wanna make sure that you're using design patterns that make sense for the type of architecture that you're trying to build. It took me a long time to realize in the PHP space that there are these things called PHP design patterns and PHP design patterns are very helpful to learn to just understand some basic ideas of how to put code together. And what makes sense logically and from an architectural standpoint to kind of how to build these things so that they can glue together well or this thing can build that thing or you can change this layer out for another layer and it won't matter, everything else will work the same. So these design patterns are very, very important. So if you haven't looked into that, I would say just Google PHP design patterns or JavaScript design patterns if you happen to be more into JavaScript and take a look. The other thing you wanna do at kind of this mastery level is to make sure you're varying up your inputs. Don't get stuck in the WordPress bubble. You wanna explore outside of that. You wanna look at Laravel and you wanna look at other tools that are out there and other communities as well and just expose yourself to those things and what other build tools, whether things and be able to apply whatever makes sense to your work. And then you also wanna obviously try to review what you know and maybe what you don't know and fill those gaps. So a lot of times you get to a certain point you're doing a certain type of work and then as you start to see more opportunities you start to realize there's these knowledge gaps that you can address. So, and speaking of mastery, a lot of times when you're at that level you're talking about working with teams not just working with teams, but managing teams. And I saw an interesting article the other day is we've all heard of the 10x WordPress developer or 10x developer in general, right? So these are the people that are so good at their job that they're like having 10 people do the work, right? So you can accomplish that in several ways, right? Like if you're that good and it does take a lot of work to get to be a 10x developer you can contribute 10 times the amount of work to your team, but 10x means 10 units, right? Because if your work was originally one unit and you 10x it, you've now got 10 units. But if you can be a multiplier, a catalyst for your team and you can improve your teams output just by two and you have a team of five then essentially you've accomplished the same thing and you haven't had to improve yourself that much you just needed to help the team, right? So that's the kind of thing that you wanna look at and make sure that you have a right perspective on teamwork in general and not trying to just be the what they call a superhero engineer. So talking about leadership, teaching and mentoring others is a very key skill and it will make your team stronger making sure that you focus a bit on innovation making sure that you're not always kind of stuck in the same rut, but you're expanding and learning the newest thing seeing how AI for example might help you build sites faster or create more innovative products. Take your any opportunity you have to lead a technical initiative into obviously improved processes because that's the kind of thing that enables other people on your team and then to be able to support non-developers so people who are maybe in project management or just people who maybe don't understand what's going on with the development process or why it's taking so long or being able to communicate in a non-technical way with other people who need to know and then also helping with recruiting and onboarding and then providing technical direction so being able to take a project from beginning to end and provide direction for a team of people to be able to carry out the work. Let's see, just checking up on questions here. How important is it to have a course completion certificate to show an employer your skills? To be honest, I'd never had one. I didn't go to school for computer science. I basically learned WordPress from the ground up on my own. So I would say, unless you're getting some data science or machine learning job somewhere, then sure, maybe it would be helpful but in the WordPress space in general, being able to build and do is more important than having some certificate. Although there is an effort in the WordPress space to have some official certifications. So maybe in the future, that would make more sense but I'd say right now, it's not super important. But again, if you have maybe like some LinkedIn certifications, there's a little test you take to just show that you know the topic, people see those on LinkedIn and I think those are helpful. All right, so looking at the whole roadmap, try to identify where in this you land and hopefully we've given you enough of a background to help you understand what it means to be in that phase and what it means to kinda shorten the learning in that phase. So we're gonna take a look at specifically, let's say you're learning PHP or you're learning JavaScript, just any new programming language. What does that look like if we overlay the process of learning a specific language onto this curve? So if you look at the black text down at the bottom just outside the lines there. So the first phase, this imitation initial learning phase, the focus is on syntax, right? So you're learning a new language, you just need to understand in PHP, we put semicolons all the time in JavaScript, it's optional, you're learning all the little details of what does it look like to write a line of code? What does a for loop look like in this language? What is a conditional statement? What are all these things? So you're learning the syntax and then as you're getting into more of the practice phase, you're getting a little bit more into logic, right? You're trying to build something so now you don't need to know just the syntax of how to put stuff together because when you're imitating, syntax is the most important thing, right? Like you're copying what they're doing but if you forget a semicolon, it's broken. So you're learning that syntax and then you're learning the logic and the logic is where you're starting to actually build something and so you have to really think through how is this working? How do I break it down into steps that I can execute? And then as you move into this next phase where the imposter syndrome kicks in, this is where you're actually doing some real integration. So this is where you're taking a real project and a real need to integrate with some other tool and you're trying to make the two come together and it can be very difficult but it's the necessary part of learning that particular language, right? So how do I take custom PHP code that I've written and integrate it with WordPress? What does that look like? And then as you move through, you start to look at tooling, right? So you say, okay, well, I'm using PHP so now I need to make sure I understand composer and how do I pull packages and code that other people have written smarter people than me and just use that and then build on top of it, right? Stand on the shoulders of giants essentially. So you start to learn the tooling and then as you enter more into that mastery phase now you're actually architecting solutions, you understand the design patterns, how everything ties together and you're not just sliding code together, you're making beautiful code. So let's see if we have any other questions here. Does rockstar and job descriptions equal master? To be honest, I try to tell people if you see rockstar in a job description or job descriptions in general often will overhype specific skills more so than they really should and it prevents a lot of people from applying for those positions. And again, when you're experiencing imposter syndrome because you're newer to the space, there's a lot of people who just don't even bother. So I would say at least take the time and apply, go through the interview, consider it practice if you don't get the job it doesn't matter. But if you don't try, you won't get it. And sometimes you don't understand what rockstar means per se, right? So you might say, well, I'm a rockstar at doing X but not at doing Y, am I qualified? I don't know. So it's always worth trying. But yeah, it's reading job descriptions in general can be confusing sometimes. I've seen job descriptions where people want you to have more experience in something than that thing has actually been around. And believe it or not, that happens way more often than you think. This is because people who don't understand what you need to know are trying to dictate what you should know before you get the job. All right, so this is where I wanna kind of land with my developer self-assessment. So let's take a look. So we've identified maybe where on this roadmap we are as far as where are we in this path? And the thing to keep in mind with this curve here, right? Is that this is something you're gonna experience every time you learn something new. So it's gonna repeat itself every time you tackle something new, it's fractal. You can get into a particular framework like WordPress and then realize there's this whole other thing inside of it and you're gonna go through this all again. So being familiar with this and kind of being able to find yourself in this roadmap at a high level is great, but you'll also just be aware that you're gonna experience this over and over. But yeah, so jumping into the self-assessment, we were gonna kind of overlay this roadmap and where you're at now with what I would say are probably the eight key skill sets that every developer should know. And it's not perfect, this is just my way of visualizing and thinking about it, but hopefully it'll be helpful for you. So this is essentially, I don't know what you call it, wheel of learning. So each line here represents an increment in skill level. So if you're closer to the center, you know less. If you're closer to the outside edges, you know more, right? And so reading comprehension, just being able to read and understand code is one of the most important skills that you can have. And then there's other things and they're not necessarily in order, but they kind of are. I mean, obviously at some point, you're gonna have to learn to write custom code, but the scaffolding tools and the code generation tools, some of those things can be very helpful in the beginning as you're starting to learn because you have the ability not to just borrow and use other people's code that might be better architected or use better design patterns than you might have come up with on your own. And then we have the linting and standards, right? So you need to understand, you know, what are the standards that most people follow in this space? So we have the WordPress coding standards. You know, what are the types of things that I should be doing to kind of make my code fit and make sense with what we're doing? And then we have the version control. Again, just being able to track all the changes that we make, even if it's just you, version control is very important. Obviously, if you're working with a team, you wanna make sure that each person's code is preserved and can be kind of merged together. And then at some point debugging, and I again say that you should really learn that early on, not that you need to be a master at debugging. I think that's where this wheel comes in, right? So you're gonna be able to say, you know, in the beginning, I'm just gonna have a small circle. I'm gonna know a little bit about all of these and I will, maybe it's just initial understanding. And then as you start to expand out a little bit, you'll say, okay, I'm gonna start actually do some basic debugging. I'm gonna do some basic lending. And then as you grow, you'll start to expand that out and it'll become more robust skill set. You'll be able to use more effectively across all your work. And then we have our automated testing. So obviously anybody can do manual testing, but being able to automate that in a way that you don't have to repeat it. Automated testing is one of those things where maybe it doesn't always make the most sense for everybody. So if you're just building websites, excuse me, with a builder and you're not really writing custom code, automated testing, probably not gonna make a lot of sense unless, you know, especially if you're building a one off site and then you're going and building another one off site. But if you're, you know, if you're working on one site and you're doing this as your job, then you'll wanna have automated testing even potentially with a builder just to ensure that, you know, did the visuals change when we made a deployment or made a change in the builder or whatever the case may be. So those things can be tracked and you could be made aware or somebody else changed something. And then we have deployments, right? So we have the ability to say, okay, I've got custom code and I need to push it up to site A, site B. Maybe we need to do some sort of bulk deployment deployed to a staging site and a live site and a testing site. So being able to have all these skill sets as a whole, I think if you can understand these basic skill sets you'll be a really good developer. Yeah, so playwright is one of those kind of automated testing tools. Another great one is Cypress. And then, yeah, developer compass. I like that, call this the developer compass. So the idea here, just another quick helpful hint, wherever you find yourself in any one of these areas for a given skill set, wherever you are on that roadmap, you'll be able to map it, you know, if you're in that beginning invitation phase, you're in one of those first two notches. As you get into the next phase, the next two notches. So this whole idea, you kind of map that out. And then what you want to do is look at it and say, okay, you're going to make a circle. So you're going to put a dot on each line and you're going to connect them all in ideally a circle. May not be a circle. You may have a flat tire, right? You may have an area where you just don't know anything and you know a decent amount of that, everything else. That's when you have a particular area that is significantly lower than all the others. That's when you need to go back and say, hey, I'm going to spend some time and learn this a little better. So that's the idea here. Becoming a better developer is about, A, understanding how to learn, where you're at in the process, and then making sure that if you were to look at some of these basic skills, how easily can you identify the ones that you're lacking in so that you can put a little time and effort into it. If anybody has any follow-up questions, I think we've got about seven minutes before we're officially at time. So I'll keep an eye out here, but that's basically what I have. So let's see what we have here. With Gutenberg Now and WordPress Core, the possibilities increased infinitely. What should be the ideal roadmap for a developer? Well, to be honest, right now, there's a lot of people who are trying to hire WordPress developers to, they want to find agencies and people who understand and can use the site editor, full site editing, all of those things, but it's actually difficult. There's very few people who know it well enough to really do like enterprise level work or things like that. So I think if you can, and I don't think it's complicated, right? I think it actually is easier now to learn some of these basic things than it would be to create a classic WordPress theme from scratch. So way less work, but if you can really nail that down and get that skill in, I think you would do very, very well. So the other question here, please suggest some useful assignment to learn from in the WordPress space. That's probably a little open-ended, but as far as, it really depends again on your goals, right? So you may have a heart for nonprofits and want to build sites for nonprofits. And so I think that's where you would, find other people that are building nonprofit sites, ask them about the specifics of that. How can I get into that space? What are the things I need to know? What are the plugins? What are the feature sets that those types of sites have? Those kinds of things. And then if it's e-commerce or whatever, there's a lot of things, and you can even specialize in like e-commerce security or things like that. So really thinking about what you wanna do and even just self-creating it a project, right? Like, hey, I would like to understand e-commerce security better. I'm gonna create a website and I'm gonna start selling things and I'm gonna see what problems are running too. So for me, just going out there and building something is important. So a suggestion for a good version control learning tool. I believe I have, hold on, let me open another screen here and see if I can find it real quick. So on my, oh, it's at the top of my website. So if you go to wpscholar.com, the very first entry there is best resources for learning WordPress development. And it lists some of the official resources like learn WordPress, WordPress development resources, WordPress TV, and then for backend development, suggest some things for front-end development. I don't have on here a specific GitHub tool. I know there's some really good tutorials that'll walk you step-by-step through working with Git and GitHub. I think I should probably update this post here. And yeah, web accessibility is a great thing to learn. You could easily create a business just doing accessibility. Let's see. All right. Oh yeah, here we go. We got a GitHub tutorial there. Yeah, there's a link to my post. Yeah, version control, it doesn't change a whole lot. So if even if you're finding older tutorials and things, it's probably very much the same. There's two paths you can take when learning version control, number one, you can learn all of the commands that you would type, or you can go kind of the visual route and download a tool like SourceTree, which is free. And then it gives you visuals of like, well, here's this branch of code and here's where you split off into this and here's this change and that change. So it's really about understanding one, the concepts, and then probably starting with a graphical interface that you can visualize those things. And then you can kind of start to work with the commands if you'd like. The commands give you a lot more control and if you love command line stuff, then maybe you can jump straight into that. But I think a lot of people, again, it's easier to back into than to jump into. All right. Well, I guess if there's no other questions, we'll probably stop the video and call it.