Programming Forums
User Name Password Register
 

RSS Feed
FORUM INDEX | TODAY'S POSTS | UNANSWERED THREADS | ADVANCED SEARCH

Reply
 
Thread Tools Display Modes
Old May 16th, 2006, 11:53 PM   #1
ReggaetonKing
Sexy Programmer
 
ReggaetonKing's Avatar
 
Join Date: Nov 2005
Location: New Jersey
Posts: 891
Rep Power: 4 ReggaetonKing is on a distinguished road
Send a message via AIM to ReggaetonKing
Learn C ?

I read a lot online and many sites recommend knowing C will help your programming knowledge as well as your techniques on how to program no matter what the language is. I had my eye on C for a few months while learning Java. Of course I am sticking with Java full-time as in main language that I am studying for now but I also want to look into C while learning Java.

I know Java pretty well. Not too novice yet not too experienced neither. Though, to me, C has been the ideal programming language. I mean it's been around for over 3 decades, that tell someone something right? Please share your thoughts with me. Should I look into C while learning Java?
__________________
I would love to change the world, but they won't give me the source code!
ReggaetonKing is offline   Reply With Quote
Old May 17th, 2006, 4:09 AM   #2
nnxion
Programming Guru
 
nnxion's Avatar
 
Join Date: Jun 2005
Location: elemental plane
Posts: 1,429
Rep Power: 5 nnxion is on a distinguished road
In my opinion it's a lot more important to understand programming paradigms than to learn a new programming language.

I would suggest you look into something really different like Haskell/Scheme, Lisp, or Prolog. If you would like to learn other paradigms, then here's a list.

If you still want to look into something like C, I'd suggest C++ rather than C. C++ is multi-paradigm language (generic-programming, object-oriented, procedural), where C is just procedural. Plus it's almost a superset of C, and resembles Java (duh) so you can come to a lot of new insights concerning Java too.

By the way:
Quote:
Originally Posted by reggaeton_king
Though, to me, C has been the ideal programming language. I mean it's been around for over 3 decades, that tell someone something right?
That's just taurine excrement (TM DaWei). FORTRAN, COBOL, Lisp, Algol, Simula, BASIC, Pascal and even Smalltalk have been around longer than C.
__________________
"Employ your time in improving yourself by other men's writings, so that you shall gain easily what others have labored hard for."
-- Socrates
nnxion is offline   Reply With Quote
Old May 17th, 2006, 7:44 AM   #3
java_roshan
Professional Programmer
 
Join Date: Mar 2005
Location: Student of University of Mumbai, Maharashtra State, India
Posts: 344
Rep Power: 4 java_roshan is on a distinguished road
I, at times, feel odd when few say, learning C helped to program in just any other language (eve, I used to say this). But may b ppl say this because, its the simplicity and legendary attribute, that C has probably.

When one begins to learn a different approach to programming like from structured to object oriented, (C to C++), they are programming things differently, the program works differently, than it would work in the former. I believe, C would teach a syntax format the is somewhat a basis for other languages.

I believe, while learning, Java, you could refer to the javadocs, because there's a lot to learn from it!
__________________
Visit: http://www.somaiya.edu
java_roshan is offline   Reply With Quote
Old May 17th, 2006, 8:15 AM   #4
DaWei
Resident Grouch
 
DaWei's Avatar
 
Join Date: Jun 2005
Posts: 6,453
Rep Power: 10 DaWei is on a distinguished road
You would only want to move to C if you're interested in shucking some layers of abstraction. That's a worthy goal if you are interested in learning more about the realities of today's architecture and how your machine really works.

