Hi. I’m glad you’ve got an interest in web design and development as a career path. If you follow my advice, it’s possible that within a few years you could be earning more than I do with my 13+ years of experience. Don’t get me wrong, I earn enough for my family to be comfortable, but I’ve geared my skill set towards a well rounded mix of web development, design, project management, and business consulting. It’s perfect for working with the type of amazing clients I’ve had the honor of working with, but it’s not necessarily the resume larger companies are looking for an easily understand. If you’ve got a deep understanding of a particular niche, you’re easier to understand from a recruiter’s view.
Web development consists of 2 major divisions; as an aspiring web developer, you can choose to specialize in either or both:
- FrontEnd Web Developer is responsible for building and designing layouts, features, and appearance of a website. This role is also called client-side developer. This is what I am, since I come to the field from a graphic design background.
- BackEnd Web Developer is responsible for building the driving system of a website. They are responsible for building the best framework that allows data to be easily transferred from the web server to the web browser – as seen by the users. These guys can make a lot more money than purely FrontEnd
People who are skilled in front-end and back-end web development are called Full-Stack Developers – they are highly respected, well-paid, and always in demand. Deciding on a specification is important since there’s a limitless amount of skills to learn.
Firstly, you need a passion for building things and solving problems. This is done by writing code. The web moves fast, and it will be a big part of your job to move with it. You’ll have to learn new languages and get your hands on new tools as time goes by. It’s both a blessing and a curse, since I’m never able to just rest on my laurels but have to be actively engaged at all times in reading about broader web trends. Thus, it’s never boring.
I think there has never been a better time to start this journey, as thankfully for you, there’s now an ever expanding amount of free & cheap lessons out there to get you these skills and knowledge without having to enroll in a computer science degree program at a college.
Step 1: Pick and learn the skills you need to work in web development.
These are the websites I have found most helpful in getting new skills. Many of them have interactive lessons, in which you are presented a concept, given a problem, write some code, have it checked by the AI, given feedback, and then once you pass the lesson you can move on. It’s amazing and I wish I’d had this sort of resources back in the day. There’s so many it was hard to pick just a few, but the following are ones I’ve used and are of high quality. Even most of the paid course providers have free trials.
- https://www.codecademy.com/learn (most of their courses are paid, but many are free)
- https://thegymnasium.com/– Gymnasium offers free online courses on web development, design, user experience, and content creation. It’s offered by Vitamin T, the creative staffing agency that gets me gigs working for big companies, so it’s focused on skills that are in demand by employers.
- https://www.pluralsight.com/ – not for beginners. Super high quality, and mostly intended for people already working in the field.
General Introductory Course on Web Dev & Programming (free):
- https://learn.skillcrush.com/skillcrush-free-bootcamp/ – sells itself as ” A totally FREE beginner-friendly intro to tech, techies, and kick-ass careers in less than five minutes a day.” I haven’t actually taken this, but it looks promising.
HTML & CSS
HTML isn’t a programming language, neither CSS, but markup tools used to design web pages and user interfaces. It’s the very backbone of every website, therefore it is a must to learn for anyone aspiring to work in the front-end development field.
https://www.codecademy.com/learn/learn-html – Free Course
PHP is a server-side language created in the 1990s. It is the most widely used coding language when it comes to creating web pages. A back-end web developer must have sufficient PHP skills in order to get a job in the tech business. But as a front end developer it’s only sometimes useful. I use PHP extensively for my clients in the development of custom WordPress themes.
So those are the basics. There’s a ton more, but I don’t want to overwhelm you yet. If you go through those ~40 hours of learning and have built up some examples, you’ll probably be ready for your first entry-level job.
Along with those those basic languages, I’d also recommend getting acquainted with:
- Bootstrap – an open-source CSS framework, which provides a base for creating mobile-first, responsive websites. It’s lead competitor (which I preferred) Zurb Foundation has been retired.
- React.js – one of the hottest languages. Deep knowledge of this will make you instantly hireable.
- MySQL, or another DB system.
- Gulp or Grunt – process automators.
- Git – version control. required
- SASS – write faster and more flexible css
- Non-technical life skills not taught in school
If you’re finding it hard to learn 100% online, then there’s always in person bootcamps, but you’ll definitely pay for them. One of my neighbors took a local one a couple years ago, for 6 months, graduated, then got herself a well paying job with benefits working for GitHub. Some of the reputable local Portland providers of those are
https://www.alchemycodelab.com/, https://bootcamp.uoregon.edu/coding/, and https://www.epicodus.com/,
Step 2: Put your skills into practice
- Join a web development community, either locally in person (through MeetUp), which will give you feedback and advice
- Take on test projects, which will build up your portfolio, and even better, give you a sense that you know what you’re doing. Volunteer for your friends, non-profits, or join a local Hackathon.
- Practice! Practice!! Practice!!! Behind every successful website is hours of training and practice. You get better with repetition.