Inside 硬塞的網路趨勢觀察

“她寫的程式碼帶領人類上月球,而且發明了軟體” 與新的 6 篇文章 - Inside 網路趨勢行銷與開發

Link to Inside 硬塞的網路趨勢觀察

她寫的程式碼帶領人類上月球,而且發明了軟體

Posted: 16 Oct 2015 03:35 AM PDT

001_3-1024x819

原文來自 Wired〈Her Code Got Humans on the Moon—And Invented Software Itself〉,作者 Robert McMillan。

台灣康泰納仕集團授權提供 / Inside編譯。

最初,Margaret Hamilton 並沒有打算開發軟體或者送人上月球。在 1960 年那個不鼓勵婦女謀求高技術性工作的年代,Hamilton 只是一位 24 歲的數學本科系學生,並且才剛獲得美國麻省理學院工程師的工作。而當時她的計畫是,先去工作支援準備攻讀哈佛法學院的丈夫,然後 3 年後,再輪到她去完成自己的數學學位。

但當時,適逢阿波羅太空計劃啟動。Hamilton 於是待在實驗室發揮所長,創造出一個可能改變人類歷史,甚至數位世界的可能。

作為一個在 1960 年代的職業婦女,當時的 Hamilton 是另類的;而作為一個太空船的工程師,Hamilton 是積極、有企圖心的。Hamilton 總會在週末或下班後,帶著她的女兒 Lauren 到實驗室繼續工作,而當時年僅 4 歲的 Lauren 總是會睡在可以俯瞰查爾斯河的實驗室地板上。

mhh-lauren-2-1024x870▲Hamilton (右)和她的女兒 Lauren(左)。

回憶過往,Hamilton 說,

當時許多人都會問我,你怎麼捨得這樣對待女兒?

但 Hamilton 愛上這份工作的神秘新奇,她愛上下班以後大家聚集在酒吧喝一杯的友誼、打屁聊天的怪笑話。而外行人也許還是摸不透這個工作迷人之處,但 Hamilton 覺得待在實驗室裡,讓她就像「那一群『男人』當中的一份子!」。

當時,就和現在一樣,這樣一群「男人」主導了當代的科技和工程,而像女性工程師 Hamilton 這樣子的人,在現今這個多元挑戰的科技產業中,仍是例外。這令現代許多軟體開發商感到驚訝,原來屬於兄弟們的俱樂部,其創辦人之一竟是一位女性!但這也許也能讓他們停頓下來思考,為什麼《廣告狂人》時代的性別歧視會一直延續到了今天。

隨著 Hamilton 為自己職涯的安排,軟體世界也跟著大大翻轉,而這一切都多虧了由 John F. Kennedy 在 1961 年發起的阿波羅計畫。在麻省理工學院的儀器實驗室中, Hamilton 和她的同事們發明了世界上第一台可攜式電腦的程式碼。Hamilton 最後成為了系統程式專家,並奠定該專業在社會上的地位。

當我第一次進到實驗室時,沒有人知道裡面正在做什麼,那裡就像西部的荒野,沒有課程、也沒有人會教。

在微軟誕生的十年前,以及網景創辦人 Marc Andreessen 說出「軟體正在吞噬這個世界」名言的五十年前,這個世界沒有料想過「軟體」會在早期的阿波羅計畫中成為最主要的力量。

mhh-apollo1-1024x806▲Hamilton 在阿波羅指揮艙模型裡工作的模樣。

在阿波羅任務中,其原始的文件對工程方面的要求,其實連軟體這個詞都沒提到。麻省理工航空航天工程系教授 David Mindell 在他的著作《Digital Apollo》提到,軟體並沒有被寫進整個任務的時間排程裡,甚至也未涵蓋在預算中。無論如何,至少在任務最初的時候是這樣。

但隨著阿波羅的計劃開展,軟體在任務扮演的角色逐漸變得清晰。1965 年,Hamilton 負責阿波羅太空船上的飛行軟體。這是一個激勵人心的時刻,因為她的工作,就連美國官方也相當關注。當然,有時這樣的壓力,也讓 Hamilton 失眠。

還記得有一次,在一個深夜派對之後,Hamilton 匆匆趕回實驗室,就為了修改她忽然想通的程式碼。 Hamilton 說,她自己總是想像哪天阿波羅的事情上了報紙頭條,然後接下來大家就會將這一切矛頭指向她。

經過了 8 年,軟體逐漸受到產業界的重視。在 1968 年年中,已有超過 400 人同時為阿波羅計劃寫程式,因為那時,大家已經意識到,軟體才是美國在太空競賽中,可以成功登月的關鍵。而同時間,Hamilton 和她的同事除了馬不停蹄的持續為阿波羅太空船編寫程式之外,他們也孕育出 4000 億美元的產業。

寫程式對 Hamilton 來說,是一個得通宵在 Honeywell 電腦主機前,模擬阿波羅著陸器如何運作的工作,「我們在太空船飛行前,必須模擬任何可能的一切。」Hamilton 說,一旦確定程式碼是可靠的,它就會被傳送到鄰近的美國雷神公司設備,由一群年紀較大、被暱稱為「小老太太(Little Old Ladies)」的女性工作者,以手工來回將細銅線穿進磁環裡,磁蕊記憶體才得以誕生。

raytheon-lab-1024x747▲美國雷神公司的員工以手工打造磁蕊記憶體的模樣。

