How to learn C# (moving from C++ to C#?

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

Was this solution helpful to you?

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

Anup Mishra

Just Added Q & A:

Find solution

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.