Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

I'm a CS grad and have been programming for past 5 years. I like it. As an experienced programmer I'd like to transition more towards the Space industry. What skills do you think a programmer would already have/ need to get to make that transition? Also why these particular skills and how do you see them relating to the Space industry?

share|improve this question

closed as not constructive by ChrisF Apr 25 '12 at 10:54

As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.If this question can be reworded to fit the rules in the help center, please edit the question.

    
Sorry, I have no idea if there is a stack exchange this fits, but I'm not sure it is here. –  Kevin D May 25 '11 at 9:54
1  
Predictions of the future require substantial up-front fees, paid in cash, directly to my PayPal account. Without the cash, there can be no useful predictions of the future. "How much?" you ask. Enough that it hurts. Otherwise, the predictions are just random guesses. –  S.Lott May 25 '11 at 9:58
    
@S.Lott "Enough that it hurts" definitly going to use that next time someone asks me for a quote, be it money or time. Nice one. –  Kevin D May 25 '11 at 10:11
2  
@kevind Isn't this site for career related questions? Or I can rephrase the question as which space companies private or govt hire programmers for this type of work? –  Pineview May 25 '11 at 10:21
    
@Pineview To be honest I'm not sure. I've sat here for 20 minutes trying to rephrase your question in a way that would stay open and I'm stumped. Part of my problem is addressing the broadness of your suggestions, data analysis skills this community could help you with, but many of your other suggestions are really more Engineering disciplines. Perhaps a Mod, or the Meta Programmers board could help. I think there is an interesting question in there, I just can't tease it out. –  Kevin D May 25 '11 at 10:52

3 Answers 3

You'll have to love old technologies: OOP is performed in C and everything is static.

You'll have to love testing: failure on a spacecraft is not an option (unless you have enough money to rent a shuttle for going there and repair) -- UPDATE: space shuttles are no longer available for rent.

You'll have to love very low level software: debugging may involve disassembling machine code while executed by CPU with a logic analyser.

You'll have to love testing.

You'll have to love realtime distributed software, and even more realtime distributed bugs: semaphores, priorities, dining philosophers, ...

You'll have to love testing.

share|improve this answer
    
Great points... I'm just wondering, aren't there any tech advancements on programming side of whatever hardware they use?... but anyway I'm fine with old tech... gives an opportunity to improve them knowing what is possible :) –  Pineview May 25 '11 at 13:01
    
@Pineview: I think you're the one who's going to get an education in "what is possible". Try running a modern processor with a power budget of two watts. Try finding a modern processor that's radiation-hardened. Maybe you can write an IDE that interfaces with the compiler that emits code for the Gould or Perkin-Elmer machines with custom instruction sets that control the deep-space antennas... –  TMN May 25 '11 at 14:38
    
@tmn yeah I guess you are right... just curious, have you worked at this hardware level? Any pointers which can enlighten me on "what is impossible" :) –  Pineview May 25 '11 at 16:00
    
And don't forget, you have to love testing. –  Michael K May 25 '11 at 16:35
1  
@michael :) I'm a TDD fan, so should be ok –  Pineview May 25 '11 at 17:12

All the basic solid software engineering philosophies (unit tests/ integration tests/ continuous builds/ strong processes /incremental development and what not) applied in a very detail oriented way. (This is hear say from my friends who worked in the Indian space research org's child companies).

Also note: depending on your country, the org could be using some seriously old code base, just because migrating off it is damn hard. So don't be surprised if you run into a mainframe or two.

Finally, Why the space industry? There are so many more rewarding (money wise/ job satisfaction wise/ result wise) industries out there, with equivalent work. The horror stories I have heard about trying to effect a small change in such an established org are ... horrifying.

Remember where ever you go, it all comes down to solid skills / quick learning / attention to details.

share|improve this answer
    
why the space industry? you might want to see earlier version of this question (which got closed) :) –  Pineview May 25 '11 at 12:19
    
also can you give one example of such horror stories... I want to know what are the worst case scenarios. –  Pineview May 25 '11 at 12:21
    
Obviously I can't diss my own country:p, but this is the gist. Very strict Access control, LAYERS of bureaucracy, Very strict hierarchies, experience a direct influencer in promotions and so on. But its all probably good because they are indeed very successful launching satellites/rockets. You can't argue with success! –  Subu Subramanian May 25 '11 at 13:45
    
Yeah - and I just saw your other comment about changing things: You won't be changing much for quite some time due to the strict access controls. And when you do start, it will be a fringe thing until you get "noticed". –  Subu Subramanian May 25 '11 at 13:46
    
+1 For trying to effect change in a firmly established org. –  maple_shaft May 25 '11 at 13:47

An interesting article about writing the software for the space shuttle is here. Basically, you check your ego at the door and follow an incredibly intricate process of specifying, simulating, testing and code reviewing. Any significant change means producing enough documentation to fill a five-foot bookshelf with binders. And the change itself may only be 4-500 lines of code.

share|improve this answer

Not the answer you're looking for? Browse other questions tagged or ask your own question.