I always liked programming but never really got into it until a few weeks ago. I always put off learning to program but I felt like coming back with CC.
I used CC months ago but could barely make a password lock. Come back a few weeks ago and now I can make pretty advanced programs.
I plan on mastering Lua then moving on to C++ and going to start dev games. I know a lot about how computers function but not really programming I hope to learn a lot more advanced stuff then I already do.
That is basically what I know.
You might want to do something else before C++. Loads of people know about C++, say 'hey, I'll learn C++' then give up really quickly because the difficulty of it breaks their spirit. Not saying you're not capable of doing it one day, just saying it's quite a jump up from lua considering it's Object Orientated and has much stricter syntax than most languages. I recommend trying something slightly easier like C# or Java. C# has XNA for making games (provided you download it, it is available but extra) and Java has LWJGL (what minecraft uses, again, download separately.
I only started really programming when I reached university, completely by accident- before that I was on track to become a microbiologist but I took a semester in CS, loved it and never looked back. I've always struggled a bit, I often joke I'm "classically trained" as opposed to many of my peers who started when they were very young and are much more accomplished than I am.
At my uni, like many, Java is the language of choice and it's the one I'm the most fluent in. Though the course I also covered C as part of Systems and OS, Prolog, AIML and LISP as part of artificial intelligence, C++, Matlab and Fortran 77 as part of mathematical computing and a whopping list I love to recite when I remember for theory and practice of computation- Haskill, C++, Ada, COBOL, and a whole pile of others. The theory is exposure to lots of different paradigms makes other languages faster to pick up, though logic programming still gives me a headache.
My honours year I researched the use of Java with pedagogy, which gave me a bit of a passion for teaching; ended up creating a visualization of the JVM during runtime to help "dispel" the magic of IDE's fixing and inserting code, and helping students move from introductory to full-scale IDE's like Netbeans or Borland.
Once I graduated I stayed on at the uni as a teacher- mostly tutoring and demonstrating Java and C++ to students and even giving a few lectures which was really exciting. I worked a freelance job with some other academics, developing games in XNA for kids with cerebral palsy and later (and still) working with the devil of all programming languages, AS3, in developing some flash games for English as a second language students studying medicine. Pharap you mentioned you're an XNA dev? I think we're a dying breed- we should compare notes sometime :D/>/>
Right now I've started my PhD in advanced gesture interfaces, and I think my passion lies somewhere between HCI and Pedagogy- certainly the way people interact with computers, and I find teaching and helping people understand the concepts that underlie programming to be immensely satisfying work. But as I say because I'm quite late to the profession I have to work very hard to keep up, both at uni and here with some of the other fantastically talented people on the CC forums.
Really excellent to see a lot of people so passionate about programming.
I can relate to the no prior experience thing. Most of my GameDev class knew loads of stuff I didn't before joining the class. I guess that's probably why I got so in to programming: I realised I was able to grasp it fairly easily and part of me wanted to have an advantage over the rest of the class to make up for all the stuff I don't know about that appears to be common knowledge to them (Eg until a few weeks ago, had heard the name skrillex, but had no clue who he was. Generally not very up to date with memes.)
I know nothing about computer logic (the teacher who was supposed to teach us about serial buses and other hardware related stuff essentially said 'there's a computer, go look it up yourself'. Everyone else already knew most of the hardware stuff anyway, but hardware is not my forte. I can barely remember the hierarchy of byte measurements (don't ask me to tell you how many bytes are in a gb, I've only just got it into my head what the relationship between a bit and a byte is).
As for all those other languages, that's impressive, and I have to agree about seeing multiple languages, the main reason I picked up lua so fast is because I knew enough about how structure differs between languages to be able to identify the namespaces(APIs), functions and decipher how programs ran enough to pick up the equivalents without too much tuition.
I wish I had someone to teach me Java. I haven't found a resource as good as VB/C#'s MSDN for Java, but I hope to talk one of my teachers into teaching me some Java, and since he's doing a refresher on VB and teaching us Object Orientation when we go back, I might see if he'll do a trade: I take over a bit of teaching so he can have a break from his busy schedule, then in exchange he teaches me enough Java for me to start using it more comfortably and hopefully I'll then be making my own peripherals and then my own mods. I already know I'm capable of teaching VB since I've taught it to three people and the two who were actually in my class said I did better than the teacher who was supposed to be teaching us at the time, so if 2 of the class agree, hopefully the rest will follow. (If I'm lucky, and actually as good as these people claim I am, though I do have my doubts, I might be able to get a job teaching programming. Either that or I have to be a shopworker, so let's hope a programming teacher position is available lol)
I've only started using XNA recently, but I must admit, the logic is far easier to understand than GameMaker (from a programming point of view), and I've got drawing sprites and spritefonts to screen sorted, as well as keydowns and making my own 'overworld' object (at the moment a sprite with bounds, x, y, height, width draw() and soon PredictiveCollision()). Then I just need to get game timers and sound sorted and I'll make a little sprite-based game. Then I'll worry about 3D and more advanced stuff. Generally though, the sprite drawing and movement is very smooth (and after working with VB for so long it's nice to have some true transparency :P/>/>) and I think our class should have been taught to use XNA/C# instead of game-maker since it's clearer to see what's going on and in my opinion it's more adaptable, or possibly they should have just taught us C# instead of VB in the first place. Not sure what it would have done for our confidence though. Maybe they should have just taught us both and got a better teacher lol
Speaking of HCI, one idea I've always had regarding interacting with a computer regards chromakeying technology. If chromakeying is good enough to track an actor's exact movements across a 3D plain and animate over the points, why don't they adapt that technology to interface with computers? Eg: have a green/blue glove with those white bits on as the hardware for interface, and have the computer track the white points using the standard Chroma-tech, then you can program it to respond to certain changes in the positioning of the points. If you have two gloves, you can have it so one is more of a current action glove (eg movement, selecting) and the other is more of an options glove(swapping what the other glove does basically) and then work the technology up until the point tracking is sophisticated enough to respond to more complicated things. It could even be used to allow the computer to interpret sign language eventually. As someone who knows about HCI, what do you think of this idea? So barmy it might just work, or just plain doo-lally?