First Language to Learn?


I’m a total Noob and was wondering which language I should learn first.

I am looking forward to designing iPhone apps and enrolling in CS as a double major.

And CS in my college starts with the C language and moves on to C++, and then Java.

So here’s the question.

If I want to make an iPhone app, I know I need to learn Objective-C.

But my school wants me to start with C language first.

And, FreeCodeCamp wants me to start with HTML and JavaScript.

So what do I do?

Do I learn all three at once? :frowning:

Very confused and would appreciate any help from the fam.

thank you.


fCC starts you off with JavaScript, not Java (one word, big difference). You don’t need to worry too much about learning HTML and CSS because, as far as syntax goes, they’re a breeze. For Apple development, you’ll actually need to learn Swift, but you’ll pick up Objective-C simply by virtue of learning C in college (ObjC is a strict super-set of C, meaning that it’s C with some syntactic sugar tacked on via preprocessor directives). At least, that’s how it should go.

The reality is that you’re going to be learning the basics of C, C++, and Java if that’s required by your school. Your question is actually, “Should I tack on another programming language in addition to my already considerable school work?”. I would say no, and stress that you should focus on your immediate studies as much as possible. Learn JavaScript and web development during the summer when you’re on break if that’s what you want, but don’t bother if you’re more interested in mobile development. If you make wise use of your college education, you can come out with experience solving problems in three languages, a solid foundation in the basics of algorithms, data structures, common protocols and more, and be well equipped to move into mobile or web development as you see fit. If you mess around with elective material instead of focusing on your coursework, you’re not going to learn your material very well, making your CS diploma a very expensive waste of time, and not be any better off when it comes to getting stuff done.


Well, you should probably prioritize here. If you are going to school, then school should be your priority and therefore, you should start off with C. Master C in the sense that you can use most of it’s basic functions to create a fully functional app(many suggest a to-do list). After you can make 2-3 good apps and feel like you got a good grasp of C, THEN you can dabble in a second programming language. Again, this next language you want to learn should be your 2nd priority. You have to choose between iOS development or Web Development. I recommend you specialize and don’t try to be the jack of all trades.

Most programming languages are similar in function, but with different syntax. If you can understand the basics of programming from your first language, it will make learning a new language immensely easier. IMO, focusing on too many languages when you are just starting off is daunting and a sure-fire way to failure.

I recommend you check out this Interview - ‘How To Teach Yourself Code’ by ENGINEERED TRUTH. It’s an interview with the FCC founder, @QuincyLarson. This 17 minute video will save you a lot of time, guaranteed.:smile_cat:


For me it’s either Javascript or C++, my first ever programming language was JS, then at school, they taught us C++, C# and I went on to learn Python on my own. Since JS is my first language, I always keep learning more and more about it, what its future is going to be, new syntax, practising patterns and watching conferences.

It’s always nice to master of a language.

1 Like

Thank you so much for the time and effort you shared with me.

So I guess I will have to stick to my college education until I graduate.

When would you say would be the best timing to move onto mobile development?

Thank you for your kind reply!

So when I choose my 2nd language after grasping my first language, it should be either iOS development or Web Development right?

I’d get into IOS development the first summer break you have after learning C as you’ll need those concepts to master Swift. Android development makes use of Java (for now, could change), so learning that in school will give you a good start.

1 Like


Thank you so much :slight_smile:

Life saver.

Keep learning about the first language.

Got it.

Thank you very much for your insight :slight_smile:

That’s right! Pick one or the other, not both. You should try the topic for at least 1 year(I personally would say 2) before switching. You can always change specialization later. But trying to learn everything at once is going to spread you thin too early. You only have a limited amount of time and you’re better off getting proficient in one field at a time, IMO.

Multi-tasking is a waste of time.

1 Like


I will keep that in mind.

Thank you very much :slight_smile:


I guess everyone pretty much has the same opinion so I think I’m gonna master C first.

Thanks for the resources. I’ll definitely check it out. :slight_smile:

Javascript is a solid first choice. (C++, java, c#, swift ect are all compiled which takes time everytime you run it.) Most companies are walking back on apps. They are building responsive web apps and backing with JS… The reason for this is ms phone, android, ios and ubuntu phone, you want to be on all 4 with the least investment you build a responsive web app. Sure iOS has a huge install base, sure android does too, but the best money being spent is the responsive web app. Ubuntu phone’s default apps are Html5 web apps with jas backing.

Very good and Important Question, I also like most of the replies because it makes a lot of sense to me, I Have a diploma in Sofware Engineering and the first Langauge I Learned was C, C++, Object Oriented programming, and Haskell programming respectively, at first C and C++ was very boring for me and I was very eager to get to the cool stuff I see on the internet each day, I always dreamt of creating something useful and awesome, but because I am very sensitive of boredom I didn’t give much attention to C and C++ and I didn’t score well on them, but I did enjoy Java a lot but since I missed a lot in C and C++ I have difficult time with Java cause I am not good at the core of programming and I don’t have a very clear picture on them.

So My advice to you is to prioritize your school subjects cause they are the core, and doing well in school will shape the future you in your programming career, the other languages are like the icing on the cake

all the best

You should choose one of the most popular programming languages - Research of Most Popular Programming Languages for 2017

Just in purely hypothetical terms, I don’t think HTML or javascript are great languages to be your first languages if your goal is learning programming. Of course HTML isn’t really even a language and javascript…

I have to say, having studied programming in my previous life (mostly Pascal and C, with dabs of COBOL, ForTran and assembly), Javascript was a major shock. It is amazingly permissive. It really blows my mind, some of the things it will let you get away with. Clearly it works - JS is one of the most popular languages on the planet - but it is different than the other languages you mention.

If your goal is to learn how to code, then I think a language like Java would be great because it is so much more strict and really reinforces OOP. Obviously C and C++ are great too. You will really learn what’s happening on a computer level and learn some good coding habits and how to structure a program.

At least then, when you “break” a “rule” in JS, you’ll understand that you’re doing it. It just seems, IMHO, that it would be more difficult to go the other way. Maybe I’m just biased because of my Pascal beginnings.

But I wouldn’t think it’s an insurmountable obstacle. If you want to learn programming, then it sounds like your school is starting you on a good track. If your goal is web development, then there’s no reason why you can’t do fCC on the side.

And just to be clear, fCC does not teach Java, it teaches Javascript. These are too completely different languages. They have a few similarities (having both inherited syntax from C) but Javascript is both a very different and has a different purpose. Don’t let the name fool you - that was just advertising, trying to cash in on the popularity of Java. Similarly, mami Van Doren wasn’t really a member of the Van Doren family and neither was

The article’s description of JavaScript reads like it was written 15 years ago.
Also, the author has severely poor writing skills.

My advice is to begin with JavaScript. A mobile app you decide to build for the iPhone, iPad or Android may lead you to languages other than JavaScript. First class desktop programs for Windows or a Mac usually do not involve JavaScript. Unless you are writing code for web pages or some kinds of server programs with Node.js, JavaScript is usually the last thing you would consider. To see what expect in 2017 , check this out 10 Mobile App Development Trends in 2017

I suggest to learn programming in whatever language you start with.
Might sound overly simplified and silly, but the mastery of core programming concepts make switching to a different language easier.
I started a while ago to teach myself Java because I was (and still) interested in developing android applications. I took a class in Python and it is my new favorite language, but the underlying concepts are still the same. All I needed to do was pay attention to the syntax, and I could relate each new thing learned in Python with something Inrecall learning in Java.
I like this approach because once you understand basic core programming concepts, then you can select the language like you would pick a tool from a toolbox to complete a particular task.
That being said, I am still hating JavaScript because I have not yet figured out how to do anything with it outside of the console. I would first learn programming structures and concepts before getting lost in JS… if JavaScriot was my first introduction to programming, I doubt I would still be trying to cide.

Yeah, that’s a bizarre article. There are so many grammatical mistakes and things that don’t make sense. The first paragraph?

In recent years, most of the jobs in the world require programming skills and it is growing every day. So, if you want to be part of fast growing and lucrative career, you must learnt any of the top most popular programming languages below:

“In recent years”? But not now? Why not emphasize the present? (OK, that’s nitpicky, but as an editor, it makes my Spidey Sense tingle). “…most of the jobs in the world require programming skills…” BS. Demonstrably 99% of the jobs in the world do not need programming skills. This is a ridiculous statement. “… and it is growing every day.” What is it referring to here? It makes sense to the reader but grammatically it is bizarre. And there needs to be an “a” or a “this” before “fast” “So, if you want to be part of fast growing and lucrative career…” You are not “part” of a career. Clearly the writer was thinking of one thing at the beginning of the phrase and switched halfway through. “…you must learnt…” [sigh] No comment necessary. “…any of the top most popular programming languages below:” First of all, “top” and “most popular” seem redundant. Secondly, anyone that knows the field knows that you’re going to have to learn more than one.

Having spent some time learning about the gig economy, there are a lot of people that farm out content creation (for web sites or ebooks). Some of the less reputable one pay dirt wages to some third world countries and get people with questionable English skills to cut and paste content together for them. If we looked, we could probably find where he plagiarized them. Or he just skimmed the first paragraph and a half of the Wikipedia page and tried to sum it up quickly. One of the clues for me is that there is no author for this piece - any writer with the slightest bit of pride in their work would want their name on it. And they would have done some basic proof reading.