Monday, June 8, 2020

Web Development

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. Full stack can apply to a web stack, mobile stack, or a native application stack (i.e. software programs for specific devices).

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.