What programming language to learn first?

I’m a sophomore in high school and one of my new year resolutions is to learn coding. I don’t know where to start since there are so many: Java, Javascript, HTML, CSS, C, C#, C++, Python, Ruby, etc…

I would like to be pretty proficient at a few by the end of this year. I don’t know what exactly I want to do (web development, app development, etc) but I know that I don’t want to do game design.

What language should I learn first? And what languages should I learn after that?

Should I only learn one language at a time? Also, if anyone knows any helpful websites to learn coding and learn more about, please link them below!

Thanks :slight_smile:

If you’re just starting out, I would make an account on code.org and check it out. It’s pretty basic stuff, mostly for kids, but it’s a good place to start. I didn’t particularly enjoy the coding thing, but I also used Codeacademy to learn Python, since I needed it for an internship. My internship used this thing called Software Carpentry to teach newbies the ropes, but that’s a bit higher level. I never got into it much more than that, but with those first two sites I feel like I did get a working understanding of coding and how it works.

@needtosucceed27, I think it depends on the type of learner you are.

If you’re patient and don’t get frustrated easily, I think it would be good to learn a little bit of C, then a little C++, and then really dig into Java or C#. But doing simple things in C and C++ can be annoyingly difficult, so I would skip them if you think you’ll get frustrated.

If you’re the type that gets bored or frustrated if you can’t get going quickly, I’d probably start with Python. Whatever you do, do not start with JavaScript.

If you start with C and C++, don’t go crazy trying to understand everything about them, and don’t waste a lot of time learning how to get data into and out of a program. In C, focus on how pointers work, and in C++, focus on why classes are useful. If you start getting discouraged in either C or C++, bail out and skip to Java or Python. You’ll have to spend some time, so don’t bail out too quickly. Just bail out if you’re spending tons of time and just getting discouraged.

I would learn one language at a time, but after you know a couple, it would be good to compare similar features in the two languages.

I would try to get proficient in one language by the end of the year, not multiple. Take your time and really try to learn what’s going on.

Does your high school have any CS courses?

If you want to ping me, I can send you some book recommendations. In my opinion, books are better for learning languages, especially when you’re first starting out. Web sites can be good for looking up specific details, like the exact syntax for something, but books are better for learning the concepts.

Most introductory coding classes (at HS and college level) are taught in Java, for good reason.

Python is the easiest to learn in my opinion, but Java gets you understanding important coding principles and structures without getting bogged down with trying to self-teach yourself pointers. It’s important not to develop bad habits and practices with pointers so I’m not a fan of self-teaching C/C++

I second codeacademy. I used that to learn python. Solid website, but it doesn’t get very advanced in the languages.

For what it’s worth, this is the order I learned languages in (there’s more, but these are the more well known ones): BASIC (a variant for micro controllers), Java, Objective-C & SQL (these two were self taught my senior year of high school when I was working on an iPhone app), C++/C (sophomore year of college; required for our CS major), python (learned for an internship this past summer)

Learn Linux first. Try installing a linux distribution on your laptop or desktop by following manuals and backing it up via a virtual machine. After that, work your way up to making your own projects based on what you feel what would be cool to have.

Learn pandas.

Perhaps learn about CS first: http://cs10.org/