Good age to start
I'm 13 and interested in learning Java. Is this a good age to start?
I'm 13 and interested in learning Java. Is this a good age to start?
> I'm 13 and interested in learning Java. Is this a
> good age to start?
It is an excellent age to start. If you study well, you could progress very rapidly.
Good luck!
> 42
If that's the ultimate answer to Life, the Universe, and Everything, well fine. If it's the age where you started programming, well I'm sorry. You're hosed.
(I started java last year at age 48. I'm doubly hosed)
Would it be too hard for me right now? And what's a proper way to study?
I plan on buying a Java For Dummies book...
> I'm 13 and interested in learning Java. Is this a
> good age to start?
Actually, what matters is that you're "interested in learning in Java." There's no
good age, just the right attitude and motivation. :)
> I plan on buying a Java For Dummies book...
I suggest get a decent book if you are serious. "Which book to buy" is a common question. Do a serach and you will find plenty of suggestions.
> Would it be too hard for me right now? And what's a
> proper way to study?
>
> I plan on buying a Java For Dummies book...
Same goes for you my friend. There's no such thing as "hard" or "too hard" - you
just have to tackle it with the right interest.
>And what's a proper way to study?
>
> I plan on buying a Java For Dummies book...
The "proper" way is what personally suits you. If you're looking for a book - I
would personally recommend "Head First in Java" by O'reilly. It rises
above the rest because of its approach - way, way different than the traditional
text books we grew up with.
Also, if you could find a local guru, a resource you can sit face to face with and bounce ideas off of, that would help tremendously. That often helps decide which programming language to learn.
I want to create a match engine of some sort. I don't know if any of you play Trophy Manager, but yea. Is this possible on Java? For it to spit out a number of actions on different intervals, due to information and possibilities I have provided?
myself, I'm not familiar w/ this situation so I'm afraid that I cannot definitively help you, but from what I understand in your post, it seems that Java should be able to handle it.
> Does anyone know for sure if Java can do that?
I just glanced at the web site -- is that a fantasy soccer application?
Java could certainly do that, but realize what you see on that site
is the product of dozens of professional developers.
When you learn to program, you start with very simple exercises.
> I know, I plan to start very simple, then as I get
> older I will try more complex things.
I don't mean to discourage you. Java lets you do some very cool things, for
example, graphics and web-based applications.
No discouragement taken, I wasn't planning to get right into that, just wondering if it could so I could try it with some others several years into the future.
What would you say is a good thing to try out first?
> > There's no such thing as
> > "hard" or "too hard"
>
> Yes there is. Viagara and too much Viagara.
Pay no mind to him, Terry. Bit of a sad case. Too many bhang lassis:
http://en.wikipedia.org/wiki/Lassi#Bhang_lassi
> > > There's no such thing as
> > > "hard" or "too hard"
> >
> > Yes there is. Viagara and too much Viagara.
>
> Pay no mind to him, Terry. Bit of a sad case. Too
> many bhang lassis:
>
> http://en.wikipedia.org/wiki/Lassi#Bhang_lassi
Priapism
http://www.clevelandclinic.org/health/health-info/docs/2900/2908.asp
> I'm 13 and interested in learning Java. Is this a
> good age to start?
That's a perfect age to start learning programming. You have much time. IMHO, it's better to start with a simpler language. When you get familiar with computer programming, dive into a complex, powerful and professionally used language like Java.
I have programmed in a dozen languages and since I started using Java I have not found any problem that I couldn't solve with it. As the core has grown and open source projects have taken off things get easier every day.
Good luck and remember to have fun.
petes1234,
That was what I was going to say as well. I'm 31 and just started learning Java. I had tried previously back when I just got out of college and it didn't work out. I just started learning the last week and I'm already getting the hang of some things. The difference for me was having somone at work who works with Java and is whiling to give me little lessons and than help me figure out the things I get stuck on as well as provide pointers.
A good book can be a lifesaver as well. You also may want to look around for classes. A lot of community centers offer programs now for teaching things like Java. It could be a good way to meet people in your same situation as well as an instructor who can help you out.
> > I'm 13 and interested in learning Java. Is this a
> > good age to start?
>
> That's a perfect age to start learning programming.
> You have much time. IMHO, it's better to start with a
> simpler language. When you get familiar with computer
> programming, dive into a complex, powerful and
> professionally used language like Java.
What would you suggest to learn first?
> What would you suggest to learn first?
I would recommend that you go with whichever language you have the best chance of finding a local guru or resource. It would make all the difference.
Having said that, I've played with Python, and I like its (initial) simplicity and cleanliness. It's also an interpreted language, so you can get almost immediate feedback from coding, and may be able to develop apps quicker in it than in Java. Finally, it's also public domain, so it doesn't cost anything to download it and play with it. Like most scripting languages it uses dynamic typing, which while convenient, I think is a bad thing to get used to. Check out more info on it here:
http://en.wikipedia.org/wiki/Python_language
im 15 dude and actually you learn a lot better as a kid because your brain hasnt gone thru all sorts of changes...why do u think little kids can learn multiple languages no problem and *many* adults struggle?
Message was edited by:
ByronTheOmnipotent
> im 15 dude and actually you learn a lot better as a
> kid because your brain hasnt gone thru all sorts of
> changes...why do u think little kids can learn
> multiple languages no problem and *many* adults
> struggle?
> Message was edited by:
> ByronTheOmnipotent
And thanks from us older folks for rubbing that in ;)
> why do u think little kids can learn
> multiple languages no problem and *many* adults
> struggle?
I know very few kids that know multiple languages. I have also seen ***many*** kids struggle with learning a single language.
are u serious dude? ******almost every******* mexican kid in america....they speak like both languages at once and you can't tell what the hell they are saying
Message was edited by:
ByronTheOmnipotent
> > > I'm 13 and interested in learning Java. Is this
> a
> > > good age to start?
> >
> > That's a perfect age to start learning
> programming.
> > You have much time. IMHO, it's better to start with
> a
> > simpler language. When you get familiar with
> computer
> > programming, dive into a complex, powerful and
> > professionally used language like Java.
>
> What would you suggest to learn first?
It depends. If you want to become a professional, I think it's better to start with an old simple language such as Pascal, only to become familiar with programming. So, do not waste your time over it, just play with it a few months. Then, dive into C (not C++) with some extra courage and try to write useful programs with it. When you reach 15, you're already familiar with programming and worked with a real language such as C. It's time to go with Java.
If you start programming with Java, you'll face several problems. For example, as you are not familiar with programming, many aspects of Java may seem illogical to you. IMHO, it is never a good idea to start programming with an object oriented language. I'm 19, started programming with Pascal 5 years ago. I hate it, but it helped me a lot.
Having a C background will definitely help you. You can of course omit Pascal, but I recommend you not to do so. It is worth spending a few months.
> It depends. If you want to become a professional, I
> think it's better to start with an old simple
> language such as Pascal, only to become familiar with
> programming ...
A lot of schools/universities start with Java language as an introduction to programming. I wouldn't advise to start with an ancient language as Pascal (or C).
> It depends. If you want to become a professional, I
> think it's better to start with an old simple
> language such as Pascal, only to become familiar with
> programming.
Yeah, and he should use punch cards too.
If a professional Java developer or an experienced trainer is out there to teach him Java, he can start programming with it of course. Universities and schools start with Java, because they have those teachers.
As you probably heard before, Java is a language from professional programmers for professional programmers. Only a good teacher can make someone who has not programmed before learn how to use powerful aspects of a technology like Java.
If he wants to teach himself programming, it's rarely possible that he can do something similar. Even good written books are unable to help him much. In this case. it is much better to start with a simpler language.
I've seen lots of people like the OP who started learning programming with Java in home. They just wasted their days. Why? Because someone who is not familiar with programming and has not programmed before, is unable to understand and use the aspects of Java, unless there's a perfect teacher.
Starting with a simpler language has many benefits, specially when there is much time.
i think i respectfully disagree Jaxian (that you shouldnt start
with Java). Itll be a lot harder to shoot yourself in the foot or
destroy your computer if youre working within a virtual machine.
Plus learning C or C++ on Windows (like ~90% of the world)
actually means learning Visual C++ and learning Windows more
than anything else - and thats a big enough nightmare to scare off
any beginner.
So unless someone is recommending Logo, lol, I would 100%
recommend Java (or any other OOPL running in a virtual machine)
as a first language.
It is practically impossible to teach good programming style to students that have had prior exposure to BASIC: as potential programmers they are mentally mutilated beyond hope of regeneration.
- Edsger Dijkstra
First, I have to mention I never talked about C++. Learning C++ on any platform is a shoot in the head for a beginner.
Second, I told he should spend a little time over a simple language like Pascal only to become familiar with programming. I didn't advise him to program with it.
> No discouragement taken, I wasn't planning to get
> right into that, just wondering if it could so I
> could try it with some others several years into the
> future.
Whether you can do that particular thing in Java is not really important. You have to start *somewhere* and by the time you get to the level where you can do that, you'll probably have learned other languages, or be able to pick them up easily.
It's actually more important at this point to learn the concepts of programming--variables, methods, control flow, loops, data structures, algorithms, error handling, compiling, running, debugging, planning, problem solving, divide and conquer, etc.--than to learn the syntax of a specific language.
> I know very few kids that know multiple languages.
Then you probably know very few kids that grow up with deep exposure to multiple languages. Most of the kids I know speak at least two languages.
> I
> have also seen ***many*** kids struggle with learning
> a single language.
You mean proper grammar? That's a different issue. A kid will be as fluent as those around him and will adopt their idioms. Learning the formal rules of the language requires study, which some people don't want to do or are not good at.
> It's actually more important at this point to learn
> the concepts of programming--variables, methods,
> control flow, loops, data structures, algorithms,
> error handling, compiling, running, debugging,
> planning, problem solving, divide and conquer,
> etc.--than to learn the syntax of a specific language.
Exactly.
> It's actually more important at this point to learn
> the concepts of programming
> than to learn the syntax of a specific language.
I dont think you're giving rote memorization its due credit, lol.
If the whole US educational system is based on it... can it be THAT bad?
> > I know very few kids that know multiple languages.
>
>
> Then you probably know very few kids that grow up
> with deep exposure to multiple languages. Most of the
> kids I know speak at least two languages.
>
>
> > I
> > have also seen ***many*** kids struggle with
> learning
> > a single language.
>
> You mean proper grammar? That's a different issue. A
> kid will be as fluent as those around him and will
> adopt their idioms. Learning the formal rules of the
> language requires study, which some people don't want
> to do or are not good at.
I thought he meant programming languages. My bad!
> I thought he meant programming languages. My bad!
Ohhhhhh.... :-)
Well, one of us was confused I guess.
After reading a book on Java, I suggest downloading the free IDE (Integrated Development Enviornment) Eclipse WTP.The WTP group already prepackaged all the various plug-ins you need to create Java programs. (before the WTP group, you had to know what plugins and what versions of plugins to install in Eclipse to get it all working). Its far better than compiling java on a dos command line. You'll need to read up on thier web site on how to set up some minor items it needs to run (example: java jdk 1.5) .
It would be good to find a group that is also interested in learning Java. That way if you get stuck, you can ask someone for help. Also, the group would provide modivation to keep studying and trying things out.
> After reading a book on Java, I suggest downloading
> the free IDE (Integrated Development Enviornment)
> Eclipse WTP.
I disagree on two points.
1) Don't wait until you've read the book to start programming. Any good book will have examples throughout. Work them as you go through it.
2) Don't start with an IDE. Your initial programs will be small and simple, so you don't need the IDE's features. The IDE will just be another learning curve, and it will be difficult to tell where the IDE ends and the language begins. You also need to learn things that the IDE will gloss over or do for you. Start with a simple text editor or programmer's editor like TextPad or UltraEdit.
I disagree with your disagreement.
1) Its too easy to program some "for" loops and think that is what's java programming is all about. Java is an object oriented program and not structured programming. You need some theory beforehand.
2) I still suggest an IDE because programming on the command line is boring. If you are in an actual programming class, yes, learn from the command line to start out with. But you are learning on your own and would like immediate visual results. You also would like a fancy display enviornment to work on hour after hour than a command line. I dont think you will get bogged down on IDE configuration issues if your just creating some java classes and not a full blown web site.
> I disagree with your disagreement.
>
> 1) Its too easy to program some "for" loops and think
> that is what's java programming is all about. Java is
> an object oriented program and not structured
> programming. You need some theory beforehand.
For loops are not what Java's all about, but they're present in every Java program of any significance. So read about for loops (theory) and then write a for loop (practice).
Reading about for loops, constructors, parent/child relationships, encapsulation, polymorphism, lists, trees, arrays, and THEN starting to write code would prevent you from cementing any of the theory with practice, so you'd have to go back and start over.
> 2) I still suggest an IDE because programming on the
> command line is boring.
Maybe, but that's small price to pay to learn the fundamentals.
> You also
> would like a fancy display enviornment to work on
> hour after hour than a command line.
I didn't say edit on the command line. We're not doing echo > Foo.java. Edit with a programming editor, and then compile on the command line.
> I dont think
> you will get bogged down on IDE configuration issues
> if your just creating some java classes and not a
> full blown web site.
Then you haven't seen some of the many questions people post here doing just that.
> What are ya'all trying to do, scare him into
> accounting?
Quite the contrary. I'm trying to help his learning experience go more smoothly.
" What are ya'all trying to do, scare him into accounting? "
That was just a joke! Ok, a small joke.
you know i wish, i was still that young... :) learning things while you're still fresh :) ... it's really a good chance to take advance on learning java.. it's better because, you'll gain experience at that early stage.. and you will find more easily to cope other problems when you grew up.. i'm not as young as you (22) but i'm still working to learn it. For me, it is much better to know different things early than lately.. :)
> I still want to learn it, but now I'm convinced it's
> grotesquely hard.
It will take a lot of time and effort, yes. If you have a knack for the kind of thinking needed to understand CS concepts and solve problems, then it won't be exceedingly difficult. But there is a *lot* to learn before you can say, "I'm skilled at developing software in Java," and much of it has nothing to do with the Java language.
> I still want to learn it, but now I'm convinced it's
> grotesquely hard.
No it's not, not if you do it one step at a time. With work you will be creating some pretty cool code in a few weeks or less depending on your abilities and motivation.
> Would it be too hard for me right now?
>
I don't think age matter much, you just need some brain and much patience. According to my experience the greatest problems for beginners are caused by the installation of the Java runtime environment.
> And what's a
> proper way to study?
There are many ways, the best way is the way you like the best.
I like to read books, but some people have become good programmers without ever reading a single programming book, only reading code from example programs. When you have learnt the basics you should consult the Java API frequently.
One thing about books: Some are very good and some are very bad... especially for beginners. I recommend you to write your first program before you buy a book.
Remember: Making programs is easy - making good programs could sometimes be hard. Give it a try!
> I'm 13 and interested in learning Java. Is this a
> good age to start?
The best age to start is at about 84. You won't neither go all grey or lose any hair about programming, you won't mind that it's not a good way to impress the girls, you're likely to die before you get swamped in all those frameworks, and nobody expects you to actually solve their problems, so you can code what you want to...
> I still want to learn it, but now I'm convinced it's
> grotesquely hard.
No worries. Everybody's got to start somewhere. And being interested in it is already a good start. Just don't believe that knowing the Java syntax makes you a good Java programmer. It's about how you design your programs.
> I still want to learn it, but now I'm convinced it's
> grotesquely hard.
When I was 13 I found many examples in my programming book very hard and that was a book about BASIC which is simpler then Java. But that was simply because I was lacking all the background knowledge. Over time it became easier and easier and when I started learning Java, I undertood the basics very quickly. The only problem was learning how to use object oriented programming effectively.
It seems so hard because there are so many details and so many rules to learn. You just need to learn it one by one.
To get started try this:
After installing the java jdk (jdk 6 update 2 is the latest one), install BlueJ - www.bluej.org.
BlueJ is used by many schools to teach Java.
Start BlueJ and then click on Project / new Project
Give your project a name like e.g. "FirstProject"
Then click on "New Class" and again choose a name e.g. "FirstClass"
Then a box with the title "FirstClass" will appear.
Double click on it and you will see the source code.
Delete everything and replace it with this:
import java.awt.*;
import javax.swing.*;
public class FirstClass
{
public static void main(String[] args) {
}
}
This is your source code frame. You don't need to understand it yet. Just ignore it and put your programs after the line "public static void main(String[] args) {".
Your first program could be this
System.out.println("Test");
System.out.println(1+2);
Insert that into your frame.
import java.awt.*;
import javax.swing.*;
public class FirstClass
{
public static void main(String[] args) {
System.out.println("Test");
System.out.println(1+2);
}
}
BTW. It doesn't matter how many spaces you put in front of a line. Empty lines don't matter either. It's just to make the text easier to read.
Now click on compile..
Then right click on the "FirstClass" box in the main window of BlueJ and click on "void main(String[] args)" and then on OK to start the program.
All this will do is print the two lines
Test
3
You can then add more System.out.println() lines to the source code to see what happens.
For the next step you can try to display a window.
import java.awt.*;
import javax.swing.*;
public class FirstClass
{
public static void main(String[] args) {
JFrame frame1=new JFrame("Test");
frame1.setSize(300,300);
frame1.setVisible(true);
}
}
new JFrame("Test") creates a new window with the text "Test" in it's title bar. The new window is invisible at first.
JFrame frame1=new JFrame("Test");
creates a new window and gives it the name frame1 so you can do things to it later in the program.
frame1.setSize(300,300);
Sets the size of the window to 300 x 300 pixel.
frame1.setVisible(true);
makes the window visible.
Now a little bit more complicated
import java.awt.*;
import javax.swing.*;
public class FirstClass
{
public static void main(String[] args) {
JFrame frame1=new JFrame("Test");
frame1.setLayout(new GridLayout());
frame1.getContentPane().add(new JLabel("Type something"));
frame1.getContentPane().add(new JTextField());
frame1.getContentPane().add(new JButton("OK"));
frame1.getContentPane().add(new JButton("Cancel"));
frame1.setVisible(true);
frame1.pack();
}
}
Now this is probably confusing. But you will understand it eventually once you know enough.
Starting with GUIs is a really bad idea. You'll be all wrapped up in getting the GUI to work and look like you want and you won't realy be focussing on the fundamentals of the language, the core libraries, or computer science.
I just thought it would be nice to have a GUI example. But you're right, It's much better and easier to first use text mode only and start with GUI's once you're familiar with the language.
> I just thought it would be nice to have a GUI
> example.
Right. GUIs look cool, and most people just learning to program like the idea of drawing buttons and stuff on the screen and controlling what happens when you press them, and so on. It's just that doing anything beyond trivial gets messy and verbose very fast, and there's too much time and effort spent on the mechanics of the GUI.
And don't even get me started on keeping business logic out of the the GUI thread. ;-)
> Starting with GUIs is a really bad idea. You'll be
> all wrapped up in getting the GUI to work and look
> like you want and you won't realy be focussing on the
> fundamentals of the language, the core libraries, or
> computer science.
More so, your GUI won't work because you missed some important design rules, and people will hate using it because you have no idea about ergonomics.