Why?
- High employment
- Huge salaries
- Really not so hard
- Often can work remote
- You are too important to your company for them to treat you badly.
Which industry?
- Video games, software development, webdev...
- Webdev currently a very good choice, lots of demand, good work condition, high salaries. I only know webdev, so I will talk here about webdev.
Is it easy?
Nothing worth doing is really easy. It is a LOT of work, because there are a lot of things to learn. It can be a very pleasant experience depending on your situation and interests, or it can be not for you at all.
This article will try to list everything that can help you or impede you. If you have a lot of positive points, you should definitely do it. If you don't, then maybe not.
Which skills are needed?
- Passion for programming: huge advantage, but not mandatory.
- Ability to sit in front of a screen for long times (or stand, you WILL invest in a standing desk eventually)
- Talent: Some people learn faster than others. Some people start with an affinity for computer logic. You don't need talent to succeed, but talent will help you achieve your goals faster.
Bonus points:
- You have a network of programmers around you (friends, family).
- Non-native English speakers: you speak English fluently.
Penalty points:
- You have kids. It's already a lot of work, a lot of pressure, and a lot of interruptions while you study. Still possible, but it makes it harder.
Can anyone do it?
- Some people can't learn programming at a decent pace.
- Most people can succeed in a couple years.
- Some people can succeed in a very short time (6 months to a year).
ADHD/Autistic people usually succeed very well from what I've seen (conditions apply).
Note: these estimations are assuming you are in the "unemployed" category. If you work full-time on the side, it can be much longer.
How to learn?
- Self-taught works: online MOOCs and courses.
- Paid bootcamps: Sometimes bad. Sometimes very expensive. Sometimes great. Need to check what they're teaching, "real" reviews from alumni, etc.
- 42 free coding school: In Paris and Silicon valley (maybe other places). I recommend it if you can get past the entrance exam. Don't need to finish the full 3-years, you can leave after one.
Other considerations: You need to work on Unix for most technologies, so either install Linux, or if you have too much money and you don't hate apple then buy a mac.
Additionally, you should balance your time between practicing and learning. Practicing should go first, until you're blocked, then it's time to learn. Once you know enough to unblock you, go back to practicing.
What to learn?
Full guides here. Frontend is a good choice for starters and a good entry to the job. You can also aim to enter as backend or fullstack, but you need some frontend knowledge anyway.
The guides are a good resource, but you should also check where you live/where you WANT to live and see what's the most sought after there.
When to learn?
- While working on the side (so on evenings, weekends): Difficult, but might be doable. Might take a much longer time.
- Quitting your job to study: Much easier, but you need to be able to support yourself financially.
Timeline for self-taught webdev
To learn a new technology, you usually start with lessons and short exercises (i.e on websites like this). Then I would advise to build a decent-size project to really be sure you're past tutorial hell (see below). This project should take at least a couple week of full-time work.
Then keep learning highly researched new technologies. When you know "enough", start looking for a job. "Enough" might be HTML/CSS/Javascript + React + other stuff like Git (see guides).
While you're actively looking for a job, keep working on personal projects.
Finally, know that "writing working code" is not enough, you need to produce Enterprise-grade code. Read about "Best practices". Try to find a mentor to guide you on this vast topic.
What are the biggest challenges?
Tutorial hell: when you are able to do "coding exercises", very small projects, small web pages, but are unable to start a real project which scales in complexity. No easy solution for this except practice, practice, practice.
First job: The first job is the hardest to get. The reason is that rookie developers actually cost more to a company than they bring, and once they start working efficiently they often leave for a better job. So companies have little incentive to hire you out fresh out of school.
Once you are past 2 years experience as a developer, you are worth more than money and will never be hungry again.
=====================
This post will be edited if I can think about anything else. I'll be available for any questions in the comments.