How Can An Amateur Get Started?


joseluisjazz said:
You remind me of this fantastic article I just read :lol: specially ledow. Here it s: Why Johnny Can't Code. Wanted to share.

Great article. I remember early 80's, seeing 'Centipede' for the first time in an arcade in Blackpool on holiday, and not waiting to get home so I could try and make my own version on my ZX81. The closest the kids get nowadays is level editiors or such like. But I think over time the importance of the coder as part of any development team has shrunk significantly. I wonder what percentage of the staff of a typical game studio are coders.

Well, my hunt for sprite/tile editors goes on. 'Tilestudio' works under wine, but my machine is not powerful enough that it works fluidly. DPaint is the same under E-UAE, but certainly usable, for sprites. Using DPaint 4 (AGA) - the one that came in the bundle with the A1200. Good plan to do the outlines on DPaint, then the colouring elsewhere, SteveM.

Sorry, ledow, but I recon I simply don't have the mental ability to code in C!

S
 
Last edited by a moderator:
I work in IT in schools and this is a big bugbear for me. The stuff they teach is atrocious. In some secondary schools, they barely approach LOGO. Some of them do HTML, thinking that's "advanced computing" but the HTML they use is about 10 years out of date... I've seen 18-year-old's using BLINK tags in their A-level submissions. By my definition, there is no programming language taught, anywhere, to kids under about 16. They might do an Excel formula - even from as young as 8 - but even when they are 18 they struggle (and things like
Code:
IF(IF(IF(IF(IF(IF(IF
are considered acceptable in an A-level project!), or run a turtle or LEGO model around the floor but we're talking the essence being IF and GOTO. That's *fine*... for a 6-year-old.

I was 8 when my dad bought me a ZX Spectrum with the little orange BASIC book. My brother had little interest in programming at that time, my parents knew nothing about computers. I sat and read the book and despite skipping the whole UDG sections, I was able to make games by myself, self-taught, as I'm sure most kids who tried at the time were. By 11, I was using the computer to do my maths homework. By 16, I was writing software to post on the Internet, teaching my own A-level computer studies class, teaching the staff how to program, and writing games on my calculator during lessons. I haven't met anyone who can program effectively who *wasn't* from that era. I'm sure they exist but they are probably only enthusiastic about it if their parents were, or they join a community that is. The default of just going through school with modern hardware does not inspire any coding skills whatsoever, and what skills it does give are horrendous or just plain lazy.

I had a work-experience student under me last year. He was 15, top-grade student, privately-educated, wanting to become an engineer (but he couldn't get work experience doing that, so he ended up following me around the prep-school I work in instead). He had never touched a programming language in his entire life. In the space of ONE afternoon, I talked him through a simple dice game and I taught him BASIC (using QBASIC from the DOS-program downloads that MS still offers hidden away on its website). He came in the next day with an "old-school" game (i.e. not pretty, but obviously representative of the game he wanted) that he'd written overnight. I spent the entire next day with him because he had so many questions. These were quite simple and obvious to me, but to him they were a mystery that slowly unfolded. (Basically, I demonstrated that everything was basically putting a number somewhere in memory and manipulating it - he asked about RGB colours, 2D graphics, about joypad control, about printing, about 3D graphics, about textures, about collision-detection, about physics engines, about online multiplayer, about AI - when he saw that it was all done by manipulating numbers in certain ways, his understanding of what was possible increased enormously).

So, the kids are no worse than they used to be in our days, they just lack any sort of insight or enthusiastic mentor to show them what they can do. The teachers are the problem really - they can't program, they can barely operate a computer, they think that baby click-and-drag "flowchart"-style programming is advanced for 18 year-olds and they have no idea how to make any non-trivial program where the kids could say "Oh, that's just like the game I play on Facebook" or similar. I've also noticed that IT teachers tend to be the WORST at this. Even in primary schools, I can find someone that programmed in their youth (usually mathematics teachers who used Pascal or FORTRAN) and they aren't allowed to teach what they know because the IT-teacher "knows better" (i.e. they have a tiny little freeware LOGO program installed by the system admin for them - because they have no idea how to use the computers themselves - and if it differs in ANY way from the LOGO they know, they die mid-lesson). Most British primary schools use this: http://www.softronix.com/logo.html because it comes loaded for free with RM networks (who basically try to take credit for it and think that justifies several hundred pounds of "software pack" for every networked machine). What's embarrassing about that is that my work-experience student could write a better LOGO interpreter than that after one afternoon of learning BASIC.

Kids aren't taught programming languages EVER. That's no big deal, I was never taught a programming language either, really, until I was in University (but that was Java and I'd been programming in that for years before I ever got to uni). The problem is that, as that article points out, there are no simple tools with which to program any more. The free BASIC interpreters are, on the whole, naff or overly complicated (Gambas, FreeBASIC, etc.) and extremely niche. It's embarassing that QBASIC is still actually quicker to program in and easier to use, and you KNOW that it will work. I've seen some that even try to emulate GCC in its command-line nightmare. Visual Basic 3 / 4 was actually fun, usable, quick, simple and fast enough to do everything you wanted. I can remember paying £70 for VB 3.0 when I was about 15 because by then I knew that I could make some use of it - damn that was a lot of money back then. VB 5 / 6 and beyond RUINED the whole thing by trying to make it object-oriented. I have kept hold of my original VB 3 & 4 disks because of this. Knocking up a simple systray app in about 10 lines of code that works on every Windows from 3.1 to XP is no mean feat, though I haven't yet tried it on Vista or 7.

Kids these days, even on this forum, are pushed towards Python and similar languages. I can't even begin to get on with them because I know they are far more complicated than necessary. But you can still teach a "spoiled" private-school kid with iPhones, laptops and PS3s how to program in BASIC (QBASIC as well! He'd never even SEEN a DOS window before) within a few hours and make them enthusiastic and curious. I think kids need some hand-holding these days to get on the right programming track, but they often get side-tracked by programming-nazis who ONLY ever want them exposed to C and Haskell (I blame Djikstra for this - GIT - although I have to give him credit for vast portions of the maths that I love - graph theory). The opportunity for kids to just pick up and learn a programming language is gone - there are too many, too many people telling them what to learn, and yet so few of them ever actually get on to learning anything because of that. BASIC might have created a million "bad" programmers, but it created a million programmers - and a handful of those went on to much bigger and better things. Hell, most of the games industry is filled with people who started on BASIC on an 8-bit computer and by selling tapes of programs from their basement before they were even 16.

It's a sad situation, made worse by people who push towards "the one true language". When your child starts writing, you don't give them a fountain pen and expect calligraphic handwriting and an essay on Shakespeare in iambic pentameter followed by Latin declension. You get a HUGE crayon in a bright colour, and so long as the resulting squiggle is mostly on the paper, that's fine - not eating the crayon afterwards would be considered advanced. BASIC gets too bad a rap now from people who claim to know how to teach kids. In education, like in learning to walk, the first thing that matters is some kind of vague outcome - the child moving towards you in some fashion. The method - crawling, stumbling, jumping, walking backwards, rolling over on their side etc. - can be refined later. Some kids are extra bright and can be taught C++ from the outset, but if you start with BASIC and then later move on to something more structured, they will learn as they go and learn the reasons why certain things are done. Usually when they hit the first infinite-GOTO loop.

Kids today do not get any sort of education in programming. It's also almost impossible to discover one through the noise of the Internet. When I tell my teenage cousins that I "write games" they are so amazingly in awe, it's ridiculous. Do your kids a favour. Spend a week in total over the first ten years of their life getting them to program in any language at all, writing any program at all, in any operating system at all, on any device at all. It doesn't matter what. If they aren't interested, fair enough, but there is no way for them to just pick this stuff up any more - and do NOT rely on their school doing a good job. More maths teachers know how to program in any language at all than IT teachers.
 
One of the reasons I hang on so tightly to my older systems (Oric Atmos, Atari Portfolio, etc.) is that they are very approachable for teaching software development. I want my 3 year old to know Oric BASIC by the time he is 10 years old well enough to be able to do some sort of coding .. so I keep the machines.

No way that he would get that out of an old Windows box with MSVC installed .. ;)
 
So nice to read I did dabble a bit in basic never got me much further than debugging the odd game that somehow got corrupted on my msx. But it did teach me not to be scared of code :D
 
In the 'good old days' you understood how the computer worked. Playing a game on a ZX81 or spectrum, you could knock up a game yourself in a few days, which were not too far removed from what the commercial games were doing. Even on the Amiga you could still see how games worked, for example, how they used sprites and copper lists, etc to create effects.

Modern machines are just so sophisticated now that they seem almost impenetrable to the amateur.

On the original topic, I have not written code for years, and it was always dabbling. I wrote an amiga game in Blitz Basic (A laser squad style game) a good few years ago, and would like to do something similar (more in the Xcom/Disgaea style), but it is getting started. The problems I have, like having to learn a new coding language, and the difficulties of finding a good modern usable sprite/tile and map editor, make getting the design from paper onto screen seem much more of a pain than it used to be!
 
I'll throw in a vote for Paint Shop Pro. Personally I use PSP5, which is even older. I particularly dig the colour swap tool in that. Also for Eclipse, it's pretty swell. When I got into Python I don't think Pydev existed yet, so I had to find other IDEs and honestly Eclipse is the first I like.

Not sure what's up with the Python hate though. I fully admit that I am a raving Python fangirl, so I'm biassed, but what exactly is so much worse about Python compared to BASIC? Keep in mind I started programming in QBASIC myself. Maybe nostalgia is tainting your memories here; I had to write my own pixel editor in BASIC because graphics in QBASIC meant using tons of BSAVE/BLOAD commands. How was that better than using Pygame and typing "sprite = pygame.image.load('sprite.png')"?

You could only write the crudest kind of "game" using basic GOTO structure. Eventually, even in QBASIC, you'd want to start using GOSUB and RETURN, and how is that so much more complex than a basic function call in Python?

Sorry if this seems like an attack, but as someone who went from GWBASIC to QBASIC to Visual Basic to C# to Python and who has never touched low level languages besides C and C++ only when absolutely necessary, I can't see what's so bad about Python. Maybe there is undue emphasis on being 'Pythonic' in Python and doing things with proper OO, writing clean code, all that. It's probably a lot for a beginner to take in.

But you can use Python just as easily to write a single module with code that's no cleaner than a QBASIC program would've been. The good habits Python preaches aren't part of the software, just the philosophy, and you can chuck those right out the window.

As for lack of tools... well maybe I was early to the QBASIC party and moved on well before it matured, but I never had any tools for QBASIC and always had to roll my own.
 
I had a look for PSP7 on ebay following ledow's recommendation, but there are no 'cheap' ones here in the UK (all 20GBQuid +), and buying online direct is the same - pity!

I have no 'hate' for python - far from it, but it has idiosyncrasies that keep tripping me up! The duck typing keeps getting me, and using white space to show code blocks makes the code look messy to me; I like everything 'neat unt tidy'! And it is the most case sensitive thing in existence! But if and when I start using it seriously, I'm sure I'll be fine.

Has anyone ran a pygame prog on an actual pandora? I know python is in the firmware, but I'd be interested to know how fast it runs.
 
I made a post about how Onee-sama Tasukete! was running for me on the Pandora. Don't expect to get solid framerates if you build up the entire screen every frame, but with a little smart optimization it should be fine.

I think there's also speed ups coming in the future for both SDL and Pygame.

And I guess I misunderstood the point you were making about Python then. Sorry about that! :) Though I do admit to wondering how proper indentation hinders tidy looking code. >_>
 
Last edited by a moderator:
Well, I am positively anal about indenting code, but in python you don't 'end' the block, e.g.

Like a silly times table (please ignore any syntax errors!)

Python:

Code:
for f in range(1,13):
   for g in range(1,13):
      print (str(f)+" x "+str(g)+" = "+str(f*g))
exit

Basic:

Code:
for f=1 to 12
   for g=1 to 12
      print str$(f)+" x "+str$(g)+" = "+str$(f*g)
   next
next
end

Maybe it is just me and my prejudices but the basic looks nicer, with explicit end blocks. I think I'll use comments to end my blocks as a solution!

On graphics stuff - I downloaded the trial of PSP7. Seems quite nice as a tool, but I can't seem to find any way of shearing a selection; i.e. distorting a shape from rectangle to parallelogram, trapezium etc. It is obvious in PSP8, but that doesn't seem to run so well under Wine. Is it something I'm missing or is it something PSP7 just doesn't do?

Thanks, by the way, for everyone helping me get up to speed with more modern stuff on this thread... it is appreciated!
 
Back
Top