Become a programmer in 2022
Tags: webdev, programming, beginners, tutorial
Published: 2022-06-15 15:41:25


Most often we use the new year as a time to learn new skills and break bad habits and with the rapid expansion of technology into our daily lives, it would be a great idea to add programming as a skill to learn for 2022. Most often, the people near me, be it friends/co-workers are interested in learning how to program but have no clue where to start. So, today, we'll be talking about why it would be good to learn programming in 2022 and how to even get started. We'll touch on what resources are available to get started, be it wanting to learn on your own or wanting to go to a boot camp.

## Why even learn to Program?

Programming is a skill that has the potential to unlock even more important life skills such as problem-solving and persistence. Problem-solving, I find this skill very fascinating because it's a type of skill that is not directly taught but yet somehow acquired. I think it's a skill that's learned through examples and many hours of practice. Seeing how others work through a problem especially programming problems can be very helpful and it may give you new insights on how you can incorporate their ideas into a problem that you are trying to solve.

Programming also teaches you persistence -- you may find that when working on your next idea, solutions to some problems may be very apparat while solutions to other problems may take a bit more time to surface. The mere fact that you know you can use programming to bring your idea to life may be all that's needed to stay determined to pass the roadblock that is in front of you.

In the penultimate reason of why you would want to learn to program, the skill provides you with an avenue for a career change as year after year the demand for programming jobs grows rapidly. Companies are adapting to new technological changes and seeking programmers to aid in their ushering into a new era.

Finally, Programming combines creativity with technical skills. You gain the ability to create whatever you want! Be it an app, that lets you book your trip to your dream destination or a website that allows you to order take out -- you are only limited by what you can imagine!

## What programming languages do I start with?

This is the question that plagues many people that are getting started with programming -- there are just so many languages to choose from! From personal experience, I find that most individuals gripe with programming and I guess a fair misconception is that you cannot directly see the impact of what you are coding. I say this is a fair misconception as I can understand that it may be lost in translation how solving coding problems/challenges leads you to developing an application or a website. So most often I say that people should start with languages where you can visually see what you're coding as I think that would be a better way and would keep you more motivated. Visually see in the sense that typing out "I want this button to be red" should allow you to see a button turn red.

In the programming world, this type of programming is known as the front-end, the creation and development of user interfaces. How is the application going to be structured? How big are the buttons going to be? How does typography play into the useability of the application I'm building? Everything that encompasses the style and function of an application falls under the umbrella that is the front-end.

### Web Development

Web development is concerned with developing either applications for the web or website. The structure for the front-end of any website is made up of three main languages: HTML, CSS, and JavaScript.

**HyperText Markup Language, better known as HTML** is the backbone of any website as it's the language that is responsible for the content and what is displayed on the website.

Below is a block of _HTML_ code that when run will show Hello There in your browser:

```html
<html>
  <body>
    <p class="firstPara">Hello There</p>
    <p class="secP">This is the second Paragraph</p>
  </body>
</html>
```

**Cascading Style Sheet, better known as CSS** is responsible for all the styling of a website as it's used to answer questions like: How big do I make this button? What colour should it be? What about spacing, layout, typography? The very cool thing is that modern CSS can be used to answer even more complex questions -- would some users of my application prefer a dark theme or even reduced motion?

Below is a block of _CSS_ code that selects the second paragraph and makes the text larger:

```css
.secP {
  font-size: 50px;
}
```

**JavaScript** is responsible for the functionality of a website as it is concerned with a question like What happens when I click this button? Let's take an add to cart button on your favourite e-commerce website for example -- to the end-user pressing that button may seem like it is just navigating you to the shopping cart so that you can complete your purchase, however, they're more going on behind the scenes. The button is also responsible for making a request to an external set of computers, _a server_, to add the appropriate item to the cart for this specific user. Only once that is complete, will you be navigated to the shopping cart for you to check out.

Below is an example of _JavaScript_ code that will print Hello there when run:

```js
console.log("Hello There");
```

These may seem very daunting to get started with but the above three languages are very beginner-friendly and have a ton of online resources to help you get started.

### Mobile Development

The other type of development that has a front-end aspect to it is mobile development as this is concerned with making applications for mobile devices, be it IOS or Android devices.

The languages used here is dependent on the platform you are trying to develop for:

**IOS** development moved to the _Swift_ programming language a while back and is very beginner-friendly with a lot of resources available.

**Android** development moved to the _Kotlin_ programming language a while back and has also been found to be very beginner-friendly with a lot of resources available.

### For Learning concepts

**Python** will always be a staple language to learn as it is very easy to learn with its easy-to-read syntax which allows you to focus on learning the concepts. Below is a block of _python_ code that when run will say Hello There.

```py
print("Hello There")
```

## What resources are available?

There are numerous resources available at your disposal when it comes to learning to code and it doesn't matter which language you start with, the resources are available. All the resources that I'm listing below are **ABSOLUTELY FREE**!

I always recommend **Free Code Camp** as the best place to start as they have instructional videos that break down fundamental concepts and coding challenges to help you practice your understanding of those concepts.

For Web development, **The Odin Project** and **Frontend Mentor** are very good resources. _The Odin Project_ will teach you web development step by step while you also build out a website with their code along with instruction while _Frontend Mentor_ gives you frontend challenges for you to solve. Most of the challenges include providing you with a layout of a website, most often as a JPG, for you to recreate using HTML, CSS, and sometimes JavaScript.

But by far, YouTube is one of the best resources available to learn programming with numerous YouTube channels providing excellent instruction and tips!

Dev Ed, Ania Kubow, Fireship, and Programming with Mosh are a few of my favourite channels to watch on YouTube.

And of course my channel, [Linked Here](https://www.youtube.com/channel/UCX5U1Acli00LRTV3FijGL1g).

## Conclusion

Now that this is complete, I hope I've encouraged you to give programming a try! I can't wait to see what you create!

Check out [the Youtube Channel](https://www.youtube.com/channel/UCX5U1Acli00LRTV3FijGL1g) for tips/tricks and tutorials on programming!