raytheon-copper▲磁蕊記憶體穿線後的近照。

阿波羅飛行器上會附有兩個幾乎一模一樣的機器:一個會在登陸月球後,自動分離、降落在月球上的登月艙;另一個則負責帶太空人返回地球。而這也是 70 磅重、可攜帶式的阿波羅電腦和其他電腦最不同之處。正如 David Mindell 所說,這是第一台具有導航、可安裝在太空船上的電腦系統,且雖然它是設計由人為進行操控,但卻具備線傳飛控系統的自動駕駛儀科技。

這個系統儲存超過 12000 個字組在它的永久記憶體,以及 1024 個字組在它的暫存記憶體。「這是第一次有這樣的電腦能進太空船,並被賦予這麼多重要的任務。」和 Hamilton 一起工作的夥伴 Don Eyles 說。

我們證明這是一件做得到的事。也許這個系統,在現在看來,儲存容量小,而且跑起來很慢。

但如果沒有這套系統,阿姆斯壯就沒辦法登陸月球;沒有 Hamilton、Eyles,和麻省理工的工程師們完成的軟體,這台電腦將會是個笨蛋。

1969 年 7 月 20 號,阿波羅 11 號在月球的寧靜海著陸。這次的著陸堪稱有驚無險,因為據軟體工程師 Don Eyles 指出,阿波羅在登陸前,其電腦警報發出聲響,系統做了一大堆不必要的計算,但好在因為有 Hamilton 和其他工程師的努力,這個登月計劃最後化險為夷。而這件事也就奠定了系統工程的專業性地位。

Buzz Aldrin is deploying the Solar Wind Collector (SWC), a foil sheet which he is pointing at the Sun. Note the word 'Shade' printed on the bottom of the back side. The word 'Sun' is printed on the sunward side. At the end of the EVA, after leaving the SWC exposed to the Sun for about 1 hour and 17 minutes, Buzz will roll up the foil and pack it in a bag for analysis back on Earth. Note the considerable clearance between the bottom of the Descent Engine bell and the surface beneath it. Little West Crater is near the horizon on the lefthand side of the image. Note the pattern of scratch marks running from the MESA toward the lower left that were created by the TV cable as Neil Armstrong took the camera away from the LM on the tripod. Neil's footprints are generally to the right of the cable scratches as he moved sideways out from the Lunar Module. Several potentially foot-grabbing loops remain in the cable. The rendezvous radar and various antennas on the top of the ascent stage are labeled in a detail ( 223k ). To learn more about Apollo 11 go to: http://www.nasa.gov/externalflash/apollo11_40/ Credit: NASA/APOLLO 11 NASA Goddard Space Flight Center is home to the nation's largest organization of combined scientists, engineers and technologists that build spacecraft, instruments and new technology to study the Earth, the sun, our solar system, and the universe.Photo credit:NASA Goddard Space Flight Center

Hamilton 解釋,解決這件事情的關鍵在,電腦必須非常專注於完成自己手頭上的任務---「讓登月艙著陸於寧靜海」,而工程師們的工作就是讓電腦知道,即使系統發生問題,軟體仍可做到自行檢測錯誤,並同時專注執行當前較優先的任務。

「絕對不會發生」的鐵齒悲劇

有天,Hamilton 的女兒 Lauren 正在把玩麻省理工學院指揮艙的模擬器時,但在她按下鍵盤那一刻,螢幕跳出錯誤訊息,Lauren 不小心啟動了發射程式「P01」,造成模擬器發生錯誤飛行而墜毀。儘管類似的情況幾乎不可能發生,而且也沒有太空人會像 Lauren 一樣這麼做,但 Hamilton 當時還是堅持加入程式碼,以防類似事件再度發生。

不過這件事最後卻被 NASA 一口回絕了,因為他們認為,一般的太空人是絕對不能有犯錯的空間,所以一定不可能會發生這樣的事。最後,Hamilton 只好選擇在工作備忘錄上,寫下「千萬不要在飛行期間,啟動 P01」的提醒。

不料,NASA 的鐵齒,換來的就是這個悲劇的二度重演。大約在 1968 年耶誕節前後,當阿波羅 8 號在前往月球之際,太空人 Jim Lovell 在飛行時,不經意啟動了「P01」。而當時 Hamilton 在儀器實驗室的二樓會議室接到來自休士頓的電話。

電話中提到,被啟動的程式「P01」,自動刪除了所有飛行數據,而一旦沒有這些數據,阿波羅號將沒有辦法載送太空人回到地球。

當時的 Hamilton 和其他同事,必須馬上做出完美的修正和處理;在時間急迫的情況底下,Hamilton 最後決定重新上傳新的導航數據。好在,故事最終圓滿落幕,太空人安全得回家了。

這件事讓我們知道 Hamilton 無論是在太空,或者平地,她都是一位願意盡最大努力嘗試改變並奉獻於社會的人,而這也是每一位軟體工程師都需要學習的地方。1970 年代,Hamilton 不僅止於在 NASA 和阿波羅計畫奉獻付出,她更自己成立公司、擔任許多軟體公司的經營者。

如今,她的公司「Hamilton Technologies」,和麻省理工學院只距離了幾個街區,而在那裡,她又開啟了另一個新的職涯人生,另一個程式碼革命的中心。

This posting includes an audio/video/photo media file: Download Now

微軟賣筆電求轉型,嚇壞 PC 大廠

Posted: 16 Oct 2015 02:25 AM PDT

