Java-Gaming.org    
Featured games (91)
games approved by the League of Dukes
Games in Showcase (577)
games submitted by our members
Games in WIP (498)
games currently in development
News: Read the Java Gaming Resources, or peek at the official Java tutorials
 
    Home     Help   Search   Login   Register   
Pages: [1] 2
  ignore  |  Print  
  Is it bad to start with Python and then move the Java?  (Read 1374 times)
0 Members and 1 Guest are viewing this topic.
Offline MrCoffee

Junior Newbie





« Posted 2013-08-12 00:58:48 »

My son (11) wants to make 2D games.  I am a programmer here and there but not as much as you all.  Python has a really good book, Python for Kids: Introduction to Programming.  I have not seen one like it for Java or any other language.  I have seen all the "precursor" steps like Alice and Scratch.  He does not want that.  He has learned to compile things for Minecraft mods and wants to use a "real language."  He compiles by following steps from YouTube videos.  He, of course, doesn't know the rudiments of the language, just learns it here and there by context.  I hope that makes sense.  He has taken a Game Maker class and made a game or two.  Just not where we want to stay.  I'm trying to prepare him for the real world, no offense.

The goal is not to make mods for Minecraft.  He doesn't even play it right now.  But he does want to make 2d games.  Python, pygame and what not do not look too hard.  I've seen the two big gaming libraries for Java, but don't know much.  I'd pick LibGDX for now.  No, I do not want to argue about what's the best library.  I've seen enough of those threads on JGO Smiley.

The main question is should I start in Python and use that for a while?  Start with Java?  Does it matter because it won't be the only language he ever learns?  Python doesn't have a lot of jobs out there :0.

Just wanted opinions.
Offline Jimmt
« League of Dukes »

JGO Kernel


Medals: 114
Projects: 4
Exp: 3 years



« Reply #1 - Posted 2013-08-12 01:17:39 »

Starting with Java should be fine, I started learning Java myself when I was 11. Just point him in the right direction, and encourage him to ask questions (I have a bad habit of trying to figure out everything by myself, so I got into some bad practices).
Offline Sammidysam
« Reply #2 - Posted 2013-08-12 01:28:44 »

@Jimmt:  I feel like I am similar in not asking others questions.  In the past, I barely ever asked questions to real people, but I Googled stuff constantly.  Learning what IRC is and using it for help sometimes has been a huge asset now.

@MrCoffee:  I have a friend who is interested in programming purely for mathematical/scientific purposes who has learned Python a bit.  He has sent me code of his and I have given him tips.  I think that Python is really good for beginners, so it may be worth looking into.  Java can definitely cause some troubles for beginners.  Python's syntax results in almost no errors, there is only one way to do a given thing, and the Zen of Python makes it good for beginners in my mind.  The Zen of Python gets on my nerves now, but as a beginner I feel like it would be nice.  I think it is worth trying out for at least a little bit.  The main reason I see is that Java is actually pretty complicated and can cause problems whereas Python will result in less issues.  I guess if you know your son would never give up due to difficulty Java is worth starting with, but if your son could get frustrated when dealing with an issue for a really long time Python would be better to start with.  I think Python is worth trying out until your son wants to try something more challenging.
Games published by our own members! Check 'em out!
Legends of Yore - The Casual Retro Roguelike
Online jonjava
« Reply #3 - Posted 2013-08-12 01:29:34 »

Python is a great language. It's well maintained and is capable of almost anything. It's a very real language. He will most definitely learn other programming languages (if he gets into coding) and learning Python as your first isn't bad at all. Python comes built-in with many useful things that other programming langues spend "unnecessary" time on.

The way Python uses indentations as opposed to a lot of other languages using {} brackets (and ;) is a non-issue. Programming isn't about the semantics.

JavaScript isn't something that's widely considered a "real" programming language but I've heard a few success stories of teaching it to young kids as their first language.

Have a look at these:

https://www.khanacademy.org/cs
https://www.khanacademy.org/science/computer-science


<a href="http://www.youtube.com/v/wXBVFW08eEs?version=3&amp;hl=en_US&amp;start=" target="_blank">http://www.youtube.com/v/wXBVFW08eEs?version=3&amp;hl=en_US&amp;start=</a>
https://www.khanacademy.org/cs/1-welcome-to-codecanvas/882454257

Offline Sammidysam
« Reply #4 - Posted 2013-08-12 01:38:42 »

Ah yes, I find using indentation for code flow instead of braces very good for beginners, as it will ensure he doesn't start off using a horrible, unreadable style.
Offline ReBirth
« Reply #5 - Posted 2013-08-12 02:04:57 »

