Should I learn C before moving onto objective-C?
-
I'm an aspiring iOS app developer and it has come to my attention that one needs to know objective C to program apps for iOS. However, I am interested in learning a low-level language that builds strong foundation for C++ as well as objective C. How will learning C benefit me in the long run? I am currently programming as much as I can in Python and will be moving on to Ruby soon after.
-
Answer:
This statement is the most important one in your question: I am interested in learning a low-level language that builds strong foundation for C++ as well as objective C. Based on this, I would strongly recommend that you learn C before you learn Objective-C. Learning the will teach you the fundamental concepts of programming that you will need to benefit in the long run. You need to understand concepts like pointers and references to work in C++ and Objective-C, the two languages specifically mentioned in your question, and these concepts are fundamentally important to many, if not most, programming languages. Additionally, C is simpler than Objective-C, and it will be easier for you to learn. The C syntax and ethos are very different than those of Python, and learning C will give you an opportunity to transition from one to the other. You can learn all the major aspects of the C language fairly quickly (a couple days), and as you practice with them, you will gain a feel for the language that will help you when you study Objective-C. Granted, Objective-C is a bit... strange for a language in the C family, but it's even further removed from the interpreted languages. I don't see any downside to learning C. It will take time, yes, but it will not be time wasted. I would even go so far as to say that every developer should know C and that you will benefit greatly from learning it. Pick up a copy of The C Programming Language and get started.
William Chargin at Quora Visit the source
Other answers
You might as well, it's a subset of both objective C and C++, so it'll make learning those languages much easier.
Tony Li
If your goal is to become an iOS developer then learning C will likely only help you in regards to understanding the constructs of objective C that are either inherited or inspired by C. Since it seems you already know the basics of programming with your experience in Python, your best bet is to focus your time in the iOS fundamentials, UIKit (also Core Graphics and Core Animation), MVC (or more advanced MVVM), Networking. Read through the HIG and adopt the naming conventions that Apple recommends, and you'll end up writing relatively clean maintainable code. There may be some merits in learning C as you can easily mix in C within your iOS projects, however it can be confusing to do so.
Dan Katz
Just because Objective C is an extension of C does not mean you need to learn C first. So it is not mandatory to learn C beforehand but nothing harms if you do learn it as a programmer. C is a procedural language whereas Objective C is object oriented programming. That means once you get hold of a procedural language there is a re-training required to get used to OOP concepts for solving problems. So to make it clearer it really depends on the need. If you intend only to focus on iOS development for short terms then C isn't a necessity. But then to mould yourself into a good programmer learning C will be fruitful in long terms. Objective C books assume you have a computer,start from basics and I don't think C is considered a prerequisite. Stephen Kochan's books highly recommended.
Akash Sharma
As per StackOverFlow, Objective C is a super set of C. So anything that is valid for C, is valid for Objective C. http://stackoverflow.com/questions/13153140/what-are-the-major-differences-between-objective-c-c-and-c . An understanding of C always helps you to appreciate the finer points of other languages, and for low level applications, C is a great choice. A knowledge of C will definitely broaden your horizons and career prospects.
Sanjeet Kathuria
Learn C as basics and then move fast to iOS programming because as a app developer you have to learn lot more things also. Try to learn the basics of every language and learn to figure out the differences between them. Programming is all about datastructures, fast algorithms, loops and functions. So try to get strong grasp on these concepts and practice as much as you can.
Praveen Kishor
It is better if you learn C before tarting Objective C because if you only learn Objective C and have no idea of C or only know the very basics of it and never tried how elegantly it can solve some common problems, you actually learned only half of Obj-C. C is a fundamental part of Obj-C. The ability to use C at any time and everywhere is a fundamental feature of it.
Satyam Priyam
You don't have to learn Objective-C now that Apple has introduced Swift which has a Python like syntax.
Nayan Deep Vemula
I hope you find this useful . http://simonallardice.com/general/2014/03/02/learn-c.html
Anup Mishra
Related Q & A:
- How do I call an objective-c method?Best solution by Stack Overflow
- Where best can one learn c,c++ from?
- Is there a site where I can learn C++ easily?Best solution by Blurtit.com
- I have a samsung mythic and I want to get pictures onto the computer.Best solution by Yahoo! Answers
- Where can I find information on moving to France?Best solution by transitionsabroad.com
Just Added Q & A:
- How many active mobile subscribers are there in China?Best solution by Quora
- How to find the right vacation?Best solution by bookit.com
- How To Make Your Own Primer?Best solution by thekrazycouponlady.com
- How do you get the domain & range?Best solution by ChaCha
- How do you open pop up blockers?Best solution by Yahoo! Answers
For every problem there is a solution! Proved by Solucija.
-
Got an issue and looking for advice?
-
Ask Solucija to search every corner of the Web for help.
-
Get workable solutions and helpful tips in a moment.
Just ask Solucija about an issue you face and immediately get a list of ready solutions, answers and tips from other Internet users. We always provide the most suitable and complete answer to your question at the top, along with a few good alternatives below.