Programming...

<p>I've always had an interest in programming and I want to take it up more seriously now (not something to do in university or as a career, but more as a hobby).</p>

<p>I've already got a good grip of HTML (which in itself isn't very difficult to learn) and have a more basic knowledge of Java, but I don't really know where to start. If I want to learn programming languages such as Java and C++, then where do I begin? What should I learn first?</p>

<p>Also, at the moment, for Java tutorials, I'm using the Sun Microsystems tutorial, which is kinda boring. I'm learning a lot from it, but I was wondering if there are any other good sources I can use to learn Java on my own.</p>

<p>Thanks</p>

<p>Start by thinking of a cool project you want to build and then just learn the required programming as you go along. It's more fun that way and will help motivate you.</p>

<p>Or maybe just get a book (oftentimes tutorial books are a lot better than the documentation online and stuff).</p>

<p>Install a open-source IDE on your computer and experiment with it. Eclipse and NetBeans come to mind.</p>

<p>Borrow books from the library, start with the simpler ones. There's also a free Java book out there on the web, "Thinking in Java" (Eckel).</p>

<p>Visit Java and C++ forums on the internet (check out javaranch.com). </p>

<p>There's a java programming certification exam. Try and set as a goal taking that exam. Reviewing for it will teach you a lot. Tons of mock exams on the web you can use for practice. </p>

<p>Good luck.</p>

<p>learn C++ first, and then Java...</p>

<p>I would suggest you buy a book on game programming and work on creating a game engine. Also, I would recommend Java or a .NET language (There are/were free legal versions of .NET products available on the Microsoft website. I think they were refered to as "Express Editions".) C++ is good, of course, but I am not sure if it's worth the trouble-computers are so fast nowadays that it hardly matters what language you use.</p>

<p>From what I've read on other forums and from books you should c++ first, then Java.</p>

<p>Thanks for all the comments guys! It's really helpful! I already downloaded Eclipse some time ago.</p>

<p>chubeebo, thanks for the link to the forums, and I'll definitely check out that book. Out of curiosity, will this Java certification exam provide me with any particular qualification or credit if I pass? I'd probably still take it regardless, just to see how much I've improved.</p>

<p>Last thing - some people are saying that I should learn C++ first, and then Java. Is this the best way to go? Does anyone have experience learning in this order, or is there no "best" order in which to learn them?</p>

<p>I like the sound of the "thinking of a cool project you want to build and then just learn the required programming as you go along". It probably would make me more enthusiastic about learning, but hopefully I would still learn all the necessary skills to be able to take off independently with programming after that.</p>

<p>I think python is a very good beginner language.</p>

<p>There are plenty of free online tutorials that explain exactly how it works.</p>

<p>For instance: Thinking</a> in Python, Revision 0.1.2 (12/31/01) -- Incomplete and Unfinished</p>

<p>okay, the reason for C++ first and then Java, is that a basis in C++ will help you more when learning Java and will really give you a solid base. However, moving from Java to C++ is more difficult and confusing. You can still do it, but C++ then JAva is usually the best way to go.</p>

<p>Python, Perl, Ruby, and those are all very good programming languages to learn.</p>

<p>Learn C++ first. Or, actually C. Pointers FTW. Segfaults suck.
But not C#/Java, it goes after.</p>

<p>Start learning about various data structures and their applications. Then, learn how to create them. Examples: Linked Lists, BSTs are big ones you should learn.</p>

<p>This doesn't concentrate so much on the language syntax as it does of how to reference data and the inner workings of computers, how data is stored, etc.. This will help when you start building software that requires data storage/insertion.</p>

<p>Also, I learned Java first, then C++. It wasn't difficult at all.</p>

<p>
[quote]
C++ is good, of course, but I am not sure if it's worth the trouble-computers are so fast nowadays that it hardly matters what language you use.

[/quote]

C/C++ isn't just used for computers, though. It's used for simple electronics that still use slow processors (ex: GameBoy Advanced, at 16MHz). So, the use of C/C++ is so much broader than just personal computers.</p>

<p>Wassup Sci-Fry.</p>

<p>The java programming certification exam is sponsored by Sun, and of course, passing it makes you certified :) If you do end up applying for a java programming job, this is a really nice addition to your resume. It is usually not a requirement, but some employers do value that certification highly, because it does need a lot of studying and preparation to pass the exam. There is a fee, I don't know how much it is now, you can check the Sun site. Passing it also makes you eligible to take other, higher or more specific certifications (example: web components developer certification). Check out the mock exams on the internet, just google java certification mock exam. </p>

<p>Also, if you can borrow a book or web-read about object-oriented concepts, even better if it's not tied in to a specific programming language, do so. It helps in understanding the object-oriented stuff without getting in too much about language syntax.</p>

<p>Just my opinion: go ahead and learn Java first, before you go in to C++. I just think it's a better way of getting your feet wet. Learn the java language first, take the certification if you want, then move on to J2EE stuff (JSP's, servlets, MVC, design patterns, etc.)</p>

