Ask Slashdot: Best Way To Jump Back Into Programming?
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 may actually give you an advantage. Best advice is simply start programming. Pick a project, and work on it.
Give Learn python the hard way a go: http://learnpythonthehardway.org/book/
It is a collection of small exercises that build your knowledge and confidence with python, and you can ask the author questions on each page as you progress.
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 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.
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.
-- This space for lease, low setup fee, inquire within!
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.
I have been reading slashdot regularly for many years now, and I have faith in the Slashdot community advice. This is alarming. Your brain may be more damaged than you realize.
If you mod me down the terrorists will have won
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.
Good luck, and I hope you can enjoy programming once more.
"There is more worth loving than we have strength to love." - Brian Jay Stanley
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.
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
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.
Good luck.
My 2 cents.
We suffer more in our imagination than in reality. - Seneca