So, been learning how to code in Java the last month or so. I was wondering if there were any people out there who have a decent grasp on the language (or any other coding language) that could tell me how long it took them to learn before they were capable of actually building some sort of program with it.
Just trying to get an idea on how far along I should be by now.
Then let me share with you first and most important piece of wisdom in programming:
Questions that have no straight answers greatly outnumber questions that do. Ultimately programming is "just" extremly perversed art of solving problems.
So, I have no straight answer here, but straight off the bat I'll say you should pursue achievements, not timelines.
This is because big thing to keep on mind with programming is that ultimately it is very wide and deep craft not unlike ones from the past. This means life of constant self-improvement and keepup with occuring changes. There are no "you are master now!" milestones in this field, there is only how much you know now, and how much you are required to learn to solve problem at hand.
If you are only starting, its important to get into writing applications as soon as possible. While program is set of procedures telling computer to do something, application is user-oriented program that allows humans to solve certain problems. Application gets input from user, does something depending on that input, and presents outcome in human-friendly form. Stop writing silly console programs that just do hardcoded stuff and conclude with System.out.println("Processing ovar!");.
Don't learn by opening your code editor and going "I'll now write program that will be writing to file!". No end-user cares about writing to file. End-user wants to be able to save and load their data, and while writing and reading from disk appears most important step, writing code that will turn data in memory into form you can write to file, and code that can read data from file and turn it back into data structures used by your program is where constant challenge lies.
Pick field you are interested in, then look into problem domain specific for that field and work on solving those problems. For example if you are writing web app, your problem domain will be securing and processing user input, working with databases, processing and generating texts from templates , users authentication and authorization, and building HTTP replies. But don't do it "dry". Give yourself challenges like "I'll write simple blog that displays posts its owner will write in admin backend. It will use SQL database for storing stuff and will store writers acccounts there too!".
The more problems you know how to solve, the better you will be.
However don't fall for trap here. People who fetishize act of writing code usually lose contact with reality and fail to ship solutions of value to users.
-------
Also mandatory Haiku to the com.sun.java.swing.plaf.nimbus.InternalFrameInternalFrameTitlePaneInternalFrameTitlePaneMaximizeButtonWindowNotFocusedState:
Code:
Internal frame
internal frame,
title pane
internal frame.
title pane
maximize button,
window not focused state
Back in high school I learned to code with flash. Just remember if your code looks perfect and it isn't working right, there's likely a syntax error somewhere.
My main use for this is going to be developing apps for Android, at least that's the plan. Seems like I should be a little further along than I am at this point, trying to devote an hour or so into studying and learning almost everyday.
Trying to get a basic grasp on Java now, so I can better understand tutorials for Eclipse later, so I can then begin attempting to build some basic/simple apps from scratch and learn along the way from that.
Seems like a good learning plan to me, maybe one of you who has been through this already can tell me if that's a good idea or not.
And yes, Zals, already ran into that happening a few times. All my lines of code are correct, and structured in a neat manner, except for one line where I have a > where I need a < and it ruins the whole code. :P