Learning to Code Part 2 of 5

Sumi Sastri
Cancer Research UK Tech Team Blog
7 min readApr 26, 2021

This is a jargon-free, plain English series, written to inspire people who are considering learning to code.

It will also help non-coders, who work with coders, understand what the process is to get a feature built, into production, deployed and released on a web or mobile application.

What is a “real” coding language?

Coffee cup with message Talk Code to Me
Jan Alexander for Pixabay

In this article we explore what code is and isn’t and what are the “real” coding languages you should learn when you are starting from ground zero.

There is a view that HTML (hyper-text-mark-up language) & CSS (cascading style sheets) are not “real” computer languages. They are text and styling mark-up. However, they are computer coding languages — just with simpler and more easy to understand rules.

Computer code is the set of rules — the syntax — of a particular computer language.

Most computer languages are designed by programmers as a set of rules that are easy to learn and interpret for humans.

You do not need to know advanced maths, be a “techie” or a “geek” to learn coding. Follow the rules, the syntax of a language or the protocol as the rules are strict but fairly simple especially with HTML and CSS.

Which language should I learn if I want to code?

Languages wax and wane in favour. The most popular languages are not the same as the most adopted languages on the web.

If you missed Part 1 in the series, now may be a good time to go back.

In Part 1 So you want to Learn to Code we explore what motivates you and how to go about learning to code.

While JavaScript — often abbreviated to JS — is the most popular front-end language, PHP is the still the most used. PHP, originally an acronym for Personal Home Pages, is another scripting language. WordPress is built on PHP, and initially, so was Facebook!

JavaScript libraries have replaced vanilla JS. These are j-Query, once again not popular but often used and React.js popular but may not be with the same market share. React was designed by Facebook as a front-end library to improve performance of its user interface which was initially generated using PHP.

The fundamentals still start with three building block languages that you must learn to code are:-

  • HTML
  • CSS
  • JavaScript

They form 97% of the code for all apps written on web.

JavaScript is the entry-point to understanding other JavaScript libraries such as React.js, Vue.js and JavaScript frame-works such as Angular.js. The .js file-extension is often dropped and are referred to as React, Vue and Angular.

Should you learn PHP? PHP is a server-side HTML pre-processor. What this means is you can inject PHP code into HTML. JavaScript, on the other hand, can be written in the browser as well as in a back-end application.

The popularity of JavaScript has grown in leaps and bounds over the last decade making it more popular as a language for beginners to learn. However, PHP is still a force to reckon with and its market share is significant. Many boot camps do not offer PHP on the curriculum.

If you wish to learn PHP you may have to go down the self-taught route with online tutorials like W3 schools and several other resources easily available on the web. Have a browse through the PHP documentation and if you want to know why people love to hate PHP, here is a good forum to checkout several opinions on the topic.

To be honest, it is one of the languages I would like to learn — just not immediately as I would like to be confident with the languages I know before taking on a whole new challenge.

What about Ruby? Some boot camps still offer Ruby and Ruby-on-Rails (the back-end framework for front-end Ruby) but many start-ups find Ruby does not scale well and are migrating out of a Ruby-based stack. There still are a number of jobs where Ruby developers are in demand to maintain existing legacy stacks.

A tech-stack, or stack, is a configuration of languages that a developer/organisation uses to build web or mobile apps.

It is worth remembering that while JavaScript is incredibly popular as a language to learn today, when JavaScript was introduced as a programming language for web-browsers in the 1990s, it failed to gain popularity.

Similarly Ruby was extremely popular in the early 2000s but has fallen out of favour as React and Vue have replaced front-end code initially written in Ruby and back-end code with other languages, frameworks or libraries.

Is learning to code a front-end language better?

The front-end languages refer to code that writes the front-end of a web or mobile application. The visible part of the app to a user.

However, the back-end of an application where the data is stored and retrieved for use on the front-end is equally important.

Learning to code both for the back-end and front-end is more valuable as it enhances your understanding of a code-base.

