Slashdot videos: Now with more Slashdot!

View

Discuss

Share

We've improved Slashdot's video section; now you can view our video interviews, product close-ups and site visits with all the usual Slashdot options to comment, share, etc. No more walled garden! It's a work in progress -- we hope you'll check it out (Learn more about the recent updates).

First time accepted submitter FractalFear writes "15 years ago I was programming in BASIC, and doing some C++, after a serious car accident barely making it out alive, my memory went to crud. I have no recollection of how to do anything in either of those languages any more. I've suffered some damage, and my memory isn't all that great. However if I do repetitive work it sticks to me. I've been in IT for 17 years as desktop support, and I fear I won't ever get much further in life due to my handicap. I am hard working and dedicated, I have been reading slashdot regularly for many years now, and I have faith in the Slashdot community advice. I recently bought Head First C#: 2nd Edition(A friend of mine that programs for a living suggested C# as an easier alternative to C++) the first 4 chapters were great, but after that everything just didn't make any sense. My question(s) to you guys is: What was the best way for you to get back into programming? School? Self taught? And what would be the best language for someone like me to get into? My goal is to make games as a hobby for now, but would like to enter into the market of XBOX Arcade, Steam, mobile etc, particularly 2D TBSRPG games like Shining Force. If you prefer self taught what are some really good books you suggest?"

That cuts both ways. You can waste a lot of time by not knowing basic coding dos and don'ts for whatever language you pick.

Aaaaand... before you all start chiming in with book recommendations: Books are personal, what works for you might not work for me. Books are also expensive. Best to start with something online/free before investing in a load of books on a language you might not even end up using. There's a lot of good stuff on the web.

However, as one who is in this field for a long-long time, I have to tell you that the programming industry is no longer like what we had back then (I read your description and 17-years is considered as a long-time in this field)

I am not very clear about your disability, so I won't tell you what not to do

On the other hand, there are a ton of other stuffs out there, my friend, try them out, maybe those stuffs will suit you much more comfortably than what you had, before that accident

I cannot do programming any more. I cannot do the kind of mental models needed to choose an appropriate algorithm or apply it to a specific situation. I cannot visualize abstractions the way I must have been able to do earlier.

You've answered your own question. You cannot be a good programmer anymore. From this and other posts, you sound to me more like a script monkey than a software engineer. If you want to get into hobby gaming code that only you work on, that may work for you. It would not work, or at least not work well, for any group project.

If you want to Target XBox Live as a platform from an indie perspective. C# with XNA is really your only option. On the plus side, it's very user friendly and easy to learn. There is also tons of free documentation online for it, with tutorials for just about anything you could want to do. Start at http://create.msdn.com/ [msdn.com]

Given the memory issues and what you're saying about once you learn something through repetition it sticks, I would recommend you carefully pick an programming language, platform, and type of programmer that is less likely to change quickly and less likely to disappear. Perhaps the Oracle database's procedural SQL language would be a good choice. Choose C/C++ rather than Python. Look carefully at how the language is used. Java doesn't change much, but the programmer frameworks used with Java change c

Mid level books that spoon feed difficult concepts are so thin on the ground in any topic. I'd like a dummies guide styled book on some complex stuff. Personally, I like to see animations of the process. I can read the text over and over and never get it. One little graphic and I get it first time. Programming is much a mental modeling exercise as anything else.

If you like pictures, than the Head First series almost always has the best option (couple exceptions where they get a bit out of date or whatever. I think the RoR one was supposed to suck). I prefer the "cut to the chase" technical spec style books these days, but when I was starting out and everything was new and mind-boggling, the Head First books were a lot of help. I still like to brush up here and there with their book on Design Patterns. Reading the Go4 book over and over is a bit dry for most.

If he can write (logical) English and can learn stuff (albeit perhaps slowly), I don't see why he couldn't be at least a hobbyist programmer. Might not be the easiest hobby he could have, but then again, might be rewarding too. Probably not very quickly though.

And then he mentions a console platform ("XBOX Arcade", which I take to mean Xbox Live Arcade). Several Slashdot regulars have told me that the only way to sell one's game on a console is to move out and work for a console-licensed video game developer for several years in order to build what Nintendo calls "relevant video game industry experience". And they've repeatedly told me that the only way to sell a game at all in a genre traditionally associated with consoles is on a console.

