Learning Java question
Hi, I have been reading "Head First Java" and it is very good so far, I just ordered "Java in a nutshell" to hopefully organize things a little more with my studies. But I was wondering what the general (or maybe even specific) process is of teaching yourself to become a master at Java or programming ? I don't know where to go once I finish the "Head First" books I got on java and java graphics, etc. I have a passion for games and I figured I would look up tutorials on text games, but I can't find any text game tutorials really, or very short ones with no code.
I was wondering what I should do exactly from going from reading my Java book, to programming code, to becoming a guru eventually. I need some kind of roadmap of study. The first part of my roadmap was to get these "Head First" Java books, but I don't know where to go after there. Please let me know if doing games to learn java is a bad idea, because there really isn't a market in my area for jobs making games, but I figured if I went with my passion, I would learn Java faster. Ok any guidance GREATLY appreciated. thank you. Derek:D
I just posted this question at java ranch as well because of no answer yet here. at this link
Learning Java question (Beginning Java forum at JavaRanch)
One thing i think is fairly safe to suggest is to keep reading more books. Head first java is great but there is a lot more you can learn. I wrote a lengthy post on books I recommend which will help you learn the actual languages. I will also suggest a book called c++ gaming(I'll provide a link momentarily) I suggest this book because it may give you some good ideas you can covert to java. Also, learning c++ is definitely not a bad thing.
Also, these tutorials may be helpful: http://www.thenewboston.com/?cat=35&pOpen=tutorial
Thank you so much everyone for your help. I was wondering one more thing. After I know the language pretty well, where do I get ideas to create programs? Like word problems for a math book, I was looking for some kind of book that has a ton of ideas for you to program, and help with the solution, or not even help with the solution, I just need some way of having ideas to make programs to master my skill. Please any more advice greatly appreciated. Thanks very much for replying. Derek:D
That is the true challenge. Learning the language is fairly simple, finding good things to re-enforce the skills is the hard part. I tend to find that most books give exercises which are too easy, and that leaves me with using my imagination. Which, admittedly isn't that great. I have a pretty good theoretical knowledge of most of java and only a good practical knowledge of most of java. I can't lie; a lot of stuff in java just seems natural, but switching to c++ seem very unfamiliar.
Practice as much as you can; there are a lot of good websites(project euler has some extremely hard questions(which are usually very math based), codingbat.com is good too)
Then use your imagination. Somethings I have done which weren't too hard are the following: A GUI based calculator that mimics the windows calculator, a simple notepad, a more advanced text editor, an address book.
Some other good things which I am about to start doing are the following: A simple RPG with a fairly sophisticated stat system and a decent amount of play time(this one can be made into a fairly large program. I don't know about you, but I love turn based RPG's so that's one thing I'd like to do in the future), another good thing could be a black jack game. Most of a black jack game would be easy, perhaps you could focus on having particularly smart AI. Poker, chess(which may be a bit too challenging for a beginner)
Whatever you can think of really is important. The ultimate thing is to keep reading. Don't stop, there is so much information out there. I am at the point where books I read are a bit boring because they cater to beginners, I am about to start reading some more advanced books(need money first :( ) There is also this list: Project list by Martyr2
If you can get some open source projects that may be helpful as well. It's incredible how huge a real project is. Someone here recently sent me an evaluator, and a compiler for reverse polish lisp and it's quite a lot of code broken up between a large amount of files.
Getting used to many files interacting can be helpful.
Thank you Sunde887, your replies are always the most helpful to me , wise and very knowledgeable. Thank you for those great examples. I guess I just have to think of all the games that are in existence, starting with scrabble for instance, or hang man, and program it. Thank you for all the links and book recommendations. I am glad you are up at my time 3am, haha. It was nice to get an answer after work. I love rpg's as well. Especially Everquest and Dungeons and Dragons. So I will probably program a text rpg eventually. I have a passion for games, and programming is so difficult, it is only a passion for it that will get a person beyond being only average at it. So I will stick with my passion which will get me through the hard times, as well as this forum. Thanks once again for your wise advice. Derek
haha, I was extremely addicted to Wow at one time. Replaced that addiction with programming, which I think is better. I am on these forums at lots of weird hours. Another good thing is to participate here. I don't always know the answer to someones question, but even when you don't know the answer you can push them in the right direction(tutorial links, debugging advice, etc). Everyone here is very friendly and will correct you if you are wrong(which helps you learn).
The more projects your imagination can think of the better. Programming is hard if you don't apply yourself. There is an incredible amount to learn and it can seem overwhelming at times. Stick with it though, I am still relatively new and already I understand an incredible amount and it's nice to have the understanding.
Also check out Thinking in Java, 3rd Edition, by Bruce Eckel. This is a thorough and descriptive book about Java. This book teaches you to think like a Java programmer. You can download this book for free from Bruce Eckel's web site.
Is that book from 2002? Will there be problems using that now?
Originally Posted by FlipPoker@gmail.com
It's up to the 4th edition now. But object-oriented concepts don't go obsolete. It's worth a look (besides, it's free).
Originally Posted by Durden
Thinking in Java is a fairly good book. I do think that for a beginner you might want to have a second book to read along side TIJ.