I was hoping I could make programs like MP3 players and stuff with it. Could I make games with Java? Games like Pong and stuff? What I really want to do is make windows applications like a Firewall, MP3 Players, Toolbars for Mozilla etc. But I would also like to make games too. Not games like Half-life but small NES and SNES era games. How hard and how long would it take me learn to and then make games like that? Also how long would it take me to learn and make Windows apps? How much would a beginner Programmer make at a company straight out of college? I heard Programmer can make as much as doctors is that true?
Well...I think you will find that a lot of doctors and programmers don't make as much as you might think. Straight out of college, a beginning programmer could probably make around $35K unless he/she was really exceptional. You also will probably find that you get a lot of really crap work straight out of college....Unless you specialize your degree in it, I doubt you will be getting a job for Valve or someone like that. But I don't want to turn you off to programming. It is all good expierence. And these days...programming is not the safest career path. My entire team of 20 people were laid off at the time that we had our system performing better and with less errors than ever....and there was still work for us coming down the pipe. Our entire team was outsourced to India. But that's not the point here. Okay...sure you could write some cool little programs like mp3 players and small games with java. In a week long class I took on java, the last project was to write your own program. I wrote a hangman game complete with drawing a stick figure in the noose. Writing windows apps and small games don't really take much longer than anything else...it all uses the same basic type of coding. Windows apps...ones that actually interface with windows require more than just java knowledge though. You have to understand the API for windows itself. Probably easier to do with C++, but certainly possible with Java. Maybe looking at something like visual basic first...just to get an idea of how programming works might be a better path to take. From what I understand, it is easier to do a lot of graphical type of things in VB. I don't have any experience with it, but it's something to look at.
Between C++ and Java which one should I learn first? I have been thinking about putting Linux on my computer but I want do a dual boot systems. Should I just wait and do that when I build me a new computer this coming year? It will be my first time building my own. I have a Compaq now
personally...I think if you know C++ first, Java seems that much easier. But that's how I learned them... I think you will find more online resources and help for Java than you will for C++ though. Truthfully, once you learn any high level language, learning another language is pretty easy. Mainly you just have to learn the syntax because the concepts are basically the same.
I would honestly learn C and C++, and pretty much forget about Java for now. C/C++ is far more versatile, Unix was pretty much based on C, especially if you want to get into doing games, when you'll need to access Win32, DirectX and use inline assembler. Once you have a grasp of one programming language, picing up another is far easier.
What Is The diffrence between C and C++? Just by the names C sounds easier I think now I want to learn C or C++ first . If you know any websites that teach you C or C++ please tell me. How long would it take one person to make a OS? Not that I want to I just want to know?
I learned C++ on my own and now I have to take Java as a class for my major. Java was actually based off of C++ to be small, portable, and cross-platform. The only reason its slow is because it doesn't actually compile to machine code directly. You compile it to bytecode and then when someone opens that an interpreter compiles it to machine code. Of course there are ways to get around the slowness . Personally I think you should learn Java first as its a bit simpler to learn. After that go to C++. So many things are the same and it really just builds on your knowledge. But I suppose it doesn't really matter. As far as programming an OS from scratch... First if you REALLY want to build your own OS visit this page and see if its really worth it. Linux From Scratch is a way to make your "own" OS (kinda...). Making your own OS is extremely taxing even for someone who is well versed in programming. For one person... It would take a LONG time.
At the end of the day I would say it comes down to this. You will probably be able to learn Java a lot faster than C/C++. You can't really say when you've learnt a language anyway, you're always learning new stuff so it's a bit arbitrary; but as far as getting to doing useful things fastest Java is probably the way. On the other hand if you learn C/C++ (and I mean several years of constant use) you'll be in a position where you have a much deeper understanding of how your computer is actually working and will be able to see how the languages themselves are constructed and so be able to learn new languages VERY quickly. That's my opinion anyway and I suggest you think about how much time you want to invest, how eager you are to get quick results and how much you really want to learn about computers Hope that helps.
I learned C when I was 5 or 6... this was before Windows 3.0, so it was a while ago. After C, Java, JavaScript (which is useful for web pages!), Perl, PHP, and others are quite easy. C is not that hard, so I'd learn it first. I stay away from OOP because it's so slow. I found the code for a C++ program, converted it to C (no OOP), and it went from taking 5 minutes to run (it compiled a report) to just over a minute. It takes a damn long time for all that OOP stuff to load into memory, so that is why I don't like OOP. EDIT: Hargle - If you want to truly know what your computer is doing, learn assembler. Otherwise (unless you want to program TI calcs) don't learn it.
There are huge advantages of OO programming languages over non-OO programming languages though. Thats not to say there aren't some disadvantages. At the end of the day the advantages overshadow the disadvantages.
I agree in the long run OO is better. But it depends on what you are doing really. For some things...it really doesn't matter if your code has ultimate re-useability or abstract classes and all... Like tkwsn said, sometimes the extra overhead isn't necessary and makes things slower. Hargle...speaking of learning assembler...I once worked with these two guys that would simply blow you away! One worked for MS for a while and knew his way in and out of the OS. The other was a Chinese guy who had been doing C++ since he was knee high to a grasshopper. They would start debugging code together and while stepping through they would go out of their code and into some Microsoft something or other and the assembler code would come up. And these guys would sit there and read it like it was a book or something! And they'd start talking to each other about this multithreading and that register and I would just get a headache listening to them. Really amazing what some people can do.... Back on the subject at hand...C is a good starting place. That is the class that I took in college and failed. But that was my fault...had nothing to do with the language. As a matter of fact, C is one of the first languages they teach computer science majors here.
I have to say, back when I learned, you could learn C, BASIC, COBOL, and asm for standard languages. That's really about it. I might be forgetting some, but those were the biggest.
I don't quite understand, when you talk about "Loading OO stuff into memory", what you are talking about. OOP is a paradigm not some library. There is of course some overhead involved with the extra functionality that C++ gives you but it's nothing like the way you describe it. It's more a case of an occasional pointer lookup into the virtual function table when dealing with late binding. You can write terribly inefficient code in C++ but you can in any language including C and Assembly. The way some people talk about OOP like it's something you download and install on your computer reminds me of this recent thread. In Java you do of course have a lot more overhead. That's not Java being "useless and slow", it's Java being what it's supposed to be. The extra stuff in Java which leads to slower runtimes is there to make Java more useful for certain tasks, like rapid prototyping and secure execution. You're making very bold statements tkwsn. If you learnt C when you were "5 or 6" I would guess you've got about 3-4 years of experience so far from your attitude. I'm guessing NissanFrontier just wants as much information as possible to make an informed decision and making vague comments about something you apparently don't even use isn't going to help him much.
Some how I find that hard to believe. My mom is a preschool teacher and they are just learning letters and what sound they make and sometimes the really smart ones learn to read. So I find it hard to believe that you could program that young. My mom kept kids at our house this summer and one of them was a 6 year old boy who was in 2nd grade reading and he could not have ever programmed. He wanted me to teach him about electricity and that was not easy. I went to a site that teaches you how to program with C++ and it appears it takes alot of math. Is that true? I just skimmed over it so I may be wrong. Does anyone have a good site to learn C from? Thanks everyone for helping me
You don't need much more than arithmetic really, although there's certainly applications of programming where this is not the case. There's plenty of links in this forum's links thread (sticky) to programming tutorials.
Assembler really isn't that hard to get to grips with. Most people seem to have some perception that it's something really scary like quantum mechanics or something and that it shouldn't be tampered with. We have barley started learning about loops in our Java crouse at uni but I've already written my first Assembler program. Ok I already learned how to disassemble programs and 'alter' their operation but I'd never written a whole program till now.... Well actually the program is written for an imaginary computer with a given set of available commands (eg INC increments a variable) and memory locations etc. so I can't actually run and test it but in principle it's quite simple. The thing with assembler is that it's very tedious to write whole programs and difficult to 'see' an over all picture of what is happening. One command in Java might take 100 lines in assembler. NissanFrontier, if I were you I would learn C++ first. If you learn C you'll just end up moving onto C++ anyway and I don't think one is much easier/harder than the other. If C++ seems too complicated and tedious try Java. I certainly find it a lot easier and the skills you learn in Java will be useful if you try your hand at C++ again at a later date.
I went to that sticky that has all the links but I found nothing to do with C or C++. So if anyone knows a really good place please tell me. I thought C and C++ were big languages, I thought thats what everyone uses. I thought it would be easier to find good sites to teach you to program with it but I could not find really anything to do with C I found a 1 or 2 good ones for C++. Oh yeah if you need math to program then I don't see how it would be to program when you are 5 or 6 because the kids my mom kept would come to me and say do you know what 4 + 4 is and I would say what and then they would say 10! So I tried to teach one to add so I said if you have 2 cookies and someone gives you 3 more how many would you have the kid said 8! Just thought that you would like to hear that
Maybe I was 7 or 8. It was a while back, so I can't remember. I didn't think through the age bit very much before I put 5 or 6 down. Basic math is important for prorgamming, but not calculus or anything real complex. About assembler, you're right, I thought it was daunting, but now that I'm learning it, it isn't too bad. It's a little bit tedious, but not really that mystic.
I'd agree with most and say that C++ would be a good choice. It's been awhile since I've looked anywhere online for help but I do remember there being tutorials, as well as program examples with source code at planetsourcecode.com. That includes C/C++ as well as other programming languages. I'd continue researching and looking online for basic beginner tutorials that explain syntax and move on to classic first programs like "Hello World." Above all, enjoy creating.
Yeah, coding is really fun. Granted its not as fun as modding, 3D modeling, or any of the other artistic stuff I do, but it really is an art all in its own. I've been thinking about switching my major form Optoelectronic Engineering to Computer Science (specifically game developement). Still debating though