microsoft▲工程師出身,在內部以強悍、直接著稱的邁爾森,
面對媒體卻顯得相當謹慎謙卑,讓人見識到他柔軟的一面。 (攝影者.賴建宏)

本文作者為林俊劭,原文刊載於《商業周刊》1457 期,Inside 獲授權刊登。

10月12日,宏碁的國際新品發表會上,出現一位罕見的重量級人物。他,是微軟作業系統事業群資深副總裁邁爾森。

由微軟前執行長鮑爾默在退休前親手提拔,年僅42歲,就能管理一萬多名員工,地位僅次於新任執行長納德拉。

《紐約時報》稱他是「微軟內部最有權力的人之一」,主掌核心產品Windows作業系統,以及所有硬體產品,如平板電腦Surface、微軟手機Lumia、遊戲機Xbox、擴增實境眼鏡HoloLens等。

過去微軟推新品,多半由區域性主管出面。此次邁爾森罕見親自出馬,目的就是為了大力推銷今年7月才剛推出的新作業系統Win10,並替合作夥伴們如宏碁等站台。

時間回到10月6日,紐約Win10發表會上,微軟毫無預警推出第一款自有品牌筆電Surface Book驚豔全場,但也等於重重敲了所有PC品牌業者一記悶棍。

這是繼2年前推出平板電腦Surface後,微軟再度跨界到PC的硬體領域。不同的是,平板電腦幾乎是Android系統與iOS的天下,微軟市占率僅5%,一年不過1千多萬台,對業者來說影響不大。

但筆電,一年出貨量近2億台,其中搭載微軟作業系統超過9成,是眾PC品牌業者的主戰場。尤其,根據研究機構IDC的預估,今年PC出貨成長將比去年再衰退10.8%。等於餅已經在縮小了,還多一個老大哥進來搶食。

談台廠憂慮 》主打高價,不與夥伴競爭

「我們瞄準的對手只有一個,就是蘋果!」邁爾森在接受《商業周刊》專訪時這麼說。

他強調,微軟的目標是給消費者更好的使用體驗。過去幾年來,沒有一家品牌廠可以做出讓Windows充分發揮功能的產品,大部分都以低價為訴求。1千美元的筆電,幾乎由蘋果獨占。因此,Surface Book主打高階筆電戰場,不會與合作夥伴競爭。

談轉型大賠》上次賣平板,是應付代價

不過微軟跨足硬體,表現並不是太好。據業界估計,平板電腦Surface在推出的前兩年虧了將近20億美元。大賠的事業,為何還要繼續做?「這是轉型過程中必須付出的代價,」微軟營運暨行銷事業群總經理康容說。

邁爾森自上任以來,以軟體為核心,整合所有硬體裝置的策略非常明確。當整個產業出現典範轉移,微軟不能再抱著舊有的獲利模式不放,必須大刀闊斧的做出改革,即使會引來原本合作夥伴的質疑。

2008年,在一場長達7小時的會議中,時任行動裝置工程師的邁爾森,KO掉舊的手機作業系統,提出重新打造的想法。將一個運行多年、並沒有犯大錯的產品整個砍掉重練。

接下來5年,他不只帶領團隊做出了新的Windows Phone,還在微軟購併諾基亞後,眾人不看好之下,成功的整合兩家公司的軟硬部門,推出Lumia系列手機。

顧能科技分析師史密斯認為,微軟至今還沒有從行動市場被徹底剔除,邁爾森功不可沒。

另一個引發爭議的策略,是Win10免費升級計畫。一位PC業者透露,微軟表面上是對消費者免費,但私下卻提高對業者的授權金,等於是慷他人之慨。但邁爾森強調,這同樣是針對高階PC,中低階還是會維持原價。

對微軟來說,邁爾森的兩大策略的確有助於轉型並持續維持市占,甚至進一步與蘋果對抗。但如何創造出一個雙贏局面,讓30年來力挺微軟的台灣供應鏈能夠安心,恐怕也是他需要思考的問題。

This posting includes an audio/video/photo media file: Download Now

我在 CMU 交換的那半年,看見美國、台灣電腦科學教育的巨大鴻溝(下)

Posted: 16 Oct 2015 01:48 AM PDT

IMG_0935Network Security 期末海報展覽

本文作者為交通大學資工系學生 Heron Yang,他在部落格中詳實紀錄了前往全球電腦科學系排名第一的卡內基美隆大學交換的過程。Inside 獲作者授權轉載。

作者簡介:"Create Something People Want" -- 是我的信念,於是致力於軟體開發、網頁與網路程式設計、原型發想、文章撰寫與攝影,很歡迎人找我討論想法與合作。喜歡極簡與咖啡。

前言

落筆的此刻是學期結束的隔天,與撰寫前兩篇心得(學期初學期中)的動機是一樣的,希望把交換過程間的所見所聞與更多人分享。而不同之處是我已經在這兒待頗久,融入並適應之後很多想法可能較無法很客觀地從第三人角度撰寫。

學期初多半的精力我用在適應環境,然而學期中之後,因為幾乎每一堂課的主軸都變成 Project ,我在學習上的重點變成怎麼與人互動、和大家怎麼一起把東西做好,而不同文化的優秀學生合作經驗成為最寶貴的收穫。

以下針對我所修的四門課,在期末這段時間值得分享的地方,接著是我跟過往在交大學習經驗上的反思。

修課

Principles of Software Construction: Objects, Design, and Concurrency

這堂課仍一直是以作業考試為主的,課程目標是讓我們從較高角度但兼具實作的方式學習各種中大型程式的設計與需要用到的技巧,以下是學期後半段的作業以及簡介:

  • Scrabble:撰寫一個 Scrabble 遊戲(二維拼字遊戲),需要有介面並有好的設計以面對之後的擴充功能。其中有運用到多種 Design Pattern ,寫程式之前需先繪製程式設計圖跟助教討論
  • Socail Network Analytics: 這份是需組隊的作業,我與一個印度同學合作,需撰寫出一個可以針對各種 Social Network 裡的數據分析並製圖的程式。困難之處在於作業要求的是一個 Framework ,需要讓使用者可以自由加上不同 Plugin 的架構(例如, Facebook Plugin 、 Github Plugin),於是程式彈性是很高的,支援各種用途。這份作業分成三大部分,第一部分是把設計圖提出在助教課上報告;第二部分則是撰寫程式,包含 Framework 與數個 Plugin ;最後一部分是寫 Plugin 裝在其他組的 Framework 上頭
  • MapReduce:這是一個分散式系統中運算資料的方式,而作業需寫出數個 Server 跟 Client 同時跑以模擬一份運算怎麼在多台機器上頭分工後完成
    整體而言,這堂課教導學生從原本寫單份的小型程式到架構較複雜的中大型程式。

Web Application Development

學期中我們作業是完成一個社群網站,其中功能包含註冊、 Email 確認信、登入、留言、上傳相片與即時更新等,最後再把網頁放到雲端服務上,我的做起來像是這樣

接下來的時間我們都分組完成一份 Project ,過程中有很多的次的進度報告,是在一個小會議室中跟助教還有一些其他同學報告、聽取建議。我們做的是 Bug Killer ,概念如 StackOverflow 讓人可以發問 Bug 與回答 Bug ,不同之處在於我們加上點數的功能,於是使用者發問 Bug 需要付出點數、回答問題則可以得到點數,且點數是可以用實際金錢買的,最終的作品放在這裡

其他同學有人做類似 SoundCloud 線上音樂平台、同時包含商家與客人端的點餐系統以及旅行路程規劃等網站。

Network Security

每堂課上課前的論文閱讀仍持續至期末考前,而 Project 部分我們每週見面討論,分頭做實驗,最後再撰寫一份論文並有海報的期末報告。我們做的是分析網路上販賣假 YouTube 瀏覽量的方式,透過實際購買假瀏覽量,我們能分析流量的特徵,並嘗試寫自己的程式去產生瀏覽量。論文放在這裡

期末的海報報告頗有趣的,在一個室內空間中有免費點心食物,然後感興趣的人會進來聽各組的作品,最後透過投票選出最佳的組別。有組別做新式的防火牆並在學校工作站上測試、有組做網線網路未註冊使用者偵測系統並錄製了影片展示等,大家都很愉快並認識彼此的作品、互相學習。

Advanced Web Design

這堂課總共有四份作業,最後另外有一個分組 Project ,且有一個共同展示成品的時間。我們做的作品叫做 Tmate ,靈感來自於我們發現設計師與工程師這兩個族群通常有各自的社交圈,彼此之間的交集並不多,然而以一個完整作品的角度而言,這兩個社交圈若能彼此認識是很好的,於是 Tmate 讓設計師與工程師可以登記自己的頁面、彼此認識,並可以依照專長搜尋。成品在這裡,是同時支援各種螢幕大小的。

IMG_0822Tmate網站支援多種螢幕大小

反思

  • 交大修課的期末 Project 規模與完整度較小:發現在 CMU 同學們投入在期末 Project 的精力頗大,每個所做出來的東西完整度或規模,都是我先前在交大不曾做過的,而我這兒遇到的人大家都努力堅持到最後、不斷的修正問題直到最後一刻。
  • 交大在專業工具上的使用上較少:如網頁設計的課,與設計師隊友使用 Git 同步程式碼省下大量的時間跟開發問題; Network Security 的 Project 中我們使用 LaTeX 寫最終的報告,在架構與可讀性上增加許多。

不只是修課

有趣的是,在 CMU 這段時間裡,我學到最有用的知識其實並不是來自課堂,主要以下幾項值得分享:

  • VIM/zsh:從高一用 VIM 到現在我始終很難找到同好,甚至推銷總是失敗;然而在這兒我參加 CMU 電腦社團的講座,講者分享他的 VIM 用方式,以及很多我不曾知道的使用方法跟 Plugin ,讓我的往後打程式的效率又更進一步(這裡有他當時的筆記)
  • LaTeX:一樣是我以前接觸過但不曾學起來的東西之一,在先前的環境裡並沒有遇到其他人在使用 LaTeX ,而在 CMU 一位好朋友很喜歡 LaTeX ,跟她學了很多,現在我也能自己寫不少 LaTeX 的文件了!
  • Git:又是一樣的,過去我自己會使用版本管理系統,但是同學們之間並不使用,所以在這兒讓我有機會可以體驗 Git 在多人同時開發時候是如何的、又有什麼問題需要注意的

結語

