Indecisive and directionless

Hey, all. I’m 40 years old and hate my job (automotive tech). I want to change careers, but I don’t have a lot of money thanks to all the crazy stuff that’s been happening in the world lately.

I’ve read that data science is in high demand right now. But there’s also machine learning, data analysis, and of course web and software development and many other coding careers. I’m really not sure which one would be a good fit for me. I tried to get into Python 3 because it is supposed to be really popular, but I admittedly got frustrated with the Udemy course I was taking and put it on hold for a while. Tried studying for A+ so I could maybe get into IT, but I’m not convinced that would be much better than fixing cars. However, I’ve always been fascinated by programming. I just recently found FreeCodeCamp and I really like how the lessons are structured so far. Like many people, I learn by doing, and each lesson has you doing something yourself, instead of just watching a video and taking a quiz at the end.

The thing is, it seems like FCC wants you to start from the beginning of their curriculum and work straight through, but if each of the courses is 300 hours, it is seriously going to take a long time for me to get through the whole thing while working full-time. Compounding this is the fact that I’ve had ADD since I was a kid, and I’m really not very good at math. I don’t mind putting in the time to learn, I just want to make sure I’m going in the right direction first. For example, the first course is on HTML, but if I were to get into, say, data science, would knowing HTML really be that useful?

To be clear, I’m not giving up. I don’t care how long it takes, but I WILL get out of the industry I hate and find a position and company I can look forward to every day. I guess this is basically just me stopping to ask for directions!


Hello, AvericiousAltruist, and welcome to FCC! :grinning:

TLDR: This is a good place to start exploring computer programming, and please don’t worry about how long it will take or whether you are heading in the right direction. Sometimes just learning something new opens up new possibilities in unexpected ways!

First of all, I think you’re in the right place to start exploring the world of coding: FCC lessons are pretty straightforward and come in concise, easily absorbed lessons. As a bonus, the community here is very supportive and if you’re stuck on something, you can always get help by just asking.

Note that it doesn’t take 300 hours to get through the lessons. Most of the time for each certification is taken up with working on the FCC projects at the end of each course. You can get started with the material to see how HTML, CSS, JavaScript, etc. works without sacrificing too much time (I usually aim to cover about 15 minutes a day).

Having said that, it will be working on the projects where you really learn how to code, but please don’t worry about the 300 hours of coursework. Take a few lessons, experiment with what you’ve learned, have some fun, and repeat as necessary.

Math has been something of a bugbear for me, but while it is important for some coding, it is not required for everything. More experienced coders will be able to better advise you in this regard, but I will tell you to not let any apprehensions over your math ability keep you from learning to program. If you are interested in data science, then math becomes important but I would suggest that you simply get started learning stuff here and see where it takes you. :slightly_smiling_face:

As for heading in the right direction, I started hanging around FCC, discovered I was comfortable learning and using technology, went back to school to study networking, and got an IT job in a horrendous economy. (Thanks, FCC!) My somewhat hackneyed point is that getting started here opened up new possibilities for me, even if my direction over the past few years has been anything but straightforward.

Probably not, but in my case, it was good to start with something that was relatively easy to learn, and gosh, I discovered that not only do I like to draw silly pictures with CSS, but I was able to write some online documentation for my IT job that impressed my friends and coworkers. Again, the time it takes to go through the HTML course isn’t really that long, so it wouldn’t hurt to try it and see how you manage online learning. If you decide you really don’t want to pursue the\at certification and would rather work on Python instead (more relevant to data science), at least you’ll have that basic understanding that may come in handy in unexpected ways, later on.

Best of luck!


That’s very encouraging, thank you! I’m starting to realize that most people don’t call themselves a “Python developer” or “C++ programmer,” it’s more like, “I did this or that project using these languages.”

I’m definitely going to stay the course. It’s appropriate that they are called programming languages, because it’s very similar to learning a second human language. Very easy to understand individual letters and words, but putting an entire sentence together can be challenging. I’ve been studying Japanese for over a year now, and although I probably couldn’t hold a rapid conversation with a native speaker, I can at least pick out a few words and phrases and probably communicate a few basic concepts to others. But the learning process feels very similar to coding.

I’ve been looking through some of the posts here and I’m really impressed at how helpful everyone is. I have yet to find a troll or flame post. Definitely my kind of people here!

1 Like

If maths isn’t your thing I would go down the web development route and learn your frontend and backend technologies.

Data science and machine learning are quite heavy on statistics whereas web dev doesn’t revolve around maths.

HTML, CSS, JavaScript, a modern frontend framework like React, Angular or Vue and a basic backend like an express server that uses a mongoDB database is a popular stack to learn.

It’s good you have a long-term view it may take 1-2 years to get a good handle of the fundamentals so patience is to your advantage.

1 Like

Hello @AvariciousAltruist, welcome to the freeCodeCamp forums!

You can jump around to what you want to learn. For example you can 100% skip all the Python curriculumn at the bottom if you want to focus mainly on full-stack web development.
The 300 hours are just rough estimates, you might take less, or even take more. Its more to show you “how much content” there is rather than how long you must take to learn it. The amount of time it takes to learn something is different for everyone, I wouldn’t worry so much about the time spent, and more about how much you actually learned.

The current “quickest” path in terms of how much experience is expected or required is web development. As web development is a growing field, most jobs don’t require a lot of experience, and its very accessible, in the sense you can use a ton of free tools online to learn it. This is the main reason why its taught first in freeCodeCamp.

So the comparison between human languages and programming languages is correct in the sense that you need to understand the words/syntax/sounds and grammar to understand what the code/words are doing/saying. However, programming languages start to differ in the sense you are talking to a computer rather than another person. Because of this, your grammar/syntax must be nearly perfect, otherwise the computer wont understand/explode, or it will do exactly what you say and delete all your files. In this sense computers are very powerful, but also very dumb, so its up to you to help them as much as possible.

Another facet of programming is the logic itself. Things like data structures and algorithms are important because they are part of the nature of computation itself. IE they are fundamental theories independent to what programming language, or technology you are dealing with. Compared to human languages which are used to exchange information between humans, data structures and algorithms are ways to get the computer to do what you want efficiently. Computers are fast, but even they can become slow or even grind to a halt if the code they are running is inefficient.

Calling yourself a specific language programming automatically dumps you into a specific box, making it harder to get other jobs. Unless you are very experienced in a specific environment/language, I suggest sticking to as generic of titles as possible for future flexibility.

The freeCodeCamp community is one of the main reasons why I stick around, lots of people willing to help, and strong moderation to keep things welcoming. :slight_smile:
Where almost everyone is a volunteer sacrificing their own time just to help others :smiley:

Good luck on your coding journey, keep it up, keep learning and keep building! :+1: