Learning C language before JavaScript

Hi campers
I am beginning FCC journey . interested in backend programming than front end stuff.
Is it good idea to start learning C language as first language before learning other languages like JavaScript or Java
Few of my friends are from engineering background and insist me to learn C first.

I have heard from a lot of people that you should be at least comfortable with a language a level below the abstraction level that you ultimately want to work in. If you want to be a javascript developer, C is a great choice to at least get comfortable in. That being said there is absolutely no reason that you need to start with C. Start with whatever you find the most enjoyable (figure this out by trying stuff out). If you are just getting into programming you will likely find C confusing and frustrating, and javascript more fun and exciting (although everyones preferences differ). Essentially don’t worry too much about your first language, if you want to build web apps focus on javascript/html/css and worry about C later.

Yes C is a great language to start, half of the languages are based on it, is not that hard, or you could learn the first c++ is c with objects and you can make games if you want to make games faster learn c# with unity 3d, or maybe learn java is like c# but have a biggest community and infinity jobs and is the best language for android, if you like more ios learn swift is one of the easiest languages, or learn python is easier than swift the best language to write complex algorithms and for scientists or learn ruby to build web platforms very fast.

There are a lot of great languages that you could learn before javascript. Programming is not just writing code with one language, Programming is beyond that, you solve problems, you create things, the language is just a tool, yes, but programming is also a sport, you have to practice to get skills and to join the big leagues.
Sorry for my English.

P.S.
There is no better than javascript. Too many pros.

1 Like

You could learn C first, which would definitely make learning JavaScript easier. Or, you could learn JavaScript first, which would make learning C easier, but you’d have a lot more fun actually building things with JavaScript. It takes a lot longer to actually do stuff that you can see with C.

When you’ve got a few of the fCC projects done, check out CS50, which will not only let you get comfortable with C, but use it to teach you very useful concepts about computer science that will absolutely improve your web development skills.

C, C++, Java, C# and the like generally speaking are in the same camp of languages. JavaScript is not.

I can tell you coming from that background I found JavaScript particularly confusing. Now not to say parts of programming in another language were not helpful when learning JavaScript, it was helpful, but because JavaScript is in such a different class it can cause quite a lot of confusion.

Especially where you are just starting out, and because it seems you’ve decided to go down the FreeCodeCamp road it may be a good idea to stick with JavaScript for a while, learn its ways and peculiarities before trying to integrate a different programming paradigm into your studies.

Google your question, and check out Quora, I’ve seen quite a lot of good conversation around this question in the last couple of years.

Quincy Larson posted this a while back. A Cautionary Tale of Learning to Code. My own.

Where can i learn c ? I am a beginner and dont have any prior knowledge.

You can learn C++ in this website :slight_smile:
https://www.w3schools.com/

This is a great starting place for C: https://online-learning.harvard.edu/course/cs50-introduction-computer-science

Note, C and C++ are different languages, so don’t mix them up! However, if you are interested in the C family of languages, CS50 is a great place to start!

Objective C in Xcode is where I dove deep, and nearly drowned having only written Basic scripts.

Swift 2 broke :frowning:

Swift 5 is awesome if you don’t bother with Interface Builder. Reading the C book written in the 70s is a great intro.

By no means am I an expert programmer in any language. Indeed I’ve only recently started to look at programing again after more than a decade of not programming anything at all. I Started with with Java as part of an O.U. degree about 16 years ago. Never did anything with it. Languages like Java are so high level you are often left with a feeling of not really knowing why certain things are done the way the are, its all sort of hidden behind the abstractions. I also taught myself JS too even though at the time it was a much smaller language than it is today, I was still left with the feeling that its all a bit of a magic black box.
It wasn’t until I taught myself C (mainly following K&R C book ) that I felt I could start to appreciate what is going on. C is close enough to the metal to force you to think about how data is stored and manipulated as bits and bytes, about data types and about memory management. Most of these things are hidden from you to some degree in higher level languages and hence difficult to fully appreciate their significance.
In short there is certainly no necessity to learn C but it is a small enough language to learn in a reasonable amount of time and will challenge the way you think about the machine your sat in front of. Having at least an appreciation of an assembly language wouldn’t hurt either though this is far from necessary.
As has already been mentioned C is not C++ nor C# or objectiveC these are all much bigger languages that will require much more investment and distract you from the basic concepts.
In short I think C is an excellent language to learn even if it is just to understand what what higher level languages are offering (or hiding from) you. You will probably find linux/unix environments easier to work with C although take that with a pinch of salt. The last Windows machine I used was Windows ME! so what do i know:laughing:
The K&R C book second edition is still as good an introduction as anything else.

My only hesitation in recommending the K&R book to beginners (see The C Programming Language, by Kernighan and Ritchie) is the age of the book. The book covers ANSI C, or C89. This version of the C standard is quite dated and missing some features seen in C99 and later.

If you want to learn C, I would recommend learning C99, C11, or C18. There are some cases in which you would use ANSI C, but modern compilers will have C99 or later.

Fun fact: The K&R book introduced “Hello World” as the prototypical first program when learning a language