Photo by Nick Morrison on Unsplash
The Complete Beginner’s Guide to How to Get Started as a PHP Developer
Follow these steps and you’ll be on track to a great career as a web developer
You want to create awesome websites that catch people’s attention, and get a great job in a thriving industry. But how do you get started? If you know nothing about web development, here’s how you can get started.
1. Learn HTML, CSS, and (optionally) JavaScript
To be a web developer, you’ll have to know HTML (hypertext markup language) - this is the language that webpages are built with. It’s a fairly simple language to get started with - you’ll mostly need to learn about a couple dozen tags to be able to get started. Because it’s not a programming language, you don’t have to understand programming to learn this.
CSS, or cascading stylesheets are how webpages in HTML are styled. CSS is easy to get started with, but difficult to master. In the beginning you can learn how to change text size, colors, add borders, round corners, and space things using margin and padding.
JavaScript (not to be confused with Java, which is completely different), is the programming language that browsers use to make webpages interactive without needing to reload the page. It has become very important in today’s web, so a preliminary understanding of how to use it to change elements on a webpage is helpful, even if you are primarily a backend developer working in PHP. Fortunately the syntax is quite similar to PHP, so you can learn PHP and JavaScript together and apply some of what you learn in one language to the other.
2. Learn the Basics of Programming with PHP
Get PHP Installed on your computer. PHP is a fairly easy programming language to get started with, but no matter which language you end up using, you’ll have to understand the fundamentals of programming. Conditional logic (if/else statements), loops, data structures, variables, arrays (a structure that contains many variables), and objects are important to understand. Learn how to get data from other websites and work with it.
3. Build Yourself a Website Using What You Have Learned
You don’t have to master steps 1 and 2 to start this step. If you have learned the very basics, you should start building a website for yourself. First, build it on your computer, then publish it to the web. You could use a platform like Netlify to host your code for free, or even run your own server fairly inexpensively over at DigitalOcean.
You can use this website to market yourself and as a playground for building things as you learn. Whatever you do, you don’t be able to learn seriously until you have a reason for learning and there’s something you want to build with that knowledge.
4. Learn Git And Make a GitHub Account
You don’t need to know or use Git to be a developer, but in any serious programming environment, you’ll use some kind of version control system to keep track of changes to code and allow multiple people to work on a codebase. And that system is most often Git. Creating a GitHub account helps you connect with and contribute to other projects as well, which is a great way to learn. And even if you don’t use advanced features of Git, at least using it to push your code up to GitHub serves as a very effective backup in case the code you’ve been working on gets lost from your computer!
5. Learn Basic Systems Administration
A competent developer knows how to work a command line, navigate a filesystem, change filesystem permissions, and run commands on a Linux server. These are concepts you will need to be comfortable with, particularly as a backend web developer.
6. Learn Frameworks
Once you feel like you have a handle on the basics of HTML, CSS, JS, and PHP, you should learn a backend framework. For PHP, i’d suggest Laravel because it’s very flexible and powerful and well-documented with a great community around it. But whatever you learn, it’ll help you to learn and adopt a set of best practices for how to organize your code (for example, using model, view, controller or MVC architecture), how to name things, and how to build things that will take a lot of painful and time-consuming decision making out of the mix and will rapidly accelerate your journey from beginner to master.
Once you have a cursory understanding of how to work with the backend, learn a CSS framework. I’d suggest TailwindCSS because of its flexibility and popularity with Laravel creators, but BootStrap is also very popular and will make it faster to make great-looking websites.
7. Put Your Skills To Work
You need to put your skills to work to keep improving and to build credibility as a developer. You can volunteer for local organizations, friends who have small businesses, or make things for family members. You can also check out freelancing sites like Fiverr, Upwork, Freelancer, etc. In the beginning you might be building a “business card” webpage for $5 just to start building your reputation, but as your abilities improve and as you gain credibility, you can start charging serious money.
8. Network With Other Developers
Use social networking sites like Twitter, LinkedIn, etc. to meet and communicate with other people who share your interest in web development. Make friends who are into this stuff. Having a network of friends who are developers will kickstart your journey and give you additional motivation to keep improving.
If you get the chance, go to conferences and listen to talks and meet other people in person (wherever that’s still a thing in this post-COVID world!). Perhaps someday you can also give talks at such conferences yourself!
9. Rinse and Repeat
You’re never finished with your journey as a web developer. Go back to step 1 and continue to learn new things about HTML, and CSS. Take courses in more advanced JavaScript. Learn Object Oriented PHP. Delve deeper into understanding how your framework of choice actually works. Web development is a field that changes rapidly so to stay on top you’ll have to be a lifelong learner.
Which of these steps do you think will be the most difficult for you? Is there anything in particular you would like help with?
If you found this interested, I’d appreciate a follow on Twitter!