As I plan to switch my career to a 100% web services development company(using open source Java technologies), I need to build a thorough knowledge in the foundation concepts and then related technologies. But I'm pretty confused by the thousands of jargon and technologies. What study/development plan would you suggest for a novice? A list of up-to-date books,articles,tutorials would be greatly appreciated.
- Learn programming in machine code
- Learn programming in assembler
- Same in non-structured language like Fortran
- Same in structured language like C, Pascal
- Same in Object Oriented language like C++, Java, Delphi
- At this spot one might not need this plan anymore because webservices may become obsolete, but if to continue, goto step 7
- Learn abstract classes
- Learn pure abstract classes
- Learn interfaces
- Now it is possible to start understanding cross-language interactions like JNI, COM
- Briefly learn networks, client/server, RPC, protocols, remoting
- Learn in depth one of remoting technologies like Corba, DCOM or XML over TCP
- Learn in depth http, XML, XSD, WSDL
- Implement simple client of Web Server
- Having overall combined knowledge one can consider self able to see some value in WebServices
- Implement few SOAP clients, consuming existing web services. Become comfortable being a WS user
- Start learning service side of WebServices starting with unsecured WebService
- Learn compliance verification tools
- Learn WebServices
- Done
Assuming you want "Java web services" (question is tagged with java) and assuming you already know Java and understand basic OO concepts like inheritance/polymorphism and the need for abstract classes/interfaces, start with a book preferably this.
There are many code examples. Once you have worked the basics out, check out security, performance, RESTful web services (don't get nervous about terminologies, they are mostly fancy terms for most "common-sense" stuff). Keep in mind, if you had "common sense" most of these should make sense (once you wiki or google them up).
Finally if you are someone like me who only reads if she has to clear an exam then take up the Sun certification for Web services. I know many experts scoff at this idea saying "it is not useful", I think if you are a beginner and if you clear this you will atleast know that have done something. (This is not to be confused with "Certification makes a better programmer" which can be debatable)
You will have a lot of learning to do. First of all, if you want to do ANYTHING in the Java world, you need to master Java and the standard runtime library.
A good resource for learning this is the Java Tutorial. http://java.sun.com/docs/books/tutorial/getStarted/index.html
Take particular notice of anything related to sockets, as these are essential to web services.
Then you can start considering how to do servlets, web applications and web applications providing web services.
I am not sure if you are an IT guy or not. I assume you are. Here are my tips to start-off learning web services: - learn HTML, XML - learn OOP language like Java (core Java should be fine) - learn SOAP - learn/install tomcat, AXIS2
If you are pretty new to IT field, i would recommend you to reconsider your decision to learn web services, since it will take at least an year for you to be there. Take baby steps and try to learn OOP language first. Then decide what to do next. All the best!!