"How Did You Learn How To Code?" is the top question I get asked no matter where I am. I'm a black woman and a software engineer so I look like a unicorn when I tell people I know how to code which is always an uncomfortable feeling. Black women make up less than 5% of the software engineering space, a statistic I am working hard to change (I got ya'll).
Sidenote: When I learned how to code I had already graduated from college so don't let people convince you that it's something you can only learn in school, or that it's too late.
By using the resources I listed below you can learn to code for free and you can discover what you like and don’t like before investing money into a certain coding language or set of courses (I don't believe in bootcamps FYI, I'll discuss that at a later date). Most of the engineers that I work with and plenty of engineers that work at Google, Facebook and Microsoft are engineers BY TRADE, not degree so keep that in mind. Most tech companies don't have a degree requirement--only a experience requirement.
When you first start looking into coding languages, it is VERY important to understand the kinds of things that interest you such as application development, data science, mobile development, web development, frontend development, etc. There are so many different ways to use code and knowing which way you want to use it is essential when learning how to code and then finding a job once the learning process commences.
So below I will list my mantra when I was learning and the resources I used are to follow:
1. Figure out why you want to learn how to code. Coding is a lot of fun but learning how to code is really really HARD and it requires a lot of patience, persistence and practice. If you do not have a "why", you probably are less liable to stick with it.
2. Get a mentor. Once you figure out your why, it's best to get a mentor and get some shoulder to shoulder shadowing to really get a full glimpse of a "day in the life". The programming community is full of people who are willing to help the next generation of programmers, including myself.
3. Choose a language. Some languages are more beginner-friendly than others. The language you choose to start with might depend, again, on your purpose. Higher-level languages, like Python, are easier to jump into right away.
4. Make Sure You Have Time To Dedicate- This is one of the biggest problems I see especially with adults. I always tell people while you're learning to code you should be practicing 5 days a week for at least 2-3 hours. Go to hackathons, tech events and workshops to make sure you're getting fully immersed, being around it will help you learn quicker.
Okay! My top free resources are listed below, of course Code Academy is my number one (I'm sure many other programmers would agree). I also list some of the specific courses that I took too (because I love ya'll). Also, my background is mainly in Python even though I use Ruby in my everyday life (my current job made me learn it) but most of my suggestions will be Python and web development centered.
1. Codecademy- is where most people who are new to coding get their start learning programming online, and its reputation is well-deserved. The platform revolves around interactive learning, so if you are a visual person and want to see your results fast then I wholeheartedly suggest this.
https://www.codecademy.com/learn/make-a-website (this one is a lot of fun, it'll teach you HTML to make a website)
2. Coursera- This site is a large online course library where classes are taught by real university professors. All courses are free of charge, but you have the option to pay for a “Coursera Verified Certificate” (prices range between $30-$100) to prove course completion. Sometimes paying for a certificate is needed if you're learning on your own or by trade to prove to employers that you have taken courses.
3. GA Dash- I haven't used this site but most of my coworkers swear by it. I know most people are super interested in making websites so this is a great resource to use for that, and it is free!
Once you've completely utilized the top two resources I would then get familiar with Plural Sight to stay up to date on the newest technologies (use that free trial, and keep using it...I'm not suggesting making multiple emails BUT....)
Pluralsight- It helps you to keep up with technology with expert-led courses, assessments and tools that help you build the skills you need, when you need them. For organizations, get unprecedented insight into skills strengths and weaknesses and align learning to what matters.
Alright ya'll those were literally my only 4 sources I used outside of actual on the job experience, find your why, find your mentor, and write some code :) I'm excited to see what everyone comes up with.