JavaScript isn't something that's widely considered a "real" programming language but I've heard a few success stories of teaching it to young kids as their first language.

Can't find any point to agree with that.

Back to topic, it's no matter from what lang you come from. It all is just about syntax and environment. But yeah, you may have little problem if you come from BF or whitespace.

Online jonjava
« Reply #6 - Posted 2013-08-12 02:30:22 »

Can't find any point to agree with that.

I'm all for freedom of opinion and all that but I'm not just stating personal opinions here. There are great efforts around focused on teaching kids computer science and, believe it or not, it's not the same thing as teaching students at a university. Things aren't the same, not even JavaScript, as they were a few years ago.

Back to topic, it's no matter from what lang you come from. It all is just about syntax and environment. But yeah, you may have little problem if you come from BF or whitespace.

Did you just read the title and skip the actual OP? ;)

Offline davedes
« Reply #7 - Posted 2013-08-12 03:10:36 »

IMHO it doesn't matter what language you start with. It could be Java -- it will teach you a lot about clean code, documentation, standardized naming and conventions, etc. Or it could be Python, which will teach you a lot about functional programming and give you an entirely different approach to solving common programming problems. Or, it could be JavaScript and HTML, and you can learn to achieve some really wonderfully visual and interactive web content. 

If he wants to make games, then Unity3D, LibGDX, or Flash are all good choices.

The best thing to do is encourage him to try many different avenues, and learn many different frameworks.

Offline HeroesGraveDev

JGO Kernel


Medals: 212
Projects: 11
Exp: 2 years


If it wasn't Awesome, it wasn't me.


« Reply #8 - Posted 2013-08-12 07:06:42 »

I picked up Java when I was 12, by modding Minecraft. A few months later I got sick of it and decided to make my own games. I found this site, and lurked for about 6 months, using Google to answer my problems. By the time I actually joined, I had already done networking, and was beginning OpenGL.

If you want to learn anything computer related, learn how to use Google first.

I recommend letting him find a programming language for himself. Pointing

Tell him to use Google whenever he has a problem, and see how he goes from there.
(Of course help him if he struggles, but the further he can get by himself, the better)

@Python: Is it just me, or does anyone else get the feeling that Python's main selling point is "WE HAZ LESS SYNTAXES!!!"

Offline phu004

JGO Coder


Medals: 4
Projects: 9
Exp: 10 years


NoSuchPersonException


« Reply #9 - Posted 2013-08-12 07:17:06 »

Quote
My son (11) wants to make 2D games.

Wow i wonder what made him want to program in the first place.  I had zero interests in programming when I was 11, I remember I was forced  to take an elementary programming course taught in BASIC,  it turned out to be a waste of time and money for my parents.  If I ever have a son I might borrow your strategy to get him involved in programming Smiley

Quote
The main question is should I start in Python and use that for a while?  Start with Java?  Does it matter because it won't be the only language he ever learns?  Python doesn't have a lot of jobs out there :0.

I would say let him start learning Python. It's a very friendly language to get into (syntax is closer to natural language than Java),  Your kid will spend more time on the fun stuff (i.e making the game) than fixing syntax. As for job hunting, I can see python is getting popular these days. The university I work for just announced all the entry level CS courses will be using python from next year (java was used for the last decade). I guess they will favor hiring tutors with python background then.
Games published by our own members! Check 'em out!
Legends of Yore - The Casual Retro Roguelike
Offline Phibedy

Senior Member


Medals: 8



« Reply #10 - Posted 2013-08-12 08:58:34 »

