Front-end web development, also known as
client-side development is the practice of producing HTML, CSS and JavaScript
for a website or Web Application so that a user can see and interact with them
directly. The challenge associated with front end development is that the tools
and techniques used to create the front end of a website change constantly and
so the developer needs to constantly be aware of how the field is developing.
The
objective of designing a site is to ensure that when the users open up the site
they see the information in a format that is easy to read and relevant. This is
further complicated by the fact that users now use a large variety of devices
with varying screen sizes and resolutions thus forcing the designer to take
into consideration these aspects when designing the site. They need to ensure
that their site comes up correctly in different browsers (cross-browser), different
operating systems (cross-platform) and different devices (cross-device), which
requires careful planning on the side of the developer.
The
objective of designing a site is to ensure that when the users open up the site
they see the information in a format that is easy to read and relevant. This is
further complicated by the fact that users now use a large variety of devices
with varying screen sizes and resolutions thus forcing the designer to take into
consideration these aspects when designing the site. They need to ensure that
their site comes up correctly in different browsers (cross-browser), different
operating systems (cross-platform) and different devices (cross-device), which
requires careful planning on the side of the developer.
Today,
in general, one can't go to college and expect to graduate with a degree in
front-end engineering. And, I rarely hear of or meet front-end developers who
suffered through what is likely a deprecated computer science degree or graphic
design degree to end up writing HTML, CSS, and JavaScript professionally. From
my perspective, most of the people working on the front-end today generally
seem to be self-taught from the ground up or cross over into the front-end
space from design or computer science fields.
If you
were to set out today to become a front-end developer, I would loosely strive
to follow the process outlined below.
Learn,
roughly, how the web platform works. Make sure you know the "what"
and "where" of HTML, CSS, DOM, JavaScript, Domains, DNS, URLs, HTTP,
browsers, and servers/hosting. Don't dive deep on anything just yet, just aim
to understand the parts at play and how they loosely fit together. Start by
building simple web pages.
Learn
HTML
Learn
CSS
Learn
JavaScript
Learn
DOM
Learn
the fundamentals of user interface design (i.e. UI patterns, interaction
design, user experience design, and usability).
Learn
CLI/command line
Learn
the practice of software engineering (i.e., Application design/architecture,
templates, Git, testing, monitoring, automating, code quality, development
methodologies).
Get
opinionated and customize your tool box with whatever makes sense to your brain
(e.g. Webpack, React, and Mobx).
Learn Node.js
A short
word of advice on learning. Learn the actual underlying technologies, before
learning abstractions. Don't learn jQuery, learn the DOM. Don't learn SASS,
learn CSS. Don't learn JSX, learn HTML. Don't learn Typescript, learn
JavaScript. Don't learn Handlebars, learn JavaScript ES6 templates. Don't just
use Bootstrap, learn UI patterns.
Lately a
lot of non-accredited, expensive, front-end code schools/boot camps have
emerged. These avenues of becoming a front-end developer are typically teacher
directed courses, that follow a more traditional style of learning, from an
official instructor (i.e., syllabus, test, quizzes, projects, team projects,
grades, etc.).
Keep in
mind, if you are considering an expensive training program, this is the web!
Everything you need to learn is on the web for the taking, costing little to
nothing. However, if you need someone to tell you how to take and learn what is
low cost to free, and hold you accountable for learning it, you should consider
a traditional instructor lead class room setting. Otherwise, I am not aware of
any other profession that is practically free for the taking with an internet
connection, a couple of dollars a month for screen casting memberships, and a
burning desire for knowledge.
0 Comments