It would give you the ability to peer into OS code, for instance, presuming you could lay your hands on the source. You would then have more understanding about the capabilities of your machine and how, under the hood, the various flavors are more similar than different (it's the user interfaces that are being interpreted by the users as The Machine, by and large). The next step, beyond that, would be machine language, as represented by assembler mnemonics.

If those aren't your goals, your investment in learning is probably better directed elsewhere. Obviously, it makes a useful addition to your resume, under any conditions. The only question is "how valuable an addition?", and that varies with the market and where you place yourself in it.
__________________
Abstraction doesn't make it impossible to write bad code; it makes it possible to write superior code.
Contributor's Corner: Grumpy on C++ Exceptions DaWei on Pointers
DaWei is offline   Reply With Quote
Old May 17th, 2006, 8:18 AM   #5
ReggaetonKing
Sexy Programmer
 
ReggaetonKing's Avatar
 
Join Date: Nov 2005
Location: New Jersey
Posts: 891
Rep Power: 4 ReggaetonKing is on a distinguished road
Send a message via AIM to ReggaetonKing
I chose C because Java takes about of concepts from C and C++. And C++ takes a lot from C. I really didn't mean "C will make me a better programmer". I just implied that it will teach me good techniques and style in Java because a lot of it came from C.

Quote:
Originally Posted by nnxion
That's just taurine excrement (TM DaWei). FORTRAN, COBOL, Lisp, Algol, Simula, BASIC, Pascal and even Smalltalk have been around longer than C.
Of course but they are not as popular as C. C is still activitly used all the time. I am not saying those language aren't use either. Cobol, I hear, still is also really popular. I don't hear much about those other language, especially Simula but I know C takes a lot from them as well.

Quote:
Originally Posted by java_roshan
I, at times, feel odd when few say, learning C helped to program in just any other language (eve, I used to say this). But may b ppl say this because, its the simplicity and legendary attribute, that C has probably.

I believe, while learning, Java, you could refer to the javadocs, because there's a lot to learn from it!
I didn't mean learn more of the actual Java language itself. Working witha low-level language like C will increase my knowledge on how it really works. Also, Javadoc is really good and I do still read them time from time. Mainly, when I am looking into a new class.

EDIT: Will learning a procedural language like C effect my learning of a OOP language. Also, I read that it's possible to use OOP in C but it's not easy and because it's not easy that don't mention that.
__________________
I would love to change the world, but they won't give me the source code!
ReggaetonKing is offline   Reply With Quote
Old May 17th, 2006, 8:37 AM   #6
DaWei
Resident Grouch
 
DaWei's Avatar
 
Join Date: Jun 2005
Posts: 6,453
Rep Power: 10 DaWei is on a distinguished road
Of course it's possible to use object-oriented design in C. OOD was not invented by software gurus. Oog used it when he chiseled out the first wheel. Some things should be objects and some should not. Your lawnmower is an object, comprising other objects. How hard is that to get? It's only hard if you listen to self-anointed high priests. Your lawn is NOT an object (and shouldn't be). It doesn't have its own lawnmower object and mow () method. You get those elsewhere, bring them to the lawn, and cut your grass procedurally. Learning to mow your lawn will not tank your ability to design a carburetor object, if such are your leanings.
__________________
Abstraction doesn't make it impossible to write bad code; it makes it possible to write superior code.
Contributor's Corner: Grumpy on C++ Exceptions DaWei on Pointers
DaWei is offline   Reply With Quote
Old May 21st, 2006, 3:00 PM   #7
Harakim
Hobbyist Programmer
 
Join Date: May 2006
Location: West Jordan, Utah, United States
Posts: 176
Rep Power: 3 Harakim is on a distinguished road
I can't imagine knowing C hurting you. If you want to apply it to Java, it might end up being more like a history lesson than a programming lesson. Like other people said, I think it's mainly just removing layers of abstraction.
Harakim is offline   Reply With Quote
Old May 21st, 2006, 3:27 PM   #8
nnxion
Programming Guru
 
nnxion's Avatar
 
Join Date: Jun 2005
Location: elemental plane
Posts: 1,429
Rep Power: 5 nnxion is on a distinguished road
Quote:
Originally Posted by Harakim
I can't imagine knowing C hurting you.
I can't think of many programming languages that can...
I think a lot of others can teach one more than C, especially when one already knows Java.
__________________
"Employ your time in improving yourself by other men's writings, so that you shall gain easily what others have labored hard for."
-- Socrates
nnxion is offline   Reply With Quote
Old May 21st, 2006, 5:13 PM   #9
Ooble
I eat cake for breakfast.
 
Ooble's Avatar
 
Join Date: Jul 2004
Location: In my box.
Posts: 4,434
Rep Power: 9 Ooble is on a distinguished road
If you already know Java, why learn another, such as C++ or C#, that's effectively the same thing? Why not learn something a little different? C, Assembly, Perl, PHP, Python, LISP, Prolog... the list goes on.
__________________
Me :: You :: Them
Ooble is offline   Reply With Quote
Old May 21st, 2006, 5:32 PM   #10
DaWei
Resident Grouch
 
DaWei's Avatar
 
Join Date: Jun 2005
Posts: 6,453
Rep Power: 10 DaWei is on a distinguished road
Again, see post 4. You can move up (more abstraction), down (less), or sideways. Up and down have benefits, though differing benefits. There isn't a lot of point in going down to C unless you plan to continue the trip. Dealing with non-atomic arrays, dynamic memory allocation, stuff like that, isn't going to gain you a hell of a lot beyond preparing you for additional forays into the elemental aspects of the Von Neumann architure, the hardware implementations thereof, and the sort of software production that makes you grunt and mumble.
__________________
Abstraction doesn't make it impossible to write bad code; it makes it possible to write superior code.
Contributor's Corner: Grumpy on C++ Exceptions DaWei on Pointers
DaWei is offline   Reply With Quote
Reply

Bookmarks

« Previous Thread in Forum | Next Thread in Forum »

Currently Active Users Viewing This Thread: 1 (0 members and 1 guests)
 
Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Forum Jump




DaniWeb IT Discussion Community
All times are GMT -5. The time now is 3:39 AM.

Powered by vBulletin® Version 3.7.0, Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
Copyright ©2007 DaniWeb® LLC