| New Reply |
Did I make the right choice? |
Share Thread | Thread Tools |
| Apr29-12, 11:11 PM | #1 |
|
|
Did I make the right choice?
Hey everyone.
I recently decided which language I wanted to start programming with, C, and I also bought a book for guidance/referece. http://www.amazon.com/gp/product/067...ls_o00_s00_i00 I have never programmed before and after doing an extrenious amount of research I have concluded that C would be the best language to start with. Also that the book would be the best to have bought for a guidance/reference. I was wondering if I had made the right choice on starting out with C and buying that book. Thanks in advance! |
| Apr30-12, 12:19 AM | #2 |
|
|
The book looks okay from what amazon allows to skim through and C is definitely a good language to know. Note though, that when you're learning C, you will need to know more about the internal details than you would in, say Java. It can be a pain, unless you enjoy it.
|
| Apr30-12, 12:29 AM | #3 |
|
|
I'm not too worried wether or not its a pain. I've done a little with Python and I've found that I really enjoy programming.
Once I become really good with C what would I be capable of doing? As in how will it benefit me and what exactly is the point of doing it? |
| Apr30-12, 03:44 AM | #4 |
|
|
Did I make the right choice?
You can do ANYTHING with C, and from my limited experience (I'm still at uni), learning C makes learning everything else easier. It's close to the metal, if you are processing a string you will know about every character in that sucker, you'll terminate it yourself and you'll manually allocate and free the memory it uses. I like to think you learn some good practises coding in C. Good luck!
If you get stuck for something interesting to code, look up Project Euler, or do some text processing (encryption, HTML parsing, compression). Graphics is fun too, but you'll need to learn some extra libraries for that (OpenGL or something). |
| Apr30-12, 04:18 AM | #5 |
|
|
It's close enough though for bare metal since only with the exception of device drivers, super-optimized routines for particular chipset types or extensions, it's good enough for the kind of micromanagement required for fast software and with a good compiler, nowadays the results are good enough performance-wise. |
| Apr30-12, 07:52 AM | #6 |
|
|
The only problem with C is that it teaches "bad habits" in the world of Object-oriented programming.
|
| Apr30-12, 05:11 PM | #7 |
|
|
Object-oriented programming? Could you please explain what you mean.
|
| Apr30-12, 06:14 PM | #8 |
|
|
Also, Google is your friend. |
| Apr30-12, 06:47 PM | #9 |
|
|
Depends on what you want to do.
C is closer to the metal, yadda yadda, but you lose some functionality and don't gain much over the equally fast but object oriented c++. Before anyone corrects me by saying c is more basic and therefore faster than c++, remember that c++ is so popular, and a lot of money and effort has gone into optimizing it, while c optimization has been pretty stagnant. To answer your question about object oriented programming, or OOP, first of all c is procedural i guess, and c++ is OOP. In C++ you can create a class, say a triangle class, and create different instances of triangle. These are all part of the triangle class, but operations on triangle_1 don't effect triangle_2 don't effect..... The class also defines methods or operations you can do on the triangles, like if you wanted to stretch triangle_4, or access what the base of triangle_6 is or whatever. You're modifiyng and accessing "instance variables" of the different "instances" of the "class". Each triangle is an instance of the triangle class. Basically OOP creates a more pretty way to keep track of many "objects", and their seperate instance variables. Otherwise you might have to do some ugly multidimmensional arrays or something, but those have there purpose, don't get me wrong. Most video games are written in c++ btw. If I'm trying to throw together a quick program, python is still great for simple scripts, to even modeling, and it's really easy. If I was writing an intense physics engine with 3d visualization, I'd pick c++. If I was writing code for a microcontroller, I'd probably use C. |
| Apr30-12, 06:58 PM | #10 |
|
|
All that said, you can do anything with C :) It's just a matter (how long it takes to program) vs (how important is performance) for a task by task basis. You can't go wrong with learning C
|
| May1-12, 12:27 AM | #11 |
|
Recognitions:
|
You didn't mention what your plans are that might involve programming. |
| May1-12, 12:38 AM | #12 |
|
|
This may sound a little far-fetched, but I've heard from a couple of peolpe that you can do something with physics equations that involves programming? I'm not completely sure, but I found myself to be interested in what they were telling me so I decided I would give it a shot. I'm really interested in physics and by the time I start my physics course next year I was hoping I would be pretty good at programming. I am studying physics this summer, so no rush. I just think that it would be really cool, and why not persue my interest? |
| May1-12, 12:46 AM | #13 |
|
Recognitions:
|
|
| May1-12, 12:50 AM | #14 |
|
|
Oh ok, thanks.
I've been so lost on deciding which language to learn first. Everyone tells me something different... I will probably learn C then Matlab. Thanks for the help! |
| May3-12, 12:38 PM | #15 |
|
|
Python has some nifty Matlab modules.
|
| May3-12, 01:14 PM | #16 |
|
|
This is not to say that you should never learn C or Matlab (you will most likely learn the latter in college anyway), but *starting* with Python is highly recommended. |
| May3-12, 04:51 PM | #17 |
|
|
|
| New Reply |
| Thread Tools | |
Similar Threads for: Did I make the right choice?
|
||||
| Thread | Forum | Replies | ||
| Did I make a good choice? | Academic Guidance | 3 | ||
| Can you make an object have a stronger graviational pull if you make is denser? | General Physics | 29 | ||
| Choice of variable to make matrix rank = 1 | Calculus & Beyond Homework | 0 | ||
| Need help about a choice I have to make... | Academic Guidance | 1 | ||
| Choice 1: get help here Choice 2: throw this damn laptop out window | Computing & Technology | 7 | ||