What back-end languages should you learn?

Once again, what you can learn in boot camp is limited by what is taught in the curriculum.

Java, a language that is most useful for back-end development is not taught at boot camp.

It is no relation to JavaScript, except that when Brenden Eich, who designed JavaScript code as a browser-based scripting language for Netscape. It was called Mocha, LiveScript and then JavaScript only to tag its name to the popular language of the day, which was Java.

C, C++, C Sharp are other back-end languages that are not taught at boot camp.

PHP and Ruby-on-Rails once again are not taught at all boot camps.

Which of course does not mean you should not learn these languages. It means they are harder to access in short-courses by accredited boot camps.

Python — a scripting, back-end language used for Data Science is taught and is swiftly gaining popularity.

JavaScript for back-end frameworks is what most boot camps teach — Node.js or Node is an environment where JavaScript works outside the browser and therefore in the backend.

What about learning to code for data-bases?

Boot camps do run through both relational-databases and non-relational databases.

SQL, MySQL and PostGreSQL are search query languages (SQL) that are used in relational databases. With PostGreSQL being an open source database it is the most easily accessible form of SQL to learn.

Non-relational databases are also referred to as document-based databases.

MongoDB and DynamoDB are two such databases. MongoDB is JavaScript-based and once again the most easily accessible if you learn JavaScript.

Isn’t this a spaghetti tangle of code to learn?

Spaghetti
Credit: Pixabay

Yes and no. Learning HTML, CSS and JavaScript — especially JavaScript will take you a long way.

Learning one back-end language like Node, and one JavaScript-based database, like MongoDB, will help you quickly spin up small projects for your portfolio.

If you do not want to go the boot camp route and are comfortable with online learning there are many free training videos on YouTube and FreeCodeCamp . W3Schools and Mozilla have their own free online tutorials and accreditations.

For a small fee there are other resources like Udemy, StackSkills and on a subscription basis Udacity and Linked-in Learning.

This is not a comprehensive list but should be enough to get you started.

Learn to code the MERN-stack

I found that learning the MERN stack — MongoDB, Express.js (or Express) as a server, React and Node — was the easiest way to practice the fundamentals of vanilla JavaScript through the stack.

It is a stable stack that does not need a cloud architect to configure if you are building side-projects for a portfolio.

It helps you stay focused to gaining mastery with one language — JavaScript and applying this knowledge through the stack.

Most of my portfolio is based on the MERN-stack. It’s what helped me in the 18-months after I left boot camp to keep my focus narrow but deep rather than cast my net wide and lose focus.

What about learning to code the JAM stack?

Even better! JAM refers to JavaScript, APIs and Markup (HTML & CSS). APIs are application protocol interfaces, or a way of getting data from the back-end to the front-end.

This is Pure JavaScript, HTML and CSS without a server. It is great as a starter for anyone who is looking to build a small project on their with only front-end languages. Netifly helps you deploy and host this stack in a matter of seconds.

You don’t need boot camp for this if you are in the research phase and want to dabble.

If you want to build a JAM-stack app hang-on for Part 3,4 and 5 of Learning to Code, where I will help you build micro-projects.

It’s a risk free and cost-free way of checking whether coding is for you or not. Or to understand the basic principles of coding with the building block languages HTML, JavaScript and CSS.

In Part 3 of Learning to Code, I will run through three pens or links from CodePen, a free sandbox that allows you to play with code and see how it works.

The super-fast HTML crash course pen is adapted from W3Schools tutorials.

The CSS Bouncing Balls pen adds CSS styling and animation. You can copy this pen and change the shape of the coloured balls and the animation and make this project your own.

The Traffic Light pen demos the power of JavaScript and the magic it works with a click of a button!

Get to write your first code Learning to Code Part 3-> next

<- Previous Part 1 So you want to Learn to Code

--

--

Sumi Sastri
Cancer Research UK Tech Team Blog

I am a full-stack JavaScript developer currently levelling up AWS-skills. I code because it's fun and I am always learning.