Software development, where to start?
Tips to help you choose learning resources & programming languages.
If you are here, you are probably interested in the software development world and one of the first questions that might be going round and round in your head is how or where to start.
Have you already done some online research and you are feeling overwhelmed by the amount of resources and all online advertising popping up everywhere? Don't worry! In this article, I share some resources and tips, which helped me decide how to start and hopefully will help you too.
First of all, you should be asking yourself: what would I like to learn, Front-end or Back-end development? DonΒ΄t you know exactly the differences between them or what they are useful for? LetΒ΄s explain them briefly.
π» Front-end Development is mostly referred to as the client side, what the user sees and interacts with on a website or an app (buttons, images, navigation menus, colors, animations, etc.) It is also the creative side and a bridge between UI designers and back-end developers.
π³ Back-end Development is mostly known as the server side, the part of the website that the user canΒ΄t see (storing and organizing data).
Let's say you run a business and you would like to have a website to let users know where your business is located and what it is about. At this point, you would need a front-end developerΒ΄s help. But what about enabling your website so that users can purchase your products online? Managing products, user profiles, purchases or credit card information are also very important tasks. Here is where the backend developer comes in. As you see, frontend and backend developers normally work together to create dynamic websites where users can make an action.
What are the top front-end skills? There are many different technologies, some become outdated and new ones come in but these are some of the most important ones:
On the other side, these are some of the most important back-end technologies:
Now that you are a bit more familiar with both concepts, what would you like to learn, the visual part (front-end developer), the database part (back-end developer) or maybe both (full-stack developer)?
I personally decided to go first for frontend development as I like the creativity-logical thinking combination, and JavaScript also has backend functionality.
Once you have made a decision, you should ask yourself how much money you would like to invest on learning. If you aren't really sure if coding is for you and you would first prefer to give it a try without investing too much money, there are also some free or affordable solutions listed below:
- Freecodecamp (free)
- The Odin Project (free)
- Egghead (free & paid)
- Udemy (free & paid)
- Educative (paid with free trial)
- Codecademy (paid with free trial)
- Udacity (paid)
- SheCodes (paid with a free coding class)
π There are many online and offline resources coming up everyday. I have simply listed the ones I checked out more often and that I consider best as a starting point.
In the beginning, I was not sure if I would like coding so I decided to give it a try with Codecademy, one of the most affordable platforms I found at that time and with a learning method that convinced me after trying one of the free courses.
First of all, they offer a variety of courses and career paths for many different programming languages (Python, JavaScript, Java, Ruby, C++, etc.) based on your level. I liked the combination of very short theory lessons and practise (small challenges with every lesson and a final project after every block or at the end of the course). One of the things that I missed at that time was any sort of immediate expert support. They had a forum, where I personally couldn't find all answers. The good thing is that they now have a big chat community, where it is possible to get your doubts answered and to connect with people in the same situation as you.
I learnt a lot about HTML, CSS, Bootstrap, Responsive Design and Accessibility. Nevertheless, I found the JavaScript course tough and boring. JavaScript is a challenging programming language itself, but I personally found the lessons explained in a very complex way. I prefer an approach where I can see what the script I am writing is useful for on a website, and not only in the console. At the same time I tried Freecodecamp, which is completely free, but I found it very similar in this regard.
As I was getting a bit stuck, I started to search for other resources where I could start building things by myself with some JavaScript implementation and that is how I came across with SheCodes. I tried a free class and decided to go for the paid workshops.
Each workshop lasts around 3-4 weeks and has a very flexible schedule, as the student decides when to learn. Every lesson contains a short video, where Matt (the instructor) explains all theory concepts in a very visual way, meaning, it is possible to see what kind of interaction every piece of code runs on a website/app. Afterwards the student can practise with small challenges and has to submit a homework every week, which is reviewed by an expert. Also, whenever someone gets stuck, there is great and fast technical support and also an amazing womenΒ΄s community.
At the end of every workshop the student also needs to submit a final project, which I found very cool because I had the opportunity to build something and that made me feel very proud of myself. You can see my final projects below to get an idea of what you could learn and build:
Finally, another cool thing is that every student gets a certificate, a well deserved place at their Hall of fame and online visibility, as SheCodes promotes your projects via Linkedin, Instagram and Twitter.
Online resources can make you feel excited and afraid at the same time as there are so many programming languages, tools, libraries, frameworks and technologies to learn about. I would recommend you to focus on one thing at a time and just go step by step without any rush.
It does not matter how slowly you go as long as you do not stop β¨ Confucius β¨
Also, if you are lucky and know any expert, ask him/her to become your mentor. What a better way than learning straight away from an expert? A mentor can guide, advise and support you along your coding journey. It is definitely a great experience!
If you don't know anybody, I suggest you join any tech community or meetup, where you will meet very friendly and supportive people. You can even connect with people in your own shoes, do some pair-learning, assist to very interesting events and also meet experts, who might mentor you:
- Eventbrite and Meetup (events or communities in your city)
- Codebar
- Code curious
- Women who code
- Girls who Code
- Dev Community
- Coding Coach
Take your time to explore the previous resources and make up your mind. I hope it helps answer your next question: are you ready to start your coding journey ? πͺ