this is my first question on stack so if i missed tag or did something wrong please have understanding.
I would like to start building web applications (or web services).
I have following knowledge:
Java programming more than basic but dont think i m really intermediate
Html basics
Css basics
I started trying java spring, and although it has a lot of small piece tutorials which i understand when looking the code, i still have no idea how would i build my own web application
My question would be: how to dive into this kind of development?
Are there any good tutorials that show builsing a fully intereactive app or something simmilar because i feel like running through cornfield right now, and stumbling on different parts of knowledge that is partialy useful to me..
I would be really gratefull on any tips on what steps to take and what to learn.
You can go through guides on Spring's site https://spring.io/.
For each term that is not familiar, you can find all the documentation written by the Spring team.
Also it is good for you to start learning Hibernate at the same time.
There are good video tutorials but I prefer books and articles, for example: http://docs.spring.io/spring/docs/current/spring-framework-reference/html/mvc.html
Related
I am fairly new to the programming world . I work with web applications in Java . I am learning struts2 / hibernate / spring .
I am thinking , instead of reading hibernate from the tutorials , it's good to read the complete source code . Basically I am planning to learn the complete framework code , to understand how caching is implemented , how transactions are handled , how multiple threads are handled etc.
Have anyone of you done this kind of thing before ? My intention is , if we know one particular framework in and out , then it will be very helpful for designing applications .
The best way is the simplest way: Build something! Start small, but treat it like an incremental, iterative exercise and add features that cover all the aspects of the framework you want to cover. Peruse as many books, blogs, and Stack Overflow entries as possible to learn more from people who've actually used the framework before and apply what you learn. It's the best way to learn a full stack framework!
You learn a framework and programming like you learn to do most anything else well: spend a lot of time on it. See this question and its answers and its duplicates. Keep reading, learning and experimenting. Start to build small projects. You're on the right track, keep at it.
Diving straight in framework code isn't a great starting point. Here is how you should progress:
Think of a project you'd like to work
on related to the framework i.e.
project idea
Failing to satisfy point
1, just follow the examples in the
official documentation and try to get
your hands wet with things
Help out
folks on the IRC/forums since this
would surely force you to dive
deeper than the normal stuff
Look
into bug reports and try to make
sense of things. Can you understand
the problem in consideration? If no,
you might want to look into the
"developers getting started guide"
for that project.
But, I'd just like to point out that though knowing a framework inside out from a code view point might be a nice thing, it certainly isn't a requirement to effectively use a framework. That's the entire point of using a framework (apart from reinventing the wheel that is :>).
For beginning understanding on how a framework solves your problem, you often need an example that is much less than the fully featured framework. Since all of your examples cover web presentation to differing degrees, I suggest "Bitter Java" by Bruce Tate. It does an excellent example of presenting a very poorly written web application, and then reworking it to improve it. It will give you a good understanding of the MV2 architecture, on which most modern frameworks are based.
The frameworks are merely the "improved versions" made reusable by asking you to provide your "plug-in content components".
This is more a question of pros/cons between PHP and JAVA.
Iv been doing research, and iv narrowed it down to those two.
And in consideration, id like to go into mobile app dev...So thats +1 for Java.
Time taken to learn the language is not an issue...Just would like to know which is the most effective between the two languages mentioned above.
And on a slight note. Can Javascript work with Java? And what is the real advantage of that?
All answers are appreciated, thanks in advance.
I'm sorry, but PHP and Java are not the only choices. Ruby on Rails and Python's Django framework are both excellent tools for web development. While I haven't used it, Groovy's Grails framework is also very highly reviewed (largely by ex Java programmers). In certain (admittedly obscure) circumstances it's even advisable to do something off the wall like write a CGI program in C. It all depends on what you're trying to do.
Mobile app dev shouldn't influence your choice here, because no matter what web framework you're working with a mobile app is a whole new ball of wax.
So, here's the deal: asking people to compare PHP and Java really won't get you any meaningful answers -- you don't have the background necessary to understand what we'll say. You really need to figure out what you're trying to do before you choose your tool. It's like saying "I'm thinking about building a house, should I use a screwdriver or a hammer?" Here is what I would advise:
Go learn to program. Pretty much any language will do, but I'd suggest something nice like Python or Ruby. Spend a few months getting comfortable with programming first.
Pick a project. Make it something simple. When you know what your project is, pick a tool to use to complete your project. This may involve asking another SO question.
Rinse and repeat. Complete many projects. Once you've finished 5 or 10 web projects you'll be in a position to compare different tools. The more tools you use, the better. I'd suggest you do one in Ruby on Rails, one in PHP, one in Django (a python framework), and maybe even one in Java with JSP.
Once you've got that base of experience come back and ask this question again. You'll actually be equipped to understand the answers. Of course, once you've got that experience you won't need to ask the question because you'll already know the answer.
The one you know.
Some feedback:
Mobile app dev is not necessarily just web development.
Javascript is the language of choice on the web browser and works with PHP, Java, etc. on the server.
In general, one language is not more effective than another.
Seriously, judging by your post, I would advise you to start learning PHP and Javascript.
You already have a web browser so you can start writing javascript now.
As for PHP just install XAMPP from http://www.apachefriends.org/en/xampp.html and after a double click you'll be ready for web development.
After learning what its all about you'll be able to then check out Java and see if it is more effective in what you are trying to do.
Your question really indicate you need to learn alot about web development and programming in general, so I could answer your question but.. I'd recomend you go read up a little.
And in consideration, id like to go
into mobile app dev...So thats +1 for
Java.
How is that +1 for Java? We're talking about server-side languages.. you're not running your server off a phone are you? Sure, you can use Java to build apps in addition to running your website, but that's a different story.
Time taken to learn the language is
not an issue...Just would like to know
which is the most profitable at the
end of all the training.
Neither language will make your site more profitable, but you may be in higher demand with different companies depending on what you know.
And on a slight note. Can Javascript
work with Java? And what is the real
advantage of that?
Well... yes, but that's almost a nonsensical question. You use Java or PHP to produce the HTML that gets sent to the client, and then your JavaScript manipulates that. It's completely unrelated to what language you use server-side.
#comment: I can't really say which is more worth learning. I suppose Java is more versatile in that it has more applications outside the web. PHP is supported by more web-servers though (AFAIK), so you won't have trouble if you need to work on a different server.
I can't fairly recommend one over the other though. I've only used PHP for web, and Java for non-web. I like PHP because it's easy to pickup, easy to use, and all sorts of stuff is built into the language without any includes or anything. Has a big community, so there's lots of scripts you can download. One might argue that it's also a mess of a language, but as long as you aren't all uppity about that sort of thing, it's not really a problem. Java OTH... I don't know. I'm not a Java keener, that's all I'll say :)
Most of the answers here should be able to direct you towards your answer though I would just like to say if you are going to learn a programming language to make Web Apps learn Java, not because this will be the best tool for the job, each job is different, but knowing a full fledged language you will be able to quickly adapt to other languages.
You don't learn a language, you learn the concepts behind programming, then apply them to different languages.
I think you need to outline the context of your question. For example, if you are looking to get a job in IT, then the language that is most asked for in job ads is the one you want. If on the other hand, you have an application in mind that you would like to write, then you need to tell people (without giving away the details) what type of application it is so that they can tell you the most suitable languages/APIs to for that area.
But remember this - there is no such thing as a super programming language that is the best for everything. Each language is suitable for a range of tasks in a range of contexts, and is usually awful for everything else. Without the context of where the language will be used, no-one can tell you which is better.
Stop trying to kill two birds with one stone. There are different tools for different tasks. You can write mobile apps with Java but you can't write web apps with it. You'll have to use a server-side programming language such as PHP, Ruby on Rails, Django (Python), etc.
I'm trying to learn web development in Java and, from what I have seen so far, I think it's easy to get lost in the endless numbers of libraries, frameworks, techniques available.
Too many books focus on some specific component (Spring, Hibernate, JSP, ...) and give only "hello world" examples.
I'm looking for books or web resources that let you understand the whole picture and provide "real world" examples, including several frameworks, techniques, in the same example.
Can you recommend any book?
Thanks!
I like POJOs in action because (besides is kinda old) it explains clearly the approach of the emerging applications using POJOs and therefore Spring, Hibernate and many other popular frameworks
I think it would help to narrow your scope a bit. If you can list some requirements to measure against, it will be much easier to look for a solution and start learning. As you mentioned, its such a big space, it would be very hard to try to learn without some focus.
The trouble is that, as you point out, there are so many frameworks that any survey worthy of the name would (at best) give you nothing more than a list of trivial examples.
I'd suggest building a basic spring website with a simple web container (tomcat). It's probably the most popular thing and will give you a good grounding on what follows. After that the next thing you'd want to add would be hibernate.
If you can get a basic web form up and running based on spring and hibernate you'll have a good grounding to expand on. After that you could look at some of the many GUI frameworks, but that's certainly a good start.
Java Web development is a very huge field. I have read several books on the topic, but find this one very helpful for the basics of Java web development in general:
Bryan Basham: "Head First Servlets and JSP: Passing the Sun Certified Web Component Developer Exam" (Paperback)
It covers the foundations on which all the Java web frameworks build upon (web application container, environment, deployment, lifecycle...) in a very accessible way, however: it does not give you an overview over the huge amount of frameworks that are available. As another answer mentions, you probably want to narrow the scope, most frameworks have an area they solve differently and which they solve better than others (e.g. component-based, MVC,...).
I think the subject pretty much covers it. I'm not a web programmer (I am a programmer), I'd like to write some play web apps, I don't really have a lot of spare time. So what's the quickest way to get up and running to play around with GWT?
I would say Google's GWT Quick Start. That said, learning some Java skills would be a good idea if you're not already familiar with the language.
The StockWatcher application tutorial covers pretty much step by step all you need to play around and get an idea of GWT as a beginner (provided you know a bit of JAVA).
This is part of the GWT Quick Start documentation (as mentioned also by someone else) where you can find loads of other examples and resources.
Pick an app that does something similar to what you want, and modify it piece by piece...
I am not sure if I am getting in a little too deep but I have decided i'd like to learn how to develop applications built using the Oracle technology stack.
I don't come from a programming background (I have always been on the business side) but I love that no matter what problem you encounter, you can almost always solve it with a program of some description (i know 'program' is probably the wrong word there but hopefully you know what I mean).
So my questions:
Given I have no programming experience, should I be trying to start with something else?
If Oracle is an ok start, from what I can ascertain i'll need to get a fair grasp of Java as well. Where should I start?
Im not necessarily looking for the quickest way, but I do want to make sure that whatever I do gives me a good understanding of what is going on.
If you don't have any object-oriented programming background, I suggest you should start out by getting familiar with basic OO concept. I recommend reading this book "Head First Java" http://www.amazon.com/Head-First-Java-Kathy-Sierra/dp/0596009208 and the official java tutorial - http://java.sun.com/docs/books/tutorial/reallybigindex.html
After you get the idea and basic concept on object-oriented programming and java. You can move yourself to use any technology including Oracle technology stack and other OO language such as python and C#.
As natch3z has mentioned, if you don't have a programming background it might be worthwhile starting a little simpler than the oracle tech stack.
By Oracle tech stack, I am assuming using things like oc4j, ADF, oracle DB etc all within Oracle's JDeveloper IDE. Even though technologies like this can be powerful and achieve what you want, it might be a little overwhelming for a beginner.
It might be a little more advantageous to start off with something like the Eclipse IDE and work you way through some simple tutorials. There's nothing worse than starting with something difficult and getting discouraged due to being overwhelmed.
Why Java ? More specifically, what sort of stuff are you aiming to develop ?
For web applications, you could look at PHP. Oracle also has a web development/runtime environment in the database, called Application Express. That's a pretty simple way to get started in developing data oriented web applications. It is all part of a single install with their free XE edition.
For Oracle questions you could try posting on the new dedicated Oracle stack exchange site, http://www.oracleoverflow.com/, maintained by Simple Talk Publishing.