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?
You're free to jump to any of the specific sections right away.
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 to learn how to code. Becoming web developers, despite its complexity, is something that anyone can learn, as long as they 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 at getting a jump on the trend? Are you asking yourself, what is web development? If so, get ready to figure out how to learn web development and take your first steps into a larger (digital) world, with the 2018 DevMountain Beginner's Guide to Coding. This guide will provide you with the foundation you need to begin your adventure in developing web development skills, and lead you from being a beginner web developer to an intermediate web developer.
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 your site.
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 and helping you learn the web development basics.
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 languages.
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 the page.
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 website development 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 to toher web development 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 to go over the back-end web development definition. Back-end web development consists of all 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 tasks.
Web-server applications help facilitate interaction between the front-end browser functions and back-end systems.
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 and Laravel.
Framework Development Tasks
One of the more popular web servers;
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 and Nginx.
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 is Swagger.
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.