網頁設計的 Project 我們在展示的前一天在圖書館通宵趕工,隔週週末我們一起去動物園玩; Network Security 的 Project 我們合作間不時會吵架,但最終得了第二名,隊友們感情很好我們更曾一起去華盛頓玩; Principles of Software Construction 分組作業的印度隊友則跟我一樣喜歡貼貼紙在電腦上,於是我們互送了很多貼紙;而 Web Application 的隊友則是我這段時間最好最好的朋友,我們總是一起唸書。

於是乎,在不同學校交換的過程中,最重要的是遇見什麼人,而大家彼此之間的態度又是如何。所學的知識固然珍貴,但會讓我難忘而永存的是這裡遇到的每一個人,以及我們如何互相對待彼此。誠心待人、遇到問題直問、專注並投入在自己的學習上是這回交換日子裡我學習到的態度,讓自己保有這樣的態度是不需要跑到地球另一端、也不需要花錢的。

延伸閱讀:

This posting includes an audio/video/photo media file: Download Now

我在 CMU 交換的那半年,看見美國、台灣電腦科學教育的巨大鴻溝(中)

Posted: 16 Oct 2015 01:47 AM PDT

IMG_3609晚上在學校自習

本文作者為交通大學資工系學生 Heron Yang,他在部落格中詳實紀錄了前往全球電腦科學系排名第一的卡內基美隆大學交換的課程內容。Inside 獲作者授權轉載。

作者簡介:"Create Something People Want" -- 是我的信念,於是致力於軟體開發、網頁與網路程式設計、原型發想、文章撰寫與攝影,很歡迎人找我討論想法與合作。喜歡極簡與咖啡。

前言

在 Carnegie Mellon University 交換的日子已經邁入期中,我所修的其中一門課考完了期中考,其餘的則有 Project 在進行中。與學期初修課心得的想法的是一樣:希望把我所見所聞跟更多人分享。

在 CMU 要同時兼顧課業、社交活動與睡覺實在很困難,而我近日的時間安排則是:

  • 早上:寫作業、準備當日上課需要的閱讀
  • 下午:上課或討論 Project
  • 晚上:參與活動或與同學討論作業
  • 深夜:繼續寫作業

每日睡五至六小時,但對於生活中遇到的每件事情都讓我很興奮,特別是在這裡新認識的每一個人;而,這篇文章我會將重點放在修課部分,以及我們可以學習的地方。

修課

這學期我總共修了四門課,分別是 Principles of Software Construction: Objects, Design, and Concurrency、Web Application Development、Network Security 與 Advanced Web Design,以下我簡短介紹這幾門課的內容與特別的地方,而在「反思」的部分則描述與交大相呼應、可學習的地方。

Principles of Software Construction: Objects, Design, and Concurrency

這是 CS 二年級的課,但我在課程中認識的人大部份都已經是研究生了。內容以比較高角度的方式看寫程式的架構與設計,講述抽象的程式設計概念(Design Pattern)並學習畫 UML 圖(例如程式流程圖、物件關係圖等)。
這堂課每週都有作業,也是我起先花最多時間寫作業的一門課,使用 Java:

  • 第一週作業:用 BFS 找出朋友關係圖中,兩個朋友的距離
  • 第二週作業:用 Dijkstra's Algorithm 找最短路徑
    • 使用匹茲堡真實的公車路線資料,規劃使用者如何從 A 站搭車到 B 站(如同 Google Map 的路線規劃)
    • 需要寫 Java 的 UnitTest 達到 100% line coverage(就是每一行自己寫的程式碼都要寫出對應的測試程式)
    • 通過 CheckStyle(即 Java 程式碼中的排版需要符合規定,並且有標準完整的註解)
  • 第三週作業:模擬匹茲堡城市中的公車與搭車情況
    • 練習中型規模的程式如何設計,作業中車子、車站與乘客之間有多種相互關係
    • 模擬各種細節情況,如: 10% 的人若是搭輪椅延後上下車時間,影響全部公車是否準時到達的比例是多少
    • 使用多種課程學到的設計概念

第二週作業我寫起來有 5000 行的程式碼,第三週不加測試碼的話則有 7000 行,是挺辛苦的一門課。下課時間德國教授被一大群的中國學生圍成一圈詢問作業的問題,過了快一小時都不能離開。然而,上週的期中考之後情況好許多,我也漸漸習慣這裡的作業方式了。

反思

  • 交大程式教學重視語法跟完成度,但幾乎不管設計想法:我記得在交大第一堂C語言的課在教不同資料型態的語法;而在Stanford學習第一堂CS課程時候,教授刻意在前期都不講語法,而透過包裝好的教材(Stanford Karel)學習從較抽象的角度開始思考程式。同時,在交大多數助教並不會看每位同學的程式碼,但在CMU連變數名稱取不夠好都會被寫盡評分的回覆裡。
  • 交大程式課程沒有涵蓋「測試」:從這門課的要求中可以看出寫測試碼佔很重要的比重,每寫一小段程式碼就必須寫一段對應的Unit Test測試碼。

Web Application Development

這一門課是 Software Engineering 的前期入門課,也算是很多人修的二年級課,但交大其實並沒有對應的課程。

