Bay 12 Games Forum

Please login or register.

Login with username, password and session length
Advanced search  
Pages: 1 [2]

Author Topic: Beginners Programming  (Read 2851 times)

Dorftrottel

  • Bay Watcher
    • View Profile
Re: Beginners Programming
« Reply #15 on: February 16, 2013, 05:58:35 am »

It depends,of couse, on the personality and goals of your boy..also, hsi operating system matters.
(But I assume we're talking windows here.)

If he wants to learn programming thoroughly with most of the concept he might need in a future IT career,
i'd strongly recommend Ada. (Ada 2012,currently)
The advantages of Ada are:
-It's a real compiler language, which makes it much faster in execution than intepreted languages like python,basic or perl.
-It's much more readable than c++, most of the commands are in plain, understandable english.
-It's really safe and has got a no-bullshit compiler that catches allmost all possible errors. (and tells you where they are and why they are errors). It's typing and memory-management is much safer than c++.
-it supports object oriented programming but does not force you to use it like c++ does. This makes the first programming steps much more self-explanatory as you can focus on the commands instead of the structure.
-It's really safe. Ada is often the language of choice for Nuclear Plants, cruise Missiles, airplanes and all sorts of rockets and space-related gear. It gets actualized and debugged more often than much other languages because the US military and NASA itself are founding it's development.
-There's are huge free code libraries for Ada out there, including native support for lego mindstorm.
-It's the language of choice of many Universities for new CS students, so there's bunch of tutorials and training exercises everywhere.
-In Ada, there are very few possible obscure errors. If your program does not work, you can be sure it's your fault, not the fault of your compiler or operating system.
-For windows, it comes with a really good IDE, including a debugger-bound online help.

It's only downside compared to c++ is, that ada not as much widely spread in the Industry as c++, especially as its opengl-bindings are not as advanced.


On the other hand, if your boy just wants to play and make progress fast, i'd recommend a interpreter language.
Python is really nice and easy to use..it also enforces tidy and understandable code, which makes it faster and less frustrating to learn than many other programming languages.
If your boy is rather chaotic and never has problems finding anything in his room even when it's a total mess, he might be born for Perl. It's much more obscure and chaotic than python, but it enables you to write really useful programms really fast. If he's very impatient, perl might appeal more to him than most other languages. It's inherent support of regular expressions is awesome for everything that has to do more with language than mathematics, like text manipulation and simple games.

Oh, and there's also not much wrong with Java...to me, it's a much more tidy form of c++,and very widespread. As with c++, i don't like it for enforcing object orientation from the start, but if you want your boy to learn a language that's used in University and Industries without it being as ugly as c++, java is not a bad choice.

All of the above is, of course, my personal opinion.

Logged

Skyrunner

  • Bay Watcher
  • ?!?!
    • View Profile
    • Portfolio
Re: Beginners Programming
« Reply #16 on: February 16, 2013, 11:37:49 am »

I don't see how C++ forces OO on you. In fact, Java is the one that's ugly, verbose, and shoves OO down your throat. :P

E: Well, not ugly. =_= That's very subjective. But verbose.

Also, C# is an OK language.
Meanwhile, Ada seems to be excellent, but it has very little popularity...
« Last Edit: February 16, 2013, 11:48:23 am by Skyrunner »
Logged

bay12 lower boards IRC:irc.darkmyst.org @ #bay12lb
"Oh, they never lie. They dissemble, evade, prevaricate, confoud, confuse, distract, obscure, subtly misrepresent and willfully misunderstand with what often appears to be a positively gleeful relish ... but they never lie" -- Look To Windward

Dorftrottel

  • Bay Watcher
    • View Profile
Re: Beginners Programming
« Reply #17 on: February 16, 2013, 12:32:03 pm »

okay,I admit i exaggerated the ooc-paradigm of c++...even when writing oo-code is the whole point of choosing c++ over c. (besides the c++ libraries and APIs)

I think c++ is much more popular than ada (or most other modern compiler languages) mainly because of its long history. A longer History translates to more libraries and more APIs for other programs mostly written in c++ for the same reason. It's popular and widespread because it was popular and widespread, even if there are much better alternatives(regarding the features of c++ alone, not the availability of libraries) now.
If you want to program something that relies on hardware-concerning libraries (like openGl or directX), good luck finding them in a language other than c++. (or c#, for directX and windows in general)

For anything that don't requires hardware graphics support, Ada is in the most cases a very solid choice. It might be a bit clunky (for your own good) if you rely on dynamic memory structures, but it makes up in read- and maintain- and recylability. It's a very popular choice for real-time and highly parallel programming, but it is by no means as complicated in its basic structure as that might imply. I've attended a course in real time programming including a comparison of parallelism of C++,java and ada, and it's just plain beautiful in ada.

I think you can compare c++ and ada with screwdriver, with c++ resembling ye olde cross-screwdriver and Ada resemling a Hexalobular torx-driver. The latter will be faster and safer to use, last longer and won't screw up your screws if used wrong, but you'll still get x-drive-screws in nearly anything you buy.
In both screwdrives and programming languages, things have begun to chance slowly in the industry, but it might take decades until the changes are visibly to everyone.

tl;dr: c++ has it's place in life and it's hard to avoid if you want shiny graphics. Ada is awesome, starts simple and takes you all the way to projects of any desired size and complexity.
« Last Edit: February 16, 2013, 12:47:50 pm by Dorftrottel »
Logged

Skyrunner

  • Bay Watcher
  • ?!?!
    • View Profile
    • Portfolio
Re: Beginners Programming
« Reply #18 on: February 16, 2013, 12:41:41 pm »

I'm still skeptical... xD I've never seen Ada mentioned much before, and the lack of popularity often translates to, like you said, lack of shiny things. Also, lack of shiny isn't good when learning, or showing it off to someone else. Think that the person to learn is a 11 year old. Sure, Ada sounds awesome(I don't deny that, though I only have wikipedia to go along), but what's the use if you can't have the pretty things? :S Shinies are important.
Also, widespread support, a la Java/C++/Python is an important thing to consider. Helps you get thru hurdles.
Logged

bay12 lower boards IRC:irc.darkmyst.org @ #bay12lb
"Oh, they never lie. They dissemble, evade, prevaricate, confoud, confuse, distract, obscure, subtly misrepresent and willfully misunderstand with what often appears to be a positively gleeful relish ... but they never lie" -- Look To Windward

Dorftrottel

  • Bay Watcher
    • View Profile
Re: Beginners Programming
« Reply #19 on: February 16, 2013, 01:07:33 pm »

Well, the pretty things we're talking about mostly narrow down to game programming and such, i guess. With 11 years there's very little chance he will get to use things like opengl and directx,as they require extensive mathematical knowledge that he's unlikely to get or understand before college.
Everything else, like ascii-games and eliza-like programms, ada does just as good. And there are numerous wellwritten ada-tutorials out there. Ada's simple structure and readability makes them only more understandable.

If he wants pretty things which aren't graphics related NOW...well, my recommendation of perl still stands ;-) Buy him the learning perl book and he's all set. The book by Randal Schwartz is excellent, it's easy to read,funny, precise and has lots of examples.
I think you can learn to write good, readable perl code in a month and it will take you a very long way in your set goals. Things might get messy when complex data structures are involved...but that's true for most languages. Perl's not for everyone, and most modern interpreter languages are safer and easier to read, but few seem to read your thoughts like perl does. When used right, perl does what you want it to do, not what you tell it to do.

Also, if the boy is scared of text consoles, you might consider buying him a student version (or let him try a demo) of adobe flash. It's great to start manipulating stickmen right away, and learning object oriented programming is never wrong these days. There are more good flash tutorials on youtube than you might ever need. And the ability to show off your efforts to your pals over the internet is quite appealing to most boys of that age.
« Last Edit: February 16, 2013, 01:34:58 pm by Dorftrottel »
Logged

miauw62

  • Bay Watcher
  • Every time you get ahead / it's just another hit
    • View Profile
Re: Beginners Programming
« Reply #20 on: February 16, 2013, 01:28:27 pm »

Let's not derail this in a language war, mkay?
Logged

Quote from: NW_Kohaku
they wouldn't be able to tell the difference between the raving confessions of a mass murdering cannibal from a recipe to bake a pie.
Knowing Belgium, everyone will vote for themselves out of mistrust for anyone else, and some kind of weird direct democracy coalition will need to be formed from 11 million or so individuals.

Lectorog

  • Bay Watcher
    • View Profile
Re: Beginners Programming
« Reply #21 on: February 16, 2013, 01:53:27 pm »

Let's not derail this in a language war, mkay?
Okay, my eleven year old wants to start dabbling in programming. What's a good starting place? Where to go to learn?
It is meant to be, at the core, partly a language debate. I'm finding these suggestions and counter-points to be very productive, personally.

I also like how everyone is assuming the 11yo is male.
Logged

Skyrunner

  • Bay Watcher
  • ?!?!
    • View Profile
    • Portfolio
Re: Beginners Programming
« Reply #22 on: February 16, 2013, 09:01:10 pm »

Nothing's wrong with the masculine default xD
Logged

bay12 lower boards IRC:irc.darkmyst.org @ #bay12lb
"Oh, they never lie. They dissemble, evade, prevaricate, confoud, confuse, distract, obscure, subtly misrepresent and willfully misunderstand with what often appears to be a positively gleeful relish ... but they never lie" -- Look To Windward

Orange Wizard

  • Bay Watcher
  • mou ii yo
    • View Profile
    • S M U G
Re: Beginners Programming
« Reply #23 on: February 16, 2013, 11:24:20 pm »

Python, Python, Python.
It's nice and clean, and very forgiving with things like whitespace or brackets. The commands are easy, compared to the curly-bracket nonsense of the C family. And it could be used as a springboard into OO-programming later on.

I think it would be better to develop understanding of programming concepts than learn a language that is (from a biased standpoint, no doubt) technically "superior".
Logged
Please don't shitpost, it lowers the quality of discourse
Hard science is like a sword, and soft science is like fear. You can use both to equally powerful results, but even if your opponent disbelieve your stabs, they will still die.

Skyrunner

  • Bay Watcher
  • ?!?!
    • View Profile
    • Portfolio
Re: Beginners Programming
« Reply #24 on: February 17, 2013, 12:17:21 am »

Disclaimer: I use C++.

This is my thoughts:

Easy languages:
Python, Ruby?, Squeak Smalltalk

Good languages: (Technically good.)
Perl, Lisp, Scheme
These three languages all happen to be pretty hard to pick up :v

Useful languages:
C++. Java. C. C#?

So, I'd recommend Python or Squeak :D
Logged

bay12 lower boards IRC:irc.darkmyst.org @ #bay12lb
"Oh, they never lie. They dissemble, evade, prevaricate, confoud, confuse, distract, obscure, subtly misrepresent and willfully misunderstand with what often appears to be a positively gleeful relish ... but they never lie" -- Look To Windward

Dorftrottel

  • Bay Watcher
    • View Profile
Re: Beginners Programming
« Reply #25 on: February 17, 2013, 03:26:06 am »

I'm sorry for assuming the 11yo's gender to be male..i just interpolated from personal experience: 300 male students in my CS class...2 female. This gives us a maximum likelihiid estimate of p(male|programmer) = 298/300, which is easy to misconceive as being equal 1. If you have a girl interested in programming, that's awesome, more power to her, your whole family, and all female programmers all around the world. I also like to mention that one of the two girls in CS class was(and still is) a real genius and easily outperforms 99% of all programmers i've ever met.

In the case that OP is still interested in this thread: If your 11yo has not done so already, make him play http://armorgames.com/play/2205/light-bot and http://armorgames.com/play/6061/light-bot-20.
It might help to put her/him in the right mindset and teach the concepts of code nesting and recursion.
Logged

alway

  • Bay Watcher
  • 🏳️‍⚧️
    • View Profile
Re: Beginners Programming
« Reply #26 on: February 17, 2013, 03:48:03 am »

At RIT, the CS department's current course sequence starts with python, then goes to java, then c++ after about a year. In contrast, the Game Development department, in which I'm a student, starts with java, then C#, then C++ eventually; though as of next year java will be removed entirely and it will just be straight-up C# with the possibility of C++ for advanced students IIRC.

That is to say: it actually doesn't much matter which you start with, so long as it is one of the more widely used (documentation, and more importantly, answers to questions, can be found online incredibly quickly).

Also, I have heard some very good things about CodeAcademy. You should probably look into that.
Logged

Putnam

  • Bay Watcher
  • DAT WIZARD
    • View Profile
Re: Beginners Programming
« Reply #27 on: February 18, 2013, 12:36:05 am »

This is how I started at the age of 13: Graphing calculator. TI graphing calculators come with TI-BASIC installed, and it's easy. It's also impossible to screw up. I made a random D&D character generator, a quadratic formula calculator, a number guessing game, all sorts of things.

I say TI-basic, too. I mean, it has 28 global variables and not much more, but you can kinda shlump up local variables with lists, I guess.

I'd say Lua. It's basically pseudocode; it has some... odd table stuff, but for the most basic of programming concepts, Lua is really good.

Orange Wizard

  • Bay Watcher
  • mou ii yo
    • View Profile
    • S M U G
Re: Beginners Programming
« Reply #28 on: February 18, 2013, 01:56:15 am »

This is how I started at the age of 13: Graphing calculator. TI graphing calculators come with TI-BASIC installed, and it's easy. It's also impossible to screw up. I made a random D&D character generator, a quadratic formula calculator, a number guessing game, all sorts of things.

I say TI-basic, too. I mean, it has 28 global variables and not much more, but you can kinda shlump up local variables with lists, I guess.

I'd say Lua. It's basically pseudocode; it has some... odd table stuff, but for the most basic of programming concepts, Lua is really good.
Lua... I remember trying Lua out a while ago. It got rather messy.
But, yeah, it is pretty much pseudocode in other languages.
Logged
Please don't shitpost, it lowers the quality of discourse
Hard science is like a sword, and soft science is like fear. You can use both to equally powerful results, but even if your opponent disbelieve your stabs, they will still die.

miauw62

  • Bay Watcher
  • Every time you get ahead / it's just another hit
    • View Profile
Re: Beginners Programming
« Reply #29 on: February 20, 2013, 01:03:41 pm »

Lua would actually be a pretty nice place to start. There are quite some games that employ lua as their coding language, like gmod and cortex command.
Logged

Quote from: NW_Kohaku
they wouldn't be able to tell the difference between the raving confessions of a mass murdering cannibal from a recipe to bake a pie.
Knowing Belgium, everyone will vote for themselves out of mistrust for anyone else, and some kind of weird direct democracy coalition will need to be formed from 11 million or so individuals.
Pages: 1 [2]