I would go for java because it's greatly supported by the community.
When I was a teenager I started with assembler because I was/am fascinated by robots. In a nutshell, it was quite pain, but I learned failing.
Python doesn't have a lot of jobs out there :0.
I am not sure if I got it right, but are you thinking of the later job of your son? He is 11, even if he starts programming when he is an adult everything would be finde. Indeed not everyone has to become a programmer. Social skills are more important. That's no offense, but I don't think that you have to prepare an 11-year old for real life  Smiley
As long as he enjoys programming I would prefer:
1. java-2d
2. libgdx (it's a great framework)
Additionally there are great java-programmable robots out there, they might be to difficult to start with, but you could do it with your son.
Offline SHC
« Reply #11 - Posted 2013-08-12 09:12:40 »

Choosing a language is up to him. He can start with anything he likes. I've started with C when I was 10 in school. Now, I've completed my schooling and I've learnt Java, C++, C#, and VB.Net. I don't say to start with only this language or that, but learn whichever better suits you. Try making games, until you succeed. If you are in Java, I'd recommend libGdx and if in C# or VB.Net, I'd recommend MonoGame.

Offline Mac70
« Reply #12 - Posted 2013-08-12 09:31:09 »

Like SHC said - leave language choice up to him. Even if he will don't like choosen language, he can always quickly switch to another. Show him few languages like Java, C#, Python, AS3, etc., explain main differences between their environments and syntax.

About choice of graphics library - I don't like using high-level libraries, but in this case everything is clear - LibGDX will be better. When he will be older he can switch to LWJGL, but things like vector/matrix math are rather too complex for 11 year old programmer. Wink

Check out my Devblog! Smiley
Offline Herjan

Senior Member


Medals: 6
Projects: 1



« Reply #13 - Posted 2013-08-12 09:45:06 »

Quote
I recommend letting him find a programming language for himself.

100% agree, I recommend you and your kid to read this book: http://www.amazon.com/Beginning-Programming-Dummies-Wallace-Wang/dp/0470088702
So making a choice between programming languages may become more clear/easy.
And if he (after reading this book) is really sure he wants to make applications, just let him read the python book you have, (but Im not sure if 'books for kids' are that succesful??, I just read a 'book for adult' when I started to learn language, its no problem if he has to reads some stuff twice (and maybe uses google) I hope?)...

Maybe thenewboston is a nice teacher for him, as he does everything step by step, very easy to understand and it is a video, so he can see it with his own eyes.

Quote
Python doesn't have a lot of jobs out there :0

LoL, don't care about that now already, the language he starts with (sure if you are 11) is not the only one he will learn, after/while learning python he becomes interested in other languages (C(++/#) is a language almost everybody wants to learn)
Offline Longarmx
« Reply #14 - Posted 2013-08-12 23:38:07 »

If you were to start with python, I would recommend Codecademy. I would still recommend java though. It is a simple language and it is really easy to learn. There are a lot of resources that you can learn from.

Online Cero
« Reply #15 - Posted 2013-08-12 23:50:17 »

Quote
My son (11) wants to make 2D games.

Wow i wonder what made him want to program in the first place.  I had zero interests in programming when I was 11, I remember I was forced  to take an elementary programming course taught in BASIC,  it turned out to be a waste of time and money for my parents.  If I ever have a son I might borrow your strategy to get him involved in programming Smiley

Well I started with 13 and I knew how it began:
My friend called me and said in some IT class thingy they had in class they started doing HTML, and he tried explaining it to me like "you can write text, save it as an html and then it actually does things on the screen depending and what you wrote" and I was like "WHAT!"
Well little earlier in my life my father opened a binary file with a text editor showing the ascii garbage. I asked what it is and he was like "its the language of the computer, people study years to understand it" and I said "I wanna do THAT!" =D   (of course not really true with the ascii stuff but hey he knew how to make it simple I guess ^^)

Offline Jeremy
« Reply #16 - Posted 2013-08-13 00:25:14 »

I read somewhere (maybe it was here) about Java vs Python for beginners - and it made (I think) a good point.

For example, a beginner when printing out Hello World in python:

print "Hello World"

Simple, easy. Everyone and anyone who knows anything or nothing about programming can tell you what every character in there means.

Now when you do a hello world in Java, you need to create a class - don't worry about classes for now - or OOP - we'll get into that later. Then you need to create a special function called 'main' - will get into functions later. The main function has what we call 'parameters' that carry 'arguments' - but don't worry about that yet. You'll notice the static key-word there, just ignore that for now.

'System' is an object, to access a member variable of it you must use the - bluh bluh bluh. More than 85% of this has gone completely of their head at this point. With python you can be eased into classes and objects etc...

Same goes for doing anything - opening files ,etc. It's so much more involved in Java to do everything and it really is quite overwhelming for a beginner.

And oh god, don't get me started on C++'s hello world. You've got operator overloading, include files, namespaces and objects all throw into five lines of code for an 'introduction'

That said, I personally haven't used python much.

JevaEngine, Latest Playthrough (This demo is networked with a centralized server model)

http://www.youtube.com/watch?v=rWA8bajpVXg
Offline MrCoffee

Junior Newbie





« Reply #17 - Posted 2013-08-13 00:28:40 »

I feel the same way.
Offline sproingie
« Reply #18 - Posted 2013-08-13 18:21:28 »

I read somewhere (maybe it was here) about Java vs Python for beginners - and it made (I think) a good point.

For example, a beginner when printing out Hello World in python:

print "Hello World"

Except of course for python 3 where they made it a function so you have to say
print("Hello World")
instead.  So which dialect you learn is going to depend which tutorial you follow.

Personally I'd start with javascript.  As a language, it's not my favorite, but it's hard to beat for instant gratification.
Online jonjava
« Reply #19 - Posted 2013-08-13 18:51:46 »

Teaching kids programming is more about the responsiveness and seeing things change as you code but above all it's about the material and teachers that are available. Kids aren't going to learn anything slapping a book in front of them saying "read this". It's really not about syntax at all. Khan Academy, I feel, is doing a lot of things right. They have lessons available that you can watch, re-watch and rewind whenever you see fit. They have a lot of examples, problems to solve and tools for teachers to track how each kid is doing and where each kid is in their studies. Seeing which subjects they have trouble with etc giving the teacher an idea of when to intervene and help. It's well suited for self study as well.

It's really not a question about what language but what kind of teaching material is available.

Offline Herjan

Senior Member


Medals: 6
Projects: 1



« Reply #20 - Posted 2013-08-13 21:43:53 »

Kids aren't going to learn anything slapping a book in front of them saying "read this".

Well, I did... He wants to learn to code right? Its not his father that wants/forces him to code...
Offline kevglass

JGO Kernel


Medals: 85
Projects: 25


Coder, Trainee Pixel Artist, Game Reviewer


« Reply #21 - Posted 2013-08-13 21:48:03 »

Tbh, when we all learnt to code there was a lot less information and it was a lot harder to achieve (sounding old now). So if kids want to learn - they should be pretty able to start for themselves. If not, they're not that interested and no one should start by fooling them into thinking it's going to be really easy.

On the hand, if you're trying to force kids to learn then any modern language should be fine - they all have their ups and down. The trick is finding practical exercises that stretch them without scaring them away.

Cheers,

Kev

Online jonjava
« Reply #22 - Posted 2013-08-13 22:55:51 »

We're talking about kids here, right? You know, tiny small people that don't know what "geometry" is and have barely dipped their nose into multiplication.

If a kid is eager to learn you should encourage him instead of slapping him silly with nonsense. Telling a kid "oh just google it" or "oh just read this book which talks about things you've never heard of that uses words you don't understand and will take you a month to read at least before you can do anything" is like throwing him in a sea of bad ideas wrapped in a steal cage anchored with cement to watch him drown.

Offline kevglass

JGO Kernel


Medals: 85
Projects: 25


Coder, Trainee Pixel Artist, Game Reviewer


« Reply #23 - Posted 2013-08-13 22:57:56 »

I'm sorry, I thought we said this kid was 11?

Kev

Online Cero
« Reply #24 - Posted 2013-08-14 02:53:53 »

We're talking about kids here, right? You know, tiny small people that don't know what "geometry" is and have barely dipped their nose into multiplication.

If a kid is eager to learn you should encourage him instead of slapping him silly with nonsense. Telling a kid "oh just google it" or "oh just read this book which talks about things you've never heard of that uses words you don't understand and will take you a month to read at least before you can do anything" is like throwing him in a sea of bad ideas wrapped in a steal cage anchored with cement to watch him drown.
I'm sorry, I thought we said this kid was 11?
Yes but... well, lets talk pedagogy
Well, I did... He wants to learn to code right?

No. A kid wants to have FUN. He thinks programming might be fun, and he might actually be true.
But a kid is not going to have fun for example programming data structures with no graphical output and stuff - talking about average here, I'm sure some will, but normal any person wants to have a little more visual fun.
Sitting down with such a child and actually explaining OOP visually by for example using a game and all the elements which are objects should be actually fun.
Of course everyone will say that a child should really start with a "learning language".
I used WinLogo first... Best choice ? well I dunno, but do something visual

When MIT teaches programming in java they use the ACM libraries which already give you like a visual console, app view and 2D graphics and stuff, without having to write and understand all that lower level stuff.
Check it out here for instance: http://www.youtube.com/watch?v=wgjJRQ-kntg

Offline Longarmx
« Reply #25 - Posted 2013-08-14 03:10:23 »

No. A kid wants to have FUN. He thinks programming might be fun, and he might actually be true.
But a kid is not going to have fun for example programming data structures with no graphical output and stuff - talking about average here, I'm sure some will, but normal any person wants to have a little more visual fun.
Sitting down with such a child and actually explaining OOP visually by for example using a game and all the elements which are objects should be actually fun.
Of course everyone will say that a child should really start with a "learning language".
I used WinLogo first... Best choice ? well I dunno, but do something visual

He has taken a Game Maker class and made a game or two.

I believe he is past that step as he has already made a couple games in Game Maker. In your defense though, I don't know how in depth those games were or how much he learned while making them.


Offline ReBirth
« Reply #26 - Posted 2013-08-14 03:56:51 »


I'm all for freedom of opinion and all that but I'm not just stating personal opinions here. There are great efforts around focused on teaching kids computer science and, believe it or not, it's not the same thing as teaching students at a university. Things aren't the same, not even JavaScript, as they were a few years ago.
I have freedom to not agree too Grin Seriously, it's not about the language of choice but the concept. And more, how you will enjoy programming.

Offline philfrei
« Reply #27 - Posted 2013-08-14 10:16:19 »

Python is an excellent language, and there ARE jobs out there. I have a friend working in Python right now, and I see that Tiobe rates it in the top 10 languages and gives it an "A" status. (Yes, I know there is some controversy about what the Tiobe rankings really mean.)

http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html

I think what one learns via Python complements what one learns via a lower-level, strongly-typed language like Java or one of the flavors of C.

This is not like learning to play the violin vs the piano vs the trumpet or whatever and trying to become the ultimate virtuoso on that instrument. Good programmers are more like multi-instrumentalists (doublers), have learned several different languages and paradigms.

I guess working with a game engine is cool, but they are often not the greatest examples of programming style to learn from. Their idiosyncrasies may be less transferable than you might expect. And they aren't really necessary for Java 2D games.

I'm pretty sure there are books and YouTube tutorials for beginning Java game programming available. But the beginning Python book you found also sounds quite good.

"Greetings my friends! We are all interested in the future, for that is where you and I are going to spend the rest of our lives!" -- The Amazing Criswell
Offline princec

JGO Kernel


Medals: 282
Projects: 3
Exp: 16 years


Eh? Who? What? ... Me?


« Reply #28 - Posted 2013-08-14 11:23:32 »

By the time I was 11 I'd written a Logo interpreter in BASIC and machine code on my C64 and had about 8 games published on the cover listings of various UK rags Smiley And I'm not even very good. If you're into programming you'll just do it - in whatever language comes to hand - and probably be effective in any new language that comes along later. It doesn't matter where you start!

Cas Smiley

Offline delt0r

JGO Coder


Medals: 22


Computers can do that?


« Reply #29 - Posted 2013-08-14 15:49:12 »

And 11 is plenty old enough to "google it". Its not a 5 year old that need help crossing the road anymore. If they won't do that... we there is the saying about a smelly kind of creek and no paddles. 

I have no special talents. I am only passionately curious.--Albert Einstein
Pages: [1] 2
  ignore  |  Print  
 
 
You cannot reply to this message, because it is very, very old.

 

Add your game by posting it in the WIP section,
or publish it in Showcase.

The first screenshot will be displayed as a thumbnail.

xsi3rr4x (25 views)
2014-04-15 18:08:23

BurntPizza (20 views)
2014-04-15 03:46:01

UprightPath (35 views)
2014-04-14 17:39:50

UprightPath (18 views)
2014-04-14 17:35:47

Porlus (34 views)
2014-04-14 15:48:38

tom_mai78101 (60 views)
2014-04-10 04:04:31

BurntPizza (118 views)
2014-04-08 23:06:04

tom_mai78101 (218 views)
2014-04-05 13:34:39

trollwarrior1 (185 views)
2014-04-04 12:06:45

CJLetsGame (192 views)
2014-04-01 02:16:10
List of Learning Resources
by Longarmx
2014-04-08 03:14:44

Good Examples
by matheus23
2014-04-05 13:51:37

Good Examples
by Grunnt
2014-04-03 15:48:46

Good Examples
by Grunnt
2014-04-03 15:48:37

Good Examples
by matheus23
2014-04-01 18:40:51

Good Examples
by matheus23
2014-04-01 18:40:34

Anonymous/Local/Inner class gotchas
by Roquen
2014-03-11 15:22:30

Anonymous/Local/Inner class gotchas
by Roquen
2014-03-11 15:05:20
java-gaming.org is not responsible for the content posted by its members, including references to external websites, and other references that may or may not have a relation with our primarily gaming and game production oriented community. inquiries and complaints can be sent via email to the info‑account of the company managing the website of java‑gaming.org
Powered by MySQL Powered by PHP Powered by SMF 1.1.18 | SMF © 2013, Simple Machines | Managed by Enhanced Four Valid XHTML 1.0! Valid CSS!