And then he mentions a console platform ("XBOX Arcade", which I take to mean Xbox Live Arcade). Several Slashdot regulars have told me that the only way to sell one's game on a console is to move out and work for a console-licensed video game developer for several years in order to build what Nintendo calls "relevant video game industry experience". And they've repeatedly told me that the only way to sell a game at all in a genre traditionally associated with consoles is on a console.

True. However, considering that he is currently just trying to find out a way to jump back into programming, I doubt that he has yet researched the various tresholds of getting published. One of the items listed is mobile, and that's not really (relatively) that difficult... Perspiration and a good(ish) idea may be enough. (Getting sales may not be that easy)

One of the items listed is mobile, and that's not really (relatively) that difficult... Perspiration and a good(ish) idea may be enough.

It has to be not only "a good(ish) idea" in general but also "a good(ish) idea" within the limits of a completely flat touch screen. Mobile is fine when your game's actions involve pointing at objects on the screen and activating them with a touch or sliding them around, or for placing objects at various places on the screen. A touch screen is ideal for Bejeweled, Pipe Dream, or Missile Command, for example. But in other genres, the player controls a character who moves around within a large area. Control i

I have to hand it to you tepples, you do take some contrived positions sometimes but more often than not you do give some food for thought. I hadn't thought about the difficulties in exclusive touch screen gaming quite in the terms of relative vs. absolute pointing device for onscreen elements. A lot of games that need relative movement like Final Fantasy for example allow you to put your thumb anywhere on the screen and the "joystick" just appears under it so you get an absolute positioning for the relat

I have to hand it to you tepples, you do take some contrived positions sometimes but more often than not you do give some food for thought.

Thank you. I've learned over the years that extreme contrived positions are a good way to test the limits of a particular theory in order to provide food for thought. But lately I've seen a lot of Slashdot users chicken out of discussing them by using the thought-terminating cliché "you are an edge case", as if edge cases were inherently not worth serving.

A lot of games that need relative movement like Final Fantasy for example allow you to put your thumb anywhere on the screen and the "joystick" just appears under it so you get an absolute positioning for the relative controller.

This method is fine for going from straight to left (place thumb, swipe, hold) or left to straight (release thumb) for something inherently turn-bas

I find it convenient when PayPal is a payment option so that I do not have to provide my credit card information to every vendor / seller on the World Wide Web.

The downside being that you DO have to give your card information to PayPal, who weren't exactly the most trustworthy bunch of bastards BEFORE being borged by eBay.

I trust Paypal with my credit card number much more than some random internet merchant. I've had my credit card number replaced 3 times after it was stolen from merchants. Twice initiated by my credit card company, saying that they were replacing my card due to a potential merchant breach, and once after I noticed the fraudulent charges and started receiving spams to an email address used only by a particular merchant.

Yeah, they do. I tried it out, for curiosity's sake. And dear lord, the parser is horrendous. You'll spend 30 seconds figuring out an exercise, and an hour trying to get the damned parser to work. It's like playing an old adventure game. "put the value in the variable". "put the value ON the variable". "use the value with the variable." "oh ffs never mind"

If they could fix that, I'd give it a thumbs up. Until then, god no. It'd put any rational person off programming for life - if that were representative o

Good to know, as I was planning on giving it a try... I guess I'll wait a bit. Noticed a bit of the same on the javascript exercises, the way the answer is validated is sometimes very strange, and occasionally you have to reload the page to get the answer to be accepted.

