• Post Reply
  • Bookmark Topic Watch Topic
  • New Topic

Learning to Program motivated through making useful applications

 
Jerry Rice
Greenhorn
Posts: 4
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
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
Posts: 12617
IntelliJ IDE Ruby
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
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
Bartender
Posts: 1307
10
Eclipse IDE Google Web Toolkit Java
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
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.
 
Ulf Dittmer
Rancher
Posts: 42968
73
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
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
Bartender
Posts: 1307
10
Eclipse IDE Google Web Toolkit Java
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
try GWT

http://code.google.com/webtoolkit/
 
Jerry Rice
Greenhorn
Posts: 4
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
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
Pie
Posts: 49858
70
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Please don't write "n00b" or similar.
Please don't call people "Sir Newton" or "Sir Dittmer" or "Sir Francis".
 
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic