The Guide to becoming a full stack developer in 2018
1. A Guide to Becoming a
Full-Stack Developer in 2018
1
2. Full
Full-Stack Web Development, according to the Stack Overflow 2016
Developer Survey, is the most popular developer occupation today.
It’s no wonder then that there are dozens of online and in-person
programs that will help peovple become Full-Stack Developers and
then even assist these new developers land high-paying program-
ming jobs.
Some popular online programs can be found on Lynda, Udacity, Cour-
sera, Thinkful, General ozAssembly, and so much more. Aside from
these online programs, there are also in-person coding bootcamps
that are teaching people the skills required to become web develop-
ers.
2
Stack Developer
3. In this article I won’t be discussing which websites or coding bootcamps
have the best web development programs, instead I will be providing a
definitive guide to what I believe are the most important skills required to become
a Full-Stack Web Developer today and land a job if you’ve never coded before. I
will be basing the list off of three things
01 02 03
A combination of what most
programs in 2017 are
teaching students.
My own personal experi-
ences from interviewing at
companies for developer po-
sitions in the past and also
interviewing potential candi-
dates for current Full-Stack
Developer positions at my
current company.
Stories and feedback from
people on Coderbyte who
have been accepted to coding
bootcamps and then proceed-
ed to get programming jobs
3
4. If you want to become a Full-Stack Web Developer in 2018
and land your first job, below is a reference guide with a list of
things you should learn.
The Definitive
Guide
A Full-Stack Web Developer is someone who is able to work on
both the front-end and back-end portions of an application. Front-
end generally refers to the portion of an application the user will
see or interact with, and the back-end is the part of the application
that handles the logic, database interactions, user authentication,
server configuration, etc.
4
5. 1. HTML/CSS
The following topics related to HTML/CSS come up
often in interviews and on the actual job when
you are working.
HTML allows you to add content to a website and
CSS is what allows you to style your content.
Semantic HTML
Be able to explain the CSS Box Model
Benefits of CSS preprocessors
CSS Media Queries to target different
devices and write responsive CSS
Bootstrap
5
6. Below are some topics you need to understand as a Full-Stack
Developer
2.JAVASCRIPT
Understand how to work with the DOM. Also
know what JSON is and how to manipulate it.
JavaScript is the most popular language in
both Full-Stack, Front-end, and Back-end
Development. It’s the only language that
runs natively in the browser, and can double
up as a server-side language as well
Important language features such as functional
composition, prototypal inheritance, closures,
event delegation, scope, higher-order functions.
Asynchronous control flow, promises, and call-
backs.
Learn how to properly structure your code
and modularize parts of it, things like webpack,
browserify, or build tools like gulp will definitely
be helpful to know.
Although some may argue that you should be
using this less or that it’s slowly dying, jQuery
code still exists in most applications and a solid
understanding of it will be helpful.
Some knowledge on testing frameworks and why
they’re important (some may even claim that this
topic should be optional).
6
7. Once you feel you’ve gotten a good
grasp on HTML/CSS and JavaScript,
you’ll want to move on to a back-end
language that will handle things like
database operations, user authentica-
tion, and application logic
Here are jobs out there for all the
languages listed .
7
3. Back-End Language
8. LANGUAGES
Node.js
This is a great option because
Node.js is itself just a JavaS-
cript environment which
means you don’t need to learn
a new language.
Ruby
Some popular frameworks for
developing in Ruby are Rails
and Sinatra. Plenty of programs
teach Ruby as a first back-end
language.
Python
Some popular frameworks for de-
veloping in Python are Django and
Flask.
Java
The Java language isn’t taught
so much these days when it
comes to Full-Stack Web De-
velopment, but some companies
do use Java as their back-end
and it is still a very in-demand
language
PHP
PHP is rarely taught in pro-
grams these days, but just
like with Java, it is still very
in-demand and it is a cor-
nerstone of the web today.
8
9. 4. Databases &
Web Storage
When learning to build web applications, at some point you’ll probably
want to store data somewhere and then access it later. You should have a
good grasp on the following topics related to databases and storage.
Understand the benefits of relational data, e.g. SQL.
Learn about NoSQL databases, e.g. MongoDB.
Understand which would be better in certain situations.
Know how to connect a database with your chosen
back-end language (e.g. Node.js + MongoDB)
Understand the benefits of in-memory data stores like Redis or
memcached
Web storage to store sessions, cookies, and cached data in the browser.
Scaling databases, ACID, and ORM (all optional).
1
2
3
4
5
6
7
9
10. 5. HTTP & REST
HTTP is a stateless application protocol on the Internet —
It’s what allows clients to communicate with servers
1. What is REST and why is it important in regards to the HTTP
protocol and web applications.
2. Best practices for designing a RESTful API. POST/GET requests.
3. Learning how to use Chrome DevTools can be extremely helpful.
4. What are SSL Certificates.
5. HTTP/2 & SPDY (optional)
6. WebSockets, Web Workers, and Service Workers (all optional)
H
T
T
P
10
11. 11
6. Web Application
Architecture
Learn about common platforms as a service, e.g. Heroku and AWS.
Heroku allows you to easily upload your code and have an application
up and running with very little configuration or server maintenance and
AWS offers dozens of products and services to help with storage, video
processing, load balancing, and much more
Performance optimization for applications and modern browsers.
Some opinions on what a web application architecture should include.
Once you think you have a grasp on HTML/CSS, JavaS-
cript, back-end programming, databases, and HTTP/
REST, then comes the tricky part. At this point if you want
to create a somewhat complex web application, you’ll
need to know how to structure your code, how to sepa-
rate your files, where to host your large media files, how
to structure the data in your database, where to perform
certain computational tasks (client-side vs server-side),
and much more.
Designing Web Applications by Microsoft.
MVC.
Most importantly though you should try to work on projects with
people, look at codebases of popular projects on GitHub, and learn as
much as you can from senior developers.
12. 7. GIT
Git is a version control system that allows developers working on a team to
keep track of all the changes being made to a codebase. It’s important to know
a few important things related to Git so that you understand how to properly
get the latest code that you’ve missed, update parts of the code, make fixes,
and change other people’s code without breaking things. You should definitely
learn the concept behind Git and play around with it yourself.
12
13. 8. Basic Algorithms
&
Data Structures
This topic is somewhat polarizing in the development world because there are de-
velopers who don’t think there should be such a heavy focus on computer science
topics like tree traversal, sorting, algorithm analysis, matrix manipulation, etc.
While there are companies that practically require applicants to have a computer
science degree or equivalent, there are plenty of companies that will hire people
without this technical qualification if they can prove that they know how to develop
applications and show an understanding of the whole domain.
13
14. 14
Improving your Algorithms & Data Structure Skills Article
Study hash tables and try to understand them on a deeper level.
This data structure underlies objects in JavaScript (dictionaries
in Python and hashes in Ruby).
Understand how trees and graphs can be beneficial as data
structures.
Understand the basics of Big-O analysis so you don’t do silly
things like create a nested loop 3 levels down if you don’t need
to!
Know when to use an object vs an array and understand the
trade-offs.
Learn why caching is so important when working with a large
amount of data. Also learn the pros and cons of in-memory vs
disk storage.
Learn the difference between queues and stacks.
It’ll be hard work learning all of this, but it’s rewarding in the end and Full-Stack Development is fun!!!
Here are some things you
should definitely learn:
1.
2.
3.
4.
5.
6.
7.