Any programming language which recognises whitespace is not only thoroughly inaccessible (this may not be relevant to the OP's disability, but it is to some) but philosophically wrong.

The content should be as detached as possible from the style, which may allow syntactic sugar for an otherwise uniform representation. An example of a very elegant multi-paradigm approach is the language of Mathematica.

So, yes, learn Python if you want to make money, because that's the fashionable dalliance of the day. Perhaps

Of all Python's warts, white space syntax is not one of them. I also question as to how that makes the language inaccessible. Any decent programmer's editor should make it no harder than any other method of defining blocks. In fact, if one's disability involved hand motor control, I'd say white space blocks are far far more accessible than curly braces.

Python's incredible development speed and ease of use comes from, in my opinion, its white space formatting. It's really truly executable pseudo-code. I

I know, it's a real bummer that Python does not allow you to have little to no indentation or write your entire application on on line (*cough *Perl* cough*). Seriously, the white space stuff is the last thing to complain about Python. Complain about "self", complain about how Twisted handles concurrency in a weird way, complain about the lack of decent UI libraries, just please complain about something other than the white space. If it is that big of a deal, then you are doing it wrong anyway and should pr

Something simple, for example working out orbit periods, camera f-stops, ie. something you've an interest in. You can pull the basic maths from wikipedia articles. Then you can work on writing the code around them. From there you you can learn how to use GUI elements to make it fluffier - you can use datatables to display the results, GDI+ to draw graphical representations of results, etc.

Personally, I've always found it difficult to learn a new language by just reading about it and trying to follow examples. By having a target, no matter how simple helps me learn a lot faster. For example, I came across Kerbal Space Program [kerbalspaceprogram.com] a while ago, so I decided I needed some help planning orbits, transfers, etc. So I read up on orbital mechanics and wrote a couple of tools to help me visualise how to do things. In that case I decided to use Javascript because it was quick and dirty. It was also a great opportunity to learn to use the HTML5 Canvas to draw the Hohmann transfer diagram.

As a kid I learned Basic, later in college TurboPascal. After that I did not program for a decade, until the need arose. I needed to do something with my computer to help me send and receive faxes, and couldn't find anything useful at the time. Having read/. for a long time I figured Python would be easy to learn and up to the job, so I just grabbed Python, read a tutorial, and started working on my program. Now I know my way around Python quite well.

People should be able to program just to program, as long as the abstain from telling the rest of us how to do it. This phenomenon is how design patterns like the "Abstract Factory Abstract Factory Selector Observer Pattern" get started.

I was going to recommend Unity too- it's very simple to get something up and running, and then you can expand on it with by adding your own components written in C# or Unity Script (A variant of JavaScript) without needing to reengineer the entire game engine yourself, you just write what you need, and because you're writing in a prebuilt framework it's very easy to write things which are reusable.
It's already got a proven pedigree on Steam, being used in games such as Rochard and Endless Space, and altho

You cloud try learning Processing, the reason I say that is because just like back in the 80s you can type something quickly and see some results, I'm thinking it would help you get into 'the zone' again quicker as you have a very fast and visual feedback loop on what you do.

Learning Ruby might be a good language as well as you have less boiler plate than languages such as C# and C++ etc.

If your handicap is a poor memory then I would suggest that you try self-taught initially as you'll need to find YOUR own way to learn that will work for YOUR memory - I suspect the school approach of memorise to pass exams would be a major disadvantage.

If that really doesn't work then I'd consider why... if you are hampered in your ability to structure the learning or just genuinely need more explanation of the content then I'd go the schooling route

Why would you need to "unlearn" non-object-oriented styles? As long as you aren't using goto's, all of your previous knowledge can still be used in modern object-oriented code. You just need to add some more paradigms to your repertoire. In case you didn't notice, the stuff inside the function is still very much procedural just like it always has been, it's just now you say "object.function(arg1, arg2)" instead of "function(object, arg1, arg2)" and "new Object(arg1, arg2)" instead of "create_object(arg1, ar

This article is right where I am, so I figured I'd chime in.I was in a motorcycle accident about 5 years ago, and knew 5-6 coding languages previous to it. After (because of head injuries from being laid down by a truck sideways), my memory was completely gone for 6 months or so, but came back. Now, my memory is there mostly for long term, but short term is the largest of issues.

It sounds like this guy has the same problems as I do, and I'm going to assume a slight bit of forced ADHD because of that. Anyway, what I find is if I give myself tiny projects to bite into so my mind doesn't wander then everything works out. The key is always for me to take small bites, and once my brain's wheels hit the road (so to speak), everything is good. Personally I think it's because of the short term memory deficit not allowing the instant memories to feed the desire to learn as much. Once you force them into place by anchoring long term memories, it becomes part of you.

Anyway, what I find is if I give myself tiny projects to bite into so my mind doesn't wander then everything works out.

Rest assure, that works best for most people that are not in your condition. Most won't admit it though. Take small bites and realise them. Try to bring them together in abstracted form in order to see the bigger picture.

I don't envy you guys. Accidents are pretty rotten, what's done cannot be undone, events cannot be reversed, etc... I therefore hugely admire your perseverance in refusing to be let down by circumstances!

The best way to learn to program is to actually do it, so I echo the other posters when I say to pick a program and do it. Python is a good language to learn, It makes sense most of the time, so it makes it easier to learn.
Making a game of any type is a great way to learn. Just Tick-Tack-Toe even is enough to just to get your foot in the door. Once you get your first success, no matter how small, it will snowball.
Good luck.

I wonder if you are not setting your goals to high. I am sorry to hear that you had a serious car accident, but you should realize that if your memory has been affected, probably also your other mental abilities might have been compromized. Writing game software requires a lot of mental abilities, and if you can't make it further than the 4th chapter in "Head First C#", (I looked up the table of contents), I wonder whether you ever will be able to write some serious software. Maybe there is another occupation that could give you more joy than proceeding this route where you are going to meet frustration upon frustration.

It about exploring your limits dammit, not about making Doom 12. Otherwise we are all going to drop dead, so what is the point of trying anyway ?
I recon shoot for the next great POV shooter... you may realise that the way to it is to work with a group, you may settle to editing the manual which will be more than I have ever done but you may find your niche.

Correct. I would suggest the original poster go out, find the most advanced 'intro to Java' book they can find, something so obtuse and convoluted that no one could follow it, then let it rot on the shelf while they wait for an orderly to bring their special medication.

Apart from that, of course, they may want to start with something simple but relevant, like LUA and see where that takes them.

I think at this point, that anyone setting out in programming should start with mobile computing.

Nothing else gives you such strong immediate feedback, a sense that you are really doing something - even moreso than web programming (which is pretty immediate as well, but generally less interactive).

Start with whatever platform you already have, if you have a smartphone. If you don't have a smartphone, get either a Nexus7 tablet if you don't have a mac, or an iPod touch if you do, and go to town.

There are tons of free resources for learning programming on mobile platforms since it's such a hot field, lots of it aimed at really novice users so there's no content that would not lead you in as gently as you like.

This is excellent advice.
When I was 10 years old I started doing programming for the Palm OS platform. It was a bit harder then (programming in C, very limited resources, etc...) but I can't imagine desktop programming would have been easier. There were some great third-party distributors available that would handle the sales and cut my cheque each month and prices were higher back then ($10-$20 per unit). By the time I was 15 I was making more in royalties than my parents -- although this was a pretty lo

OP mentioned games, and you mentioned multitouch phones and tablets as a target platform. What's the standard control method for making, say, a platformer on a multitouch tablet? In my experience, trying to play a platformer with an on-screen gamepad is like trying to play with a non-centering Atari 5200 joystick.

Start from your own strength! You have a handicap and you know the kind of support someone like you need.
So do a simple game to help you remember things. Don't be too ambitious. Do something really simple that works and build it out in small stages, always keeping it working (google "agile" if you want to know more about this way of working). Perhaps look at memrise.com for inspiration and think about how you could enhance something like this for someone with your particular issues. Think of special areas, there is more to remembering then vocabulary(people, situations, sounds, music, procedures, short term vs long term) . Think about how in what way a game could support a particular problem YOU have.
When you have a prototype (even a simple one) you might be able to get support, since having the handicap yourself will give you a great story and in this way you can turn your handicap into a a real advantage. Perhaps you will even be able to partner with someone that can help you with the bits that are too specialized for you to do handle yourself. But to get that you first need a prototype game.
Most important of all. Have fun developing it and try to find someone you can show off when it works! We all need this! In this way everything else is a bonus.
Dan

This is a great idea. You know more about memory problems than most people - maybe you could also consider making an app that's useful for rememebering things? I'm sure the regular TODO apps out there are missing out on what the needs of the handicapped are.

I personally think that it's time for you to move on to other areas of game design. Anyone with a decade or more of experience should be able to eventually get into project management or possibly something in the design areas of gaming as that uses less of your wrote memory areas of your brain and more of your creative areas. A project manager or level designer (as examples) can also keep (and is expected to) copious notes. So you can use your job to minimize most of your impairment's problems.

Plus, you'll have less stress and make a lot more money. The only reason anyone, and I really mean ANYONE would be a programmer these days is because they are either planning on making the next great app that takes off or they are planning on working for a major company in internet security or the like or a government institution (Nasa or similar). The other jobs are too much stress and too little reward.

TBH, your goal should be to "understand" a language, not to "learn" it.

Not only is there a huge difference in the end result between the two, but there's a huge difference in the approach as well.

Once one of a class of languages is really understood, it's much easier to learn the syntax of another.

FWIW, I'm in biochemistry and hardly program at all... however, I can't imagine that understanding Python is that much different than understanding German (which I've done in the last two years), which in turn ma

OP's going to repeat the same programming tasks probably hundreds of times. More times than someone with average memory. When s/he's done, s/he's going to understand programming and whatever language very well.

Regardless of what coding you are picking up, you should be training your brain to re-learn the things you need to become successful at coding. You'll need some games/stimulants/training to get that going and keep it a challenge. Maybe people here will know good (self)therapy methods for that? All I can come up with is Sudoku, but there must be more?

If you want to do programming professionally with the particular disability of not having a good memory recollection, I think you might want to look into languages that have a limited scope. Having a limited scope means the set of structures and methods will be limited and thus repeated more often. You might not want a language that offers dozens of ways to solve a single problem, but one that offers just a few ways to solve many different problems. Popular languages like C++/Java/C# are very generic with a

I've had *some* problems with remembering stuff before. It's not anything as severe as you're going through, and I wouldn't hope to imply that I *understand* what you're going through...

But, I hear you on memorizing through repetition. So, whatever you do, I suggest you plan on:-coding many, many different example programs/functions.-re-coding those different examples several times. Perhaps changing how you code them each time (or not - not a requirement).

Give: You've got some brain damage and some handicaps resulting from that and what to get into XBox or some other sort of game development.

Your advantages: You've got life experience, a high frustration tolerance (so I'd definitely presume), are hard working and dedicated.

I strongly recommend that you join a modding crew inmediately, especially if you want into gamedev and you've allready gotten your hands dirty as much as you can with C#.

This would have quite a few advantages given your situation:

1.) You'd be infinitely closer to game dev right away than if you'd start out with scripting in some FOSS language on some obscure OS that only tinker-geeks use.

