來源 | 程式設計師的那些事(ID:iProgrammer)
有凌晨追看SpaceX 火箭發射直播的童鞋麼?
北京時間5月31日凌晨3點22分,NASA 與 SpaceX 合作,獵鷹9號火箭順利升空。這是 SpaceX 公司首次利用載人龍飛船,把兩位太空人送入地球軌道。龍飛船目前正在追逐國際空間站,預計 19 個小時後,嘗試與國際空間站對接。
(獵鷹9號火箭升空)
有網友調侃道,「賣電動車的都在發射火箭了」
可能有程式設計師(包括我自己)對 SpaceX 工程師們用到的技術棧感興趣了。於是就搜尋相關公開信息。
終於找到 2013 年 SpaceX 的軟體工程師在 Reddit 做過一次公開回應,回答網友們的提問。
SpaceX 軟體工程師團隊在幹什麼
SpaceX 軟體工程師的目標有 2 個:
工作內容範圍就很大了,從大型 Web 應用到小型嵌入式計算平臺都有涉及。Javascript、Knockout、Handlebars、LESS;C++、Linux、C、Python、LabVIEW、MATLAB;看到這,肯定有人冒出疑問了,C# 和 MVC 與火箭發射沒有關聯吧?嗯,沒關係,它們是用來開發內部信息系統的。
大約有 35 人(這是 2013 年的人數)。獵鷹9號火箭、蚱蜢火箭和龍飛船上所有的代碼,都由飛行軟體團隊包圓了。這個團隊中的成員身兼多職,但他們開發和發布的旗艦產品,幾乎所有 SpaceX 員工都在使用的內部 Web 應用程式。技術人員在現場打卡並根據這些設計查看當天的工作內容。(基本涉及到方方面面了。市面上有一些商業化產品可以滿足他們的需求,但 SpaceX 是自己開發了)SpaceX 正在從一個研究和工程公司轉型為一個製造公司,該團隊功不可沒。他們充分利用了C#/MVC4/EF/SQL、Javascript/Knockout/Handlebars/LESS 和 REST API。這個團隊大約有 9 人。主要在 LabVIEW 中編碼,開發用於任務和發射控制的 GUI,供工程師和操作人員監控飛行器遙測和指揮火箭、太空飛行器和平臺支持設備。他們在高度分布式系統中推送高帶寬的數據,並實現由嚴格要求的複雜用戶界面,以確保操作人員能夠及時控制和評估太空飛行器。LabVIEW(英語:Laboratory Virtual Instrumentation Engineering Workbench)是由美國國家儀器公司所開發的圖形化程序編譯平臺,由傑夫·考度斯基(Jeff Kodosky)發明,程序最初於 1986 年在蘋果電腦上發表。LabVIEW 早期是為了儀器自動控制所設計,至今轉變成為一種逐漸成熟的高級程式語言,目前廣泛的被應用於工業自動化之領域上。圖形化程序與傳統程式語言之不同點在於程序流程採用"數據流"之概念打破傳統之思維模式,使得程序設計者在流程圖構思完畢的同時也完成了程序的編寫。—— 維基百科他們與航電硬體設計工程師一起合作,編寫測試軟體,儘早發現硬體問題。該團隊的主要任務:寫出非常全面和強大的軟體,以便能夠在大批量的情況下自動發現硬體的問題。
【說明】:可能有童鞋要問,前文技術棧棧提到了 Python,怎麼沒有說用在哪方面。測試團隊做自動化測試時,肯定用了 Python 腳本了。答:不麻煩,這就是我們的工作!實際上,我們對代碼庫非常滿意。
答:龍飛船對接國際空間站是一個重大挑戰。因為必須要開發許多新代碼。(程式設計師的那些事 補充:今天成功發射的龍飛船,可以自動與空間站完成對接。第一代龍飛船需要藉助空間站上的機械臂。當然,載人龍飛船也保留了人工對接的選項。SpaceX 在 2013 年的龍飛船是第幾代,我沒查。)
問:你們怎麼平衡工作/生活?我聽說在 SpaceX 很容易職業倦怠。你們都在煎熬嗎?答:SpaceX 體現了小型企業的心態。我們全都投資於 SpaceX 及其成功。話雖如此,我們的工作時間卻更長。歸根結底,還是要看你生活中最重要的是什麼。我們當然要應對職業倦怠,那就是休假 :-)。就我個人來說,大多數時候我甚至沒有注意到我已經工作了12~14個小時。我看著時鐘,想著「時間真快在哪裡?」。我認為這證明了我們對項目感到興奮的程度。當你真正享受自己的工作時,並不會感覺像是在工作。話雖如此,我仍然會時不時地休假,藉以保持理智。(程式設計師的那些事 補充:我查看了 SpaceX 的招聘信息,很多技術崗位,基本都有一個額外要求:必要的時候,能加班。 )
對於航天行業,你們覺得最常用/最有用的程式語言是什麼?我的編程經驗非常少,而且很想開始學習,因為這個行業的每一個方面/研究似乎都需要對編程有一定的了解。
對於所有軟體工程師來說,C 語言是一門很好的入門語言。它迫使你學習 CPU 是如何工作的,內存是如何工作的,等等。一旦你掌握了 C 語言之後,再去看 C++。我們團隊所有人都有不同的背景,沒有什麼特別的路徑,我們都是沿著一條路走到這裡的。就我個人而言,我在學校裡得到的最好經驗就是做了個人編程項目。這年頭在網上和應用商店裡有很多機會,可以做一個產品,公開自己的作品讓他人看到。
更多精彩推薦
☞開源公司 HashiCorp 國內險遭禁,阿里、華為也要做好 B 計劃?
☞航拍高手、吉他十級,6500+Star 開源項目作者,後浪程式設計師給力!
☞面試官:你的 SQL 一般有幾個 join?| 原力計劃
☞基於深度學習和傳統算法的人體姿態估計,技術細節都講清楚了
☞面試中遇到這 3 個SQL問題,最容易掉坑裡!
☞好撲科技結合區塊鏈行業發展趨勢,重磅推出「好撲區塊鏈合伙人」計劃
點擊閱讀原文,精彩繼續。