Where do I even start?

Hello fellow freeCodeCamp community!

First of all, I am the epitome of a beginner. I’ve been working on non-creative jobs since I started working at 18. I’ve been struggling ever since, because of an undiagnosed autistic asperger tendancy, which made working in a social environment pretty difficult for me (I’m a sales representative). I also tend to find a lot of common points with what is called “Zebras adults”.
Last year, I broke down. I lost very close family members, and was left with only my mom.
Not being particularly good with administrative papers either, I dug myself into a very uncomfortable position, with noone to help me out. That’s when I decided to take a turn of events.

I’ve always found Code attractive, but thought I discovered it too late. It’s logic, it’s something I understand whenever I dig up a bit. Although, I always thought of it as a mountain that was too high to start climbing now that I was past my 18 years. Now I’m 27, and I want to make it the start of my future.

I’ve started learning basics : Few HTML, few CSS, few lessons from edX in order to be able to know where and how I wanted to go, based on a few conditions I imposed in myself :

  • I have to be able to make a living (even at the smallest rate) in 6 to 8 months
  • It must be “scalable” knowledge, meaning I can build up more easily out of this learning
  • It should be in high demand in a small market industry (not living in a high density city)

It appears that a lot of people recommend Python or Java as the two best options. My questions are :

  • Do you agree? (which one)
  • Where would you start? Why?
  • What are the common mistakes a beginner would do?
  • How far should I push that one language, and when should I start learning others?
  • I’m afraid of the syntax learning part. Is it common for a developer to forget or double-check it? (I’m highly logical, but not very good at memory of syntax)
  • What would make me, a newcomer, appear more interesting in the eyes of a recruiter with more experienced candidates, aside than cheaper contract?
  • Any other tips or advice?

Sorry if I went too far into personal matters, I just wanted to give a better view so you could get a better understanding of the situation and objectives, and thanks in advance for your answer(s).

Have a good day

2 Likes

Hello and welcome to FreeCodeCamp’s forums :smile:

This is a pretty long post, but I like giving out as detailed advice as possible :wink:

I recommend starting with your given goals and “going backwards”. What I mean by this is start with your three goals:

You should start with these goals in mind, rather than “what language” you start with. What I get from your goals is the following, you want to get a decent job in a small market industry, and be able to increase what you know easily that you can live off of.

So I’d start with finding out what kind of jobs are available that fit this bill, and find out what they require and are looking for. Hit up some job sites, or check out where you will be applying in the future.
From there you can go on and learn what is required, and focus your time and learning effort in getting at least close to your job(s).


I see you brought up Java and Python, and I assume your asking which is the best “starter language” I personally learned Java as one of my first languages, and don’t really recommend it as a “starter language”. It’s syntax is too fluffy, its code gets too verbose, and its strict and opinionated, which can limit what you can learn.

The best two starter languages are Python and JavaScript. Both languages are known for their flexibility, and can be great foundations to learn different concepts, like object oriented programming.
Python has simple and straight forward syntax, while still being a flexible language that you can use in a lot of different use-cases. JavaScript is the language of the web (and what FreeCodeCamp teaches as its main programming language), as JS is the only language that “runs” on the front-end. It has more quirks and harder to understand syntax than Python, but due to being the language of the web, it has tons of free resources available, such as FreeCodeCamp, and MDN. If your plan is to be a web developer I’d highly recommend focusing on JavaScript instead of Python due to immediate job opportunities.

You could go out and learn another language if the jobs you see are all for one or another, but generally its more important to just learn programming than learn a specific language. You mentioned being able to “build” on your knowledge, and understanding the deeper concepts is what carries over between languages and use-cases.

Start anywhere and everywhere you want. When you decide you want to be a programmer/developer its best to just get familiar with what that even means. It is a lot to learn, but its not impossible, nor is it only for geniuses. All it takes is time, grit and an internet connection. :smile:

There are 2 mistakes I see a lot with beginners.

  1. Beginners believe tutorials “teach” you all you need to know
  2. Believe they aren’t smart enough to figure out X, or even “start” as they “don’t know enough”

Tutorials are great resources to get “antiquated” with something new, but they don’t teach you how to handle problems that arise when using something. This is where hands on experience, or learning comes in. If you want to learn X, going out and trying to use X and figuring it out yourself is the best way to fully learn it. For example, if you want to be a full stack web developer, going out and trying to build a full stack application will probably end up with you getting confused and not knowing what to do, or what anything is. That is a good thing, as you instantly run into stuff you need to learn for it.

