I am beginning FCC journey . interested in backend programming than front end stuff.
Few of my friends are from engineering background and insist me to learn C first.
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.
Sorry for my English.
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.
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
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
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