We Live in an increasingly digital society.
As of 2017, there are approximately 3.58 billion internet users worldwide.
This means that nearly half of the 7.6 billion people who live on planet earth have access to the internet, and
they use it for everything from entertainment to education, from communication to commerce, from keeping
up to date on current events to keeping up with the joneses in the business world. In fact, for many of us
the internet is the first (and sometimes the only) channel we use when reaching out to interact with the
world in all of its complexity.
Want to skip to the sections that interest you the most? Who are we to tell you how to live your life?
So where are all the coders?
Despite the widespread application of computer code for web development, coders are still a relatively rare breed.
For one thing, the number of U.S. college students who pursue degrees in computer science has been hovering around
2.5% since the early 1980s.
Pretty low, given the ever increasing demand for programmers.
Why is this?
Well, it may have something to do with the money and time investments often associated with earning a computer
science degree. But perhaps even more than that, many prospective programmers get scared away by the
complexity of it. After all, learning code is essentially the same as learning a new language — several
new languages, actually.
The reality is that you don’t have to be a C.S. major or a tech wiz; Web development, despite its complexity,
is something that you can learn, as long as you have the passion and are willing to cultivate it.
with only 400,000 qualified developers to fill them,
those interested in acquiring in-demand career skills can certainly benefit from having web-development and coding
on their résumé, regardless of industry.
According to U.S. News & World Report,
certified professional web developers earn an average salary of $64,970, nation wide.
For many professional coders, demand and salary are only part of the equation. The chance to meet and overcome
new challenges on a daily basis, to conceptualize and introduce personalized artistic solutions, make
it a fresh and exciting career choice that never gets dull.
But perhaps even more than that, the simple truth is that in 2017 our global society is increasingly becoming
a digital society. And just as the ability to read and write words on paper was once a special skill
held by a select few, in the coming years and decades, coding ability is going to see a transition from
optional to essential. In short, learn programming, learn how to code, and you’ll be learning the keys
to your future.
Interested in expanding your marketable skillset or even just a getting a jump on the trend? If so, get ready
to take your first steps into a larger (digital) world, with the 2017 DevMountain Beginner's Guide to
Coding. This guide will provide you with the foundation you need to begin your adventure in web development,
and lead you from beginner to intermediate web development.
Again, you can learn a lot from simply investigating other sites, but for a more annotated insight, check out
the most current Stack Overflow Developer Surveys.
These surveys bring together professional developers’ insights into technologies, coding preferences, work habits,
user trends, and more.
Stack Overflow survey data can provide concrete information for you to use while you plan the structure of
Additionally, Stack Overflow functions as a sort of forum where programmers and developers of all skill levels
can come together to share tips and tricks, and crowdsource solutions to potential problems. In order
to submit or answer questions, you’ll need to sign up for a free account, but non-registered users can
still browse through topics and answers using a simple search function. And given that the average response
time is 10 minutes, this resource may be essential in times of emergency.
Beyond Stack Overflow, various other programming and developer communities can be found on the web. Similar
sites include Experts-Exchange, GitHub, Toptal, Developers Forum, and SAP Community Network (which maintains
a strong focus on business coding). Likewise, Youtube offers a number of channels to help you connect
with the developer community, while also providing easy-to-follow tutorials for specific coding tasks.
With these resources in mind, let’s talk about the coding languages themselves.
When a site is loaded into a browser from a server, certain client-side scripts run within the browser itself,
allowing the page to function normally without needing to maintain a constant connection with the server.
The front end manages all user requests and interactions in a relatively contained, local bubble.
And while early websites — generally consisting of formatted text with the occasional animated GIF thrown
in for good measure — required very little in the form of advanced front-end development, 2017 sites
are much more complex. Front-end programming languages need to be capable of playing videos, loading
data from other pages within the page, expanding and minimizing individual objects, incorporating mouse-over
functions, and more. To accomplish these tasks, developers generally depend on a few front-end programming
When information needs to be exchanged with the database, front-end scripts facilitate this by sending requests
to the backend.
The following are the most popular choices for developers working on client-side development:
Hypertext Markup Language
HTML5 (hypertext markup language) is the most recent version of the classic HTML code that has been in
use since the early 1990s. HTML5 is compatible and supported on all major browsers and platforms,
making it particularly well suited for presenting web content across a variety of devices. Its usefulness
as a cross-platform coding solution has also made it very popular in mobile application development.
HTML5 functions as the backbone of all front-end design, with other languages filling what could
be termed ‘supplementary’ roles.
Cascading Style Sheets
CSS (Cascading style sheets) as a language is more focused on issues related to webpage design. CSS gives
programmers the freedom to create a visual aesthetic that can be adapted to any particular device,
operating systems, or screen-size. As with HTML5, CSS is compatible with all web browsers. Additionally,
both HTML5 and CSS code can easily be updated using the DOM (document object model), a platform-and-language-neutral
interface that programmers can access to change elements of a page directly, without having to refresh
improved interactivity within webpages. And while its function remains essentially the same, the
and include interactive features that allow for dynamic, reciprocal sites that can change and adapt
to user input, without having to reload from the server.
In addition to being vital to front-end development, it is also so widely used in professional backend
of a webpage to update and change without forcing a page reload. It does this by keeping certain
page elements separate from the rest of the page, and exchanging small amounts of data with server-side
programs behind the scenes.
Ajax makes it possible to incorporate autocomplete, autofill into form boxes, and other server-interactive
actions into a webpage, without the hassle of forcing a postback or page refresh.
If you’ve spent any amount of time researching coding online, you may have discovered that a number of non- and
low-code development platforms are available.
These platforms are called Content Management Systems (CMS).
There are many CMS out there.
many site-builder platforms don’t generally give you access to the original source code.
Some of the more popular CMS options include Wordpress, Drupal, Wix and Weebly. As previously mentioned,
the promise of these platforms is that users will be able to build working websites with little to no
coding knowledge. But while this is certainly an attractive possibility, there are a few things you should
understand before committing to a site-builder platform.
Site builders force you to build and maintain your pages on their platform, which creates a number of potential
problems. For one thing, anything built on such a platform stays on the platform. Should you ever decide
to try to migrate your site to a new location, you’ll probably have to rebuild it from scratch — many
site-builder platforms don’t generally give you access to the original source code. Some of the more
popular open-source platforms (such as Wordpress) do give you access to all of the code. That said, trying
to migrate sites from these platforms to other platforms is still a very difficult task.
Another factor to consider is that a non- or low-code platform will most likely be using the same security
measures for all of the potentially thousands of sites that it hosts, making it a tempting target for
cyber criminals, possibly compromising your site in the event of hijacking or data theft.
Lastly, recognize that “free” site development often isn’t free at all. If you’re not paying a fee to use
a low-code development platform, then you’ll be paying by allowing the platform to advertise on your
site — because in most cases, when all is said and done, it’s not really your site at all.
However some management systems, like Wordpress, are different, in that they just provide the free management software;
everything else belongs to you.
Hand coding gives you the power to create what you want, on your terms, without limitations.
Wordpress specifically is a powerful, reliable platform, supported by an active community. Still, if you
are planning on building a site with any sort of complexity to it, you’ll end up having to rely on various
third-party plugins to do so (which may or may not continue to function properly down the road).
Hand coding gives you the power to create what you want, on your terms, without limitations. You may be able
to accomplish a lot with a CMS but will never be able to build an advanced, truly custom and sustainable
site with. So, with that understanding, let’s take a look at the areas of your site you’ll be developing.
We’ve already discussed some (but certainly not all) of the available coding languages for back-end development,
but let’s take a moment and briefly go over the parts that make up the server-side of your website.
The backend consists of three parts:
The database is responsible for storing, organizing, and processing information so that it is easily
accessible and retrievable.
The server is essentially the computer (hardware and software) that powers the entire process and
on which ‘lives’ the website, as well as the database itself. Servers are responsible for sending,
processing, and receiving files and data requests, along with handling security and encryption
Web-server applications help facilitate interaction between the front-end browser functions and back-end
Together, these components combine to create a working foundation on which users can interact with websites.
In developing for the back end, programmers rely on certain core building blocks.
The first core building block is the logic code.
This is your core business logic, and generally consists of a library of code that the rest of the application
can draw from in order to complete assigned tasks. Think of it as a set of rules; it details exactly
how objects will interact, while also enforcing the methods by which those objects are accessed and updated.
The next core building block is data management.
Data management is directly tied to your database. Your database will likely either be type SQL (relational)
or NoSQL (document based). The difference between these two database types is significant. Relational
SQL databases organize data in a very structured, defined way. These kinds of databases offer a number
of advantages — they are widely-used and directly compatible with a variety of platforms, they fit naturally
into many software stacks, and they’re straightforward (users can add, delete, and update information
with relative ease).
However, SQL can make scaling difficult. NoSQL picks up where SQL leaves off. NoSQL has no specific schema,
and allows users to effectively interact with large amounts of data, usually via the cloud. NoSQL allows
for greater flexibility. Instead of relying on heavily structured tables, NoSQL solutions are document-oriented.
Data is stored in documents that can be located without being defined by fields (as happens with SQL).
There are many database engines, such as mySQL, SQL Server, Oracle, MongoDB, Cassandra, or Firebase (to
name only a few).
Hosting Your Own Site
Public Cloud Hosting
The last core building block is your hardware.
Will you host your own site or use a public cloud? Hosting your site will give you greater control, and they’ll
be no disputation over who owns the files and documents that populate that site. On the other hand, using
a public cloud is generally less expensive, and the cloud providers are responsible for all server maintenance,
and may also be responsible for security (although you may be handling security yourself).
The goal of back-end development is threefold:
To maintain data integrity, to support performance and scalability, and to ensure security.
To meet these objectives, developers often rely on a number of frameworks. Frameworks are software solutions
that provide tools and libraries designed to simplify the web development process. Standard development
tasks include authorizing users, communicating with databases, establishing security protocols, formatting
output, and routing URLs. Frameworks aren’t necessary for server-side development, they are highly recommended.
Some of the most popular frameworks for for backend developers are Phoenix, Express.js, Django, Flask
Framework Development Tasks
One of the more popular web servers;
with all major platforms
REST is the most popular API platform.
Node enables your system to handle multiple requests at once, without waiting for tasks to be completed and
returned. This makes it possible for Node to perform a variety of functions, including collecting form
data, modifying database information, managing files on the server, and generating dynamic content on
your page. Node.js is just one of many choices you can make for web server software such as Apache, IIS
Essentially, back-end development revolves around an API, with the front end making API calls, and those
calls executing the back end code. This gives you a layer of abstraction between your web app and back-end
code. You can change the way the back end operates without having to update the frontend code. The only
dependency the front-end has on the backend is the endpoint that it hits to execute the code. REST Apis
REST is the most popular API platform. REST is built on the idea that you have a set of endpoints (or web
addresses) that allow you to create, read, update and delete data. It uses standard HTTP methods like
POST, GET, PUT, and DELETE, respectively. The most popular framework for documenting and consuming APIs
For your site to be reachable and recognizable on the web, it’s going to need a domain name.
Any individual can register for a domain name, all it takes is a small fee to register with ICANN (Internet
Corporation for Assigned Names and Numbers). There are a many services that will help you with this such
as GoDaddy, Network Solutions or Hover. Once finished, you will own the right to that name for one year,
with yearly renewals needed to retain the domain for longer than that.
Internet Corporation for Assigned Names and Numbers
To register for a domain name,
simply brainstorm several possible domain names that would be suitable for your business.
These names need to be unique from other domain names currently in use across the internet, but they should
also be as straightforward as possible. Remember that there are a number of possible extensions that
are available, such as .com, .net, and .org. This means that even if your domain name is not available
with one extension, it may still be available with a different extension. And while each extension is
generally associated with a specific kind of organization (.com usually refers to commercial businesses,
.net implies networking sites, and .org is for nonprofit organizations), the reality is that there aren’t
any legal limitations over who can use which of these extensions. Other extension options include .biz,
.info, .tv, and .US.
With your list of potential names, you’ll either need to choose a hosting service or decide to host on your own server
(check with your internet service provider to make sure that they allow web hosting, as some do not, and will actually
block all traffic to your site).
FOR THOSE USING A HOSTING SERVICE,
the next steps are to check the availability of your domain name until you find one that isn’t already in
use, fill out several in-depth forms, and finally pay for the domain name using either a credit card
or an online payment system (such as Paypal).
IF YOU ARE SELF HOSTING THE PROCESS IS A BIT LONGER.
Your next steps are to assign a server on which your site will live, acquire a static IP address so that
visitors can reach your site, invest in server-control software, reconfigure your firewall and router
for website hosting, and finally rout domain traffic to your server.
Here are some basic tips
FROM EXPERTS TO HELP ENSURE THAT YOUR CODING JOURNEY STARTS OUT ON THE RIGHT FOOT:
Document what every function is, what it is for, why you are including it, and any other specifics that come
to mind. You may think that devoting hundreds of hours to your site will result in a sort of omniscience
regarding your code, but the truth is you will forget.
Implement version control, as it will help you keep track of changes to your site over time. This will give you
the opportunity to reload previous versions of your pages, in the event that you make a change to your site
that completely screws everything up.
Always keep backups. Of what, you ask? Let’s just put it this way: if it’s something that can be backed up, then
back it up. It doesn’t take much to unravel an intricate coding solution; backups give you a safety net should
something go wrong.
Follow the guides. There are a number of tutorials available online to help you get the most out of your frameworks
and other tools. Use them.
Use minification where possible to help ensure that your payload size (particularly for images, js files, and
other references) is as small as possible.
Make sure that your site isn’t exposing any more data than is necessary from server-side services. If the user
shouldn’t see it, then you need to make sure that the client isn’t loading it.