Learning a new language: programming

Yuyi Li
3 min readOct 20, 2021

We use languages to create a representation and translation of our thoughts into the physical world.

Learning a new language opens up a door…open the door and you have the chance to enter a world that either exists or one that you can build. You’ll have the opportunity to discover a web of connections of a novel dimension within the world that you currently live in.

Here is a visualization of how this works — doors can lead to different places (e.g., classrooms, dungeons, a dark alley, gardens, a brick wall, etc.). It is important to understand the possibilities of each door before entering. In programming, there are many doors (i.e. languages), and each door has different purposes depending on where you want to go. Some doors are nested within each other, and there are ways to move around within these rooms.

I decided to become a developer because I wanted to unlock doors that traverse physical borders. I found myself standing in front of a set of doors — which one do I choose, and where will each door take me?

I will break things down a bit by boiling down the purpose of each language by the purpose of development: front-end, back-end, vs. full-stack. Let’s say that I want to build a unique house from scratch (hypothetically on my own), I would likely do these things:

  • Survey/map the land and general atmosphere of the area to ensure that the land can support the designs that I want to build and ensure that my dreams are feasible (realistic) and sustainable (i.e., avoid collapse, leave room for renovations).
  • Research the cool designs that I want to add inside the house (and outside the house). Do I want to have walls that change color based on the temperature? Why not.

I will need to ensure that the two steps above are aligned before I can begin the build. The build-out of the house, as related to programming, is done by two main sub-types of developer roles: front-end and back-end. Each type of role involves a different set of languages, but a full-stack role encompasses both front-end and back-end capabilities.

Front-End

Front-end developers build all of the client-facing structures of the web/mobile application’s user interface.

Languages for front-end include:

  • Javascript
  • HTML
  • CSS

Language frameworks ensure that content looks good across devices and that there is a set architecture to the way that the code is organized and called (example: book with chapters). Popular frameworks (some include libraries) include:

  • React
  • Bootstrap
  • Angular
  • Vue
  • Ember
  • Ajax

Libraries contain useful functions, such as structural and UI so you don’t have to build things from scratch. Popular libraries include:

Back-End

Back-end developers build all of the server-facing structures of the web/mobile application. Their goal is to create an architectural blueprint that is not only functional with the design of the house but also the structure of the land. In more specific terms, they ensure that data and information are communicated and functioning between the user interface and the server.

Primary programming languages for the back-end include:

  • Ruby
  • Node.js
  • Python
  • Java
  • .Net
  • PHP

Popular tools to find, save, and change data to communicate with the front-end code include:

  • MySQL
  • Oracle
  • SQL Server

Applications may be deployed onto the cloud to:

  • Amazon AWS
  • Google Cloud
  • Microsoft Azure

In my next post, I will dive further into real-world use cases for each language and the pros & cons of some of these programming languages. Side note: there are languages for specific usage:

  • Swift (iOS development)
  • Solidity (smart contracts)

--

--