Welcome to Dream.In.Code
Getting C++ Help is Easy!

Join 132,209 C++ Programmers for FREE! Get instant access to thousands of C++ experts, tutorials, code snippets, and more! There are 919 people online right now. Registration is fast and FREE... Join Now!




Why C

 
Reply to this topicStart new topic

Why C, Is it still common

jediokie
post 15 Feb, 2008 - 06:00 PM
Post #1


D.I.C Head

**
Joined: 7 Feb, 2008
Posts: 175


My Contributions


Just curious, in school Programming I and II teach C. Is it still used or is it just a really good language to learn the basics of coding on?
User is offlineProfile CardPM

Go to the top of the page

Mikhail
post 15 Feb, 2008 - 06:05 PM
Post #2


D.I.C Addict

Group Icon
Joined: 26 Oct, 2007
Posts: 972



Thanked 1 times

Dream Kudos: 250
My Contributions


I am going to go that this would be a base for many modern languages, so yeah I would start learning of the C, and that is what i started off C, C++ and I am still studying that, moving over to java C helped me alot in that most terms are sometimes the same so yeah you should learn C. It will help you learn.
User is offlineProfile CardPM

Go to the top of the page

Jingle
post 15 Feb, 2008 - 06:56 PM
Post #3


D.I.C Head

**
Joined: 20 Oct, 2007
Posts: 249


My Contributions


C is still used for allot of things. it depends on what you are trying to do.
in C you learn the lower level things that you never have to work with in the other languages.
it is always nice to know what is going on behind the scenes. also because of this it runs very fast.

yes C is a very good place to start learning programing.
User is offlineProfile CardPM

Go to the top of the page

NickDMax
post 16 Feb, 2008 - 12:51 AM
Post #4


2B||!2B

Group Icon
Joined: 18 Feb, 2007
Posts: 2,857



Thanked 47 times

Dream Kudos: 550
My Contributions


There is a great deal of debate on this issue (even here on the C/C++ forum).

Many people are under the impression that C is a dead or dieing language and that teaching it as a base is holding beginning programmers back. It is so removed from most "modern programming" that it may waste time that could be spent more productively teaching a modern language. There is also the argument that C is teaching them things they will have to "unlearn" when they start with a modern object oriented language.

Although there are some points to be made in favor of dropping C from modern curricula, many of the arguments given are based upon a poor understanding of C.

First off, C is not a dead/dieing language as it is one of only a few languages that fit a particular niche between low level and high level programming. As such, it introduces students to underlaying low level concepts but with more abstraction than assembly language which tends to help fill the gap between the two levels.

In my experience, programmers who understand the low level side of programming tend to have the ability to visualize program structures better than programmers who have only learned about the high level abstracted world.

But I do tend to think it is a bit of a shame to spend so much time in C doing boring console programs when the kids at the community college are programming games in Java or C#.
User is offlineProfile CardPM

Go to the top of the page

Nayana
post 16 Feb, 2008 - 03:12 AM
Post #5


DIC Hawk - 나야나 नयन:

Group Icon
Joined: 14 Nov, 2007
Posts: 824



Thanked 5 times

Dream Kudos: 175
My Contributions


Saying that teaching C is holding programmers back, is like saying the teaching of basic grammar holds language learners back, and that learning addition and subtraction holds mathematicians back.
User is offlineProfile CardPM

Go to the top of the page

WXY
post 16 Feb, 2008 - 04:04 AM
Post #6


D.I.C Head

Group Icon
Joined: 2 Jan, 2008
Posts: 85



Dream Kudos: 50
My Contributions


Nayana is completely correct on this. C is undeniably the language that will live to see the death of the digital logic theory as we know it. Not only is C efficient and will teach a programmer to design algorithms efficiently, all of it's syntax makes up the fundamentals of C++ which is highly practiced in the industry and is unavoidable.

