Thread: As a Computer Science Engineering Major, is C the best language to start with?

  1. #16
    Banned
    Join Date
    Aug 2010
    Location
    Ontario Canada
    Posts
    9,547
    Quote Originally Posted by sellers04 View Post
    Trolling you? I don't see why this is a strange question. I know i will be learning Java in my first few classes at OSU but during the summer i figured i'd try to learn C
    Actually I'd say it's a great question... 'Round these parts you will get slightly biased answers but the question itself speaks to a healthy interest in your planned career. One thing I can promise you... the best employees are the ones who like what they're doing. The ones who are only in it for the paycheque don't tend to last very long.

  2. #17
    Lurking whiteflags's Avatar
    Join Date
    Apr 2006
    Location
    United States
    Posts
    9,613
    Quote Originally Posted by sellers04 View Post
    Trolling you? I don't see why this is a strange question. I know i will be learning Java in my first few classes at OSU but during the summer i figured i'd try to learn C
    You can learn C in the summer like you can learn to play chess by reading an instruction leaflet. I'd get a head-start on Java.

  3. #18
    Registered User \007's Avatar
    Join Date
    Dec 2010
    Posts
    179
    Quote Originally Posted by grumpy View Post
    If you view C as a "pretty small language", then that means you only use a "pretty small subset" of C.
    I view C as having a smaller foundation than the alternatives. If you pick up a C book you go home with a 200-250 page book. If you take home a C++ book you go home with 1400 pages.

    If you want to be pretty functional in C you only need to read those pages and you have a pretty solid foundation to solve a lot of problems. Everything else you learn is more specialized and icing on the cake. That doesn't mean learning ends with those pages. Likewise, if you want to be functional in C++ you need to go home and read those 1400 pages.

  4. #19
    C++ Witch laserlight's Avatar
    Join Date
    Oct 2003
    Location
    Singapore
    Posts
    28,413
    Quote Originally Posted by \007
    I view C as having a smaller foundation than the alternatives. If you pick up a C book you go home with a 200-250 page book. If you take home a C++ book you go home with 1400 pages.
    I think it is a matter of pedagogical approach. If we take your numbers literally, Accelerated C++ is only about 350 pages, and the learner would "have a pretty solid foundation to solve a lot of problems" even before finishing that book. On the other hand, an introductory text for C++ that starts by first introducing C++ as merely a superset of C will always have to do more work to provide the same foundation for problem solving than a introductory text for C.
    Quote Originally Posted by Bjarne Stroustrup (2000-10-14)
    I get maybe two dozen requests for help with some sort of programming or design problem every day. Most have more sense than to send me hundreds of lines of code. If they do, I ask them to find the smallest example that exhibits the problem and send me that. Mostly, they then find the error themselves. "Finding the smallest program that demonstrates the error" is a powerful debugging tool.
    Look up a C++ Reference and learn How To Ask Questions The Smart Way

  5. #20
    Registered User \007's Avatar
    Join Date
    Dec 2010
    Posts
    179
    Yes, I ball parked those numbers but they are generally the truth. If we look at books like The C++ Programming Language compared to The C Programming Language, or other books that go through the language from the ground up. Accelerated C++ works but it's accelerated for a reason-- because most people have a hard time going through the typical 1200ish page books-- especially if they are experienced programmers. That is the beauty of Accelerated C++!

    I also think the "In a Nut Shell" book series is a good compromise between speed and depth.

    However, I have been thinking of the typical language books. The kind you would find in a university or as a general beginner book. I don't think a whole lot of beginners grab Accelerated C++ as their first programming book unless they are ultra intuitive and incredibly logic savvy.
    Last edited by \007; 07-20-2011 at 12:28 AM.

  6. #21
    Registered User
    Join Date
    Jun 2011
    Posts
    35
    If you are in an engineering program at OSU, I feel pretty strongly that they have your entire 4 years planned out for you in a rigid schedule. Whatever programming languages you need to complete the degree will be listed in the university catalog. When I was in engineering school, Fortran was the language everyone on campus used and it was a required course within the first two years of study. All the engineering departments communicated in Fortran, even the math department which taught us courses in numerical analysis, all in fortran.

    If you are new to programming, you might want to learn the old Microsoft Basic, not Visiual Basic, but like maybe Quick Basic. Its not a robust nor powerful language but its good for getting started. My understanding is that all programmers, regardless of their specialty know and can understand Basic. Moreover, Basic, though limited, can take you a long way even if thats your only language. I have solved some pretty tough math problems using Basic before I got into linux. Now with linux I am back to fortran since the compiler is free, and learning C since the compiler is also free.
    Last edited by Linux Trojan; 07-20-2011 at 03:23 AM. Reason: typos

  7. #22
    Registered User
    Join Date
    Jul 2007
    Posts
    131
    Quote Originally Posted by Linux Trojan View Post
    My understanding is that all programmers, regardless of their specialty know and can understand Basic.
    With little effort all programmers can understand roughly any language, except maybe some exotic types of language.

  8. #23
    Registered User
    Join Date
    Jun 2005
    Posts
    6,815
    Quote Originally Posted by \007 View Post
    I view C as having a smaller foundation than the alternatives. If you pick up a C book you go home with a 200-250 page book. If you take home a C++ book you go home with 1400 pages.
    Size of text books is probably one of the worst measures of size of a programming language that I can think of.

    There is no question that C is a smaller language than C++ - that fact is fairly obvious, given that C++ is (approximately) a superset of C, and the set of C++ features that are not in C is fairly large (including another Turing-complete programming language).

    There are much smaller programming languages than C around, and also much larger programming languages than C++. As a rough generalisation, C is recognised as a large language and C++ is recognised as a larger one.

    Quote Originally Posted by \007 View Post
    If you want to be pretty functional in C you only need to read those pages and you have a pretty solid foundation to solve a lot of problems. Everything else you learn is more specialized and icing on the cake. That doesn't mean learning ends with those pages. Likewise, if you want to be functional in C++ you need to go home and read those 1400 pages.
    It is possible to be "functional" in most mainstream programming languages by reading the first five chapters or so of most relevant textbooks.

    The size of C++ textbooks is actually a reflection of the authors: C++ seems to have more than it's share of authors who write in a style that tends to consume pages. For example, Stroustrup writes in a philosophical style and Meyers in a conversational style - both of these authors seem to write pretty large books that could - depending on one's preferences - be made much more concise. [I personally enjoy reading books by those authors, but brevity is not necessary for my enjoyment].

    If you want a small language, look up FALSE. A complete compiler for that language can be written in about 1024 bytes (of 68000 assembler), and the complete language can be described in a couple of pages. However, becoming fully functional in FALSE is arguably harder than most other languages (admittedly, FALSE was designed to be inherently obfuscated).
    Right 98% of the time, and don't care about the other 3%.

    If I seem grumpy or unhelpful in reply to you, or tell you you need to demonstrate more effort before you can expect help, it is likely you deserve it. Suck it up, Buttercup, and read this, this, and this before posting again.

  9. #24
    (?<!re)tired Mario F.'s Avatar
    Join Date
    May 2006
    Location
    Ireland
    Posts
    8,446
    Quote Originally Posted by sellers04 View Post
    Title says it all. My friend recommended I start with C. Just wanted to double check.
    Yes!... No!... maybe...

    Who are you?
    Originally Posted by brewbuck:
    Reimplementing a large system in another language to get a 25% performance boost is nonsense. It would be cheaper to just get a computer which is 25% faster.

  10. #25
    Make Fortran great again
    Join Date
    Sep 2009
    Posts
    1,413
    Don't start with Python, you won't ever want to use anything else.

  11. #26
    Registered User
    Join Date
    Jun 2011
    Posts
    46
    I'm learning C++ now, will I need to learn some C in the future? I was hoping to move onto C# or Java next.

  12. #27
    Registered User
    Join Date
    May 2011
    Location
    Around 8.3 light-minutes from the Sun
    Posts
    1,949
    That depends on what you will be doing for a job / school. As I mentioned very early on in this thread the best thing you can possibly do is learn how to program . Once you have that down any competent person will be able to move between languages relatively easily.
    Quote Originally Posted by anduril462 View Post
    Now, please, for the love of all things good and holy, think about what you're doing! Don't just run around willy-nilly, coding like a drunk two-year-old....
    Quote Originally Posted by quzah View Post
    ..... Just don't be surprised when I say you aren't using standard C anymore, and as such,are off in your own little universe that I will completely disregard.
    Warning: Some or all of my posted code may be non-standard and as such should not be used and in no case looked at.

  13. #28
    Registered User
    Join Date
    Dec 2006
    Location
    Canada
    Posts
    3,229
    At my previous job, I had to do a significant amount of C# programming. I walked into the interview telling them I don't know anything about C#, and have never used Visual Studio, but demonstrated good programming knowledge and problem solving skills. They hired me anyways, and on the first day, gave me an afternoon to learn C#.

    Languages really don't matter much.

  14. #29
    -bleh-
    Join Date
    Aug 2010
    Location
    somewhere in this universe
    Posts
    463
    Learn whatever you want, it spoils down to the syntax. Once you get the concept down on one language, it's easier to pick up other languages. My company has their own proprietary language to do their own report generation. The syntax is different, but structured programing is still structured programming.
    "All that we see or seem
    Is but a dream within a dream." - Poe

Popular pages Recent additions subscribe to a feed

Similar Threads

  1. Computer Science / Sofware Engineering
    By zacs7 in forum A Brief History of Cprogramming.com
    Replies: 11
    Last Post: 12-18-2008, 05:23 PM
  2. Computer Science vs Computer Engineering degree
    By PCG33K in forum A Brief History of Cprogramming.com
    Replies: 4
    Last Post: 10-03-2007, 07:13 AM
  3. Computer Science or Software Engineering?
    By zacs7 in forum A Brief History of Cprogramming.com
    Replies: 15
    Last Post: 08-10-2007, 11:56 AM
  4. Software Engineering vs Computer Science
    By Philandrew in forum A Brief History of Cprogramming.com
    Replies: 10
    Last Post: 02-06-2005, 09:55 PM