Java for Web Developers Courseware?
brentlaminack asks: "I've been asked by a local college continuing education department to put together a series of professional development courses on web programming in Java. Clearly, there are lots of books out there on Java, but what would you recommend for a professional development course? The material should have good examples, meaningful exercises, (an underrated and very difficult part of putting together courses) and not be 2000 pages or $500 per copy. The material should also cover some Object Oriented architecture and design patterns. As to which web framework... I'm open to suggestions on that as well. After all the smoke clears, I'll try to summarize the responses on my journal."
/bin/false
I recommend Fundamentals of OOP and Data Structures in Java published by Cambridge Unviersity Press. It is used in an introductory course on classial data structures used in Java. This book was (and may still be) used in OOP introductory classes utilizing Java instead of the historical use of Pascal.
I found it to be a good learning tool. While I have met one of the authors, I am in no way affliated with him or the book. This is just my pesonal opinion.
"Saying that Linux is inferior to Windows because more people use Windows is like saying that all restaurants are inferi
you'll be teaching more about XML than java itself. do your self a favor and convince your superiors to NOT do this in java. in fact, as much as I cringe at the point i'm going to make, do it in .NET. It'd be nice to teach it in something like Django, or Rails, but lets be honest here, no one would go for it. They might go for .NET.
I write code.
The "correct" method is:
1. Teach them how to program and read documentation.
2. Make them catch up on the relevant RFCs.
3. Give them the servlet JavaDocs.
This idea of specialized training in programming had got to go. If they know how to program and read standards, that's all they need to know in order to grasp the entire concept.
Javascript + Nintendo DSi = DSiCade
The Head First series from O'Reilly make for good textbooks, if only for the "workbook" exercises and discussion questions.
Also, any Java professional development course should include preparation for the Java Sun Certified Programmer exam. I recommend the McGraw Hill/Osbourne Guide - helped me score a 98%.
You'd have better luck teaching psych majors quantum mechanics.
1.) Does it really have to be Java? I know that's what they asked for, but always be aware of the alternatives. If you think Java sucks for web development, tell them so up front, it'll save you embarassment when some kid says "I had a few minutes of free time at the end of the assignment, so I redid it in Rails."
2.) Whatever you end up doing -- and I know some professors that don't use a book at all, by the way -- make sure at least one of the development environments you use is entirely free (as in beer). Open source is better, but at the very least, they should be free. The last thing you want to do to them is add software licensing to the long list of expenses they'll face coming out of college. Big, expensive tools are fine, so long as they can at least cope with free products, even if the free ones are inferior.
Don't thank God, thank a doctor!
http://www.netbeans.org/
You can pretty much install it and start working on JSP (assuming that's a focus you want) right out of the box. Starts it's own little instance of Tomcat, packages things for you, etc.
It rocks for Swing GUIs (Think Visual-Basic-esque creation) and general Java work too.
OCW@MIT: Java Preparationa nd-Computer-Science/6-092January--IAP--2006/Course Home/index.htm
a nd-Computer-Science/6-171Fall2003/CourseHome/index .htm
e riesid=1906978271
http://ocw.mit.edu/OcwWeb/Electrical-Engineering-
OCW@MIT: Software Engineering for Web Applications
http://ocw.mit.edu/OcwWeb/Electrical-Engineering-
Webcast@Berkeley: With real video and/or MP3 : Data Structures
http://webcast.berkeley.edu/courses/archive.php?s
Web development using XML:
http://cscie153.dce.harvard.edu/
Assuming that the students already have a somewhat firm knowledge of Java, then all they need to be taught is how to set up a Tomcat server and how a tomcat server works (paths and such). Then simply refer them to the HttpServlet class. I think learning how the server runs and how it handles files is a lot more difficult than writing the actual code.
This might seem a highly unusual source to make the most of the first hour on a Java course, but I've seen this appendix to a book that is actually on Operating System Concepts provide a better introduction (e.g. for several students on a university "101" course) to anyone who has ever programmed anything than tons of "heavy" and expensive books. They'll have to read them, too, but afterwards (i.e. having been fed this little link to a free PDF gem in a footnote to the course description already)...
Look at SafariU. You can create custom books from O'Reilly and several other publishers.
Setting his threshold to 5, Sparky eliminated most of the trolls on /.
Security is a must for Web developers. There is a set of typical mistakes that are frequently made in Web applications, and most of them are not fixed automagically by using Java. Fortunately plenty of resources are available on the Net:
Make sure your developers read and understand this.
http://erichsieht.wordpress.com/category/english/
1. Teach them how to program and read documentation.
2. Make them catch up on the relevant RFCs.
3. Give them the servlet JavaDocs.
Java - like most OO environments - is much more than a programming language, besides learning best programming practices, you need to learn the 'libraries'. On top of that, lots of (open source) frameworks exist, in particular when it comes to writing web-apps. And to complicate even further, some of these frameworks can interact but overlap with their capabilities...
It's even hard for an experienced professional to pick the best options available, and the "best of breed" changes every few months.
To illustrate, the first things that I think people should have a conceptual understanding about in order to make an informed decision for the UI implementation:
For my current project's UI I'll probably go for a combination of struts and Custom Tag Libraries to leverage reuse.
You might like to consider Stripes as the web framework for the course. One individual recently switched to using it to teach a masters level course in Java web development (at a university in Nice, France).
On the plus side it:
- Has comprehensive and easy to follow documentation
- Is much simpler to grasp for new developers than Struts, JSF etc.
- Is more OO than most MVC web frameworks, without forcing a component model on you
- Doesn't require gobs of XML (or other) configuration
Stripes:Making Java web development easy like it should be.
Java is for sissies
There are places where the networks are not touching,and there are places where they are-Boeing's Lori Gunter
Personally, I thought Java for the Web with Servlets, JSP, and EJB by Budi Kurniawan, New Riders publishing, was really good.
It goes through J2EE systematically, is clear, and has good examples.
I wouldn't introduce frameworks of any kind until you've done the basics of J2EE. Otherwise, you're introducing people to a solution before they know what the problem is.
Also, most frameworks seem to me to be not worth (a) the pain of learning them and (b) the added dependency risks. They do things which simply aren't that hard to do.
Struts is my favorite example. Visit the web site and they throw a ton of complex crap at you, without ever answering the simple question "What compelling problems does this solve?"
GCHQ Quantum Insert installed. If only our tongues were made of glass, how much more careful we would be when we speak
Having just been through this with a friend of mine, who has decades of OO experience in desktop programming, beware of prerequisites that you don't realize they need:
If you get any one of these wrong, your web app is doomed to failure. These are tough concepts for some, but they aren't optional.
Marty Hall's materials and courses are fantastic. Check out http://www.apl.jhu.edu/~hall/
Check out this Flash demo for Java Studio Creator 2.1.