I don’t believe intelligence creates better developers. Obviously being smarter should help, but its not a requirement. If you can think logically, keep your cool, and stick with it when things get tough, there is no reason for you not to learn it and “get it”.

I usually say failure is the best teacher. If you fail 500 times before getting something to work, you will learn 500 new things. Where-as if you get lucky the first time, or give up and get help after 1 or two attempts you miss out on all that “knowledge”. Experience of failure is still experience, the kind that comes in handy when things don’t go right (they almost never do :wink: )

I have a terrible memory. Learning a language syntax takes time and practice. Keep using it, and you will automatically commit it to memory after a while. Think of it as trying to play a complex board game and needing to read the instructions every few minutes/seconds. After a while you start remembering more. Once you get some of the instructions down, you will start to realize you will need to learn how to play the game haha.

Stuff like HTML/CSS are more or less only syntax, where-as learning a programming language has syntax (learning the rules) and required learning programming topics (learning how to play the game).

experience experience experience.

Back yourself up with as much hands on experience as possible. If you don’t have a degree, you must have some kind of experience to even be considered. This experience could come from anywhere, you could build all the projects in FreeCodeCamp’s curriculum, build a full-stack app from scratch for yourself, launch a mobile app yourself, build something for a local non-profit, etc etc.

As I mentioned before, experience is experience. There really isn’t much that “is better than experience”, other than maybe credentials, which you wont have if you don’t have a degree. Even FreeCodeCamp’s certificates wont give much weight than just learning how to build stuff yourself, and be able to show it off.

Good luck and happy learning :smile:

6 Likes

Thanks Brad, this is both very motivating and frustrating. But I guess that’s supposed to be that way.

From what I understood, Python is very much about Computer Science while JavaScript is really about Frontend development, but isn’t it more difficult to get into CS while coming from scratch? Would you perhaps also have some ressources that I can browse through in order to see for myself which seems easier to understand for me?

To be honest, despite being a small market, there seems to be a lot of possibilities where I live, as thanks to “French Tech”, even in smaller regions we do have a lot of startups trying to make it, and that seems to make for good opportunities. Of course, there seems to be more demand for front-end developers, but there is also more offer. And I kind of have the “devil’s advocate” mind for this kind of stuff : I like to go the different road, but in this case, I’d also like to go the optimal road… soooo… that’s a tough matter. I’m still working on HTML and CSS while planning for the rest of the road so I can optimize my learning.

Anyways, thanks for all this intel, the motivation, the details, …
I really plan to make it, and that’s partly thanks to you and all developers investing time and effort for the next ones to come. If I make it, I’ll make sure to pursue that legacy :slight_smile:

1 Like

Python is used quite a bit in machine learning and scientific calculation, but it’s a general purpose language with a lot of uses, including backend web platforms. Javascript similarly isn’t just for front-end development, it’s used quite a bit on the backend in the form of node.js.

Any decent developer knows more than one language. Start by learning the basics on one good language: Javascript, Typescript, Python, Go, Ruby, C#, Java, Kotlin, all of these are fine choices. Google around for some examples in those languages (you’ve not far to go for javascript) and pick one that looks good to you. Then when you’re comfortable with that language, go try out every language you’ve heard of. Most of them will teach you something new, and you might even find a new favorite.

2 Likes

That’s definitely food for mind, but can I achieve my goals with all these languages, especially being able to make a living (even at lowest rate) from it in 6-8 months? Ruby, C# or Kotlin seem pretty specific too, which is probably not the best for smaller markets, is it?
What route would you recommend for a wanna-be programmer in one of those languages? What are the best-picks for you considering the conditions I mentioned?
Also, you mention that I should learn a few languages. Do you recommend doing that simultaneously or to do 1, then learn another one after? When would I know is the good time for that? Which ones are good combinations?

Thanks for the answers!

1 Like

I recommend learning the basics of programming with one language to start, then branching out from there. You have to pick a language or technology that is personally interesting to you. If you approach learning purely from a marketing perspective, you won’t amount to anything as a programmer.

2 Likes

That’s not what I meant. I’ll learn mostly from experience in real work environment, but if I spend 6-8 months into learning a language that I can’t do anything with at that point, I’ll have to go back to my old job, which will give me far less time to do it and probably go back to step 1.
Once I’ll have been able to do that, be in a secure and stimulating work environment, then I can focus on learning new things and develop from there.
This has nothing to do with marketing. When I said “small market”, it’s just that I don’t live in a hugely populated city, so if I take Ruby for example that is mostly looked for by Bank companies in most job offers I find, there’s almost no job openings in my region. So what will I do with that?
That’s why, for now, I don’t look for the language I love the most, but the one that, from a purely logical perspective will help me achieve the best results in the shortest amount of time. I also think I’ll be able to analyze what I like most once I know more.

