Jag är en student i sin sista termin som går för en B.S. i datavetenskap. Jag skulle vilja slutligen övergå till rymdutforskningsindustrin (NASA, SpaceX, Boeing, Lockheed Martin, etc). Jag vet ingenting om avionics och jag vill lära mig mer om ämnet, speciellt programvarans sida. Jag har hittat lite information online. Vänligen ge mig referensmaterial (böcker, webbplatser, etc.) för att lära dig mer om detta område. Din åsikt och ytterligare information välkomnas varmt.
Ok, jag postade detta som en kommentar men blev löjligt lång ...
Jag arbetade för det mesta av mitt yrkesliv på områden som på något sätt är relaterade. Jag kan se att det finns tre studieområden som hjälper dig mycket här.
Första: programmeringsspråk. Att veta ett språk som används i branschen är ett plus. Nu jobbar jag inom bilindustrin / transportbranschen; Jag arbetar inte med säkerhetskritisk material, så vi använder bara standard C / C ++. Även på den nivån är en bra kunskap om programmering och programvara på låg nivå (hur man skriver en enkel drivrutin, hur man interagerar med en enhet som använder ioctl, etc.). Det är mycket användbart.
Innan det arbetade jag på ett fält relaterat till programmeringsspråk och kompilatorer, särskilt om simulering och analys av samtidig kod. Bland de andra har jag kort interaktion med personer som arbetar för Airbus (professorer som är i akademin, men hjälper till att bygga verklig programvara). De ser fortfarande och använder mycket Ada där ute, så .. vet att det är bra :) Jag vet också för ett faktum att Java också används tillsammans med specialverktyg för verifiering av koden.
Som tar oss till det andra: Allt relaterat till verifiering av programvara , både från en teoretisk och praktisk synvinkel, hjälper dig enormt i denna bransch. Studie och övning med runtime monitorer och modell checkers, åtminstone. Lär dig om olika statiska analystekniker, som abstrakt tolkning. Ta klasser om det, om du kan på din skola.
Och tredje: studera och öva med inbyggda system och med (mer sällsynta) realtids OS och hur de fungerar (och hur du programmerar dem). Få dig en arduino eller en netduino (inte en hallon PI - för hög nivå, för många resurser där!) Och träna med dem. Lear om uboot.
Jag misstänker att det enda svaret är "på jobbet".
Lär dig både C och C ++ och lite inbäddad programmering och försök att söka efter några junior positioner i företag som gör avionics som du hittar.
Mobiltelefoner kan egentligen inte betraktas som inbyggda mer, men du borde kunna hitta en kurs i robotik eller cybernetik (industriella kontroller) eller en praktik som involverar dem. En praktikplats med konsumentelektronik kan också hjälpa till.
Och glöm inte flygplanstillverkarna gör sig inte avionics själva utan köper standardmoduler från leverantörer som Garmin eller Honeywell eller underleverantör det till många konsultföretag. Och dessa företag gör ofta också andra typer av inbäddade (bilindustri, industri, etc.).
Anmärkningar: Jag känner fjärran till någon som gjorde avionics och jag tror inte att han specifikt riktade sig till det; han var bara bra C-programmerare och ansökt om ett jobb. Jag själv gjorde lite bilar, jag sökte just igen (junior, det var strax efter examen) C / C ++ jobb i ett konsultföretag som ursprungligen var mobilt och skiftades till bilindustrin, eftersom det ursprungliga projektet inte gick igång.
För avionik kommer följande att vara avgörande för att få ditt CV betraktat: -
Följande skulle också vara användbart: -
Med en BS (inte BIng) i datavetenskap (inte elektronikteknik) kan du vara nackdelen med något av detta. Du måste välja dina projekt för att få rätt erfarenhet du vill ta till arbetsgivare.
Självklart är du dock bara i början av ditt arbetsliv. En examen är bara början, och varje arbetsgivare som anställer akademiker kommer att veta att du behöver träna upp. En bra arbetsgivare kommer att se mer på hur ofta du verkar vara och hur bra de tycker att du kan hämta nya färdigheter. Om du spelar med teknik på fritiden är det förmodligen en bra sak att ta med till intervjuer också.
Jag har en vän som arbetar i Avionics-programvara. Inklusive rymdprojekt.
Han gick in i det genom att söka jobb på företag som arbetar inom det området eller liknande, innan han inte hade någon speciell avionikutbildning eller erfarenhet.
Avionics arbete tenderar att göra mer användning av programmeringsspråk som inte är vanliga. Jag tror att det finns mycket inbyggd C (så allmänna C-färdigheter kan vara användbara), men också processorspecifika montering och språk som Ada (kanske mer för försvarsavionics).
Du är mycket sannolikt att rikta in ett realtidsoperativsystem (RTOS) eller mikrokontroller. Så kunskap om dessa kan vara en fördel. Du kan behöva skriva enhetsdrivrutiner och porta dem till nya plattformar (t.ex. från en mikroprocessor till en annan). Det kan hända att du måste programmera mikrokontroller (t.ex. 8051) i montering eller C.
Det är troligt att du kommer att stöta på en mycket högre stränghet när det gäller att skriva och / eller använda enhetstest, testverktyg, täckningsverktyg, integrationstestning och noggrann formell dokumentation och granskning av allt.
Jag arbetar inte med avionics, men jag har arbetat med fjärranalys i sammanhanget av jordvetenskap.
Jag tror att dessa material kan vara till viss hjälp förutom vad andra har föreslagit, esp. om du råkar vara intresserad av vetenskapliga aspekter (ledsen kan svaret vara något fritt ämne om du inte är).
programmering
Förutom C används Fortran fortfarande mycket för att implementera olika algoritmer och modeller. För mindre uppgifter och visualisering, folk använder ofta Python ( numpy , < a href="http://www.scipy.org/"> scipy , pandas , matplotlib ) och R (R är ett utmärkt statistiskt programmeringsspråk, något du skulle använda istället för Excel för allvarliga saker).
När det gäller C verkar ingen att säkra kodning verkligen är nödvändigt för sådana höga spelapplikationer. Seacord, 2013 är en stor boka för detta ändamål.
Chapman, Stephen J. Fortran 95/2003 för forskare och ingenjörer. McGraw-Hill, 2008.
Seacord, Robert. Säker kodning i C och C ++ (2: a upplagan) (SEI-serien inom programvaruteknik). Addison-Wesley Professional, 2013.
Matloff, Norman. Art of R Programmering. No Starch Press, 2011.
fysik
Goda grundämnen i fysiken är verkligen avgörande för utforskningen av rymden.
Många mätningar gjorda i rymden har att göra med strålning, så jag lägger till en referens till det.
Fysik II: Elektricitet och magnetism ,
Fysik III: Vibrationer och vågor
Videoföreläsningar av Prof. Walter Lewin (MIT OCW)
Halliday, David, Robert Resnick och Jearl Walker. Grunderna för fysik utvidgas. John Wiley & Sons, 2010.
Petty, GW. En första kurs i atmosfärisk strålning (2: e upplagan). Sundog Publishing, 2006.
matematik
Analys är förmodligen det viktigaste, då linjär algebra.
Många problem inom design och fysik har att göra med statistik och optimering.
Linjär algebra video föreläsningar av prof Gilbert Strang (MIT OCW)
Wilks, DS. Statistiska metoder i atmosfäriska vetenskaper. Academic Press, 2011.
Probabilistic Programming & Bayesian Methods for Hackers (tillgänglig online)
Kruschke, J. Göra Bayesian Data Analysis, andra upplagan: En handledning med R, JAGS och Stan. Academic Press, 2014.
Unix / Linux
Unix operativsystem används mycket i tillämpad vetenskap, inbäddad system och superdatorer.
Kerrisk, M. Linux-programmeringsgränssnittet: En Linux- och UNIX-systemprogrammeringshandbok. No Starch Press, 2010.
Lucas, MW. Absolut FreeBSD: Den fullständiga guiden till FreeBSD. No Starch Press, 2007.
många andra böcker, t.ex. som publicerats av O'Reilly
Vissa dagliga läsningar: phys.org/space-news/ (-;
Lärande C och C ++ har redan föreslagits, och jag skulle också lägga till Ada programmeringsspråk till den listan. Många avionics-programvara är skrivet på de tre programmeringsspråken.
Medan du lär dig C / C ++ kan det också vara till hjälp att lära dig att koda ordentligt enligt kodningsstandarder för flygprogramvara.
Jag rekommenderar att du läser:
Om du vill leka med den faktiska avionikprogrammeringen kan du vara intresserad av att få en öppen källkvadron (som den från AeroQuad ) som en leksak och experimenterar med sin programvara.
Jag föreslår starkt att man tittar på en programvaraanalys och lär sig ett provningssystem som PVS. Jag gick tillbaka till skolan efter 14 år i olika mjukvaruindustrier, och den programvaruanalys som jag tagit har lätt varit den mest ögonöppnade. Det hade inte varit så mycket meningsfullt när jag var i skolan, men efter att ha arbetat i många år klickade materialet. Det var aldrig ett ämne som jag kände att jag skulle njuta av, och det kan vara lite torrt, men när du förstår det ser du aldrig programmering på samma sätt,
Från en liten sökning på nätet har jag hittat den här boken: Utveckling av säkerhetskritisk programvara: En praktisk guide från Aviation Software - Rierson .
Läs andra frågor om taggar aircraft-systems software career Kärlek och kompatibilitet Skor Gear 12 Stjärntecken Grunderna