Uploaded by Robert Farabaugh Jr

The Practical Guide to Becoming a Professional Web Developer

advertisement
Follow
DEV
Bill Sourour
DESIGN
Sign in / Sign up
DATA
Follow
Founder at Dev Mastery. Consultant. Teacher.
Jun 20 · 16 min read
The Practical Guide to Becoming a
Professional Web Developer
open in browser PRO version
Are you a developer? Try out the HTML to PDF API
pdfcrowd.com
The road is long and challenging. But it can be fun and rewarding too!
This article is meant to serve as a practical guide to becoming a
professional web developer. I’ve spent over 20 years writing code for the
open in browser PRO version
Are you a developer? Try out the HTML to PDF API
pdfcrowd.com
web. I work with and help developers daily. In this article, I will tell you
what you should learn, when you should learn it, and where you can learn
it from (usually for free). I’ll then give you advice on how to get real world
experience and, most importantly, how to get paid for writing code.
There are many valuable links to free and important resources spread
throughout this article. To make things easier, I’ve collected and
categorized them all into a free PDF, which you can get by clicking here.
I get no direct compensation for mentioning any of the sites listed here. I
just want to provide you with the best resources possible to help you get
where you’re going.
Two things to keep in mind…
1. It’s okay to skip ahead.
This guide will help you no matter where you are on your journey toward
open in browser PRO version
Are you a developer? Try out the HTML to PDF API
pdfcrowd.com
becoming a professional developer. After reading this introduction, just
scroll to the heading that best describes your situation and begin reading
from there. If you’re just getting started, or just thinking about getting
started, then follow the King’s advice from Alice in Wonderland…
“Begin at the beginning and go on until you come to the end; then stop.”
2. Quickly get a taste of everything first and then specialize.
Money is not the most important thing. You need to
LOVE
what you
do! But you won’t know what you love until you try it.
open in browser PRO version
Are you a developer? Try out the HTML to PDF API
pdfcrowd.com
Find your passion first, then monetize it.
This guide is all about helping you get familiar with as many areas of web
development as possible, as quickly as possible, and then helping you
specialize in the one you love. At first, you won’t master anything, you’ll
just learn the basics and move to the next thing. Once you find your
passion, I’ll show you how to dig deeper.
I’ve decided to learn to code. I like the web.
I’m not sure where to start.
open in browser PRO version
Are you a developer? Try out the HTML to PDF API
pdfcrowd.com
You can do it!!!
Congratulations! This is a big first step and the start of something very
exciting. It can also be totally overwhelming. Don’t worry, I’m here to help.
Your first goal should be to get up to speed very quickly with the basics of
all areas of web development (often called “the full stack”). You’ll go very
wide in your learning, but not very deep. This is just about helping you find
the area you like the best and building up some general skills across the
board so that you can appreciate and handle a wide array of challenges
regardless of where you end up specializing.
open in browser PRO version
Are you a developer? Try out the HTML to PDF API
pdfcrowd.com
Learn Basic HTML
Hypertext Markup Language (HTML) is what controls the content and
layout of what you see in your web browser. By starting there, you will give
yourself a User Interface that you can use to interact with, and see the
results of, your code. As you tackle more advanced languages, this will
become increasingly important. You don’t want to be coding in the dark.
Here’s the HTML you need to learn about first (click the links to get a free
tutorial):
•Getting Started
•Tags, Attributes and Elements
•Page Titles
•Paragraphs
•Headings
open in browser PRO version
Are you a developer? Try out the HTML to PDF API
pdfcrowd.com
•Lists
•Links
•Images
•Tables
•Forms
•Putting It All Together
I know some basic HTML
Awesome! That’s an important first step. Now you need some basic
JavaScript.
Learn Basic JavaScript
JavaScript is the language of the web, all major web browsers (Chrome,
Firefox, Safari, IE, and many more) have JavaScript support built in. Every
open in browser PRO version
Are you a developer? Try out the HTML to PDF API
pdfcrowd.com
web site or web application you’ve ever used probably has lots and lots of
JavaScript code behind it. Not to mention, JavaScript is now becoming
popular on other platforms as well, including servers, desktops, and
devices.
For now, you just need the basics, these links will help:
•Making Stuff Happen
•Variables and Data
•Doing Math
•Logic
•Conditional
•Looping
•Functions
open in browser PRO version
Are you a developer? Try out the HTML to PDF API
pdfcrowd.com
•Objects
•Arrays
•The DOM
•Events and Callbacks
•AJAX
•JSON
•Scope
I know some basic JavaScript and HTML
Fantastic! Let’s get some CSS under your belt.
Learn CSS
CSS stands for Cascading Style Sheets. It’s used to customize the look and
feel of the HTML elements on your page. Follow this free tutorial from
open in browser PRO version
Are you a developer? Try out the HTML to PDF API
pdfcrowd.com
Mozilla, to get the basics, and then frequently consult CSS-Tricks to solve
the most difficult CSS problems (use the search feature on the top right).
Move to the “Back End”
At this point, you’ve been exposed to what is called “front-end web
development”. That is to say, you know the major languages that run in a
web browser. It’s time to move to the “back end”. Which is code that runs
on a server. Don’t worry you don’t need a server to learn this, your own
computer will do just fine.
There are lots of backend languages, but since you’re already familiar with
JavaScript, I’m going to recommend you learn to use Node JS. Node JS
allows you to execute JavaScript code on a server (instead of in a browser).
In addition to Node JS, you should learn about Express and Mongo DB.
Express
open in browser PRO version
Are you a developer? Try out the HTML to PDF API
pdfcrowd.com
Express is a library that makes it easier for Node JS to act as a web server
(i.e. listen for “requests” from your web pages, and send “responses” back
to your web pages).
Mongo DB
Mongo DB is a database. It allows you to store and retrieve information.
You can learn about Node JS, Express, and Mongo DB, from this excellent,
free, tutorial and its sequel.
I need to choose between being a “Front
End”, “Back End” or “Full Stack” Developer.
If you’ve been exposed to both ends, it’s time to make a choice. If not,
please follow the advice in the previous section to fill any gaps in your
knowledge.
open in browser PRO version
Are you a developer? Try out the HTML to PDF API
pdfcrowd.com
By now, you’ve written two kinds of code. One kind has to do with user
open in browser PRO version
Are you a developer? Try out the HTML to PDF API
pdfcrowd.com
interaction. The other kind has to do with data interaction. Which kind do
you prefer?
User Interaction? Congratulations, you’re a front end developer!
Data Interaction? Congratulations, you’re a back-end developer!
Both? Congratulations, you’re a full stack developer!
Hated everything? Congratulations, becoming a web developer is not for
you, be glad you figured this out now instead of wasting more time and
money. Not ready to give up yet? Maybe you haven’t found a language you
love yet? Try some of the other languages covered in “I want to be a
backend developer”.
I want to be a Full Stack Developer
Cool. You need to read and do everything under I want to be a Front End
open in browser PRO version
Are you a developer? Try out the HTML to PDF API
pdfcrowd.com
Developer and I want to be a Back End Developer below.
I want to be a Front-End Developer and I
know some basic JavaScript, HTML, and CSS
To be effective as a front-end developer, you need to master HTML, CSS,
and client-side JavaScript. You’ll also need to become proficient in some
important frameworks. This will give you the skills that employers and
clients expect from front-end developers.
By now, you should know some basic HTML. If not, go back to Learn Basic
HTML.
Learn Intermediate and Advanced HTML
Follow this intermediate HTML tutorial and then this advanced HTML
tutorial to get you skilled up.
open in browser PRO version
Are you a developer? Try out the HTML to PDF API
pdfcrowd.com
Learn Advanced Client-side JavaScript
A great series of books on JavaScript available online for free!
To level-up your JavaScript, I highly recommend the book series, You Don’t
Know JS by Kyle Simpson. The author has made the entire series available
online for free at these links:
1.“Up & Going”
2.“Scope & Closures”
3.“this & Object Prototypes”,
open in browser PRO version
Are you a developer? Try out the HTML to PDF API
pdfcrowd.com
4.“Types & Grammar”
5.“Async & Performance”
6.“ES6 & Beyond”
Along with those books, the MDN JavaScript Reference should become
your best friend.
Knowing the “front-end trifecta” HTML, CSS, and JavaScript is great. But
to start earning money, you’ll need to get familiar with some frameworks.
Learn jQuery
jQuery is the most popular JavaScript library of all time. Although some
newer frameworks make jQuery less relevant, if you’re looking for
employment, chances are jQuery will be part of the job description (and
interview) for many years to come.
open in browser PRO version
Are you a developer? Try out the HTML to PDF API
pdfcrowd.com
I recommend following the jQuery path at FreeCodeCamp to begin learning
jQuery quickly and effectively. After that, go to jQuery’s official learning
site to get more instruction.
You’ll also want to keep the jQuery API docs handy.
Learn a popular JS Framework
Frameworks make working with a particular language or technology easier
by addressing and solving some of the biggest problems with that
technology. JavaScript has seen a huge boon in the development and
popularization of frameworks.
It seems like every week there’s a new JavaScript framework that is touted
as the next defacto standard. You’ll have to check the job boards or do
some Googling to figure out which one is the most popular for your market.
A good place to check is the Hacker News hiring trends tool.
open in browser PRO version
Are you a developer? Try out the HTML to PDF API
pdfcrowd.com
Here’s what seems to be in demand at the time of this writing:
Hacker News Hiring Trends
React JS
React was created by Facebook to work with their Flux architecture. It is a
JavaScript library for building interfaces. It has surged to first place
recently, overtaking Angular. So start with React. There’s a good free
course introducing React here.
open in browser PRO version
Are you a developer? Try out the HTML to PDF API
pdfcrowd.com
Angular 1 and 2
Angular JS was created by Google and really took off as soon as it was
introduced. Many companies invested heavily in the framework and, as you
can see from the graph above, it is still very popular. Unfortunately, Google
felt the need to completely re-write Angular when they built version 2. So
Angular 1 and Angular 2 are almost like two completely different
frameworks. If you want to call yourself an expert in Angular, as of right
now, you need to learn both to be really marketable. There’s probably still a
window of time, where only knowing Angular 1 is enough. But that window
is closing. The majority of Angular work will be in transitioning Angular 1
code bases to Angular 2. Code School has a fun free course for Angular 1.
For Angular 2, check out this free video series to learn the basics.
Ember JS
There are still quite a few jobs for people with Ember JS experience, but as
you can see from the graph, it’s starting to flatline. It doesn’t have the
support of a juggernaut like Google or Facebook behind it, and you’ll have
open in browser PRO version
Are you a developer? Try out the HTML to PDF API
pdfcrowd.com
your hands full with React and Angular. Still, if you’re curious, you can
follow along with the official Ember JS guide.
Once you’ve chosen the framework you like best, and are reasonably
familiar with it, it may be worth exploring an accompanying CSS
framework. The two dominant players in CSS right now are Bootstrap and
Material Design.
Bootstrap
Bootstrap was made by Twitter and is quite mature and popular. There are
versions of Bootstrap for Angular, Angular 2, and React.
Material
Material is a design guideline put out by Google that is gaining traction.
There are Angular and React versions of it as well. Since Angular is also put
out by Google, you’ll find there’s a natural fit there.
open in browser PRO version
Are you a developer? Try out the HTML to PDF API
pdfcrowd.com
Here are some links to get you going.
•React Bootstrap
•Angular Bootstrap
•Angular 2 Bootstrap
•Material UI (React)
•Angular Material
•Angular 2 Material
Congratulations! You now have the key skills needed to be a Front End
Developer!
open in browser PRO version
Are you a developer? Try out the HTML to PDF API
pdfcrowd.com
Look at you go!
I want to be a back-end developer
Excellent! The first step, is choosing a language. On the back-end, there are
many languages that work, all have their strengths and weaknesses. Take a
look at the following graphic, it ranks programming languages in terms of
popularity. These have all been in the top 10 for a decade. The ones in
green are web languages that have been getting more popular over the
years.
open in browser PRO version
Are you a developer? Try out the HTML to PDF API
pdfcrowd.com
TIOBE Index of Programming Languages that have been in the top 10 for over a decade.
http://www.tiobe.com/tiobe_index?page=index
open in browser PRO version
Are you a developer? Try out the HTML to PDF API
pdfcrowd.com
The languages in green are where you should focus. If you don’t already
know any of these, start at the top and work your way down. Stop when you
find one you like, and go deep!
If you’re already familiar with a particular green language, and you like it,
then focus on that one.
Java
Java is an extremely popular language and can run (almost) anywhere. It
was developed by Sun Microsystems (now owned by Oracle). Java is the
language used to build Android apps. It can also be used to build desktop
applications and, of course, it can be used to build web applications (either
as a stand-alone backend, or coupled with JSP). It’s mature, stable, and
there are a ton of resources to learn Java. It’s also one of the mostly widely
taught Object Oriented Programming languages in colleges and universities
around the world. Here’s a free Java course for beginners, that’s quite
open in browser PRO version
Are you a developer? Try out the HTML to PDF API
pdfcrowd.com
good.
C#
C# is a language created by Microsoft to directly compete with Java. Until
recently, it was not well supported on non-Microsoft systems, but that is
quickly changing. Like Java, it is object oriented, and can be used to build
not only Web Applications (either as a standalone backend or coupled with
ASP.Net) but also for desktop apps as well. If you’re a Windows user and
want a slightly more contained eco-system to program within, C# might be
the way to go. Check out this free course from Microsoft Virtual Academy.
Python
Although it doesn’t have a big name company behind it like Java or C#,
Python is a great language for getting things done quickly. It’s relatively
easy to learn and it’s getting more and more popular each year. If you don’t
love the others, this is a good language to sink your teeth in. The best place
to get started is right here.
open in browser PRO version
Are you a developer? Try out the HTML to PDF API
pdfcrowd.com
JavaScript
If you’ve been following along since the beginning, we’ve already covered
JavaScript. With the advent of Node JS and the popularity of npm (the
Node Package Manager), JavaScript on the server is only going to get more
popular in the years to come. Well worth learning.
If you didn’t do it earlier, now is good time to learn about Node JS,
Express, and Mongo DB, from this excellent, free, tutorial and its sequel.
Ruby
Ruby is an odd bird. People who love it, really, really, love it. It’s in the top
10, but it appears to be slowing in growth. The language itself is a blend
between functional programming and imperative programming. I
recommend trying it out, maybe you’ll become one of it’s die-hard fans.
There will be lots of Ruby work for years to come. But you may want to
double check the listings in your particular area to ensure that at least a few
companies have been bitten by the Ruby bug.
open in browser PRO version
Are you a developer? Try out the HTML to PDF API
pdfcrowd.com
companies have been bitten by the Ruby bug.
The best place to learn Ruby is RubyMonk
What about PHP?
There’s a lot of PHP in the marketplace but, at least according to this
dataset, it seems to be getting less popular. I made it yellow because I think,
right now, it’s still a viable choice to build a career on. Also, in the interest
of full disclosure, I am not a fan of PHP, so maybe some personal bias has
crept in here as well, but I can’t imagine that in the next 5–10 years PHP
will be more valuable than JavaScript, even though it ranks higher at the
moment and there will probably still be jobs out there for PHP developers.
I’ve learned a lot, but I have no real world
experience.
open in browser PRO version
Are you a developer? Try out the HTML to PDF API
pdfcrowd.com
Okay hot shot, let’s level you up!
It’s extremely difficult to get a job without any experience.
The first step is to complete one or two personal projects, to get
comfortable building things from end to end.
When you start building personal projects, it’s useful to have a way to
manager and publish your code. For that, you need GitHub.
open in browser PRO version
Are you a developer? Try out the HTML to PDF API
pdfcrowd.com
GitHub
GitHub is an online source code repository built on the Git platform. It
allows you to store, manage, and publish your code. If you are a developer
today, you MUST have a GitHub account. You can learn more about
GitHub and how to use GitHub from this “Hello World” guide and also,
from this interactive tutorial about using the Git platform.
Personal Projects
Now that you’re set up with GitHub, here are a couple of personal project
ideas.
•Build a simple Blog (here’s a tutorial using React and Node)
•Build a simple calendar (here’s a tutorial using C# and .Net)
Free Code Camp also has a variety of projects to try, including some frontend only ones. Here are two of my faves:
open in browser PRO version
Are you a developer? Try out the HTML to PDF API
pdfcrowd.com
•Build a “pomodoro” clock (front end only)
•Manage a Book Trading Club (full stack project)
Real Experience
Next, you need real experience. Real experience means doing work for
someone else. Personal projects are useful, but they’re not enough to make
you competitive in the job market. There are a few avenues for gaining real
experience.
1. Contribute to an Open Source Project
Thanks to the popularity of GitHub there are millions of open source
projects out there with open issues (bugs) just waiting to be fixed by
someone like you. Putting on your resume that you’ve contributed to some
popular and well known open source projects, is a great way to establish
and boost your credibility. The best resource for figuring out what projects
to contribute to is Code Triage. Code Triage lets you pick your favorite
project and will send you a different open issue right to your inbox every
open in browser PRO version
Are you a developer? Try out the HTML to PDF API
pdfcrowd.com
day.
2. Do Work for a Friend or Family Member
Find a friend, or a family member, who has a business and build them a
web app or web site, or improve their existing one. Just make sure that you
choose very carefully, you need to pick the right-sized project and the right
family member so that you avoid any uncomfortable situations down the
road. Ideally, it should be a project you can complete in under 90 days and
a person with whom you have a very honest relationship. You shouldn’t be
afraid to admit if/when things aren’t going as planned and you shouldn’t be
afraid or worried about having to say “no” or telling them to “back off” on
certain requests or expectations. Also, you should be sure that if either of
you and up bailing for any reason, it won’t permanently damage your
relationship.
3. Work for Charity/Non-Profits
A very rewarding way to gain real experience is to do some work for nonopen in browser PRO version
Are you a developer? Try out the HTML to PDF API
pdfcrowd.com
profits and/or charities. You can approach a local charity or non-profit that
you feel strongly about and offer to help. You can also use the site Catch a
Fire to find a project that you can help with. Finally, if you follow the
program at Free Code Camp and earn all their certificates, you will gain
access to non-profit projects where you can put your skills to good use.
4. Slave Labour
I confess, that’s a bit of a cheeky title for what i am about to suggest here,
but in my experience, if you take this route, and then subsequently get a job
or go freelance, you will look back on it as slave labour, for sure. Sites like
Upwork, Fiverr, and PeoplePerHour give you an opportunity to win
business, but you’ll have to keep your rates very low and accept that you are
only doing this for the experience.
I have some real experience, please help me
find employment.
open in browser PRO version
Are you a developer? Try out the HTML to PDF API
pdfcrowd.com
Ready to take on the world, eh?
Rule #1 — Don’t call yourself a “Web Developer”
Check this out…
open in browser PRO version
Are you a developer? Try out the HTML to PDF API
pdfcrowd.com
source: indeed.com
What the heck is the difference between a “web developer” and a “front
end” developer!? Well, about 7000$/year apparently. Seriously, when the
time comes, a simple change in what you call yourself can make a big
difference.
Have a strong resume
Despite all the stories you read about people doing wild and crazy things to
get an employer’s attention, you still need to have a good resume. This
article from Tech Republic will help you with that.
Build a portfolio website
open in browser PRO version
Are you a developer? Try out the HTML to PDF API
pdfcrowd.com
More important than having a good resume is having a strong portfolio
website. Take all the real projects you’ve done and put them on a personal
home page that shows them off. This SitePoint article gives some good
advice on building a portfolio site. The one other thing I would emphasize
is that you should make sure to highlight how each of your projects solved a
business problem for your client (or employer). Do that, and your portfolio
site will stand head and shoulders above the rest.
Prepare for coding interviews
My previous article, How to Win the Coding Interview will help you with
that.
Beef up your general interview skills
You should be prepared for more than just the coding part. This Life
Hacker piece is a good roadmap to lots of valuable and important
information.
open in browser PRO version
Are you a developer? Try out the HTML to PDF API
pdfcrowd.com
Just get your foot in the door
Don’t worry about getting a job with your dream employer at your dream
salary right away. Just worry about getting paid to write code for a while.
Once you have some more experience under your belt, you can start to
consider your next move.
I want to become a freelancer.
Being your own boss is an amazing thing, but it also comes with a ton of
added pressure and complexity. The best source of information on
freelancing that I have ever seen is DoubleYourFreelancing.com by
Brennan Dunn. He has a series of articles that will walk you through
becoming a freelancer better than anything I could ever write here. So,
check them out.
Another option for freelancing, if you believe you are really good, is to join
Toptal. They only accept 3% of applicants and their process is notoriously
open in browser PRO version
Are you a developer? Try out the HTML to PDF API
pdfcrowd.com
difficult, but if you get in, you’ll have access to many well paying freelance
opportunities where you can work remotely.
I started down this path, but now I feel stuck.
I hear you. It’s not easy and anybody who told you it was going to be easy
has either never done it, or is trying to get money out of you. If you feel
stuck, here is what you can do:
Rediscover your original intent
Ask yourself, and write down why you started down this path in the first
place. Is your answer still true? If yes, then why stop now? Let’s go!
Get Real
Now that you know more about what is really involved and what is really
possible, you have a better idea of the best case scenario, the worst case
scenario, and the most likely scenario of continuing. Write it all down, look
open in browser PRO version
Are you a developer? Try out the HTML to PDF API
pdfcrowd.com
at it, and realize that the “most likely scenario” is the one that will probably
happen and that it’s likely closer to the “best case” than the “worst case”.
You do not have to be afraid. Move forward. You can do it!
Read This!
Please don’t quit — every expert was once a beginner
If you’re like me, you have at some point in your efforts to learn programming,
thrown up your hands and said: “I need…
medium.freecodecamp.com
Happy coding!
Please
and Share
I want to help as many people as possible. You can help me by hitting the
open in browser PRO version
Are you a developer? Try out the HTML to PDF API
pdfcrowd.com
little green
and also by sharing this article on social media.
Finally, don’t forget to get your free PDF containing all the important links
from this article, by clicking here.
Web Development
2.4K
Programming
Coding
Learning To Code
Tech
64
Bill Sourour
Follow
Founder at Dev Mastery. Consultant.
Teacher.
Free Code Camp
Follow
Join our open source community’s
quest to teach coding and help
nonprofits
open in browser PRO version
Are you a developer? Try out the HTML to PDF API
pdfcrowd.com
Download