Let me explain a bit. I´m still in high school and don´t have any real work experience. But I´ve recently read about Musk and his mission to save humanity. Briefly explained, I would like to help him get to Mars,working for him as a programmer. Do you think FCC may lead me to the right path? Thank you for reading,anyway.
FCC focuses on web development, which will not be an important component to get to Mars. While I’m sure there may be a few web developers on the team - for PR and communication among the teams, etc. - the hard core programming to get to Mars will be done in some other language.
FCC might help you get your feet wet in coding and learn some basic concepts, but I’m guessing the hard work of coding the mission will be in something like Python, C++, C, maybe a little assembly, etc.
I don’t know, that’s my best guess.
I think it´s great to know that,kevin.I didn´t have much idea, so your opinion gives me a head start. Thank you
I would also add that I would expect that to be a coder on that thing they’re probably going to want a degree. That’s going to be some pretty intense stuff and one tiny little mistake could get people killed and/or cost billions of dollars. I think they’d be choosing the best of the best which means they’ll be favoring accomplished guys from prestigious schools. Musk himself has two degrees from UPenn and was working on his PhD from Stanford when he left to start his entrepreneur work.
For something like this, they’re going to have the pick of the best of the best of the best. With web dev, it’s debatable about how much you need a degree, but with the type of coding you’re talking about for a Mars Mission, I think they’d really be more comfortable with someone with a degree. It that’s what you truly want, I’d start looking into CS degree programs. While you’re waiting, FCC wouldn’t necessarily be a bad thing, but if it were me, I think I’d find a program in Python (seems to be up and coming), C++, or C. Maybe someone else has a better idea what languages would be used for programs like that. FCC will teach you some universal concepts, but you’ll also learn a lot of things that only apply to web dev. You could always ask on Stack Overflow or Quora - there might be someone there that knows exactly what languages they use. The other option would be to do some research and find the Musk department dealing with this and send them a brief email and ask them to forward it to one of their programmers. Tell them you’re in HS and want to be a coder for the Mars mission one day and ask them what language to study. I think they’d get a kick out of that. Heck, you might even ask Musk directly on Twitter, email, some AMA, etc.
I found this on an Ask Me Anything on Reddit.
We are software engineers at SpaceX. We work on:
Code that goes on rockets and spacecraft.
Code that supports the design and manufacturing process of rockets and spacecraft.
Pleasantly surprised to learn they’re a .NET C#/MVC/MSSQL etc… Microsoft shop. But then again, this is space Enterprise level stuff, so shouldn’t be a surprise.
They probably don’t want a tech stack that will go out-of-fad after a few years, dependent on what’s the hottest flavor-of-the-month, with some stupid-hipster name.
C# has been around since year 2000, .NET framework since 2002, and MSSQL has been around for almost 30 years. So these are very mature, stable and proven technologies with the giant backing of Microsoft.
Also interesting they’re using knockout (2010), LESS (2009), and Handlebars (2007).
This is a company that doesn’t change their stack based on what’s currently popular.
Ha! Okay, now I know why they’re using Knockout.
Knockout was developed by Steve Sanderson back in 2010, and Steve is a web technologist working at Microsoft, and part of the ASP.NET team. And since SpaceX is primarily using Microsoft tech stack, it’s more than likely they used Knockout which was developed by a Microsoft software engineer.
If I could make an intelligent guess, sometime in the future Knockout will probably be replaced with Blazor (running C#/.NET in the browser via WebAssembly) Now, they can have C# on both the backend and frontend.
I can speak a little bit also from experience here as I attended an excellent open source talk put on by a JPL engineer the other week. Someone in the crowd brought up the fact they’d looked into it and they tend to use VXworks, a RTOS, on a lot of their on-board programs.
Unfortunately learning the web will probably never teach you why/how RTOS is important/crucial in many cases.
You want to start with hardware-- Arduino, as it is, is not ‘real-time’ either, but still is a great experience as suddenly you will understand why it is ‘important’. From there you can move on to the BBB with it’s PRU’s, and finally FPGA’s.
However, even still, lucky to be a ‘programmer’ even in this field, or the ‘hardware’ in space is a thousand times harder than on Earth-- We’re talking anti-radiation grade stuff, where a random particle could just accidentally ‘flip’ a bit passing through your chip with ‘Earth grade’ stuff.
So if you ‘really’ want a challenge, something to learn about, but presently that is above my ‘pay grade’.
Shit,kevin. You’ve done your research. Honestly,I hadn’t thought about asking to Musk’s employees directly. I appreciate your guidance. By the way,I guess you’re also interested on the Mars thing,by how you put it. Or are you here for a different reason?
Thank you,abalducci. This is something I will stop to consider. To sum up, I think I should learn a) Python and what kevin said or b) Arduino and hardware like you said. I appreciate you sharing what you learnt at the talk. By the way, what brought you here to FCC? The Mars thing,perhaps?
Edit: I’ve reread the reddit post(thanks for posting) and yes,it reads Python. I guess it will be my next try
Study computer science, electronics engineering, physics, and mathematics. Focus on 3 out of the 4: 1 for a major, 1 for a minor, and 1 for a master’s.
JS/HTML I consider to be a sort of ‘basic’ skill these days, and whereas I had previously worked on some self-taught projects I was looking both for the validation of the program as well as a more formal re-introduction. Sometimes when you are just working on your own projects you only see/learn/focus on the content/context that has direct meaning to what you are trying to achieve, so thus I also hoped to expand my horizon a little on these topics as well.