File APIs for Java Developers
Manipulate DOC, XLS, PPT, PDF and many others from your application.
http://aspose.com/file-tools
The moose likes Beginning Java and the fly likes Learning to Program motivated through making useful applications Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login
JavaRanch » Java Forums » Java » Beginning Java
Bookmark "Learning to Program motivated through making useful applications" Watch "Learning to Program motivated through making useful applications" New topic
Author

Learning to Program motivated through making useful applications

Jerry Rice
Greenhorn

Joined: Sep 14, 2008
Posts: 4
Hello World - Java Ranch Community!

Shout outs to all my earthling humanoids out there

Long story is below. Short story: I just want to learn to program, and I'd like to do it in a motivated manner by working on projects I find useful. How long will it take me to learn to program basic useful things like firefox extensions, Facebook apps, etc.?

I am a complete programming n00b. I know about if/else, while, dowhile, for loops, incrementers, arrays, indexes, methods, method calls, and some other basic concepts, but I've never really built anything COOL. Nothing that I could show off to my friends/idols and nothing that really makes me go WOW.

The platforms I am interested in working on are: Facebook apps, iGoogle apps, Linux OS, Android (google phone OS), firefox/chrome extensions, personal finance GUI calculators, and stuff like that.

A lot of what I want to do is probably already done, but making it is the fun part. I really don't even have any good ideas of what to make anymore, so I might jump on an open source project or something.

I have a fair amount of free time on my hands, so I can spend a lot of time programming and learning what I need to know. Given that everyone's learning style is different, how long should I expect to toil away learning to program in an applied manner before I can really claim some mastery over the art/science? How long before I can build something I find useful, which again I understand is unique to me? How long will I just be "learning the language" as opposed to making things?

Thanks a ton everyone at Java Ranch
You're the best!
David Newton
Author
Rancher

Joined: Sep 29, 2008
Posts: 12617

Not sure how to answer the "how long" question--it's different for everybody.

Start small--you could have a "Hello, World" app in most of the environments of which you speak in a matter of minutes or hours. Making something "useful" depends on your definition of useful, how ambitious you are, how quickly you pick up on the canonical ways to do things in whatever environment you're in, how much of what you learn you can retain, and so on.
salvin francis
Ranch Hand

Joined: Jan 12, 2009
Posts: 928

Jerry Rice wrote:A lot of what I want to do is probably already done

not necessarily true

Jerry Rice wrote:How long will I just be "learning the language" as opposed to making things?

Learning never ends

Here is what i feel, you need to come up with something good, something you like, something original.
Add the features you want it to have. Maybe other systems have the same functionality as you are making, maybe not, but you should
not compete with others you have to compete with yourself.
[Thats how i made my site, I am not competing with google/facebook/etc...]

Every time you conquer a mountain, take a deep breath and ask yourself: "What mountain? !! i dont see no mountain !"

I dont know your orientation : But what ever it is, do it with passion.

For the learning,
Learn Design patterns they are really cool, Learn javascript, web technologies, learn server side coding,etc.

My Website: [Salvin.in] Cool your mind:[Salvin.in/painting] My Sally:[Salvin.in/sally]
Ulf Dittmer
Marshal

Joined: Mar 22, 2005
Posts: 42927
    
  68
The platforms I am interested in working on are: Facebook apps, iGoogle apps, Linux OS, Android (google phone OS), firefox/chrome extensions, personal finance GUI calculators, and stuff like that.

I generally advise to work on something that you'd use for yourself - maybe something that you have wanted to automate for some time. Could be either a Java desktop app, or a Java web app, depending on where your interests are. Both might work well for a finance application.

The problem I see with the things you mentioned is that those require different skills, but might not be the easiest to start with if you don't have much experience. Firefox extensions are written in a combination of JavaScript, XUL and possibly native code - not much of a tie-in with Java. Android uses a variant of Java, but in some places extends it, while in other places it doesn't have all of it. Linux is written in C/C++, so I don't think Java would be helpful for that.
salvin francis
Ranch Hand

Joined: Jan 12, 2009
Posts: 928

try GWT

http://code.google.com/webtoolkit/
Jerry Rice
Greenhorn

Joined: Sep 14, 2008
Posts: 4
rant/ramble, read at your own risk:

I literally have 4 Java for beginner programmer textbooks, and more online with Safari's bookshelf. So, information is not exactly a bottleneck for the rate of my learning. Maybe like Sir Newton said, I am simply not ambitious or hard working... Idk. I certainly want to have programming skills, so I could essentially make the computer do whatever repetitive actions I'd like it to do. The computer is a powerful tool, and I'd love to be able to have control over that power. At the moment, I open up a textbook, and they just have theory and concepts, it just kills the fire inside of me. That's why I asked how long it should take to become an at least intermediate programmer, so I would know how much toil and frustration I would have to endure prior to realizing some exciting fruit of my labor.

lovely possibility:

On a separate note, besides the obvious security risks, does anyone else see the immense learning/teaching benefits of a n00b like myself working one to one through remote access (gotomeeting.com / logmein.com, etc.) for example with an experienced programmer, say in an IDE like eclipse with audio/webcam with Skype, helping to explain code and break apart complicated segments into simpler code, etc.


replies to previous posts:

I think my main problem is knowing what I want or what goal to set for myself. That's why I thought if I start work on software I find useful I would be more driven to program and to learn the computer science / programming best practices / theory along the way. To your point, Sir Dittmer, I would say I do want to use Java in my applications, because my school's Comp Sci dept. uses Java for the first two semesters. To Sir Francis's point, I'm with you on the do something original that you care about, and obviously, if you're really good at programming you can customize any software ad-infinitum, making it unique. To Sir Newton's point, I knew someone was going to say, "how fast you learn depends on you", in any case, that's the info that would help me out, I guess I need more metacognition. I can do hello world easy, but I want to make useful stuff, and I know that also depends on my definition of "useful". I plan on looking at the GWT.

Campbell Ritchie
Sheriff

Joined: Oct 13, 2005
Posts: 40052
    
  28
Please don't write "n00b" or similar.
Please don't call people "Sir Newton" or "Sir Dittmer" or "Sir Francis".
 
 
subject: Learning to Program motivated through making useful applications