這是一堂同時跨四年級與研究所的課程,學習用 Django 寫網路應用程式,是學校十分熱門的一門課,而每週都有作業。我個人先前恰好學過大部份的內容,所以還行,但對於沒有學過的同學,幾乎是一週要學一個新的語言:

  • 第一週作業:用 CSS/HTML 繪製出一個計算機
  • 第二週作業:讓計算機會動(我的做起來像這樣
  • 第三週作業:讓計算機在 Django 上跑
  • 第四~第六週作業:寫一個社群網站,可以註冊、登入、留言、評論與追蹤等

Screen Shot 2015-02-22 at 10.22.52 AM作業是做一個類似於 Facebook 的社群網站

反思

  • 交大的網路應用程式設計並沒跟上時代,多數同學都是自學:應用程式在交大的重視度較小,而網路應用程式則被包含在資料庫這門課底下,使用PHP;雖然PHP不失一種易學習的語言,但有較完整架構的Django或ROR並沒有課程在教,而CMU這裡則是已經從Java換到熱門的Django架構(今年)。

Network Security

這門是研究所的課程,與矽谷校區的同學同步,所以上課前都會開啟教室視訊,對方教室的同學也可以發問。是一位印度教授在授課,剛開始的前幾週偶而會漏掉幾個聽不懂的字,但漸漸有改善。

除了上課以外,這門課到目前為止做了:

  • 每次上課前閱讀一至兩份論文
  • 作業一份:寫防火牆
  • Project 討論

論文一篇約十幾頁至三十幾頁,起先我需要花半天的時間才能瞭解一篇論文大概在講述什麼,漸漸的配合上閱讀技巧,可以在兩小時內抓到一篇論文的討論的重點,也會稍微跳過一些細節部分。

其中防火牆作業用到我過往在交大 OSDI 課程中學到閱讀大型程式的方式(cscope, ctags)以及修改 kernel code 的經驗,而有些同學並沒有相關的經驗則在這次作業中挺卡關。

Project 部分近日也在進行中,我們會與微軟的一位研究員一同合作、定期開會討論,成員有韓裔美國人、土耳其人與印度人,與其他成員聊天、討論是最有趣的部分。

反思

  • 交大要求的閱讀並不多:雖然許多課程都有買教科書,但是會閱讀完的同學並不多,我認為與學習環境的關係最大,如果多加些閱讀的作業會有幫助。
  • 交大課堂產學合作較少:如這堂課我們組選定主題之後,老師找了一位微軟的研究員與我們共同進行,所以可以使用到微軟的資源,最重要的是研究內容可以使用真實在運作的服務,而非只是實驗室內的小模擬。

Advanced Web Design

這是設計學院的課程,教的是進階的網頁設計,相對於其他 CS 的課程,這門課其實相對輕鬆許多,老師對於作業的要求較有彈性,也很重視討論,於是有一半的課程只有討論,大家跟附近的同學聊天、老師則會與同學一一了解情況。

第一次作業是將現有的 FBI 網頁改成現代的新網頁,同時支援電腦、平板與手機(我的作業在這裡),設計是一個不斷問題修正與討論的過程,寫作業的過程是我學習到最多的部分。
由於交大沒有相對應的課程,所以「反思」部分則略過。

整體修課而言

  • 交大修課其實是很輕鬆的
    • 交大作業期限通常是兩週以上,而 CMU 作業大部份是每週一份,且都滿大份的。
    • 交大上課同學打混比較多,在 CMU 多數人都很專注,且積極問問題,特別是 Design Pattern 那門課,如果錯過一些概念就會跟不上。

IMG_1763CMU 的資工系大樓,比爾蓋茲所建

結語

雖然生活很繁忙,但是我十分喜歡這裡,在課程中學到的東西比以往扎實許多,而每一個不懂的地方都可以問很清楚,身邊也有很多實事求是、打破砂鍋問到底的同學,我也認為這是求學最好的態度。

延伸閱讀:

This posting includes an audio/video/photo media file: Download Now

我在 CMU 交換的那半年,看見美國、台灣電腦科學教育的巨大鴻溝(上)

Posted: 16 Oct 2015 01:20 AM PDT

IMG_2365

本文作者為交通大學資工系學生 Heron Yang,他在部落格中詳實紀錄了前往全球電腦科學系排名第一的卡內基美隆大學交換的課程內容。Inside 獲作者授權轉載。

作者簡介:"Create Something People Want" -- 是我的信念,於是致力於軟體開發、網頁與網路程式設計、原型發想、文章撰寫與攝影,很歡迎人找我討論想法與合作。喜歡極簡與咖啡。

前言

在 Carnegie Mellon University 交換過了快兩週,選課差不多都確定了,而部分課程的第一次作業也交了;這回交換的機會主要是透過交通大學協助的,而學校除了把學生送出國,也期望能把所見所聞帶回來分享,所以寫了這篇文章。

首先,透過幾個數字簡介 CMU 這所學校:

  • Computer Science 世界排名第一(2010年華爾街日報)
  • 校園人數約 6000 人,一屆交換生約 50 人(這屆兩個台灣人)
  • 學費是交大的 20 倍

而我修的課有:

  • Principles of Software Construction: Objects, Design, and Concurrency
  • Web Application Development
  • Network Security
  • Advanced Web Design

前三者是 CS 類的課,最後一個則是設計。除了選修的課,開學第一週我也多去一些後來沒有選的課旁聽,加上幾年前在 Stanford 修課的經驗,我想針對這兒修 CS 課與交大不同處列出來,先是 CMU 優於交大資工的部分,其次是交大資工優於 CMU 的部分。主要是討論修課使用的工具與修課方式,而非學生態度、文化之類的。

CMU優於交大資工的部分(個人觀點)

Git

我所修需要寫code的課都用Git來發作業、交作業,所使用的是Github的Organizations,可允許老師與助教個別pull&push非公開的程式碼給學生。比起E3好幾個莫名的跳出視窗好很多,而Git也是實際與人合作時必備的工具,從學校開始有很好的使用基礎。

當然,非公開的Github使用方式是要付費的,CMU這樣的方式一門課約需要幾千塊台幣,而自行架設Git Server不妨是個省錢方式,例如吳育松老師網路安全實務的作業就使用Git繳交。

Piazza

從幾年前在 Stanford 修課到現在的 CMU ,這是幾乎每一堂課都會用到的平台,他能讓:

  • 學生自由發問問題(可匿名),老師、助教或其他同學可回答問題
  • 發布公告
  • 協助報告分組

就如同交大的 E3,但比較好用且跟 Email 結合挺好,所以有人發問或回答問題都會被通知。還記得有一堂課因為課程中太多人問問題,怕耽誤到進度,於是教授放一台 iPad 在講台,若有問題則用 Piazza 提問,教授會統一回答。上頭同學們總是很熱絡是這平台最有價值的地方吧!

Testing & Checkstyle

對於作業,我在交大的經驗是必須要達到作業要求的功能,而至於方式與品質若沒有要求就隨意。但 CMU 跟 Stanford 修課的經驗中,滿講究 code 的品質,以下幾個例子:

  • CMU 與 Stanford 的 Java 課程會要求學生寫完整的註解,前者甚至需要符合 JavaDoc 、跑 Checkstyle(檢查 code 所有細節的工具,包含註解完整性),完成後再寫 UnitTest後檢查 Test 的覆蓋程度(是否每行 code 的所有情況都被測試過),最後才繳交作業。
  • CMU 與 Stanford 中與網頁前端有關的課程都會要求要經過 Validator 測試(檢查語法是否正確),其中包含 HTML 與 CSS 。

產學合作

主要講的是課程中有外部單位加入課程的部分,以下有幾個例子:

  • Rapid Prototyping 是一門讓不同領域學生選修、組成小組做作品的課程,我去上前兩堂課,學期中各組必須要設計出解決「客戶」需求的產品,而這學期的客戶則是醫療看護,於是課程中老師視訊了三位照顧病患的人,有病患家屬、護士與研究單位等。
  • Network Security 有期末 Project,今天老師才宣布有外部公司提供獎金給比較好的 Project。

Reading

交大大部份的課程靠老師的投影片就可以考試。而 CMU 跟 Stanford 滿多課都會被要求要讀課本或論文,有些課是在第一次上課發的課程行事曆中會包含每週應該要閱讀的課本章節,可能包含隨堂考;而我修的一門研究所課程則是每週要讀一兩篇論文並寫感想,若沒有讀的話上課容易聽不懂,所以一學期下來要讀的論文大概這麼多...

IMG_2160-2
交大資工優於CMU的部分(個人觀點)

圖書館

交大的圖書館藏書實在頗多,在學校總是可以很容易的借到幾乎任何一本電腦相關的書籍,且熱門的書籍甚至有好幾本,還有不少線上資源。 CMU 我則找不太到,也發現他的書並沒有很多,且課堂修課要用的書在學校書局也沒有賣,得自己上網買。

教授很親民

由於交換生不太能在選課系統上選課,所以 CMU 開學的第一週我花大半的時間在一一找教授加簽,也發現這兒大部份教授實在很忙,除非是修課生或有直接相關的事情, Email 常常不會被回覆。例如很多教授會在自己的網頁上寫怎樣的 Email 是會被他忽略的,而 Email 又該如何寫才可能被回覆,應該是因為他們 Email 都是公開的,必定有很多想要申請入學、申請研究工作或外部公司等的信吧!而在交大我們總是可以很容易找到教授、安排會面時間等。

結語

個人覺得課堂使用版本管理系統、作業要求寫測試與足夠的參考資料閱讀是在交大修課過程中不足的部分,但也是很容易學習的部分。而在美國的習慣中較個人主義,所以任何問題必須要自行去問,才有可能被解決,這也是我學習的過程之一;相對台灣,我們有很多的資源如圖書館跟教授其實都是很珍貴的。

延伸閱讀:

This posting includes an audio/video/photo media file: Download Now

跳脫 3D 列印的工業感,ATOM 要讓每個人都能印出自己的「生活物質學」

Posted: 16 Oct 2015 12:34 AM PDT

12112479_1701379723426362_6055293029656896822_nphoto credit: 生活物質學 project: materialize

2013 年,我們曾報導過在嘖嘖募資破錶 780% 的 ATOM 3D 列印機,過了兩年這個一人工作室 Layer One 不僅茁壯為 10 人(依然相當精實),且推出了第二代 ATOM 2.0,至今已售出 1,500 台,深受工程師喜愛,華碩、英業達、hTC 都是客戶。

但充滿設計魂的創辦者李曜任,希望能夠打破 3D 列印的工業感與侷限性,從科技人的小圈圈中解放出來,擴散到設計師群體,甚或親近一般大眾,讓人人都能把天馬行空的奇思異想印出來。於是,ATOM 成員策劃了「生活物質學」一系列長期活動,計畫找來各式各樣不同領域的人,嘗試運用 3D 列印激盪不同火花。

首先他們找來新銳攝影師 Sydney Sie 合作,ATOM 三名成員分別以「製樂者」、「宇宙體」、「園藝復興」為主題,印出一個一個獨立的物品,黃色的盆栽、橘色的太空人、灰色崎嶇凹凸的月球、寶藍色的喇叭外殼、黑色的旋鈕⋯⋯接著 Sydney Sie 在電腦上模擬最佳的排列組合,再用鏡頭與光影,凝造出一個充滿遐想、風格奇異的世界,令人目不轉睛。

photo credit: 生活物質學 project: materialize

這時的 3D 列印被另外一種機械轉化成截然不同的風貌。創造出這種變化的 Sydney Sie 與 3D 列印形成奧妙的關係:電腦中的虛擬物件被印成實體之後,再用這些實體搭建出場景,經過鏡頭的詮釋,它們又全都成了迷人斑斕的超現實虛擬場景。

15 - 17▲現場觀看真的十分渴望可以自己印出那顆超大的月球跟太空人呀!

15 - 1▲3D 列印可以印出 DJ 能用的旋鈕、能放進唱機的唱片,能播放音樂的喇叭
很多日常生活中唾手可及的事物其實都能 DIY

10527447_1700622776835390_3560403253738758235_n▲設計師與攝影師跨界合作的美妙成果。photo credit: 生活物質學 project: materialize

這就是跨界的趣味之處,FabCafe 展示了這三幅攝影作品,以及由設計師原創的 3D 列印實品,ATOM 本尊也在咖啡店裡,參觀者小額付費就能體驗 3D 列印的魔力。事實上 ATOM 就是希望透過藝術家的呈現,打動一般人用 3D 列印印出自己的生活:

002photo credit: 生活物質學 project: materialize

懂得生活是種軟性的實力,至於懂得運用工具好好生活,這是種聰明的能力。
不再需要遷就大眾口味的日常器皿,你所想得到的物品都可以自己設計、列印。

試圖把靈感變成實品,你知道,生活的樣子是可以由自己決定的

(取自園藝復興文案)

李曜任說, 往後 Layer One 仍會持續精進 ATOM 3D 列表機。想要推廣硬體,他們深知經營內容的重要性,除了推出「生活物質學」長期計畫,之後也計畫推出網路平台,讓網友上傳作品以及製作過程,營造屬於台灣的 3D 列印社群。

將週末有空的讀者,不妨走趟華山,到 FabCafe 看看設計師、攝影師怎麼玩 3D 列印,順便喚醒自造精神,試著把自己的想像印出來!

This posting includes an audio/video/photo media file: Download Now

像練肌肉一樣訓練你的大腦,3 個訣竅治療分心毛病

Posted: 15 Oct 2015 10:31 PM PDT

2902351751_c30aacdaf8_oPhoto credit: Dimitris Kalogeropoylos

本文編譯自 Entrepreneur

身為一位創業者,你有太多事情要處理。當員工、客戶、email 和電話在爭奪你的注意力,要保持專心大概很困難。身處噪音環繞的環境,了解並妥善運用你腦子的限制,可以增進你的專注力和生產力。

我們的腦袋非常容易分神,所以今日的數位環境讓人特別難專心。「干擾代表事情有所變動,」NeuroLeadership Institute 的共同創辦人,同時也是 《Your Brain at Work》 的作者, David Rock 說。「干擾就是一個警訊,告訴你『快把注意力放在這裡,這可能很危險。』」腦袋的反應是自動且幾乎無法制止的。

多工處理是一項重要的技能,但它也有缺點。「它會減損我們的智慧,確確實實地降低我們的智商,」Rock 說到。「我們會產生錯誤,錯過細微的提示,在錯誤的時間點暴怒,或打錯字。」

更糟的是,分心的感覺很棒!「多工處理的時候你腦袋的獎勵迴路亮了起來,」Rock 說,也就是你一次做很多事情緒會變得高昂。

終極目標不是要持續保持專心,而是每天要有一小段免於干擾的時間。「一天深度專注二十分鐘就有潛移默化的效果,」Rock 說到。

試試以下三個訣竅,讓你更專注而且更有生產力:

1. 先從最需專注的工作開始做起

我們通常先做不用花腦筋的工作,接著一步步進入最困難的項目,然而那會榨乾你的能量進而降低專注力。「開始工作一小時後,你的承受度就較(一開始)低,」Rock 說。「腦袋每做一個決定就會變累。」為了有效率地保持專注,倒轉順序。一早就先把需要創意或專注的事解決,然後再繼續簡單一點的工作,比如說當天晚一點再刪除 email 或安排會議。

2. 仔細分配你的時間

Rock 研究上千人後,發現我們每個禮拜平均只有六小時真正保持專心。「你會想要全力投入那幾個小時,」他說。大部份的人早上或深夜最專心,而且 Rock 的研究顯示 90% 的人在辦公室外思路最清晰。留心你何時何地最專注然後把最難的項目分配在那裡。

3. 像肌肉一樣鍛鍊你的心智

當多工處理成為常態,你的腦很快就適應了。分心成習慣你就失去專心的能力。「我們訓練腦袋不專心,」Rock 說。

練習專心,避開所有干擾物,並全心投入一個工作項目。從短時間開始,也許一天五分鐘然後再往更長時間邁進。一發現你的思緒飄到別處就馬上回到手邊的工作。「這就像健身,」Rock 說。「你必須打造保持專心的那塊肌肉。」

This posting includes an audio/video/photo media file: Download Now

arrow
arrow
    全站熱搜

    投機客的行銷世界 發表在 痞客邦 留言(0) 人氣()