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

43 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 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/

    3. 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
  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 dropadrop · · Score: 3, Informative

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

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

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

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

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

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

  3. 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 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)
  4. 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 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/)

  5. 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."
  6. 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!
  7. 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.

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

  9. 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
  10. 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 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.

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

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

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

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

  13. 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
  14. 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.

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

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

  17. 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
  18. 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
  19. 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

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

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

  22. 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.
  23. 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?

  24. 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.
  25. 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!

  26. 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.
  27. 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?

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