Maybe you’re unhappy in your current situation and you’re looking to make a career change. Maybe you got laid off because of Covid or for some other reason. You know that tech jobs are in demand but you don’t fully understand what it means to become a software engineer. You didn’t get a computer science degree in college, so now you’re interested in dev bootcamps (maybe even bootcamps that have guaranteed job placement rates). This way, you don’t have to go back to school for four years just to land another job. You’re driven, determined, and able to learn things quickly – so how hard can learning how to code actually be?
That’s why first and foremost, I think that it’s important to understand what the current job market looks like for developers. What jobs are out there?
Here’s a breakdown of the roles that I typically see posted on job boards or get contacted by recruiters for:
There are more than these, of course. But these are the categories that I know about personally. What skillsets do you need to acquire in order to land one of these jobs?
I like to think that there’s a misconception here because of the name of the role itself – ‘frontend’ developer. You might think that as a frontend developer, you’ll be writing the code for what you actually see on the front-end of a website. And while that’s partially correct, heavy coding to create the functionality of a website application is mostly what’s going to be required.
Here’s an example. As a frontend engineer, you might write a function fetchUpdateCart that updates the status of a shopping cart based on whether or not a user is logged into an e-commerce application and, of course, whether or not some products get added to their cart. You might create a variable named data within this function, which sends an asynchronous HTTP request to a REST API endpoint using Axios. Then, you might pass fetchUpdateCart into a second function called Cart, which tells the user whether or not their cart is empty based on the data that gets fetched from the fetchUpdateCart function. You might render some HTML within the Cart function, which displays Unit Price, Quantity, and Item Total – dynamic numbers that are based on the ID of the product that’s been selected. Passing data from one function to another like this is called functional programming – and it’s what’s going to make up much of your role as a frontend developer.
Or, a second example might be creating a function loginWithGoogle that allows a user to log into your React-Native application via OAuth2 authentication – or by using their Google account. This function might use try-catch logic to determine whether or not a user has a legitimate Google account. If they do, navigate the user to the Home page of the application. And if not, the function should catch the error and alert it to the console using JSON.
These are the types of things that demonstrate an ability to create functionality for the elements that you interact with in a website application. They do not, however, have much to do with determining the styles, organization, or flow of the things that you interact with on a website application – because those are the responsibilities of a UX Web Designer.
Additionally, as you may have noticed from the previous examples, you don’t necessarily have to have extensive knowledge of the ins-and-outs of a database (like a backend developer would), but you will at least need to have a general understanding of how the frontend interacts with it – how to get data from a database and display dynamic information within a component or element on the screen. The line between frontend and backend here seems to get increasingly blurry.
If these things seem of interest to you, if you think that you can learn them quickly (in an ever-changing industry), and if you think that you can you handle them on a consistent basis without pulling out your hair, then congratulations, frontend development is for you.
*Not a React tutorial. React has great documentation here, which also includes tutorials for learning.
A React Developer will need to have extensive knowledge of how to do all of the things that a frontend developer does within the context of the React framework. In an interview, employers will most likely ask you about the things that make React, React.
For example, some of the concepts that are typical or are related to React (in no particular order) include:
There are also React / Redux-specific functions that you should know like the back of your hand, such as:
And finally, you’ll also want to have an understanding of some related software, which allows you to navigate a React App, install essential packages, and create a RESTful API:
React is a very popular framework and is often considered the easiest to learn between the three most popular frameworks – React, Angular, and Vue. Employers most likely will want you to have 2 – 3 years of hands-on experience with React in order to secure an entry-level position as a React developer. Every Frontend Developer, Backend Developer, Fullstack Engineer, or UX Web Designer most likely needs to have a basic understanding of React.
A React developer also needs to know how to set up a database and interact with it on a regular basis. Therefore, a React developer will likely need to be a full stack engineer, unless otherwise stated in the job description.
UX Web Designer
A UX Web Designer designs the look, feel, and experience of a website. When interviewing for a Web Designer role, you’re most likely going to get asked about accessibility and WCAG compliance. Accessibility is a huge part of UX. Making a site that’s user-friendly for everyone is important not only because it’s kind / decent, but also because it helps you avoid getting sued. Because of the Americans with Disabilities Act (ADA), you can get sued if your site is not fully accessible for the blind or for people with disabilities. This means that checking for color contrast, placing Aria-labels in your HTML, providing alt-text, ensuring website responsiveness and cross-browser compatibility, are all important factors when it comes to creating an accessible website.
A website designer is also going to want to have a design portfolio of graphics, logos, interfaces, etc. Part of your job as a Website Designer will involve creating proposals or ‘mockups’ that need to get approved by product managers or engineers. This is why UX Web Design may naturally lend itself to someone with a graphic design background. However, a UX Web Designer is typically more focused on the web than on the design process. This type of role might be 60% development and 40% design, at least in my experience.
There is a difference between a UX Web Designer and a UX Designer. The biggest difference between the two is that a UX Designer doesn’t have to know how to write code. A UX Designer’s role is mostly focused on designing software. Their design process involves creating various mockups, typically using Sketch or the Adobe Creative suite, and maybe exporting their designs into Zeplin for review by the product managers or engineers.
A UX Designer does not need to know how to write code for this role. However, knowing how to write code might give you an advantage over someone who does not. This is because interactive prototypes are valuable for demonstrating the flow of your design to product managers or stakeholders. You might create a prototype entirely in Sketch, Adobe XD, or Figma. And while there are methods for turning your design into a prototype directly from one of these design tools, the sustainability of this kind of prototype isn’t very good. Broken links, poor semantics, and bad naming conventions typically occur after exporting your design straight from Figma into React. Therefore, knowing how to write code from scratch is still a very valuable commodity as a UX Designer. But coding / prototyping might make up only 10 – 20% of your role.
Like a UX Web Designer, you’re going to want a design portfolio to show employers, and you’ll most likely want a graphic design degree or equivalent work experience before applying.
It’s amazing but there’s a subdivision of UX that’s only responsible for research. Honestly, if you don’t have any experience as a UX Designer or UX Web Designer first, then I don’t know how you’d be able to get this type of job. A UX Researcher is responsible for researching how users interact with applications. What interactions do they like? What interactions do they not like? Does the flow and overall experience make sense to them?
At this point, the full extent of my UX research involves getting feedback on the Elevate app that I designed for Riverside Insights and also getting feedback from clients about what they’ve liked or disliked about my freelance projects. I also have experience conducting experiments with Google Optimize and researching industry-leading-trends through Baymard Institute.
Of course, it’s only my opinion that you won’t be able to get a UX researcher role unless you have UX Design experience first. This article by UC Berkeley claims that it’s possible, for example.
What does it take to become a WordPress developer? You’ve probably heard of WordPress as a popular blogging platform or maybe even have some experience using a drag-and-drop interface such as Avada, Divi, or Elementor in order to build a custom WordPress website. But does that actually make you a WordPress developer?
If you’ve built one (or several) custom, responsive WordPress themes from scratch and you’ve integrated plugins like WooCommerce, Yoast, Contact Form 7, and WordFence, does this make you good enough to get a full-time job as a WordPress developer?
Similar to React Development, you’re most likely going to want to have the skills of a frontend engineer first before converting those skills over to WordPress. Because if you’ve not developed an application before, working with foreign PHP functions and hooks can seem intimidating. But after creating a rest api with node.js, express js, and mongodb, for example, developing a WordPress theme won’t seem that difficult.
WordPress provides good documentation just like other popular APIs. Being able to look things up / being resourceful is a skill in itself. However, there are also several popular WordPress functions that you’ll want to know like the back of your hand:
You’re also going to want have a full understanding of the WordPress core and the WordPress loop. Many employers also ask if ever developed your own plugins and if you have experience with Advanced Custom Fields.
In addition, I often see or have been asked about things that apply to the jobs mentioned above such as experience with React, experience with accessibility and cross-browser compatibility, SEO, and Github. Some employers also seem to value your design skills even if the job is advertised as a developer role.
Like with anything else, employers want to see tangible examples of the things that you’ve built. Showing all of the themes, plugins, and WordPress projects that you’ve built or designed will help you get your foot in the door.
I first acquired SEO experience by using the Yoast SEO plugin while developing WordPress themes. I used Google Search Console to track clicks and impressions for a website, and used GTMetrix to improve website speed. I found that if I improved a website’s speed + followed Yoast’s guidelines for SEO and Readability, then I’d usually see improvements in clicks and impressions over time. I was able to take several client websites to the front page of Google search results (SERP) for target keywords. But there was a lot more for me to learn about SEO, which I wasn’t aware of.
I’ve talked about SEO in a previous Blog post, so I won’t go into great detail describing the process that I use to generating more clicks and impressions for a website. There are lots of different factors that contribute to the Search Algorithm on Google, which consistently changes and updates. But I’ve found that in almost all of the interviews I’ve had for the various jobs in tech, SEO is typically something that comes up. So it’s worth knowing about even if you’re not going to apply for a job as a Specialist.
Like with many of these jobs in a post-covid era, an SEO Specialist can work remotely and even set much of their own schedule if they want to. Also, depending on where you work, you can earn a living similar to the other jobs in tech that are mentioned above.
While having a wide variety of skills is not necessarily a bad thing, in my opinion, it’s more important to specialize. If you specialize in one of these categories, you’ll be able to avoid wasting time, energy, and effort trying to learn something you don’t like, just for the sake of getting a job. Think about what job you’re going to be excited about doing long term, on a daily basis. Which job is not too stressful, allows you to live the way you want, and enables you to make the kind of money that you want in order to live happily?
There’s also the issue of – how do you get experience without experience? I.e. how can I get a job making websites for a company if I don’t have any websites on my resume? Should I work for free? Not necessarily, but one idea is to get on a freelance website like Toptal, Upwork, or Freelancer and gain experience that way. Use that work in order to gain the type of experience you’re looking for – design, development, WordPress, SEO, research – whatever you want. In my personal experience, it’s better to get on a freelance website or a job board in order to seek out new work, because people are actually looking to hire freelancers on these platforms. Asking friends, family, or local business who don’t have a website can often be a waste of time because they’re simply not looking to have websites made for them.
Sometimes, companies value your ability to learn quickly and look up documentation more than they value your actual background. Always ask yourself – why should a company hire you? What do you do that differentiates yourself from others? What are you most talented at, and are those skills in demand? Focus on an in-demand skill that you enjoy and grow that skill so that you become the best at it, in order to make yourself indispensable in the field. Good luck as you begin your journey into tech 🍀