As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 10 years ago.
Ok, so I've decided that I want to learn Java. It's my first more hardcore coding language, because the only other coding I've done is javascript (And I'm still relatively new to that). What I need is a good tutorial, that will assume you have no previous experience in java. I figured that I would take some web tutorials before I bought a book. This is the tutorial I found. It's a kids one, and I'm only 12, so I figured this would be good for me. My only concern about this tutorial is that it's assuming i'm in older software like windows '98. I'm not sure if I should be concerned that this is outdated or not. Additionally, I would love any other suggestions for java tutorials on windows, as I have to admit that it currently seems quite intimidating :P. I appreciate any feedback. Thanks.
I'm not sure if I should be concerned that this is outdated or not...
The age of the tutorial would be my first concern, and Java Programming for Kids, Parents, and Grandparents is copyright 2004. That's a decent year for a starter Java tutorial, since it will be compatible with the latest version of Java (it just won't cover anything brand new, but you won't need any of that when you're just starting out).
Also, the references to Windows 98 in the document make it sound like they expect the reader to have a newer operating system. Case in point, on page 18 of the PDF we see this:
If you have an old Windows 98 computer...
So the document is good for anyone with Windows 98, but they assume that Windows 98 is an old computer (the author gives special advice for Win98 users that nobody else needs). The document also references Windows XP, e.g. when the author provides a screenshot from his Windows XP laptop, so the author isn't assuming all readers are using Windows 98.
Ultimately, I wouldn't worry about the age of the document you're reading or references to Windows 98. If it's helping you, keep reading. :)
As for other Java tutorials, I'll defer to the other answers here. Good luck.
When I learned java I used Central Connecticut University's introductory course. It tends to go slow enough for you to understand but also fast enough to where you don't get bored.
Be sure to do the exercises at the end of the chapters!
Personally, I like the Oracle/Sun tutorials.
Just stay away from the enterprise stuff for now.
*edit: I would like to add that one of the best ways of learning a new language is to try and recreate something simple in that language. This could be a little server which just tells you the current time, a simple tic-tac-toe game, etc.
I learn't most of the basics though TheNewBoston. It was clear and was separated into multiple sections. They are video tutorials, I did use more resources to supplement it later on.
Link: http://thenewboston.org/list.php?cat=31
It's a pretty good kid's tutorial, even if it is a little outdated. If you get bored with that book and are feeling a little adventurous, I recommend trying Building Skills in Object-Oriented Design. The book goes through a complete design of Roulette, Craps and Blackjack. Three games that are complex enough that they can't be trivially designed. Oracle/Sun tutorials are also good, like Steven suggested.
Oracle actually has a pretty good tutorial on their site (for starting out). I haven't completely gone through their graphics tutorials yet, but it does a pretty good job at covering all the basics, including beginner programming fundamentals for anyone who might be learning it as a first language.
http://docs.oracle.com/javase/tutorial/
If you do decide to purchase a book, I have heard good things about the following:
http://www.amazon.com/Java-How-to-Program/dp/0273759760/
Related
As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 11 years ago.
I am looking for a book which teaches Java very fast. Basically I am a C++ programmer and do not need to know each and every aspect of programming. I am learning java for android apps development. A lot of books like thinking in Java, learning java and others suggested are pretty big and I want something small to get me going.
A website like http://www.cplusplus.com/doc/tutorial/ for java also can be helpful. please answer ASAP.
I love to think of the javadoc as the equivalent of cplusplus.com. The comments on standard classes are much more detailed than stl comments are (and the code is a lot easier to read, too)
Personally I'd recommend just reading a tiny bit of literature and then using an IDE that provides really quick access to code and comments for any callable method (almost all do if you link sources and javadoc). Usually they provide greate usage exmaples and the code itself teaches best practices and proper design.
Unlinke for C / C++ I don't think using an IDE is much of a problem. Javac hides everything anyway and there is not much to know about something like linking unless you use a lot of libraries and enter "jar hell". But even then there is nothing to be learned by compiling from the shell that might help.
Build scripts to use will most probably ant or maven and both are a lot more high-level than Makefiles. While I'd really recommend never to rely on an IDE for C++, I'd totally do so for java.
What about Beginning Android 3 (http://www.apress.com/9781430232971)
It has 612 Pages but it really focuses on Android development and not really on programming basics.
Check the Table of Contents on that page and you will see.
Head First Java is a great book and very easy to read and understand. It got lots of graphics to support the reading. I find it perfect for beginners.
For pure java - Thinking in java (its nicely written but quite big (+1000pages))
For Android check notepad tutorial on official android page its good for beggining http://developer.android.com/resources/tutorials/notepad/index.html
As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 10 years ago.
I need to create a Java-based platformer game for a high school project (not computer science related), and I want to spend as little time on technical stuff as possible.
I'm already experienced in Java, and I already have most of the gameplay, graphics, etc. All I need to do is code it. I've looked and I'm considering one of two options that do not involving coding a game from scratch:
Copy an existing Java platformer (best option, but I can't find an open source Java platformer)
Use a Java game engine to avoid coding from scratch. I've looked at JGame but I'm not sure if it's the best bet for a platformer.
I am in the exact same boat as you. There just aren't enough (free, opensource) resources around to help start Java game developement. http://www3.ntu.edu.sg/home/ehchua/programming/java/J8d_Game_Framework.html
I think this is one of the best tutorials I have seen around. It basically gives you a template for the game.
There's a book called "Killer Game Programming in Java" that has an example of a 2D platform game using the Java 2D Graphics API. I think the source code for the book is available on the author's site here: http://fivedots.coe.psu.ac.th/~ad/jg/
It's a decent book, but the code examples are a little messy. It might give you enough to get started though.
Developing Games in Java is a great book, and the first half of it goes in detail about creating a 2D platformer game. Overall I found the book's explanation to be excellent, and the full game is on the CD so you could mod it to fit your needs. [edit: wait a second... it doesn't come with a CD... the source is on the website, see below!]
I don't feel like it's a super fully-developed platformer; it feels more like a demo. But you could use the game as a starting point and add anything else you need. And the code, being a book example project, is well documented and commented. It has a level format too, so if you find it fits all your needs you should be able to just drop in your images and make your own level files, and then load them in-game.
By the way, the rest of the book dives into creating a software 3D engine from scratch using Java 2D. It's really awesome. Just a bit of a bonus after this project is done, eh?
Also a downside, the book is now almost 7 years old. It uses Java 1.4 though, and the book website is still online, so I'd say it's still a viable resource! In fact, it looks like the book website has a demo of the game AND all of the source code, so you might not even need to buy the book. Go check it out!
As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 12 years ago.
I'm working for small company, which operates in the automation industry.
The boss hired me because he wants to sell/give some desktop applications to his
current costumers.
He imposes me to use the Netbeans Platform (a generic desktop application framework).
A software engineer friend of his advised him to choose this framework.
At the moment I created 3 desktop applications with Netbeans Platform.
I like Netbeans Platfom. I really take advantage of modularity, Window System and Lookup.
Unfortunately I'm frustrated to known that I can do the same works with Python and PyQt in a fraction of time.
I've already illustrated to my boss the main advantages of Python, but he doesn't like the
idea to use a language that he never heared of it.
I'm the only programmer who codes desktop applications. And except the framework imposition, I'm free to use whatever I want.
I'm looking for good motivations to convince him to leave Netbeans Platform for Python/PyQt.
P.S: My english is bad, sorry.
If your selling skills are not working in discussion format I highly suggest that you document it. Some managers/bosses really respond well to this.
Make a matrix of all the metrics that you yourself use to grade the two frameworks (I leave the level of objectivity to you there: for example if objective it should analyze the cost of transition and the loss of institutional experience; but it might not be high).
Finally, send it by e-mail and viola you have:
made a report/analysis of the situation providing options for improvement
this shows that you are thinking towards future and that you show initiative
EDIT:
You can also ask your boss to show your analysis to his friend if he trust his friend that much, but ask for a written counter-analysis so that you can address the critique.
It is a good thing to do it openly and document the decision process well, since ultimately, if your suggestion is accepted, you will share responsibility for the decision.
The problem is that development time is usually nothing compared to maintenance. Who cares if it takes two days instead of four if the app has a 1-5 year lifetime?
You'll have to convince him that if you get hit by a truck or leave the company (perhaps to work for somebody who uses Python exclusively) that he won't be left in the lurch with a bunch of applications that nobody else knows and can't maintain or upgrade.
The basic problem here is that your non-technical boss is getting conflicting advice from you and from the friend who advised him in the first place. If you want him to take your advice seriously you need to prove that your advice is likely to be trustworthy. And that will only come with taking the lead and being successful with significant projects in the company. Right now, you haven't earned his confidence.
The other thing to consider is how your preferences mesh with the company's objectives. For instance, you want to be able to write code fast. But the boss / the company needs code that is going to be reliable and maintainable ... if you decide to take another position. He doesn't want to be left in the awkward situation where the company is contractually committed to deliver code that doesn't really work properly, and the only person who understands it has left.
First, results speak for themselves: if you can piece together another version of one of your applications in pyqt, and tell him how long it took, it might be motivation enough.
Or, next time you're starting a project, you could prototype four or five different versions of the interface in pyqt in the morning, ask his feedback after lunch, and then say, "if I keep going on these, it'll be done in two days; if I redo this in netbeans, it'll be done in four."
And as for the "never heard of it", feel free to point out that Google uses python extensively, and even hired many of the python developers.
Some people will tell you to try to convince your boss verbally. Others will tell you to document the time savings you think you can make. My opinion is that you just go ahead and do it. Do it in your own time if you strongly believe its in your best interests.
I'm yet to meet a software manager who turned down a working piece of software when it comes in on time and under budget. This is by far the best method of persuasion I've used in my career. Its also a great way to show you have initiative. Just be prepared to work for free if it doesnt work out.
Have you emphasised the point of the lower development time. Any person that doesn't want a shorter turn around time is an idiot. This is the only main issue i can think for the change. Or what you could do is develop it on the side and when you have errors say this is what i have been doing in my spare time(have a working copy written in python).
Perhaphs showing him
a)Time spent in developing in Python and Java
b)lines of code in Python and Java
with these two metrics maybe you can make your case stronger
I would guess a lot, in terms of risk management, would depend on the separation/isolation of the various softwares you develop, and their life cycle.
If you don't need to further a central set of libraries, or have (or can develop) Python bindings for those, and the projects are relatively self contained, say a turn around of two to six months, you could give him a quote for a project in Java that is reasonable and he's familiar with (to make sure it doesn't appear artificially inflated). Then give a much reduced quote for the same in py+pyQt, and see if you can get him to invest on your advice.
Without tangible evidence coming from inside that a change in route will bring benefit the more management and economics savvy people who are technically ignorant will not buy into a new platform when the old one never prevented from realizing and selling.
Without a decent assessment of why he doesn't want to switch platform and what he considers risks it's kinda hard to give more pertinent advice.
Just use Netbeans as an IDE and he'll never notice :P
Speaking more seriously: a side by side comparison of strong and weak points behind each of technologies will certianly be more convincing. Just don't cheat too much in favor of Python ;)
As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 11 years ago.
When I use Java applets, they tend to be slow, don't integrate very well with the browser environment and often require a few click throughs ("No, I don't want to give this unsigned application free reign of my hard disk").
So, I'm curious.
Are these problems insurmountable? Are there Java applets out there which integrate well with the browser experience (in, for example, the way a well-designed Flash application does?) Can you point out any examples of really "nice" Java applets?
I'm asking this because I want to know if I should be taking a more serious look at Java-in-the-browser, or if Flash will remain dominant for the foreseeable future.
Edit: Unintentional flame bait has been removed. Sorry for any offence caused.
The Facebook asynchronous image uploader is a Java applet.
Update: Apparently not developed in house at Facebook. This seems to be the product.
Amendment:
Now that the question has been updated to be a bit more concise, I thought I'd add more to this answer.
This kind of problem, a mass image uploader (in this case), is the kind perfectly solved by a Java applet. Why?
It uses native UI elements, so users are not confused, or have to learn a new interface.
It can save massive amounts of bandwidth and overhead, because image transformations, such as resizing and cropping, can take place on the client side, rather than the server.
Write once, deploy everywhere (almost, sorta).
Visual Thesaurus is the coolest / best applet I know of.
Check out PulpCore. A really awesome Java applet framework:
http://www.interactivepulp.com/
Performance for it seems pretty amazing too if you check it out on bubblemark.com
Some of Ken Perlin's applets are beautiful.
see http://mrl.nyu.edu/~perlin/
eg:
http://mrl.nyu.edu/~perlin/experiments/unicycle/
http://mrl.nyu.edu/~perlin/homepage2006/simplex_noise/index.html
http://mrl.nyu.edu/~perlin/experiments/orange/
(...)
Simple floor plan designing with java applet here. Works much faster than dragonfly.autodesk.com or floorplanner.com (both are flash applications).
A few things...
Some game sites, like popcap.com, use Java applets for their games, and they look pretty good and are very usable.
As far as "why is that button cropped?" - that's probably a layout manager issue. See my article on layout managers, in particular:
http://java.sun.com/developer/onlineTraining/GUI/AWTLayoutMgr/shortcourse.html#whyNeed
There are many nice looking applets created with Processing (which is basically Java with some fancy graphics libraries included).
Just take a look at this visualization.
(source: zumkuckuck.com)
In high school I used to play a ton of Yahoo Games and I'm pretty sure those are all java applets. It looks like Yahoo have updated their site since I went there last but you can still find all of the old games here.
The MMORPG Runescape uses a Java applet as a client, and works very nicely, although the graphics aren't nearly as good as other games of the type I've seen. Jagex, the publishers, also have a game site called Funorb.
Another game which is in Java (though not an applet) is Puzzle Pirates. It's not exactly beautiful but it's cute and it's very addictive. Also, it's very speedy and smooth (which has been a knock against Java applets).
Java applets are like flash scripts - They can be used for good, but are often used for evil (e.g., annoying banners). IMHO the main reason that they didn't catch on is that they require tended to require too much skill and used AWT/Swing which produces worse UIs than what a designer with little programming skills could achieve with flash.
I would say that yes, they still exist, but more for business goals that don't require pretty UIs. For example, A lot of web-based statistics calculation tools are based on nice applets.
It's certainly possible. Java2D (the standard graphics component in Java) is capable of rendering beautiful stuff. A big problem is that the default Swing Look and Feel is ugly. I believe Java 7 will have a better one, but there are also very beautiful third party ones such as Substance. I've personally developed a small Java applet game which, apart from the jagged text in the intro screen (which is a bitmap, not rendered text) is visually indistinguishable from a Flash game.
My mom is addicted to the casual gaming at pogo.com, and I've gotta say, they've done an amazing job at fun, easy to learn, nontraditional games that look perfect. I'd love to see their code, honestly.
As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 10 years ago.
I am a registered Student at a university in Switzerland, thus I know that programming is part of Electrotechnik (electrical engineering), the field I am going to take.
How can I learn programming with Java with easiest way, and without help by others?
I tried it through learning books, but I found it not easy, especially to do it alone.
For someone that knows nothing about programming, just reading tutorials will not do it for you. It would be good to download an editor and actually write the programs with any tutorial you use.
The thing about programming, the more you actually write the better you get at it.
Grüß, Thomas, if you haven't learned any programming it may be a little hard to start, but the Sun Java Tutorials are a good place to start.
Try the Java Tutorial. It will walk you through actual examples, with code that you can try out in various IDEs. I usually find that easier than reading a book.
Head First Java is good, if you can get past the style. Some people like it, others hate it (I haven't found anywhere in between). The funny part is the ones that like the style are the people who have more experience I find (not 100% true) but the book is aimed at those with little experience.
If you like the style it is a good book, if you hate the style, there are others, just let use know (as others have asked), are you 100% new to programming and if not what other languages do you know. Also what part(s) of the langauge are you having trouble with in particular?
In fact you have to learn two things, programming and Java.
I would recommend the book thinking in Java (Bruce Eckel), the current version is the 4th edition but you can download the 3th revision for free...
What books have you tried so far? When I started someone recommended to me "Sprechen Sie Java?" my Hanspeter Mössenböck which actually worked pretty well for me back then (having written not a single line of code before starting with Computer Science).
You could try a free course at Javapassion.
Another option for you if want to get a jump on your studies, you could go through the open courseware from M.I.T. For example, the Intro to Java Course.
Try the FREE book Java Programming for Kids, Parents and Grandparents by Yakov Fain
Get yourself set up and complete a "Hello World" tutorial, there are so many all over the next.
Once you know you can compile a Java program and view the output. Think of a small program. It might something as simple as converting Celcius to Fahrenheit and vice versa. Build that, using Google and whatever other resources you need to to find what you need to do. Once you get that running, think of something more complicated. Build that, keep doing this for a little while.
By building real apps, that give you something you want you will be much more motivated and you will understand what you are doing better because all the curly details haven't been solved for you the way they are in online or book tutorials. You may not use the most elegant design but you will learn more.
However at some point you will need to start to delve into books about Object Oriented architecture etc. but for now just jump in and force your brain to learn.
Another vote for actually doing some coding here. If you don't like the exercises in books then try programming something you're interested in personally. In my quest to learn C# I'm writing a program to correlate and display photos and GPS tracks and as a spin-off I'm trying to write a 3D graph component in WPF. Having a real problem I'm actually interested in makes a big difference to me, you can get a bit tired of implementations of bank account classes and vehicles.
Take a look at BlueJ. It was designed to teach Java
I recommend the Stanford course CS106A, which is available for free to download, and can also be found on iTunes. It's a great course, and the teacher is very enthusiastic:
http://www.stanford.edu/class/cs106a/
I agree with others that the Sun tutorials and the Thinking in Java free book are excellent, however, I don't think they can replace a video for someone completely new to the field.