How to start programming in 2022
Tags: programming, webdev, beginners, tutorial
Published: 2022-07-05 18:17:14

_IT is a great professional area — known for high salaries, many benefits, interesting opportunities, and nice communities. And all of that is true! It makes many people interested in switching their careers to tech. The question is — how to do so? Below you can find my subjective list of useful resources and tips._

![Me arounded by group of kids, showing them how to program the robots from the tablet.](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/r8qdiajubn0bp66e24lg.png)

## Know your "why"
We all know phenome of "straw enthusiasm". In the beginning, everything is easy and interesting. Later on, after meeting the first obstacles our motivation is lower and lower, and we don't finish the tasks we started. Programming is not an exception here. In fact, learning how to code is one of the most postponed activities - the entry level is not so high, but if you really want to do it professionally, you need a lot of patience, humility, and self-discipline. How to stay motivated? Find your "why" and write it down. Put it in a visible place. Look at it when in doubt. Learning something new is never easy. In fact, it's a challenging road. But it's worth it! Your "why" will help you survive those difficult times. Just choose it wisely!

## Practice, practice, practice!
Programming is not magic. Software engineers weren't born with coding abilities. It's a skill that can be developed like a muscle. You can't learn from only reading the next article or watching the next tutorial on YouTube. You have to code. Even if you are just a beginner, try to reproduce steps from a tutorial on your local computer. Play a little with things you see - try to change them, and add something from your side. Do your own project - even the simplest and smallest to-do list in the beginning. Your future work will require creativity and trying different approaches from you. So start experimenting today! Don't be afraid of spoiling things - you can be surprised how much you can learn from fixing them!

## Create a new habit
One of the best books I've ever read is "The power of habit" by Charles Duhigg. It describes in detail why good habits are driving our businesses and lives. And one of the best tactics described there is attaching a new habit to the old one - to increase the probability of introducing the new habit into our life. When learning how to code, you need a new routine - a **regular, planned time** when you sit in front of a computer and learn. There is no golden rule on how to define your habit - it strongly depends on your availability, time, responsibilities, etc. But you can define how much time you can spend on learning. And connect it with an existing habit. E.g. you can spend 30 mins on that each day, just after morning coffee. Or twice a week after your gym training. The frequency and time are up to you. The most important is to do it regularly and focus only on learning in the given time.

## Find a support group
There is an African proverb: "If you want to go fast go alone. But if you want to go far go together". Joining a support group is one of the best things you can do when learning how to code. Peers can help you with keeping the motivation and sharing experiences or materials. They are going the same way as you! They fully understand your struggles, and problems but also help celebrate successes and achieve milestones. If you are on Twitter, check [#100DaysOfCode](https://twitter.com/hashtag/100DaysOfCode) hashtag. If you are from Poland, join the "Programuj dziewczyno" group on Facebook. If you are a student, check local [Google Developer Student Clubs](https://developers.google.com/community/gdsc). You can also check [meetup](https://www.meetup.com/) or social media looking for some local groups. Take a lot of support from the community and give something back when you can. I still remember people from my first group where we were learning the basics of HTML, CSS, and JS together. And if it weren't for them and their support, I would have given up at the very beginning and never got to where I am now. Do not underestimate the power of a support group - it's really magic.

![Group of people staying on the stairs, holding the ngGirls flag](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/4twlme4g9162n3184okd.png)
 
## Join community-driven events
The IT community is awesome. And I'm using this world with full responsibility - even if I'm Polish and it's a really powerful word to me :) I started programming after attending one of the community-driven, free events - the [Rails Girls](http://railsgirls.com/) workshop in Cracow. It's a one-day event where you can come with no knowledge about programming at all and you can learn how to build your first webpage with support from experienced mentors. And it's completely free! Very similar formula but in other technologies are [ngGirls](https://workshops.ng-girls.org/) or [Django Girls](https://djangogirls.org/en/) - check them too. There are also very nice JS workshops for beginners in Warsaw (paid but quite cheap) organized by [WarsawJS](https://warsawjs.com/) community. And many great initiatives globally for kids during [Hour of Code](https://hourofcode.com/) or [Greenlight for girls](https://www.greenlightforgirls.org/). Find similar events in your area - meetup.com or events on Facebook are good places to start. In the worst scenario, you'll just spend one day and discover that programming is not for you. But maybe, you'll discover your passion (like me!) and decide it's something you want to do for the rest of your life.

![Me holding a robot and explaining something to the group of young girls.](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/71rxunk4c92t8y1huj28.png)

## Try online resources
Yeah, I know that finding some events is often not so easy - especially when you live in the village or have small kids. Fortunately, there are many resources thanks to which you can learn programming just from your couch. Below you can find a short list of the best of them (in my subjective opinion):

###[CodeCademy](https://www.codecademy.com/)
Webpage with many great courses - even the free version should be enough for the majority of the users. For each lesson, you receive some introduction and small tasks to use your learnings in the practice.

###[Code.org](https://code.org/)
Created mostly for kids, but even older students can learn a lot from animations, games, and tutorials explaining the basics of programming. The webpage is available in 45 languages. What I really like here is the fact that even if it's focused mostly on the children, the games are still showing best practices. And explanations are so great that everyone can understand the most complicated concepts!

###[Udemy](https://www.udemy.com/)
One of the biggest portals with online courses in the world. They are paid but the price is affordable. However, before starting the course check carefully reviews and info about the instructor. Most of them are great but unfortunately, everyone can record their course there so not all tutorials have the best quality.

###[FreeCodeCamp](https://www.freecodecamp.org/)
It's a webpage created by a non-profit organization in the USA. You can find there many interesting courses - e.g. Data visualization, front-end development, machine learning, and information security. What's more - it's free and provides certificates after finishing modules.

![I and my cat sitting in front of computer and learning](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ibd0wuwg9jh06p9f0tti.png)
_The biggest benefit of resources online is I can learn with my cat!_

###[W3Schools](https://www.w3schools.com/)
One of the oldest but still great webpages to learn about HTML, CSS, JS, Python, and many more. Short lessons with exercises, quizzes, and super valuable content!

###[GitHub tutorials](https://docs.github.com/en/get-started/quickstart/hello-world)
Git is a must-to-know tool for every developer. It's a version control system allowing you e.g. to track the changes. GitHub is a web-based platform built on git foundations allowing you to easily cooperate with others and backup your code. If you are really thinking about programming, you have to know git and GitHub. And GitHub tutorials are a great place to start!

###[LearnPython.org](https://www.learnpython.org/)
Python is one of the best programming languages to start. It's easy but also powerful and still used in real life. And this webpage has short lessons with introductions and exercises which you can run just on the page. Give it a try!
Of course, there are many many more useful online resources. If you don't like my options, just open a Google and search for what is interesting to you. I'm sure you'll find something great!

![Android mascot sitting in front of the computer "solving" some online programming lesson.](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/48jxz3lkcrrb0omzel86.png)

## Don't give up
The last but the most important tip - don't give up! Programming is challenging - it requires patience, self-discipline, and hard work. But if you feel you like it - just go for it! There will be difficult moments when you feel like John Snow - you know nothing. There will be times you feel everyone else knows more and moves faster than you. Even experienced developers sometimes feel like that (google "Impostor syndrome" if you want to find articles about it). Do not compare yourself to others. Compare to yourself from some time ago. There is a big power in baby steps - they lead to the goal. Also, your path is different than other people's paths. Focus on your goal and your way. Remember about your "why". Wait for the sun after a rainy day. You can do it! People are believing in ghosts, conspiracy theories, and fairytales - so why don't you believe in yourself? **I'm keeping my fingers crossed for you!**