This statement isn’t right.
Python isn’t more about Computer Science at all, and JavaScript isn’t only used for front-end. Nodejs allows you to use JavaScript outside of the browser by providing a different runtime. Both are programming languages that can be used for different use cases, neither have more or less to do with Computer Science.

Computer Science isn’t “language specific”. Computer Science is the study/science of computing in general. For example, the first “programmer”, Ada Lovelace, worked with mechanical computers. Known CS concepts will help with programming, but its more abstract than any language. Going back to my previous example of learning how to play a game by reading its rules is like learning syntax, then learning how to play the game well is learning how to program, CS is the study of “concepts within the game”, rather than anything about the rules at all.

I recommend just reading what computer science is so you get a sense of what “getting into” even entails. One of the best resources for learning computer science is https://teachyourselfcs.com/ There are other free resources out there to learn if you so desire.

2 Likes

Cool insight to get into :smile:
It was more of an uneducated guess that a statement. I’m no fool about my lack of knowledge, yet.
Should be able to get good leads of what I want to do from these. Thanks for that.

I’m starting to get a feeling that going HTML > CSS > Javascript (+ some php and other languages basics) > Python would be my route to follow. I’m still gonna look for more and then decide how exactly to achieve, but I’ve definitely advanced a lot here :slight_smile:

I also feel like I’m gonna dream of fCC a lot in the next few months. Good thing it’s not too flashy and heavy ; gonna take my brain less space to sim it :sweat_smile: (more space for code)

1 Like

I agree with the above statements. Try not to feel pressured or anything, sorry to hear about your family stuff… Computer time is fun time, if i’m not doing computer work I’m doing manual labor. I like computers a lot more.

Consider building a website for yourself, like something you are interested in. Then that is a project is what you can show off.

Learn everything as much as possible, dedicate time just to learning, and take lots of short breaks.

FreeCodeCamp.Com is great for learning a bunch of random good info, put it to use on a fun project. Then go from there. Baby steps / have fun! Don’t think of it as a job, think of it as fun time to learn cool stuff.

It’ll get better

(I hope it’s not too far off topic. I just wanted to show you that you can do it, and have fun meeting your goal.)

1 Like

Basically, YOU CAN DO IT!

Coffee, water, food, and focus

1 Like

Don’t worry, I feel confident that I can do it, and I like doing it. I’m not too much into physical computers. The logic behind the code is far more appealing to me than building. Although, I am interested into how I can make my code optimal for computers to run it, so I try not to rush it and really understand what I learn. That’s why I tend to do and repeat, do and repeat. It also helps me remember the code, because as I said I tend to struggle with that part.
Also, it’s only the beginning, but I like it :slight_smile:
Thanks for the encouragement ! I love that part about the coding community too. People are really willing to help each other.

stay glued to your laptop. read docs and try out code like a mf

1 Like

bonjour Shalvus,
I’ve been coding in different languages for 10 or 15 years now (time flies) and still after all that time I’m 80% sure I will not be able to code something from scratch, even in my favorite language of the moment.
In tests or interviews, some other people are able to craft code out of the blue while I can’t (so I go for pseudo code). I don’t think it matters anymore, at least to me. I rarely write something from scratch, and when I do, I have the docs of the language I’m starting to write and yes, the first few lines are painful but then I pick up speed.

These days one can do a lot of stuff with javascript (or typescript). I write mobile and web apps with the Ionic Framework - using CSS/HTML/Typescript/Angular, google cloud functions with typescript (or JS), Azure serverless functions with Typescript as well. I write tests with javascript and python with the Gauge framework.

So python and javascript/typescript are good options. If I was forced to choose one right away, would be typescript. I can do plenty of stuff with it (backend, infrastructure, cloud functions, front end, testing).

Bonne chance!
Gustavo.

2 Likes

Hello my friend from across the Atlantic!

That’s very reassuring to know that other people with more experience have the same struggle as I do. I really feel that without the documentation to back it up, I will struggle, and I was afraid it could bar me entry to this field. Internal struggles and whatnot…

Also, I know I’ve said it to a lot of people already, but thanks for coming here and taking the time to answer someone with so little experience compared to yourselves. It means the world to a beginner like me. I hope I can live up to that. I’ll do what’s necessary at least, and will try to go beyond that.

This was not only a reassuring answer, but also truly insightful.

1 Like