2.) You'd instantly be in a team with many people involved and could experiment with the areas that you're actually good at. If hardcore coding hurts your brain, there is tons of very important gruntwork to do, especially with game development. loadtesting, pipeline maintainence, protocol testing, app/persistance glue coding, scaffolding, rigging, technical direction, model cleanup, UV mapping (the last 4 are all 3D stuff), SFX testing, etc. Tons of stuff that doesn't need much of any nerdbrain superpower but a stable personality, a high frustration tolerance, dedication and at times the abitliy to give orders and be heard.

3.) If you are hard working and dedicated and have the life experience that comes for free with your destiny, you are an invaluable asset when it comes to motivation, discipline, planning and foresight. All things desperately needed in the modding and professional game development team. When a veteran like you speaks, the young and whiny wippersnappers usually shut up right away away, pull themselves together and get back to working on the next release.

4.) Non-trivial gamedev, as done with some of the modding crews, has so much to do, you can allways inmediately switch tasks if something becomes to frustrating and/or hard if your tired.

5.) Modding is the classical step-stone into pro gamedev.

6.) You'll quickly learn the real life lesson that coding is only a tiny, tiny part of a large projekt. Art, TD, production, HR, management, marketing chances are that if you are serious about your ambitions you'll quickly find a field where you are much more successfull and find much more satisfaction than what you'd find beyond chapter four in "Head First C#". I love coding, especially with Flash/ActionScript, but unless I get it into my head that I'll be earning infinetly more when managing and consulting and maybe doing a little ABAP and, you know, actually get paying jobs, I'm stuck with yesterdays tech, crappy pay and no future.

Bottom line: Don't try to do something you probably simply can't do. Broaden your perspective. The experience you got in coding right now is pointless if you want to be a XBox coder, it may be invaluable if you are a TD or producer. Don't forget that.

I strongly recommend that you join a modding crew inmediately, especially if you want into gamedev [...] Modding is the classical step-stone into pro gamedev.

I'm willing to look into this, with a bit of clarification: Aren't most of the moddable games M-rated first-person shooters? Does one have to come to enjoy M-rated first-person shooters before joining a modding crew?

There's a pretty wide variety, in my experience. For example, Elder Scrolls games are extremely moddable. Civ IV has some amazing mods for it, and one can make mods for Civ V. Most games that were developed with console as the lead platform don't support modding, but there are still enough games that do to give you some variety.

Most games that were developed with console as the lead platform don't support modding

The problem here is that there are entire genres of game that are traditionally "developed with console as the lead platform". And if someone is a fan of one of those genres, then it'll be a pretty big leap to become a fan of a genre where modding is common; you mentioned western RPG and turn-based strategy. The only moddable fighting game I've heard of, for example, is MUGEN.

Java is easy to learn for a C++ developer (Java is used in many university level introductory computer science courses) and it very widely used. It is cross-platform and has a vast array of libraries that gets you going across almost all problem domains (networking, hardware accelerated 2D and 3D graphics, web applications [GWT+vaadin are great], embedded systems, Android devices). Oh, and according to the Tiobe Index it has a lot more industry activity than C# (yes, yes, C# is used widely, but it turns out

15 years ago I was programming in BASIC, and doing some C++, after a serious car accident barely making it out alive, my memory went to crud. I have no recolection of how to do anything in either of those languages any more.

15 years? Seriously! You're giving yourself way too much credit.

Personally, it just takes me 15 days to forget a computer language, no head injury required. Plus, I usually only really know one computer language at a time (when I have to use other languages at the same time, I just cut and paste a lot).

If you want to rehabilitate your memory, quit your job, and get another one (hopefully, a different type of job, but one that you're still able to get, and one that pays the bills). I'm being serious here. Changing routines is best. Also while we're at it, changing employers is also the best for career advancement.

And be careful not to take refuge in computer games. I'm not saying this is the case here, but I've met my share of gamers who wanted to be computer game programmers. Of course, it stands to reason that a game programmer will have played computer games and that many programmers got into programming precisely because of computer games. The only problem I see is that many people that are heavily into computer games think they're going to find a way out of their game addiction, by making computer games, which unfortunately is not the way I'm seeing things happening these days.

One problem is that games are getting so sophisticated now, that the gap between the emotional pay off of playing a game vs. the emotional pay off of actually making a game is becoming much wider, and if my theory is correct, a heavy gamer would be unwittingly conditioning himself to become a poor learner and an impatient computer programmer by continuously playing computer games.

Which is to say, don't give up on your goal of making computer games, but if by any chance, you're heavily into playing computer games. Quit for a while. Get some other hobbies. Unplug yourself from the internet, even from Slashdot. Take a night class or two. And of course, get yourself into programming once again. Programming is certainly not the same as playing, and it comes with much smaller and less frequent emotional pay off's.

Fundamentally, many programming languages are very similar. C++, C#, Java, and even scripting languages like Python and Perl all deal with the same basic concepts and constructs: objects, classes, methods, for-loops, while-loops. What differs is the specifics, and the available libraries.

Now, suppose you were going to the gym for the first time in years after an accident. Your ultimate goal may be to deadlift 250 pounds, but you certainly shouldn't start there.

I am not one of these people who can make a new app out of several different apps in differet languages in a day. For the last 30 years I have mostly written in C, just using the C++ features when I need them. I prefer using simple tools in a smart way, rather than trying to use smart tools in a dumb way. My memory is not great, or at least it cannot be relied upon, so I think I can understand where you are coming from.

My take on it is that the first step is to pick _something_ and start working with it. I'm not sure whatever "it" is has to be the best language, versus training your brain to go through the mental process of programming again.

The $64k question is how your accident has impacted your mental capabilities when it comes to programming, so starting with something "basic" will give you the chance to start to work with a coding project and self-analyze where you might have some holes due to lack of knowledge or d

If you are considering XBOX arcade c# seems to be the obvious choice. However going into games programming of course needs you to focus not only on your programming. But also basic linear algebra, shaders etc. Which makes it much to learn. But it's absolutely doable.
I am guessing that you might have some problems with the Object orientation starting from scratch. Any programming language is a big hurdle to cross. But what I did when starting out was to pick a book (Object oriented programming from square one, in C++). This was 25 years ago.... I read it and tried. Gave up, picked up the book again failed. But the third time I did it it just clicked and I have had an easy time understanding any programming language from then on.
So in short absolutely C#. In the beginning skip the Ui stuff and 3D stuff. After learning the intial stuff build a very simple tic tac toe or something like that with normal UI components. Then move on with for instance irrlicht as a 3D engine. You don't want to code your own 3D engine it takes forever.
Good luck
and have fun!

I went from knowing absolutely zilch about programming to writing my own Blackberry app. Mind you, I was not in a car accident that affected my memory, but I do have issues with memory for reasons too boring to go into. To make a potentially long story short: Have a project. Mine was having a decent ReadItLater and Tumblr Blackberry app. There weren't any at the time I was using a Blackberry and I didn't want to wait for someone else to charge me for one they wrote.

I cannot emphasize this enough: I did not know *anything* about programming. The *only* way I was able to learn it was the project I wanted to complete.

You have a goal, which is to get back into programming...preferably for gaming platforms. Now you need a project. Something that *you* want to make and use.

I think this is a great hobby to excersize the mind. It will probably help with your short term memory problems because programming relies so much on all types of memory. You should start with small problems, but more importantly write everything down. Paper is cheap, write down the requirements, then write down the design, then write down the algorithms you plan to use.. whenever you get lost go back to the paper.

Then there is debugging. By keeping the units small and writing unit tests for them you can mi

As a person with severe ADHD heads first is actually an excellent tool for learning about programming, but some of those abstract concepts take time to sink in and become salient in your mind. If you want to try your hand at making games but with a slightly lower net than plain old C# offers then I would recommend something like Construct2 (http://www.scirra.com/construct2), Stencyl (http://www.stencyl.com/), or even Scratch (http://scratch.mit.edu/) - these are a great way to get familiar with some of the

Programming stresses breaking down problems into smaller and smaller pieces because it's so difficult to keep an entire system in your head. I'd suggest keeping written notes of your design, break your program down into subsystems and document what you intend to accomplish with each of those. Keep a log of interesting discoveries, useful APIs, design decisions and anything you think might be useful that you know you'll forget. Then you can go back and review your notes whenever you need to.

I'd also suggest version controlling your code. That's an additional location for useful notes, and you can also cross-reference notes in your notebooks and check-in versions. Setting up a local git repo or using github is very easy to get into.

Pretty much every programming language has API docs on the internet now. If you can't recall the syntax for a specific API call, you can find it easily enough on Google. No need to keep that in your head. Much more useful is knowing how to accomplish things. If you're going to make an effort to memorize something, I'd suggest studying design patterns and general algorithms and let Google remember the APIs for you.

For all of us, our attention is a limited resource and there's only so much we can learn in any given period of time. You may have to work harder at managing what you try to accomplish with your time, but the most important thing is that you do not give up preemptively. If you decide, "this is what I want to do!" and you go do it, I think you will be successful.

Except that MS hasn't dumped.Net at all - that was uninformed FUD and bullshit from the usual people..Net 4.5 is about to hit,.Net 5 is under active development and.Net (5.5/6) is being talked about. Anyone learning C# right now is as safe as any other language.

Sorry, but learning C++ is a bit like learning Latin. It is good if you want to understand the background of todays modern languages but really, there are so many better and well thought out languages these days that you shouldn't really need to.

Exactly. Python has a few libraries available like pygame, pyglet, panda3d etc that would help someone ease into game development.

To the OP: I wouldn't try any C++ or C# game development until you feel you've made real progress with something simpler. It sounds like you'll need lots of small self contained projects you can succeed with. Ongoing success with small steps of increasing complexity is going to be better than failing at something too big and ambitious.

Actually I have lately started to be more receptive towards various certifications and degrees in IT. There's so many hacks and "fake doctors" around that it's nice to have something official to show. Not sure about the quality or meaningfulness of the different programs, but the general idea is good.