But let's put things in perspective. Nobody ever writes big applications in assembly or binary & hex anymore, but you are still required to learn it in university courses. Why? because knowing it just will make you a better programmer, it has to be experienced to be understood (trust me, I never knew how inefficient my code was till I learnt lower level code).
User is offlineProfile CardPM

Go to the top of the page

Bench
post 16 Feb, 2008 - 06:42 AM
Post #7


D.I.C Addict

Group Icon
Joined: 20 Aug, 2007
Posts: 601



Thanked 10 times

Dream Kudos: 150

Expert In: C/C++

My Contributions


I don't know if C is the best language to learn the basics, IMHO, there's no such thing as a "best" programming language to start in, because whichever one you choose, will only give you a partial picture of programming. - Much like learning a natural language, the first couple of languages you learn are always the most difficult.

C is a procedural language, and fairly low-level compared to many others, though still widely used in commercial projects - particularly in systems programming (eg, operating systems, distributed networked systems) and real-time systems (eg, mechanical production lines, household appliances etc).

Being a low-level programming language, most absolute beginners have a really frustrating experience trying to get seemingly "simple" things to work properly (Especially when those "simple" things turn out to be something which the standard language doesn't do). AFAIK, most colleges/universities have stopped trying to teach Pascal/C as a 'first language' because of students feeding back their frustration about trying to understand a finicky programming language, understand the low-level workings of the computer, whilst learning how to solve software problems & design solutions all at the same time.

- On the other hand, high level languages give a broader view of software development, people tend to have a far less frustrating time trying to get a simple Java/C#/Python program working, than a C program. Though high level languages generally have a narrower applicability (usually focused on heavily GUI-focused apps in windows or web applications), their main benefit as introductory languages, are that you can focus on problem solving far more than nitpicky language quirks and "gotcha's".
- This comes with the caveat of a new programmer being relatively detached from the inner-workings of their computer, and a severely distorted view of what a program is actually doing. High level languages do a very good job (or very bad job depending on your perspective) of hiding away "unnecessary" detail to the programmer.

C is certainly worth knowing, being almost the 'de-facto' standard language within industry (Most employers view C as being a language worth knowing, even if the job they're offering doesn't involve C. This is less true for C++, Java, C#, etc).
- Learning C as a first language certainly isn't a disadvantage, but its not easy either.
User is offlineProfile CardPM

Go to the top of the page

Jingle
post 16 Feb, 2008 - 08:36 AM
Post #8


D.I.C Head

**
Joined: 20 Oct, 2007
Posts: 249


My Contributions


there is one up to a beginner that could also be considered a down.
in C you don't have to worry so much about the OO side of programing.
but because of that when you go to an object oriented language you still have to learn most of that.
User is offlineProfile CardPM

Go to the top of the page

NickDMax
post 16 Feb, 2008 - 02:11 PM
Post #9


2B||!2B

Group Icon
Joined: 18 Feb, 2007
Posts: 2,857



Thanked 47 times

Dream Kudos: 550
My Contributions


QUOTE
Saying that teaching C is holding programmers back, is like saying the teaching of basic grammar holds language learners back, and that learning addition and subtraction holds mathematicians back.


You analogy is flawed as C is not a "basic building block" of programming. Teach C first is not like teaching addition and subtraction first, it is more like teaching algebra first.

I think a better (although still flawed) analogy would be: Teaching C as a first programming language is like teaching Latin as a first language. IT is true that most modern languages borrow heavily from Latin, and learning Latin will definitely help you understand modern grammer constructs with a much deeper understanding then hagging out with native speakers of a modern language.

course I am playing devil's advocate here as I think just about any language is an ok place to start.
User is offlineProfile CardPM

Go to the top of the page

Reply to this topicStart new topic
Time is now: 11/21/08 07:47PM

Live C++ Help!

C++ Tutorials

Reference Sheets

C++ Snippets

Bye Bye Ads

Free DIC T-Shirt

T-Shirt Example

Related Sites

Monthly Drawing

Thumb Drive

Partners

Top Contributors

Top 10 Kudos This Month