<p>Good luck and have fun.</p>

<p>Thanks so much for your help! I'm really eager to take this exam, not only for the qualification, but also for my own personal benefit. Do you think that a summer of fairly rigorous and productive studying (need to balance it in with my SAT prep and social life!) will be enough to be able to pass this exam, or will it require much more experience?</p>

<p>Does this book look like a good choice as a study guide for the exam (it's called "TigerTamer for Java 5: The Book"):
Sun</a> Certified Java 5 Programmers Exam Book JDK 1.5
Table of contents are here: <a href="http://www.examulator.com/tamer/content.pdf%5B/url%5D"&gt;http://www.examulator.com/tamer/content.pdf&lt;/a&gt;&lt;/p>

<p>Oh, and one last thing - do I need to sit this exam as a written exam, or is it done on a computer?</p>

<p>hey sci.</p>

<p>a summer of studying, depending on how many hours you do each day, i guess would be enough. </p>

<p>Here's some advice. </p>

<ul>
<li><p>I think the SAT prep (and the social life, of course) is more important, so make sure this does not take time away from your SAT prep (and social life, of course). :)</p></li>
<li><p>if you study for this, don't just read the book. Whatever code samples you review, see if you can try them out in your eclipse IDE. That way, you can see how it works. Put some of your own twists on the code to see how it behaves. Experiment. This helps you understand the language better. </p></li>
<li><p>when you start studying, keep it as a constant effort. Here's my experience: I studied for a couple of months, then stopped due to laziness of other things, and when I came back to studying, I forgot the stuff I finished studying and I had to start from the beginning again to remember it. It's like most things you study. If you're not using it, you tend to forget. So keep it constant. I learned from my mistake, and I just devoted at least an hour a day, without skipping for more than 2 days at a time, for about 3-4 months, then took the exam.</p></li>
<li><p>you should register in advance of the exam. I don't know how it is now, but when I took it, you have a year to take it once you're signed up for it. For good or bad, it kind of puts a deadline on you. </p></li>
<li><p>exhaust all the mock exams you can find on the web.</p></li>
</ul>

<p>Regarding the study guide you mentioned, can't say if it's good or not. You should first go to the Sun website and find out the scope of the exam. Print it out and when you research for books, make sure all the exam material is covered in the chapters of the book. The scope changes every now and then, and if you get an outdated book, it might not have all the stuff you need.</p>

<p>The exam is done on a computer, but you'll have to physically be at a Sun-affiliated testing center. When i took it, it was multiple choice, and i'm guessing it's still the same way. Some of the questions will ask you to choose what is wrong or missing with a particular piece of code, so that's why it's good to be actually coding and trying out programs in your eclipse, and understanding what it does. </p>

<p>good luck sci. Pass that exam, and frame that really cool certificate they'll send you. And be sure you put that accomplishment in your ec's. couldn't hurt, right? </p>

<p>ciao.</p>

<p>chubeebo, your help has been truly invaluable. I'll make sure to follow all your advice.</p>

<p>I found a book called "SCJP Exam for J2SE 5" that is specially designed for the exam, including practice questions, and covering all the material, and has some good ratings. It was published in 2006, so some of the stuff might be a bit outdated, but I'll go on the forums you linked to and ask there what people think of this book.</p>

<p>Thanks again :)</p>

<p>
[quote]
C/C++ isn't just used for computers, though. It's used for simple electronics that still use slow processors (ex: GameBoy Advanced, at 16MHz). So, the use of C/C++ is so much broader than just personal computers.

[/quote]

True. But since the OP was debating between Java and C++ I assumed he or she was talking strictly about computer programming not video game programming.</p>

<p>
[quote]
I like the sound of the "thinking of a cool project you want to build and then just learn the required programming as you go along". It probably would make me more enthusiastic about learning, but hopefully I would still learn all the necessary skills to be able to take off independently with programming after that.

[/quote]
</p>

<p>Yes! Do exactly this. I learned far, far more from coding some really cool programs with my friends (and which, uploaded to the internet, became semi-popular) than I could have learned from books in a comparable length of time.</p>

<p>It's like language. It's easier to become truly fluent in a language via immersion than via textbooks. The latter method is boring and too often ineffective.</p>

<p>Before I had begun, I knew very little about the internet, HTML, Javascript, XML, CSS, etc. Only a few months later, I was whizzing through code as though I were a CS major (well, not quite, but you get the point). It's simply more fun to make something neat, be successful at it, and learn in the process, than to force yourself to slog through pages of dry text. Don't worry at all about not being able to take off independently; you'll be able to do so with the best of them. Oh, and be sure to post cool stuff that you make to the internet and popular download sites; you'll be surprised at how many people will be willing to download interesting software.</p>

<p>Remember, if you forget something, you can always look it up, but you can't look up fluency.</p>

<p>It's a little different if you're studying for a test. That's not as much fun. Read a textbook for that... :(</p>