Slashdot Mirror


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?"

174 of 247 comments (clear)

  1. If you don't remember BASIC by Anonymous Coward · · Score: 5, Funny

    That may actually give you an advantage. Best advice is simply start programming. Pick a project, and work on it.

    1. Re:If you don't remember BASIC by Joce640k · · Score: 4, 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.

      --
      No sig today...
    2. Re:If you don't remember BASIC by 1s44c · · Score: 1

      I would recommend systems administration instead of programming if a bad memory is a problem and repetitive tasks stick well. Programming is anything but repetitive.

      System administration is anything but repetitive too, or at least it is once you have configuration management, backups, and monitoring in place.

    3. Re:If you don't remember BASIC by Archimagus · · Score: 3, Informative

      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/

    4. Re:If you don't remember BASIC by hackula · · Score: 1

      Programming CAN be repetitive:
      1 SHARED NAME = 'Bob'
      2 PRINT 'HELLO' + NAME
      3 GOTO 2

    5. Re:If you don't remember BASIC by Arabian+Nights · · Score: 1

      This man gave the best advice I've read so far on the page. Starting with a goal in mind will make learning the steps manageable and put them in context. Learning about polymorphism and inheritance so "Dodge" can inherit "car" doesn't make the syntax stick.

      Also, I've found it to be much more rewarding to pick a project and work on it until completion. Some suggestions: write a script that polls your local Craigslist once a day for specific furniture and stores it in a database/emails hits to you, make a web application that defines a room (rectangular) and furniture that fits inside (rectangles or ellipses) and lets you drag them around, virtually rearranging, etc.

      That's what I love about programming: your creativity is the limit!

    6. Re:If you don't remember BASIC by readin · · Score: 1

      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 constantly.

      --
      I often don't like the choices people make, but I like the fact that people make choices. That's why I'm a conservative.
    7. Re:If you don't remember BASIC by LifesABeach · · Score: 1

      And the games are pretty good. So one could say you're learning to program by using a xBox.

    8. Re:If you don't remember BASIC by LifesABeach · · Score: 1

      I think we just shot past C#'s ability here.

    9. Re:If you don't remember BASIC by LifesABeach · · Score: 1

      It is a brave action to accept that one is Drain Bamaged. IMHO, C# is the best choice.

    10. Re:If you don't remember BASIC by datavirtue · · Score: 1

      Books are expensive? You ever been to Amazon?

      --
      I object to power without constructive purpose. --Spock
    11. Re:If you don't remember BASIC by datavirtue · · Score: 2

      If system administration is not repetitive you are doing it wrong.

      --
      I object to power without constructive purpose. --Spock
    12. Re:If you don't remember BASIC by highphilosopher · · Score: 1

      I know this got modded funny, but it's good advice. Just write code. Tinker with it till it works, then write more.

    13. Re:If you don't remember BASIC by hackula · · Score: 1

      True. No globals in C#. There is goto though, the preferred error handling mechanism for former VB6 devs.

  2. Learn Python The Hard way by i88i · · Score: 5, Informative

    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.

    1. Re:Learn Python The Hard way by phantomfive · · Score: 2

      That is a good one. Advantage is, you don't have to completely understand what is going on to progress. As you go along, it begins to make more sense.

      The disadvantage of that book is, it's still just a beginner book. If you want to progress further, you'll have to look elsewhere when you are done.

      --
      "First they came for the slanderers and i said nothing."
    2. Re:Learn Python The Hard way by Nutria · · Score: 1

      And if that's still too hard for you, then maybe you must face the fact that you *can't* be a programmer anymore.

      --
      "I don't know, therefore Aliens" Wafflebox1
    3. Re:Learn Python The Hard way by Anonymous Coward · · Score: 1

      Go pyton. Try UDACITY - Self Paced excellently thaught.

    4. Re:Learn Python The Hard way by Zontar+The+Mindless · · Score: 1

      Looks like a great book.

      Too bad my options for actually *buying* a copy all involve either PayPal or lulu.com, neither of which I will ever, ever use again.

      Thank goodness there's the free HTML version and wget, I guess.

      --
      Il n'y a pas de Planet B.
    5. Re:Learn Python The Hard way by dropadrop · · Score: 3, Informative

      Codeacademy also has a python track now: http://www.codecademy.com/tracks/python

    6. Re:Learn Python The Hard way by Anonymous Coward · · 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.

    7. Re:Learn Python The Hard way by oji-sama · · Score: 1

      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.

      --
      It is what it is.
    8. Re:Learn Python The Hard way by Nutria · · Score: 1

      I don't see why he couldn't be at least a hobbyist programmer.

      Absolutely. But he wants to be a professional programmer.

      --
      "I don't know, therefore Aliens" Wafflebox1
    9. Re:Learn Python The Hard way by oji-sama · · Score: 1

      I don't see why he couldn't be at least a hobbyist programmer.

      Absolutely. But he wants to be a professional programmer.

      That is perhaps debatable: "My goal is to make games as a hobby for now"

      --
      It is what it is.
    10. Re:Learn Python The Hard way by Anonymous Coward · · Score: 1

      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

      No he doesn't, that's the whole point of TFS ...

    11. Re:Learn Python The Hard way by Clovert+Agent · · Score: 1

      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 of the coding experience, we'd all be living in padded cells by the age of 22.

    12. Re:Learn Python The Hard way by Anonymous Coward · · Score: 1

      The OP might rekindle that part of his brain which stored all his prior programming knowledge and experience by starting with these basic concepts about Python covered in the aforementioned book. Basically, Python is the modern day BASIC.

    13. Re:Learn Python The Hard way by dropadrop · · Score: 1

      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.

    14. Re:Learn Python The Hard way by ciderbrew · · Score: 2

      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.

    15. Re:Learn Python The Hard way by ciderbrew · · Score: 3, Insightful

      I've worked with people who shouldn't be programmers and I'm sure many others have too. Can't program at all doesn't mean not able to get a job programming.

    16. Re:Learn Python The Hard way by pinkushun · · Score: 1

      If you know enough basic coding paradigms like variables, loops, functions and the like, then you can just Dive Into Python.

      The page says it's for experienced programmers, but it's a simple indemnity that translates into "common sense about basic coding paradigms"

    17. Re:Learn Python The Hard way by geminidomino · · Score: 2

      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.

    18. Re:Learn Python The Hard way by ArsenneLupin · · Score: 1

      Can't program at all doesn't mean not able to get a job programming.

      Or maybe he could become a manager.... *ducks*

    19. Re:Learn Python The Hard way by caseih · · Score: 1

      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 think you grossly underestimate how incredibly useful that is.

    20. Re:Learn Python The Hard way by MikeBabcock · · Score: 1

      Yawn, your personal issues with whitespace aside, there's no actual good argument to treat whitespace differently from any other markup.

      Python code never looks half as bad as Perl code as a result primarily of its whitespace requirements.

      cf. the huge styles guide for Linux kernel development; C ignores whitespace, but doing so as a programmer will get your code ignored, so while syntactically irrelevant, its still necessary.

      --
      - Michael T. Babcock (Yes, I blog)
    21. Re:Learn Python The Hard way by hackula · · Score: 2

      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.

    22. Re:Learn Python The Hard way by hawguy · · Score: 1

      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.

    23. Re:Learn Python The Hard way by hackula · · Score: 1

      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 probably be using something like Style Cop, which will force you to code properly anyway.

    24. Re:Learn Python The Hard way by hackula · · Score: 1

      Seriously, are there really people complaining about Python not looking like minified javascript???

    25. Re:Learn Python The Hard way by phantomfive · · Score: 1

      Where can you get animations that teach programming? That sounds interesting.

      --
      "First they came for the slanderers and i said nothing."
    26. Re:Learn Python The Hard way by ciderbrew · · Score: 1

      I've not seen that many. The sorting one stick in my mind most. I just found this. http://www.sorting-algorithms.com/

    27. Re:Learn Python The Hard way by LifesABeach · · Score: 1

      I thought a part of software engineering was accepting that complete understanding was NP?

    28. Re:Learn Python The Hard way by datavirtue · · Score: 1

      Python blows...sorry, but it does. The man is having cognitive problems and you suggest a white-space formatted steaming pile of shit like Python? It makes my brain hurt. No brackets! Get off my lawn!

      --
      I object to power without constructive purpose. --Spock
    29. Re:Learn Python The Hard way by datavirtue · · Score: 1

      Need brackets.....must have brackets!!

      --
      I object to power without constructive purpose. --Spock
    30. Re:Learn Python The Hard way by dffuller · · Score: 1

      Seriously? My text editor of choice (vim) has had a way to automatically replace tabs with a chosen about of spaces for .... basically forever. I can't imagine that any other good text editor doesn't have the same functionality built into it.

    31. Re:Learn Python The Hard way by yenic · · Score: 1

      Seriously? My text editor of choice (vim) has had a way to automatically replace tabs with a chosen about of spaces for .... basically forever. I can't imagine that any other good text editor doesn't have the same functionality built into it.

      My text editor of choice gedit also has a way to automatically replace tabs with spaces. So does Notepad++, VIM (which I also use), Emacs, pretty much everything does that you would even open a .py file with.

      --
      http://www.accountkiller.com/en/delete-slashdot-account Stop visiting Slashdot.
  3. Learn any language by Anonymous Coward · · Score: 1

    While I can't say for sure because I don't understand your situation fully I would suggest focusing more on a method of learning that works well for you rather than a particular language. It's much mroe important to learn the ideas behind programming and apply them to whatever language you would need to do some work in (again I'm not 100% sure if this idea will work in your situation depending on your memory) I am a programmer myself with a terrible memory, I can't just remember things like if A then do B then C then D. But if I understand something then I don't really need to remember any specifics, so i learn why if I see A then I should to B then C then D rather than jsut commiting it to memory. This results in slower initial learnign but in then end I think it is better, atleast it is for me and I'm thinking it might be for you too.

    I would start with something that has a good teaching system, maybe something like codeacademy.com . Yes I know code academy doesn't have the best languages to learn (though they did just add python which I would suggest) but it will teach you the important things that everything is based on. OOnce you understand those you can move on to a particular language with a much better chance of figuring things out.

    Good Luck

  4. Think of an application that you'd like by oobayly · · 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 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.

    1. Re:Think of an application that you'd like by wvmarle · · Score: 1

      I agree. At least, it worked for me very well that way.

      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.

      There was the need for a GUI, so I grabbed GTK2 and Glade, and it was actually great fun building and working with GUIs that way.

      More recently I was in need of a very specific app for my phone that did not exist. Android requires Java, which I had never used before. But no choice in that. I checked the manuals on Google's Android pages, installed Eclipse with the recommended Android extensions, read a basic Java tutorial, and started working.

      A lot of trial-and-error is involved, but the result is I know my way around the software and in the meantime have gotten a basic understanding of object-oriented programming and a few more of that. Stackoverflow was also a great resource for code snippets and general advice on how to solve things.

      But to get a deep understanding of a language, reading books will be a requirement. Learning a language by just starting to work with it will let you scratch the surface, maybe get a bit deeper, but anything further than that I have learned from other sources - including stackoverflow discussions, /. discussions, and other sources.

    2. Re:Think of an application that you'd like by voxner · · Score: 1

      Exactly. Learning to program should not be an end in itself. It should be a path to something tangible - a portfolio of work.

    3. Re:Think of an application that you'd like by icebraining · · Score: 1

      Why? I do prefer to program something useful, but it's also enjoyable in and of itself.

    4. Re:Think of an application that you'd like by MikeBabcock · · Score: 2

      Python + wxWindows is a great rapid development platform for putting together interesting bits of code that are useful like this.

      --
      - Michael T. Babcock (Yes, I blog)
    5. Re:Think of an application that you'd like by hackula · · Score: 1

      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.

    6. Re:Think of an application that you'd like by plover · · Score: 1

      . This phenomenon is how design patterns like the "Abstract Factory Abstract Factory Selector Observer Pattern" get started.

      No, bad programming is how patterns like "Abstract Factory Abstract Factory Selector Observer Pattern" get started.

      Patterns aren't created out of thin air - at least not the few good ones. Patterns are observed in multiple examples of elegant code, then written down and figured out.

      If someone is actually feeding you a line like "the Abstract Factory Abstract Factory Selector Observer Pattern is required in your program for all database access", or even "I've created a new pattern", you have my permission to hit them with a stick and call them an idiot. That's not how patterns work.

      --
      John
  5. If your goal is to make games... by dingen · · Score: 2

    ...then why don't you start with that?

    There are some really great tools out there to get the ball rolling quickly (like Unity or Game Maker). I'd say: think up a simple game, make some designs and get cracking.

    --
    Pretty good is actually pretty bad.
    1. Re:If your goal is to make games... by Molt · · Score: 1

      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 although XBLA isn't a normal target you can write for all of the desktop and mobile OSes. I've also found the Unity community to be a helpful bunch, both in providing tutorial material on the internet and helping with direct questions on the forum, which can be very helpful when you get stuck and to get feedback.

      --
      404 Not Found: No such file or resource as '.sig'
    2. Re:If your goal is to make games... by ClippyHater · · Score: 2

      And there's some really great video tutorials of how to use Unity (http://www.3dbuzz.com comes to mind--it has both free and paid content, as well as http://www.design3.com/)

    3. Re:If your goal is to make games... by icebraining · · Score: 1

      If you like Lua, I'd try Love: https://love2d.org/

    4. Re:If your goal is to make games... by Zaphod+The+42nd · · Score: 1

      Because that's pretty terrible advice. If you don't know the programming language you're working in, trying to make even pong is going to be a gigantic headache and probably going to force you to do a lot of copy & paste coding; which doesn't teach you anything.

      Games are insanely complicated. Don't get me started on 3D.

      Once he's got a really strong grip on a language, and some graphics libraries, then sure, he should try gaming. But he isn't NEARLY there yet.

      Don't put the cart before the horse.

      --
      GCS/MU/P d- s:- a-- C++++$ UL++ P+ L++ E+ W++ N o K- w--- O M+ V- PS+++ PE Y+ PGP t+ 5- X R++ tv+ b++ DI++ D++ G+ e++ h-
    5. Re:If your goal is to make games... by Quirkz · · Score: 1

      In another month or two coursera.org has an upcoming class for programming games. If I remember correctly, it's python programming, and the class covers a couple of old classics that you'd learn how to code, including pong and asteroids. It's free, there's at least a bit of community to discuss things with if you need extra help, and it's got games. At worst if it doesn't seem to be working out, you've lost nothing but a little time.

    6. Re:If your goal is to make games... by Quirkz · · Score: 1

      Really? About the only thing I've ever programmed successfully was a game, because that's what I was interested in. Admittedly I've never had much interest in any non-game, because I can usually find existing software for the practical stuff.

      That said, I stuck with what I knew: I had some web background, so I built a web-based RPG out of PHP and MySQL. It was more akin to the classic choose your own adventure games, with minimal static graphics, than anything flashy. However, that route is very affordable--you can do development on a cheapo hosting account for just dollars a month, or possibly for free if you want to install that stuff on your local system.

    7. Re:If your goal is to make games... by DoctorBonzo · · Score: 1

      A big shout of support for the Unity3D option - your choice of 3 programming/scripting languages: JavaScript (sort of), C#, and Python. Free download & use until/unless you get commercial. The included Mono project development environment is a pretty nice IDE, especially for the price (zero$). For a textbook, I'd suggest "Holistic Game Development with Unity" by Penny de Byl. There's a lot of Unity books, but they mostly tend to be very cookbook-y. De Byl has a cookbook side, but makes a pretty good effort to give the why behind the recipes.

    8. Re:If your goal is to make games... by dingen · · Score: 1

      So if Pong is too complicated, make something simpler. Games are only as complicated as you choose it to be.

      --
      Pretty good is actually pretty bad.
    9. Re:If your goal is to make games... by Zaphod+The+42nd · · Score: 1

      Zork is about as simple as a game can get (from a programming complexity standpoint) and that still requires a pretty solid understanding of programming to pull off.

      Please provide a counterexample. Something "simpler than pong".

      Text based blackjack, I guess. That's really as easy as you can get and still call it a "game", and again, that requires all sorts of things someone just starting out isn't going to know how to approach. So the end result is tons of copy & paste coding. That's where bad habits come from.

      You start with hello, world (not a game), then you do 99 bottles of beer (not a game), a calculator (not a game), and other simple management programs (vending machine software) until you're very comfortable, then you can move on to things that are games.

      --
      GCS/MU/P d- s:- a-- C++++$ UL++ P+ L++ E+ W++ N o K- w--- O M+ V- PS+++ PE Y+ PGP t+ 5- X R++ tv+ b++ DI++ D++ G+ e++ h-
    10. Re:If your goal is to make games... by dingen · · Score: 1

      You're talking as if the goal is to become a programmer. It's not.

      The goal is to create a game. I think the guy will learn how to program a game just fine by simply starting to create simple games using proper tools.

      --
      Pretty good is actually pretty bad.
    11. Re:If your goal is to make games... by Zaphod+The+42nd · · Score: 1

      I'm sorry, I thought this post was titled "Best Way To Jump Back Into Programming".

      Oh yeah, I can see where I would get that, because THAT WAS THE TITLE.

      --
      GCS/MU/P d- s:- a-- C++++$ UL++ P+ L++ E+ W++ N o K- w--- O M+ V- PS+++ PE Y+ PGP t+ 5- X R++ tv+ b++ DI++ D++ G+ e++ h-
    12. Re:If your goal is to make games... by dingen · · Score: 1

      If you read the guy's question, you would see the only reason he's asking the best way to learn how to be a programmer is in order to make games.

      I say: let the man create games. Once he creates a prototype that's worth something, he can always team up with a real developer. But until then, fiddling and copy-pasting is just fine, as he will actually be doing what he wants to do.

      --
      Pretty good is actually pretty bad.
    13. Re:If your goal is to make games... by Zaphod+The+42nd · · Score: 1

      You're inferring and assuming a lot, which I disagree that he implied. Yes, he says at the end he would like to get into game development, so that would be an eventual goal, but he starts off just saying he used to know some code, he wants to get back into coding, how should he start, etc.

      I say that you're way, way off. Its very clear the guy wants to be a programmer. And if he does, doing what you've said would be disastrous.

      --
      GCS/MU/P d- s:- a-- C++++$ UL++ P+ L++ E+ W++ N o K- w--- O M+ V- PS+++ PE Y+ PGP t+ 5- X R++ tv+ b++ DI++ D++ G+ e++ h-
    14. Re:If your goal is to make games... by dingen · · Score: 1

      I can't disagree with you there. I have no idea what he actually wants to do. But this is what I got from his question.

      If he wants to go all hardcore and really learn how to properly write code from the ground up, then your suggestion is obviously a better approach. That will take a few years of his life though. If that's worth the effort is only up to him I guess.

      --
      Pretty good is actually pretty bad.
  6. Processing by Ice+Tiger · · Score: 2

    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.

    From there you can jump to something else if you want to.

    --
    "Because we are not employing at entry level, offshoring will kill our industry stone dead."
  7. Python is the new BASIC by Anonymous Coward · · Score: 1

    Python may very well be the gateway drug you're looking for - it's definitely one of the paths of least resistance (back) into programming: the syntax isn't overly complicated, the interpreter gives you immediate feedback, you can learn it on your own at your own pace, and the combination of Google + StackOverflow seems to work unusually well for finding answers to common questions. You can do quite a bit with it - 2D turn-based strategy RPGs are certainly within its power, as are more complicated games. Most importantly, at least in my experience, Python is *fun*, certainly more so than C++ or C#, so your chance of sticking with it and actually finishing something you start is much higher.

    If I were trying to build an Apple ][-like machine in 2012, I'd build in a Python interpreter.

    1. Re:Python is the new BASIC by Gordonjcp · · Score: 1

      If I were trying to build an Apple ][-like machine in 2012, I'd build in a Python interpreter.

      Not Forth? The Python internal VM is stack-based, so getting that part working ought to be pretty easy. Actually compiling the python code into bytecode is pretty memory-intensive.

  8. Yikes ... by mister2au · · Score: 1

    That sounds fairly ambitious but best of luck to you ...

    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.

  9. How about this ... by giorgist · · Score: 1

    I am trying to get back in, I got a degree before object orientated was big so I have to unlearn. I also have trouble remembering, but repetition is getting it into my head.

    After much experimentation I recommend a combination of two sources

    The New Boston and Learning Java

    1. Re:How about this ... by DarwinSurvivor · · Score: 1, Insightful

      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, arg2)". There are some other differences once you get into more advanced stuff (inheritance, interfaces for you java-folk, etc), but it's still the same beast just with a new fur-lined coat.

    2. Re:How about this ... by Anonymous Coward · · Score: 1

      Sigh. There is nothing intrinsically wrong with the goto.

  10. This article was right where I am, so... by arkane1234 · · 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.

    --
    -- This space for lease, low setup fee, inquire within!
    1. Re:This article was right where I am, so... by SpaghettiPattern · · Score: 1

      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!

      Excellent take on life. All the best.

      --

      I hadn't the slightest objection to his spending his time planning massacres for the bourgeoisie... (P.G. Wodehouse)
    2. Re:This article was right where I am, so... by alysion · · Score: 1

      You have a follower it seems. Me. I was laid down by a truck while riding a motorcycle 16 months ago, TBI (traumatic brain injury), lights out for two weeks, didn't know where I lived a month later when discharged from hospital. Same symptoms. Sort of like aging 20-30 years in a day. But wheels still turn (sort of). Recently learned Joomla! Took six months, but bit by bit, and can still do good work which is the important thing. Takes about three times longer. No one's going to pay me, so forced to suck the ad sense tit. Even Murray Gell-Mann has to work within his limitations. We all do. Mine just changed suddenly.

  11. making games by iplayfast · · Score: 2

    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.

    1. Re:making games by Zaphod+The+42nd · · Score: 1

      I would be careful with jumping in on games. Lots of people don't know how to properly deconstruct a problem like a developer yet, and you'll almost assuredly end up biting off more than you can hope of chewing. He's totally new, he's not even sure what programming language to start yet, and he's dealing with handicaps. I don't think trying to get a game going is a good idea at all. That sort of unrealistic expectations is why we have so many programmers who just copy & paste to get through their assignments and never learn anything.

      Tic tac toe is okay... but you should start with command line, and command line tic tac toe is pretty wonky.

      I would say something like Zork first. A really, really simple text-based game. You can walk north or south, and maybe you can "look" or "use" things.

      Definitely 2D and 3D graphics are right out, until you learn to use APIs.

      Really, this is the wrong approach. That's later, when he's learned some and wants to start applying it. Right now he should start with Hello World, then write a sort program, then write some string manipulation, text based calculator, program that prints out 99 bottles of beer on the wall, etc.

      --
      GCS/MU/P d- s:- a-- C++++$ UL++ P+ L++ E+ W++ N o K- w--- O M+ V- PS+++ PE Y+ PGP t+ 5- X R++ tv+ b++ DI++ D++ G+ e++ h-
    2. Re:making games by iplayfast · · Score: 1

      The reason making games is a good way to learn, is that it allows you to be creative, and try things out. There are plenty of examples to learn from. I agree, doing a graphics game probably isn't the best, unless you really want to. The reason I suggested making a game is that it is the sort of project that can capture you. When you are learning a new field, that is a good thing.

  12. Re:C# is great... by Joce640k · · Score: 1

    PS: Obviously...if you want to get into gaming then the language is pretty much decided for you, it's C++. Remember to READ THE C++ FAQ. /Lost in my own ramblings

    --
    No sig today...
  13. Goal set to high? by Frans+Faase · · Score: 5, Insightful

    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.

    1. Re:Goal set to high? by Anonymous Coward · · Score: 1

      I can't believe that nobody else has had the balls to say this. You're brain damaged and have literally no programming experience. Why not set a more reasonable goal?
      Make a mod for an existing game and start from there. You want to do a simple game? Make your own angband/nethack/roguelike variant. All of them have a good codebase to work from.

    2. Re:Goal set to high? by giorgist · · Score: 1

      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.

    3. Re:Goal set to high? by ToddInSF · · Score: 1

      People read "brain damage" to mean a permanent condition that is static and lifelong.

      I'm sure the intentions discouraging the guy are well meaning, but he's doing exactly what he needs to do, challenging himself and forging new neural connections.

      People suffer varying degrees of brain damage and come out the other end just fine all the time.

      Never buy into other people's imaginary limitations, particularly when they are placing them on you.

  14. Re:slashdot? by Joce640k · · Score: 1

    That's PROOF that you have braindamage.

    As evidenced by all the Python fanbois who didn't even get as far as "...XBOX Arcade, Steam, mobile etc." before posting.

    --
    No sig today...
  15. Warning sign by outsider007 · · Score: 5, Funny

    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
    1. Re:Warning sign by Barny · · Score: 1

      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.

      --
      ...
      /me sighs
  16. It depends on your disability by Taco+Cowboy · · Score: 3, 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 !!
     

    --
    Muchas Gracias, Señor Edward Snowden !
    1. Re:It depends on your disability by Anonymous Coward · · Score: 1

      My background is an associate degree in COBOL, Business BASIC, etc from the days before the Internet and more recently 10+ years working with scripting languages, Perl mostly but also PHP and Javascript, mostly in developing packages to repurpose documents for web pages. Then a severe concussion and surgery for a broken spine followed by weeks of drugs that would screw up a healthy person's thinking. That was now 2+ years ago.

      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.

      What I have found is that I can do 3D modeling quite easily, where there is a similar level of complexity as in programming (if you are doing it all from mesh construction to uv mapped textures to rigging and animating), but where the computer handles the visualizations. So it is not my ability to learn new material or to break complex problems into simpler ones that is gone. But it seems like the ability to make a mental model of something that has no concrete basis is gone.

      Sort of a bummer. OTOH, this did push me into early retirement where I can enjoy life for a change, rather than struggling to stay competitive in the job market with middle aged kids 30 years younger than I.

    2. Re:It depends on your disability by autocannon · · Score: 2

      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.

    3. Re:It depends on your disability by LifesABeach · · Score: 2

      I cannot do programming any more

      "Head First" programming?

      Drain Bamaged?

      C# is the lanuguage for you.

    4. Re:It depends on your disability by datavirtue · · Score: 1

      Don't listen to the nay-sayers man. Study, develop a love for the art, and work for yourself. Build things that help people and you will be rewarded yourself. If you aim to work for someone as a programmer you may find yourself disappointed after you reach your goal. Most of the programmer jobs are for raw enterprise-y stuff that is not very interesting after you learn it.

      --
      I object to power without constructive purpose. --Spock
    5. Re:It depends on your disability by autocannon · · Score: 1

      I would much rather he do listen. My office brought in an old man, late 50s, who "used" to code. Well turns out, the old man couldn't even figure out how to do C# worth a shit. Yet we are stuck with him. Much like we are stuck with a large number of "programmers" who suck. They are at best no more than script monkeys. Idiots who can spew out code that eventually works for their use case only, but is completely unmaintainable, only works in the go path, and fails miserably at error checking. Oh, and it's completely unscalable and very duplicitous. It's a good idea to rewrite basic operations over and over in each class of the project right??

      It's garbage code like that that ends up causing the good developers a LOT more time being forced to debug that garbage and eventually rewrite it. But who in the end gets the flak? The good developer who is tasked in a very short timeline to fix the garbage that was produced by script monkey #1 because the delivery is due and management finally noticed the shit don't work. Not a word gets said to the original moron who couldn't get it to work.

      Perhaps my office management is very inept. I definitely wouldn't argue.

      Look, I'm ranting. Not necessarily at you, just at the notion that anyone can code. Sure, anyone can code just like anyone can be a racecar driver because they can learn to drive. When you look around and see all the buggy and craptastic programs floating around, there's reasons for that. One of which, is having script monkeys do the work of software engineers.

    6. Re:It depends on your disability by EETech1 · · Score: 1

      I find it amazing how aware you are of, and the understanding you have of, exactly what you are "missing" intellectually from before.

      Do you think there is some kind of switch that can be flipped in order to re-enable these previous capabilities?

      Are those abilities still up there just locked away, inaccessible to you for some unknown reason, but if you spent (the proper amount of) time re-learning some of it you could again be proficient in them, or do you have a firm belief they are gone forever?

      Do you think you could ever understand more about them than you did previously?

      Thank you.

  17. Codecademy by getRandomString() · · Score: 2

    Give Codecademy's Python a try. It's fun and easy. http://www.codecademy.com/tracks/python

  18. Get into Mobile Computing by SuperKendall · · Score: 4, Interesting

    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
    1. Re:Get into Mobile Computing by mimicoctopus · · Score: 2

      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 low bar seeing as how my father is an alcoholic and my mother didn't manage to get her degree until I was 9 years old.

      When the Palm OS platform died I decided, regrettably, that I just wanted to have a normal childhood and study natural science in university. This turned out to be a mistake because the emotional problems caused by my father's abuse and constantly switching schools made fitting in more or less impossible.

      After taking a hiatus from programming for about 5 years I recently wrote a very complex scientific modeling app related to the field I was studying. It was probably the most fulfilling thing I'd done in years. I've still got a lot of improvements planned, but it's getting some sales (not like before, unfortunately). I make the majority of my money from programming contracts now and I've decided to transfer to computer science.

    2. Re:Get into Mobile Computing by ThirdPrize · · Score: 1

      I would second this. I program for the day job but a few years ago i got an iPhone. I had always looked down on shareware and freeware but once i got my first app on the app store I was converted. As long as you come up with a vaguely original idea you can write a small puzzle/board game in a month or two of evenings. Probably quicker if its full time. Make it free and people WILL download it. Objective C is fairly good now they have sorted the memory management.

      --
      I have excellent Karma and I am not afraid to Troll it.
  19. Re:slashdot? by Nutria · · Score: 2

    As evidenced by all the Python fanbois who didn't even get as far as...

    He's mentally challenged with bad memory, and you want him to jump in the deep end? What kind of bastard are you?

    --
    "I don't know, therefore Aliens" Wafflebox1
  20. Find your red thread.. by Anonymous Coward · · Score: 1

    Creating a game is a big undertaking, I know, cause I tried and failed 2 times already and working on my 3rd time (new code base).
    Anyhow, what the task have given me is a red thread, something to strive for, something to collect information about.

    With a game, you can digg into every aspects of a computer, from Coding, process scheduling, website for the game etc.
    You really do touch everything, there is always something new to learn.

    Find a language that you think is fairly easy, and learn it good, really good. Then use that one, and dont let anyone tell you otherwise.
    There are languages that is better for some tasks then others, but most tasks has been done in all of the available languages, so its all up to your knowledge of that particualar language.

    For XBox, I would think C# is the most common one, atleast for Indie developers.
    Looks easy enough to start with actually.

    If the goal is to start programming again, why not use one of the easyer languages, like Visual Basic, Python.
    If the goal is in the end to program your own game, look into C#, C++, C

    I learned to program myself, got work, went to school, went back to work.
    People at work come to me when things needs to be really debugged, cause I know the low level stuff, most that I have pickedup during my research for my game project. So even if I never gotten anywhere with the project, it secured my work :-)

    I hope this post gave something.

  21. Re:C# is great... by Richard_at_work · · Score: 5, Informative

    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.

  22. Re:C# is great... by Anonymous Coward · · Score: 1

    Why not start with Java for Android?

    There's a really nice API, OpenGL, and a pretty decent distribution network for you to use (although I think Google's cut of Google Play sales is too high).

    Then you can segway into C++ as you feel comfortable, through the NDK/JNI.

  23. Do a game relevant for yourself by LeoXIII · · Score: 4, Informative

    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

    1. Re:Do a game relevant for yourself by Dynetrekk · · Score: 1

      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.

  24. Processing by Knuckles · · Score: 1

    Processing would be an option. It's basically Java, but gives immediate feedback like s script language, and it's visual, which makes it fun to learn because you see immediate results, and if you want to make games it may be a good fit.

    http://www.processing.org/
    http://www.openprocessing.org/

    --
    "When I first heard Daydream Nation it quite frankly scared the living shit out of me." -- Matthew Stearns
  25. What to do next by Plekto · · Score: 2

    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.

  26. Loss of short term memory by Taco+Cowboy · · Score: 1

    It's very tough for anyone trying to pick up new skills when the short term memory is affected
     
    Soon as you start to get used to something, your forget and have to start over, and over, and over again
     
    I have a relative suffering the same thing and have been trying my best to assist her in getting herself back into normal life routines, again
     

    --
    Muchas Gracias, Señor Edward Snowden !
  27. New Book "Think like a programmer" seems good by elander · · Score: 1

    I just started reading a book called "Think like a programmer" by V. Anton Spraul. The title pretty much gives the content away, and after reading roughly the first quarter I'd say it's a good read. The target language is C++, but that probably won't be too much of a hindrance. Keep a good C++ reference at hand and I suspect you'll do fine. The book is available in both hard copy, ePUB and Kindle format. I am not affiliated with author or publisher in any way.

    --
    /elander
  28. Re:C# is great... by flimflammer · · Score: 1

    C# is great, especially now that Microsoft has dumped .Net and moved on to their Next Great Thing.

    What the hell are you even talking about? C# and .net still has a huge roadmap ahead and is in active development.

  29. If it is really your passion, you will be fine by BlueTrin · · Score: 1

    The best way is often the hard way, you need to seriously spend time starting to do what you wanted to do: as you said in your own post, you should try to program games. You can start by programming a text based version of it and then learn the basics of graphics libraries ?

    As long as you have the motivation and your passion/hobby, you will spend time trying to learn which is what differentiates the best from the rest.

    My only advice to you is to stay realistic and keep trying. Find a community forum where you can get answers for your questions and try to make friends at conventions if you can. Meeting people in real is always better than random online acquaintances.

    --
    Don't you know it is now both immoral and criminal to think beyond the next quarterly report?
  30. LEARNING is not UNDERSTANDING by acidfast7 · · Score: 1

    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 makes understanding Swedish, Danish, Norwegian, Dutch and Afrikaans much easier (understanding is very easy, however speaking them is more difficult).

    1. Re:LEARNING is not UNDERSTANDING by ThorGod · · Score: 1

      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.

      --
      PS: I don't reply to ACs.
    2. Re:LEARNING is not UNDERSTANDING by acidfast7 · · Score: 1

      That's not "understanding," that's brute-force memorization and "learning".

      If the OP "understands" a langauge, they should be able to just learn to new syntax and start programming in a new language immediately.

      Personally, I think that the OP should go extremely slow and really understand the underlying processes, unless (s)he just wants to be a one language code monkey.

  31. try and train your memory as well by dutchwhizzman · · Score: 1

    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?

    --
    I was promised a flying car. Where is my flying car?
  32. Profession? by mwvdlee · · Score: 1

    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 broad scope, but something like COBOL is a lot more limited in scope and still perfectly viable to find employment.

    If you have no (immediate) professional intentions, there are a lot of specialized languages in fun fields (like games, graphics, music), even some purely visual " drag & drop" languages which tend to have a more limited set of operations. Something like FlowStone would be a nice starting point if you like electronics, or it's sister project SynthMaker if you're into music. FlowStone has the benefit of allowing Ruby code, which may be a step up into other areas of programming. SynthMaker has effectively been dead (with significant bugs) for a few years now.

    --
    Slashdot social media options: AIM, ICQ, Yahoo, Jabber and Mobile Text. Why no MySpace?
  33. Re:slashdot? by styrotech · · Score: 1

    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.

  34. Re:Brain damaged? Just go into ISO certification. by Rosco+P.+Coltrane · · Score: 3, Funny

    I suggest a MCSE.

    --
    "A door is what a dog is perpetually on the wrong side of" - Ogden Nash
  35. Pick the Right Tool for the Job by Rezell · · Score: 1

    As an employed programmer that does everything from reading hardware schematics and writing C, to writing server code in C#, and finally writing all our build scripts in Python so they will be cross platform... I suggest learning Python as a way of getting back into things. I work in a variety of environments, embedded/linux/windows, and I had to make certain concessions in my code to account for the OS running the scripts, but Python was very easy to pick up and create useful things. I've managed developers who are very particular about whatever domain they're comfortable in, but if I can get the windows guys to install Python 2.x I'm golden. Always use the best tool for the job, while Python is great, I don't use it to build my .NET projects. MSBuild is better suited for that, no matter how clunky and painful it may be. This post is a bit muddy, so I mean to say if you're writing anything for your own personal improvement, use Python. Once you get your bearings, you may have to adapt and learn something else. Programmers are craftsmen, we should be skilled enough to work with whatever tools we're given.

  36. repetition by ThorGod · · Score: 1

    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).

      There are coding problem websites on the net. They list example problems. Hopefully someone can supply a link...anyway, I'd just work through one after the other.

    The language doesn't matter, the important thing is progress. Though...python is awesome. You can do procedural, OO, and functional programming within python. Plus, a typical python function is bound to be take fewer lines than other languages. And then there's ipython...

    --
    PS: I don't reply to ACs.
  37. Best advice given your situation: Join a team. by Qbertino · · 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.

    --
    We suffer more in our imagination than in reality. - Seneca
  38. project management? by the-build-chicken · · Score: 3, Funny

    used to be able to program ...brain injury....oh come on, I know you're all thinking it

  39. Java is easy to learn by SplashMyBandit · · Score: 1

    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 not nearly as much as Java).

  40. Best way is..... by Conspire · · Score: 1

    With a pogo stick

    --
    Real men don't need signitures!!!
  41. I don't believe you by stephanruby · · Score: 2

    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.

    1. Re:I don't believe you by Anonymous Coward · · Score: 1

      Jesus Christ. You hit the nail on the head here. I used to be a professional computer game programmer but I moved over to web programming during the dot com boom. I've kept an oar in the water at home, working on my own multipurpose 3D engine for fun for the last 17 years. Anyway, I decided about 6 years ago that robotics and AR were about to explode. I've been meaning to get my shit together to ride the wave to riches. I've made some ok progress, but goddamn, my Fallout 3/New Vegas, Urban Terror and Team Fortress 2 addictions have destroyed my productivity.
      It's been so long since I've had a good "roll". Sometime's I think I'm getting dementia, or thing maybe I'm just getting too old, but in reality I think I've just developed a particularly nasty habit of turning to computer games whenever I hit a problem that requires extremely deep problem solving.

  42. Small steps and don't worry about the language yet by QilessQi · · Score: 2

    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.

    If your ability to memorize new information has been compromised, then you'll want to start with a language that has very simple rules and syntax. So, avoid C++ and Perl for now. You could start with plain ANSI C -- very straightforward -- but then you'd have no formal object-oriented programming constructs, which is bad in this day and age. Java or C# will both be good formal languages to learn. And if you're into instant gratification, don't want to learn an IDE, and don't mind running things from the command-line for now, consider Python.

    But above all, give yourself time. With practice you'll get there. Simple stuff now, games and graphics eventually.

  43. Re:C# is great... by ThirdPrize · · Score: 2

    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.

    --
    I have excellent Karma and I am not afraid to Troll it.
  44. Let me get this straight by Anne_Nonymous · · Score: 2

    You were in a car accident and have a brain injury as a result, so the first programming book you bought was called Head First?

    1. Re:Let me get this straight by Anonymous Coward · · Score: 1

      He needs to learn Bash.

  45. Relevant video game industry experience by tepples · · Score: 1

    "My goal is to make games as a hobby for now"

    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.

    1. Re:Relevant video game industry experience by oji-sama · · Score: 2

      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)

      --
      It is what it is.
  46. Control method by tepples · · Score: 1

    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.

  47. Re:Brain damaged? Just go into ISO certification. by jones_supa · · Score: 1

    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.

  48. Baby Steps by bobwoodard · · Score: 1

    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 due to the accident.

    That being said, the concepts and languages available now versus the late 90s are very much changed, so even if you hadn't had the accident, picking up something after 15 years would be a challenge, so don't be discouraged if it doesn't "click" right away!

  49. Modding crew for non-FPS? by tepples · · Score: 1

    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?

    1. Re:Modding crew for non-FPS? by bigstrat2003 · · Score: 1

      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.

      --
      "16MB (fuck off, MiB fascists)" - The Mighty Buzzard
  50. SICP by Celarent+Darii · · Score: 1

    The best book by which I learned programming was this classic:

    http://mitpress.mit.edu/sicp/full-text/book/book.html

    There is also a video series to go along with this book by the best teacher I ever had. For someone who perhaps might have trouble learning syntax, Scheme is very simple. The book teaches mostly concepts which can then be applied to any computing problem. I cannot recommend it enough, though perhaps to a modern audience it might be deemed "too advanced", however the general approach might make it easier as you are given more the reasons 'why' something is done than simply 'how' it is done. Many people with memory problems can work better by seeing the purpose of things as rote repetition is more difficult.

    For programming simple games in Scheme you could use the following which already has many examples built it as well as extensive documentation and code samples:

    http://racket-lang.org/

    Good luck with your endeavors! My advice is to go slow, as in learning anything the journey is half the fun!

  51. Games programming? by exallon · · Score: 3, Informative

    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!

    1. Re:Games programming? by Zaphod+The+42nd · · Score: 1

      If you're just learning programming to start with (OP isn't completely new, but may as well be) then trying to think about the Xbox is a terrible idea.

      Its going to be YEARS until you're ready to code for the xbox, even xbox live arcade. XNA 3D APIs are no walk in the park. There's so many thousands of little headaches to worry about, you need to have your programming fundamentals down ROCK SOLID.

      He should really just take any language (Python, Ruby, Java, C#) and write a hello world. Then a 99 bottles of beer program. Then a calculator. Then Zork.

      Months later he can hopefully make pong, and then tetris.

      Its going to be years until you're ready for XNA.

      I say this not to ruin dreams, but to prepare you. Unrealistic expectations set you up for failure, and encourage you to do things the wrong way (copy & paste). Much, much better to set your goals more realistically, and then take your time, meet them, and understand the process.

      --
      GCS/MU/P d- s:- a-- C++++$ UL++ P+ L++ E+ W++ N o K- w--- O M+ V- PS+++ PE Y+ PGP t+ 5- X R++ tv+ b++ DI++ D++ G+ e++ h-
  52. What about Java? by jehan60188 · · Score: 1

    Java is well documented, and has classes to take care of all sorts of little details.
    If you want to make games, learning java will transfer easily in to making games for Android O/S.

  53. Stack Overflow by bythescruff · · Score: 1

    Whichever language you choose, I recommend going to Stack Overflow, clicking the tag for your language, and sorting the resulting list of questions by number of votes. This will give you a concentrated collection of very useful practical knowledge about that language, nicely arranged in a Q&A format. Here it is for C++:

    http://stackoverflow.com/questions/tagged/c%2B%2B?sort=votes&pagesize=15

    and here it is for Python:

    http://stackoverflow.com/questions/tagged/python?sort=votes&pagesize=15

    I've been reading a few C++ questions per day over my morning cuppa for the last few years, and the difference this has made has been fantastic. You learn about pitfalls you had no idea existed, tips and tricks which can be of enormous benefit, and fun and interesting quirks and corners of the language - which can help keep you interested and enthusiastic. You'll also find the community is very friendly and helpful, which I'm sure will provide some much-needed encouragement. Good luck to you, mate. :-)

    --
    Chuck Norris: Socialism == a thousand years of darkness.
  54. Still, entire genres by tepples · · Score: 1

    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.

  55. Having A Project Is Vital by r0wan · · Score: 3, Interesting

    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.

    --
    If you're not outraged, you're not paying attention.
  56. Mobile control difficulty by tepples · · Score: 1

    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 in these games is based on movement relative to the character's current position, and the character can take any of several actions such as jumping or firing a weapon. These games work best with a joystick, gamepad, or arrow keys, where the player gets some tactile feedback for where his fingers are positioned relative to the keys that control movement and actions. I don't see how to translate them into a touch screen that gives no feedback for the neutral position of movement. What's the typical pattern for platformer control on mobile?

    1. Re:Mobile control difficulty by oakgrove · · Score: 1

      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 relative controller. That seems to be a good compromise and the games that don't offer this are much more difficult to control well. Most emulators don't perform this trick and they mostly suck as a consequence. Also re your sig, sounds like a job for Baye's Theorem.

      --
      The soylentnews experiment has been a dismal failure.
  57. Re:Small steps and don't worry about the language by Richard+Kirk · · Score: 1

    This seems the best advice so far.

    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.

    'C' is a small language. I still have the standard Kernigan & Ritchie book on my desk, and you might be able to read it and do the exercises in a weekend. If you want to use classes (and they are useful, but I have to look up the syntax every time) you can go straight from C to C++. However, C++ is huge, and the typical C++ book is at least 700 pages thick. And 'C' also leads into Java, and C# and lots of other languages. 'C' does not have graphics support, so you would probably go to using an OpenGL library, or skip to Java. Maybe the first step is to find some job that could be done on a command line.

    The main thing is to find a task that interests you. I have never been able to learn an language permanently from examples in a book - you have to use it to do something for any of the stuff to stick.

    How about a sudoku solver? Not a plain brute-force one, but one that tests guesses that look likely to yield results like a human does. This is a hot topic at the moment, with people using some measure of the minimum number of assumptions to measure of how hard a given sudoku is. You could look up how they do it, but by not looking you might come up with something new.

    The next idea would need some graphics: make a general solitaire player. Define some syntax that describes how the cards are laid out; what a legal move is; and how you win, preferably in some human-readable format. The app would lay out the cards for you, and forbid illegal moves, or suggest legal ones. With a bit of tweaking, it could make obvious moves for you if you define what an obvious move was; could test whether a solution exists, or try random legal moves, or allow you to rewind. I know a good game called 'eights' that I have never seen in a solitaire package, and I have always meant to code it up. I started one once, with an ASCII interface ages ago, but never finished it.

    If those ideas don't grab you, then you can probably find something else that does. That's the big step for me, anyhow. Then you can find a language that suits. It might be something completely different from any of our suggestions. All the best with it.

    PS: Don't take some of the slashdot space cadets too seriously - you don't necessary want to code Call of Duty WWIII in your Visual Haskell browser shell on an iPhone. I swear they just want to see the rest of your brain go pop.

  58. How to Think Like a Computer Scientist by ericcc65 · · Score: 1

    I recommend python as a great starter language. I haven't seen this reference here yet:

    http://www.openbookproject.net/thinkcs/python/english2e/#

    Of course, the previously recommneded Dive Into Python is good as well.

  59. Do it by zenyu · · Score: 1

    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 minimize debugging to a degree, but there is always a need for debugging in any large program. Here I also recommend that you write down everything. Write down what the bad behaviour of the program is, write down your hypothesis, write down your steps to prove/disprove that hypothesis, perform the steps and record your results.. etc.. it's a slog, but debugging is always a slog.

    As for the career.. Learning to play the violin to play in the NY philharmonic is just not likely to make you happy in the long run. Learning to play it so that you can make beautiful music will be more fulfilling.

  60. A fun way to get back in the game by eagee · · Score: 1

    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 concepts again in a visual way. This way you can make some progress without the net seeming quite so high, and have results you can feel pretty good about.

    After you've done that for a while you might want to try the heads first C# book again and see if some of those abstract concepts seem to be making new connections. C# is actually a pretty elegant language and once you get familiar with programming again you'll find that it's pretty fun to work with. If none of that seems to be sticking - maybe try something completely different like functional programming? It's possible that it'll use a different part of your brain that has an easier time forming those memory pathways. Best of luck!!

  61. Only learn by doing, but getting started is hard by maxbash · · Score: 1

    I think you can only learn by doing. I think I can empathise with struggling to learn programming. I only took the beginning programming class in collage only 4 times. Then I got a perfect score last time I took it, because I found an aid to help me get started coding. I very grateful for Nick Parlante, his lectures suck for beginners, but he made the free website codingbat.com were you can interactively get started on guided coding exercises. He only has it for Java and Python. I would recommend learning Python before other languages. Then I recommend to find a simple project that is interesting to you and keep going until you can figure out how to finish it.

  62. Keep Good Notes And Let Google Be Your Memory by Greyfox · · Score: 2
    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.

    --

    I'm trying to teach myself to set people on fire with my mind... Is it hot in here?

  63. ideally you would need to take some classes by gatesstillborg · · Score: 1

    requiring completion of a good series of labs. I found the offerings at De Anza College (Cupertino, CA) to be great, and I believe they have on-line/remote available.

    If you cannot find something like this, you will be left to your own resourcefulness. Sounds like some good recommendations for Khan Academy python. I might recommend web or the mobile apps some folks suggested over gaming. That gaming stuff can be pretty grueling. Start with HTML, then some php or python and javascript.

    I feel like programming helped to remedy some of my own ADHD. Don't give up. Give it time and it can suck you in! :)

  64. HTML 5 by InPursuitOfTruth · · Score: 1

    I'd really like to see better HTML 5 games, so start there. HTML is pretty easy to begin. Then Javascript. Then CSS. Then you can get into all the new kool stuff like WebGL, which you'll need to create games with it.

    This will permit you to create games that can be run on just about any computer and OS, and possibly a large breadth of devices, such as tablets or large screen phones.

  65. No one pointed this out yet? by VGPowerlord · · Score: 2

    I'm surprised no one pointed this out yet, but different game stores use different programming languages.

    For example:

    Xbox Live Arcade - C# with XNA for Indie games, C++ for standard games (I think...)

    iOS (iPhone/iPad) - Objective C, and you'll need a Mac with XCode to develop for it.

    PS3/Wii - C++, but as far as I can tell, they do not make Indie development easy.

    Windows/Mac/Linux - Any language that will run on them. The most widely used languages for each platform are likely C++ for Windows, Objective C for Mac, and C for Linux.

    --
    GLaDOS for President 2016! "Well here we are again. It's always such a pleasure." -- GLaDOS, 2011
    1. Re:No one pointed this out yet? by Zaphod+The+42nd · · Score: 1

      None of that remotely matters yet. This guy is JUST learning how to program from the beginning all over again.

      He shouldn't be thinking about games projects yet, at all. That's massively unrealistic.

      You start with any programming language, then write hello world, then write 99 bottles of beer, then write zork, then write pong, then write mario...

      You won't be ready to even THINK about programming for Xbox or iOS for at least 1-2 years of programming. Seriously guys, this is really bad.

      --
      GCS/MU/P d- s:- a-- C++++$ UL++ P+ L++ E+ W++ N o K- w--- O M+ V- PS+++ PE Y+ PGP t+ 5- X R++ tv+ b++ DI++ D++ G+ e++ h-
  66. A, B, and C buttons by tepples · · Score: 1

    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-based like Final Fantasy. Another possibility is to handle touch like Diablo or the DS and Wii versions of Animal Crossing and interpret a touch far from the character's on-screen position as a command to walk in that direction and a touch close to the character as a command to use a tool.* But that wouldn't work for something faster-paced, where the player expects the character to make quick turns from left to up, left to right, etc. Super Mario 64 DS, which allowed using the method you describe for Final Fantasy, also had a directional pad to fall back on for those levels requiring quicker reactions.

    Furthermore, what would work for having multiple action buttons, such as jump, trigger main tool, and trigger secondary tool? The Sega Genesis used to have C to jump, B to trigger the main tool, and A to trigger the secondary tool, and the player could feel which button the thumb was over by the edges of the buttons. The GameCube's buttons were even more strongly optimized for touch identification: a big A button, a smaller B button in the middle, and kidney-shaped X and Y buttons.

    * "tool": I'm trying to use terminology that works well both for violent games and for non-violent games.

  67. go to school, then milk EO by AnAlchemist · · Score: 1
    After 15 years, I wouldn't remember any BASIC or C++ either, accident or no accident. ;) I think most of the advice here is mis-guided.
    • Learning on your own is great and gives you a sense of independence, but you can't generally put that stuff on a resume, making it almost worthless.
    • Volunteering for the Community Corps. and help a non-profit customize a Drupal site or something is nice, but then you have learn Drupal/Wordpress, and you still can't put C# on your resume. Most non-profits don't need development work.
    • What sucks about learning on your own is that it limits your employment opportunities. Most places, sadly, will turn away your resume if you have no education in the field and haven't worked in it already for 5+ years.
    • Startups hire people that don't necessarily have good educational credentials and lots of experience, but they expect rockstars--great coders with quick learning abilities, i.e., probably not you (at least until you get back close to 100%). Startups would expect a lot more from you than you can deliver, and they'll probably be disappointed given your short-term memory issues.
    • School doesn't have most of these issues.

      • Schools almost always give extra support to folks like you. You'll be given extra time to complete tests and quizzes (1.5x - 2x, usually), along with tutors, etc. In fact, having a free tutor is almost the top reason to go to school, as a good one will have the patience to repeat things day-after-day which you say will help you. Most tutors are students themselves, so they are there for 4+ years, so you might be able to stick with the same person year-after-year.
      • Go to a local 4-year school, or do a 2+2 program (where you spend the first two years at a community college and the next two at a regular 4-year school to get a Bachelor's). You sound like a smart guy/gay, so I think you'll do fine. The point is to get a Bachelor's in Computer Science or MIS or something.
      • Go to an public, in-state school! It's a lot cheaper. (Or, go to a school that has cheap out-of-state tuition, like North/South Dakota.)
      • School will also (hopefully) give you lots of extra time to learn the stuff you wanna learn (i.e., C#).
      • Alumni networks can give you a foot in the door, something that's probably gonna be hard for you.

      This is obviously a long-term plan (most good things in life take time, I'm sure you can understand that), and the punchline of this plan is to get into a large corporation that does a lot of EO (Equal Opportunity) hiring.

    • Big corps (e.g., IBM, Microsoft, etc.) tend to have strong EO programs that would love people like you, even if you're not a coding rockstar, as long as you have some education credentials and some skills they like (e.g., Java, C#, respectively).
    • You'll make good money, as these corps don't want to make the headlines that they pay disabled Software Engineer I less money than non-disabled Software Engineer I for "the same work." Even if you're not productive as a non-disabled person, they probably won't wanna pay you any less.

    Yes, this is a long-tem plan. It's not "Learn C# in 24 Hours!" type of stuff. But the payoff is amazing: you'll never have to worry about finding another job, you're not a burdon to society (hell, you'll be paying lots in taxes), and you'll have plenty of money to do whatever you want.

  68. SDL + Lua by dottrap · · Score: 1

    For games, use SDL (C) and embed Lua. Use C for performance sensitive stuff; use Lua for high level stuff. This is what the majority of cross-platform commercial games do. SDL gets you onto all platforms (C and SDL work just about everywhere) and Lua (which is implemented in pure C too and goes everywhere) lets you focus more on the content of your game instead of masturbating with complex language issues.

  69. Take free classes! by avacod · · Score: 1

    I havnt done much programming myself, but i am currently working at getting back into it; in my attempt, im going to be taking free online classes from harvard edx. here is a link: https://www.edx.org/

  70. Just write code, read books by Zaphod+The+42nd · · Score: 1

    There's no shortcuts. Don't try to make games yet, anybody talking about games is taking entirely the wrong approach.

    Pick any language. If you understand the basics of programming properly, and don't just copy & paste code, then you'll be able to transition to any other language trivially. I moved from Java to C++, C#, Python, Ruby, BASIC, etc. all with VERY, VERY little time to learn the syntax differences. Its just not an issue.

    So DO NOT worry about language. Pick a language (I reccomend Python or Ruby, less cruft) and code in it. Just get some basic stuff working. Read some books or read some tutorials online, it doesn't really matter. Write sort programs, write echo programs, write 99 bottles of beer on the wall, write zork, write mario.

    In 1-3 years you can worry about iOS or XBOX development, I'm sorry but you're just not anywhere near where that would be feasible yet. But that said, you can transition to that kind of work from ANYTHING, so don't worry about what you do now, just do something. Get comfortable with code, and please,

    TAKE YOUR TIME AND LEARN THE BASICS. The importance of fundamentals in programming CANNOT be overstated.

    --
    GCS/MU/P d- s:- a-- C++++$ UL++ P+ L++ E+ W++ N o K- w--- O M+ V- PS+++ PE Y+ PGP t+ 5- X R++ tv+ b++ DI++ D++ G+ e++ h-
  71. Free e-course on introductory Python w/games focus by SteveFoerster · · Score: 1

    Through Coursera, Rice University is offering a free online course in a few weeks on introductory Python programming with a specific focus on games:

    https://www.coursera.org/course/interactivepython

    Why not try it? If you don't like it or it otherwise doesn't work for you then you've lost nothing.

    --
    Space game using normal deck of cards: http://BattleCards.org
  72. Find an Open Source Project... by TemporalBeing · · Score: 1

    ...that is interesting and join it. Take little nibbles out of their bug reports, and work your way to adding features.

    --
    Truth is like the sun. You can shut it out for a time, but it ain't goin' away. - Elvis Presley (source: imdb.com)
  73. Hang up the proverbial hat by g0bshiTe · · Score: 1

    Similar to your situation, I have memory issues. Mine seems to be short term memory loss, if I do it tons I'll retain it but even then a few months down the road I'll lose it again.

    That said, programming as a career may not be for you. This doesn't mean you can't have a hand in software development. There is still Q&A as well as UI design. Either of which you may be suited for.

    I'm sorry to hear of your misfortune and wish you the best.

    --
    I am Bennett Haselton! I am Bennett Haselton!
  74. You can do it! by KlomDark · · Score: 1

    20 years ago I wrecked a motorcycle and bashed my head HARD. Huge concussion, memory loss issues, etc. Although I had programmed in BASIC since I was a kid, I found it very difficult to get back into again. However, these days I am a professional lead developer/architect in C#, so all is not lost - you still have hope. So my heart goes out to you and here's some of the stuff that I did to get it back:

    - Your short term memory is going to be messy until you get it retrained. (The mechanics of your brain are smart, they will get better with use. I suspect new 'circuitry' is created by your brain to route around any past damage) Get in the habit of making notes about what you are thinking about, as well as lists about what you are trying to attempt. (For some reason, I found writing on paper worked better for me than typing in the notes. I think the mental processes involved in computing the physical act of shaping all the letters helps your brain get back in shape. Your mileage may vary, this is just what worked for me.)

    - You were talking about reading the C# book then getting lost after a few chapters. I had that issue as well (Still do from time to time.), some times I found it best to read as much as I could comprehend, then sleep on it. Usually the next day it would make more sense. Sleep is excellent for a repairing brain. Do some experimental coding using what you've learned from the chapters you understood. Get good at that part. After doing some of that for a while, go back to the book and try reading what you had found confusing again. Read as much of it as you can understand. Also just brute-force read a chapter at a time, even if you don't understand it, then sleep on it. After sleeping, try reading it again. Too me, it seemed often like my subconscious part of my mind was understanding it, but the conscious part of my mind was having difficulty figuring out how to build a model to comprehend it. Keep at it. Don't give up!

    - I agree that C#, with it's managed memory model (Meaning you don't have to manually allocate memory, keep track of allocated memory, and then release that allocated memory later on - the Garbage Collector keeps track of it for you. You create your objects, and the garbage collector will take care of all the memory mechanics of it for you. Which lets you focus on getting code written, rather that worry about esoterica.) will make it a lot easier to get your brain flowing down the development direction again. Same goes for Java, but then there's the issue of which of many IDEs you should/can use for Java. No matter which you pick, even Java developers will tell you that Visual Studio just smokes anything out there for Java, so I'd go with Visual Studio with all it's brain-assistance stuff and a single way of doing things rather that the myriad Java options. Every time I try to do Java, I get bogged down on all the similar-but-different choices (Eclipse, NetBeans, JBuilder, etc.) I have to choose from, and that's just for the IDE. Some people call that a strength to have all the options, but I find it just unneeded complexity. Visual Studio beats them all anyway, IMO.

    - Another trick is to (temporarily) skip over chapters that don't make sense and try reading further chapters. Quite often C# books cover completely different concepts in different chapters. Just because you can't grok chapter #5 doesn't mean you aren't going to be able to understand Chapter #6 or Chapter #10. Some times you just work with what you can, and eventually just by using the other stuff, the next time you return to a problem chapter it will just make sense this time. Hard to explain.

    - Just repetition. I've been doing that currently with Professional ASP.NET MVC 3. I've had it for about a year now. First time thru, there was a lot that I found puzzling, or just "Why would I do that??". After doing MVC 3 for about a year and a half now, I keep re-reading that book and gleaning more information. Not specifically shilling that book, that's just the one I've been returning to a lot lately a

  75. Re:C# is great... by svick · · Score: 1

    I'm curious, do you have any more information about the next versions of .Net you're talking about? I'm sure people at Microsoft are already working on .Net 5, but aside from Roslyn, they didn't release anything yet.

  76. Re:C# is great... by Richard_at_work · · Score: 1

    It's a matter of finding and following the right people on Twitter :) lots of people talking about .Net 5.0 at the moment!

  77. Re:Can't program anymore? Do real programming by ThorGod · · Score: 1

    Learn a functional programming language.

    This is the best comment yet.

    Sorry...I don't buy it. As a mathematician, yes, I find functional programming interesting (because I've looked into haskell outside of this comment.) But I need better than a couple sentences to be "sold" that suggesting it, in this situation, is the best comment yet.

    --
    PS: I don't reply to ACs.
  78. Contradiction in terms by Sigg3.net · · Score: 1

    "I have been reading slashdot regularly for many years now, and I have faith in the Slashdot community advice"

    You must be new here!

  79. Python? by syngeek · · Score: 1

    You might find Python a good place to start, even though it's not for your target platform. I learned it in a class as my first popular programming language. I was using Prolog before that, but I'd only recommend that if you're into very particular types of problems. Anyways, my class had a great book called "Python for Software Design - How to Think Like a Computer Scientist" by Allen Downey. It's a super newbie book for building from the ground up, very conversational, and a handy reference for when you forget stuff (I have memory difficulty too, though from ADD mostly). It doesn't cover all things you'd ever want to know, but as a foundation, it's really excellent. Python is nice too because it's not so verbose, there are lots of libraries available, and it's fairly popular so getting help when you need it (online or from friends) is easy. Oh, and if your working memory has troubles, you might also find higher level languages easier to work with too. This was one of the good things about Prolog for me (that and I have an extensive background in formal logic). It gave me a place to tackle a specific type of problem (natural language grammar) in a declarative way that actually inspired me to study computer science. Had I started in something like Java, I don't think that would have happened. I didn't get into that until much later. That said, I do love all the stuff available for Java. Learning that was like getting access to the world's biggest Lego set. Also, especially valuable for memory problems, you might want to also really consider the IDEs available for the language you pick. It seems pretty trivial for most people, but a smart, user friendly IDE can make a huge difference in frustration levels if your working memory is affected at all. For Java, which I've been working in most recently, I've been using Intellij IDEA, which has proven to be a lot better than Eclipse for me. They have one for Python called PyCharm, but unfortunately it's not free. Anyways, I think your story is inspiring and I wish you the best!

  80. Fake.IT by Geosota · · Score: 1

    Get a job you are totally unqualified for. This is easier than it sounds. You will need both: a competent accomplice to provide a list of buzzwords and the ability to lie casually. Of course, you will need “experience”. This is easy to pretend. Creating a fake company is just a matter of a $25 cellphone and $10 activation, the drug-dealer special. Soon you will have a paycheck. Lease a car and apartment that you could not possibly afford without this job. Get a high-maintenance girlfriend. You will learn programming.

  81. Just like the 8-bit computers! by kackle · · Score: 1

    Although I'm tucking my reply in here where it seems to fit, I am directing it at the OP. I don't know what your capability was before the accident, or is now, but I guess my optimism for your condition compels me to suggest re-learning BASIC for starters, as some might come back to you. I know a little about many languages (professionally), but if I had to recommend a starting place for someone new to programming today, nothing seems to beat good old BASIC for getting going. Heck, it even has "beginner's" in its name! The problem is, the base language is not as ubiquitous today as it was when I cut my teeth on the 8-bit computers of the 1980s. However, I recently came across a newer cross-platform tool called "App Game Kit BASIC" that reminds me of the BASIC of those days. (Its co-creator claims to have first learned programming on those 8-bit machines.) It is game & 2D graphics-oriented (with 3D planned for the future), so a simple game creation would give you something to shoot for, and you could use whatever graphics you can find if you didn't want to create them from scratch. And, if you do progress over time, you can move your code from the PC over to other platforms like Mac, iOS, and Android with the tool. Also, I would recommend buying the 3rd party book, "Hands On AGK BASIC", that has an overall teaching style aimed at the beginner. I own the tool and the book and am pleased with the small learning curve since I could build on what I remembered from back when. Note: I am not affiliated with the tool, book, nor their respective companies. I wish you luck.