Web
programming, also known as web development, is the creation of dynamic web
applications. Examples of web applications are social networking sites like
Facebook or e-commerce sites like Amazon.
Web
development is a specific field of software engineering that focuses on
building web pages. Web pages, or web apps, are codebases that are downloaded
and run in our web browser (e.g., Google Chrome) each time a user navigates to
the website address. This differs from other software which is usually
downloaded once and run as a standalone application on your computer or phone.
Web development makes for an exciting career, as a web development cycle is
usually much shorter and you get to iterate over your software at a much faster
rate.
The
major building blocks of the web are HTML, CSS, and JavaScript. We will be talking about all three
languages. We can also think of web development as being split into two main
categories: front end and back end. We will discuss what each entails.
The Term Front-End
Everything
you have ever seen on the web is considered ‘front end’. Front end is what we
see when we open a web page or app. Code is downloaded from a server and is
rendered to the screen by a web browser. What happens when we interact with the
code is also considered front end. This is often referred to as the
‘Presentation Layer’ or ‘Client’ in software development terms.
The
front end is built out of three languages: HTML, CSS, and JavaScript. HTML
allows us to put content on our page: text, headers, images, buttons, links,
and etc. CSS is used to style our page. It allows the contents to have
different text colors, background colors, as well as dealing with the
positioning of the content on the page. JavaScript makes our page dynamic. It
allows for the content to change on a mouse hover or click and also lets us
submit data and have data rendered on our page (such as submitting a new blog
post or having your feed populated when you open Facebook).
The Term Back-End
This
term usually refers to what happens ‘behind the scenes’: servers, databases,
etc. The back end is the place we don’t see as users. This consists of data
storage (databases) and servers running to provide data for the front end. Back
end can be a little harder to imagine, especially for someone without much
experience with it. Back end is commonly referred to as the ‘data access layer’
or ‘server’ within software development terms. The back end computes the data
and content sent to the front end to be used and displayed by your browser.
Back
end server code can be written using JavaScript. However, it can be also
written using many other languages, such as Ruby, Java, or Python. The database
logic required in back end development often utilize a database language, such
as SQL or MongoDB.
The Term FullStack
It refers to the development of both front end (client
side) and back end (server side) portions of web application.
Full stack web developers have the ability to design complete web application
and websites. They work on the frontend, backend, database and debugging of web
application or websites.
What skills require to become a full
stack developer?
You’ll
typically see a mix of front and back end skills listed on full stack web
developer job listings, including:
- HTML, CSS, JavaScript
- Ideally, one or more third-party library like ReactJS or Angular
- Programming languages and libraries like Ruby, PHP, Python
- Experience with databases
- Version control
- Knowledge of security concerns and best practices
- Ideally, some knowledge of web or visual design, plus user experience best practices
The Term Framework
Real
world web development relies heavily on the use of frameworks. Frameworks
aren’t exactly new languages, but are more like add-ons to existing languages.
These frameworks slightly change the rules and syntax of a language, but save
us a lot of time and effort in writing web development code.
For
example, a CSS framework like Bootstrap will require us to write our CSS using
slightly different rules than regular (vanilla) CSS. It will also limit the
level of customization we can do using CSS. But the drawbacks are often worth
it, because Bootstrap makes styling our sites far easier and allows us to
create mobile-friendly pages with minimal effort.