Ask Slashdot: Best Way To Jump Back Into Programming? 247
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?"
Think of an application that you'd like (Score:5, Insightful)
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.
This article was right where I am, so... (Score:5, Insightful)
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.
Re:If you don't remember BASIC (Score:5, Insightful)
Best advice is simply start programming.
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.
Goal set to high? (Score:5, Insightful)
It depends on your disability (Score:4, Insightful)
I am very encouraged by your determination to bounce back
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
Take care, bro !!
Re:Learn Python The Hard way (Score:3, Insightful)
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 you remember how 15 years ago everyone learned Perl and no-one questioned why it had so many gotchas that it became a psychological burden (some great Perl hackers - very few Perl engineers). And you've entirely missed everyone jumpng on the .NET bandwagon because, well, it was MS so you had to, even though it brought fuck all new to the table and now you're going to be tortured with Metro on a marketing whim because Ballmer hates Apple.
The programming landscape has become boring, really. Lots of rehashes of the same thing. It's nice to see some of the academic stuff supporting parallelism reaching the mainstream, I guess, but people don't try to be creative with it because there's so much bullshit about "processes" and "patterns" to straitjacket you. Development has become a mere business exercise for most.
Best advice given your situation: Join a team. (Score:5, Insightful)
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.
Re:Learn Python The Hard way (Score:4, Insightful)
Re:How about this ... (Score:2, Insightful)