成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

從教女友寫代碼學到寫代碼在一定程度上是硬件問題

開發 項目管理
從今年四月一直到七月,我在教我女友寫代碼。我最大的收獲是認識到了教人寫代碼在一定程度上是個硬件問題。雖然 codecademy、可汗學院、Scratch 和其他機構為了教學優化了代碼編輯器,但代碼編輯器總是卡在它們的軟件外殼上。我建議,除了提供優秀的軟件和教學材料之外,我們還需要給新手輔助以出色的硬件。讓我來解釋一下。

從今年四月一直到七月,我在教我女友寫代碼。我最大的收獲是認識到了教人寫代碼在一定程度上是個硬件問題。雖然 codecademy、可汗學院、Scratch 和其他機構為了教學優化了代碼編輯器,但代碼編輯器總是卡在它們的軟件外殼上。我建議,除了提供優秀的軟件和教學材料之外,我們還需要給新手輔助以出色的硬件。讓我來解釋一下。

[[84325]]

背景

我在卡內基梅隆學的計算機科學。在那里我還講過幾次計算機課。我的代碼技術最多算是中等吧,但是足以在諸如 Quora 這樣的公司做一名產品設計師。

一年多以前,我在日本遇到的我的女朋友。她在那度過了她的大部分時光。她在東京的一所女子學院學市場營銷和日本文化。我們相遇的日子里,她在同樣位于東京的一家做支付的初創公司做銷售助理。

但是她一直想要當某方面的設計師。因為她對軟件有很大的熱情,并且對可用性有一定的見解,所以我的職場建議是她可以當一名軟件產品設計師。

日本的技術社區只是最近才開始重視設計和用戶體驗,這個比起西方同類社區要落后幾年。在日本,產品設計師的供應量還是比較低的,所以我建議女友可以試一下,盡管她沒有受過正式的設計方面的教育。

被說服之后,她在四月辭掉了工作,來到舊金山灣區看我。我們在一起住了三個月。在我的業余時間,我教她一些成為產品設計師的基本知識。她很努力在學,并希望能在回東京的時候能找到一份產品設計的工作。

教女友寫代碼

我相信所有軟件產品設計師都需要寫代碼。至于原因,請看「網頁設計師應該自己寫 HTML 和 CSS」和「學習 Rails 讓我成為更好的設計師」,都是 37signals 出的。

可能你已經猜到了,我的女朋友從來沒有寫過代碼。我認為這是培訓里最大的路障,甚至比學 photoshop 或者其他設計技能更難。所以我們決定先集中力量在寫代碼上。

我們剛開始學的是 HTML/CSS,然后轉到 Jekyll/SCSS 上。她從零學起,到掌握了怎樣設計一個博客主題源碼)和展示她的模特照片的畫廊源碼),都是用 Jekyll/SCSS 寫的。

因為她的英語只是初級水平,所以她的學習資源就很有限,包括在線資源印刷書籍。我對任何用日文寫的初學者用的 HTML/CSS 的書籍或教程沒有什么好感,所以我專門為她制作了一本我自己的教材(截屏如下)

我有打算哪天把我的書翻譯成英文并出版,但是目前,我想說讓我最驚訝的是:對女朋友幫助最大的不是教程的質量,而是她完成教程練習所使用的硬件。

硬件問題一:顯示器

女朋友學完基本知識后,我讓她用 HTML/CSS 去復制或者模仿我給她精選的設計良好的網站。她的復制品必須看起來和原始的網站一樣,并且 HTML 也要符合語法。

學習寫代碼的理想方法就是做一個真正的項目。因為她沒有想要做的網站,那么復制包括 MediumSvbtle 那樣的設計良好的網站是最佳之選。

起初她用的是我的老古董 23 吋顯示器,還有她自己的 Macbook Air 的顯示器,但是很快她就用光屏幕空間了。她明顯需要同時開啟下面五個窗口:

1. Chrome 窗口顯示要復制的實際的網站。見本文封面的右上角。

2. 另一個 Chrome 窗口。顯示她當前復制的網站。就是一個本地 HTML 頁面。見封面左上角。

3. Sublime Text 2 窗口。分割成 HTML 視圖和 CSS 視圖。見封面左下角。

4. Evernote 窗口。記錄她的筆記和代碼片段。見封面右下角。

5. Mac 的 GitHub 窗口。跟蹤她做的修改。我第一天就在她的工作流程里加入了 GitHub,這樣我就可以用 pull 來查看她的代碼。見封面的最左邊。

每個窗口都需要大概 1280×800 的像素。我最后只有租給她我的 30 吋家庭影院顯示器。它的 2560×1600 像素的分辨率足以平鋪上面所說的 4 個窗口。最后一個窗口就留在她的本本上。她用 Moom 來管理窗口。

[[84326]]

為何需要同時顯示這么多窗口呢?因為新手喜歡能立刻看到代碼修改帶來的變化。

#p#

Brett Victor 在他著名的大作 Learnable Programming 一書中建議“反應式創造”的教學技巧:

反應式創造的思考方式可以這么描述:做出點什么,然后調整,直到它正確為止。

這正好就是我女朋友在做的。她(1)觀察目標頁面,(2)寫代碼模仿出目標頁面,(3)查看她做的是不是和目標頁面看起來相似,(4)重復1~3 步,直到她的頁面和目標頁面完全一樣為止。

在第 2 步和第 3 步,CodeKit 保持運行并不停刷新頁面,這樣修改的結果不需要按 Commond+R 就能立即可見。她用 Mac 的 GitHub 來做回退。每次迭代,她都會在 Evernote 上作筆記,避免同樣的錯誤犯兩次。

這就是五個窗口都要同時打開的原因——將各步驟之間切換的開銷降至最低。當所有的東西都可見時,她可以更快的做出反應。

我能聽到你們這些高手在高呼:「這也太弱了吧。她可以用 Commond+ 數字或者 Commond+Tab 切換啊。」但是大部分新手都討厭 tab 鍵和窗口切換。我們可以教他們這些技巧,但是他們很可能不會按部就班地執行這些快捷鍵,至少在剛開始不會。新手不必硬要灌輸這些不必要的意識。

我的女朋友很快無 30 吋顯示器無編程了。我的住所離市區的 Palo Alto 要騎一小會車,那里有許多帶 Wifi 的咖啡店。但是她寧愿待在家里,因為有大顯示器用??磥硎菓T壞了的學生。不過她寫代碼確實比以前快了,而且最后她還掌握了 Commond+ 數字鍵和 Commond+Tab。

捫心自問,我們這些老手也喜歡大顯示器:

前公司的一則趣聞。我是一名留不住人的工程主管。我們團隊一名工程師離職去了一家更小更前衛的公司。這是離職的談話:

  • 我:你為什么要離職?
  • 他:因為他們有更大的顯示器。

因此為什么不給新手也提供大顯示器呢?他們是穩定且可視的回饋的最大受益者,他們和窗口管理的斗爭也最激烈。

不管程序員變得如何反應迅速,他們始終無法克服屏幕可用面積的局限——平板電腦在智能手機時代還有市場也正是這樣的原因。

硬件問題二:鍵盤

對于新手,他們的鍵盤——或者更一般地說打字——也可以是一個瓶頸,盡管不大。

問你自己:在代碼編輯器之外,你經常會輸入像<,>,{,},#這樣的字符嗎?或者按在 Sublime Text 里表示「在標簽里包裝選擇」的 ctrl+shift+w?不是很常用吧。所以非程序員不熟悉那些鍵,敲起來很慢。

我會在女友寫代碼時坐在她身邊。每次她錯過用快捷鍵的機會時,我就會提示她。她會把快捷鍵寫作便簽上,貼在屏幕邊來試著提醒自己。但是一天天過去了,她還是會忘記用那些快捷鍵。

后來我發現她從來沒學過哪個手指用來負責敲哪些鍵。她那時就是感覺哪個手指自然就用哪個。她可以盲打一些常用詞,但比如當我讓她輸入“{”時,她得去看鍵盤。她習慣日本鍵盤布局,但是也無濟于事。

[[84327]]

為了糾正她的習慣,她買了一個微軟人體工程學鍵盤 4000,這讓她不用正確的手指輸入變得很難。她還每天學習 Peter 的在線打字課程。在她完成了前十課時,她打字才像一個真正的程序員。她現在很少誤輸鍵盤快捷鍵了。

順便提一下,這里還有一個方法檢查代碼新手是否有打字問題:給他/她買一個不帶字符的鍵盤。如果這個讓他/她的輸入變慢了,就是有問題。

打字的不順暢可能會成為新手成為高手的阻力。因為隨著他們寫的代碼越來越多,他們的沮喪和低效率會加劇。這可能是我們這些經驗豐富的老手想不到的,但是當我們談論編程教學時要注意這個問題。

結論

對于我的女友來說這兩個硬件——顯示器和鍵盤——有巨大的影響。他們也有可能影響大多數新手。代碼編輯器會變的更加高級,編程課程也會演進,但是它們永遠不會走進硬件的領域。

就像 Andy Hunt 在他的杰出的《程序員的思維修煉:開發認知潛能的九堂課 》一書中表明的,代碼菜鳥不僅僅是慢版和無知版的專家。他們的思維是完全不同的。一旦你成為哪怕高級一點的初學者,你就已經失去了像代碼菜鳥那樣思考的能力。你可能會說「我想不出她為什么需要同時開啟那么多窗口」。但是如果你已經沒有菜鳥的思維了,你當然沒辦法去「想出」。

我的女友七月份回到日本。她很快就在東京一家創業公司找到了一份初級設計師的工作。但愿我們在硬件上的投資能夠賺回來。感謝閱讀。

更新(8 月 19 日):我承認這篇文章的主題,“寫代碼”,和“編程”不是一回事。編程需要控制邏輯,而寫代碼不用。

不過我的女友在用 Jekyll/SCSS 時也確實用到了控制邏輯。她正在學習 JavaScript,這是一個真正的編程語言?;仡^合適的時候,我會分享教她編程時獲得的經驗。

原文鏈接: Shu Uesugi   翻譯: 伯樂在線 - deepfish

譯文鏈接: http://blog.jobbole.com/46382/

責任編輯:林師授 來源: 伯樂在線
相關推薦

2023-11-08 15:00:30

AI人工智能

2014-10-29 14:52:13

程序員

2024-10-29 09:25:00

2012-07-03 09:59:03

程序員

2018-12-19 17:20:17

2021-10-18 05:42:23

代碼編碼開發

2013-01-22 13:50:11

程序員前端Web

2017-12-19 15:20:47

代碼應用架構

2013-05-02 09:36:44

代碼項目

2009-08-13 18:12:11

C#數據加密

2016-12-09 15:02:02

云計算

2024-08-28 10:04:17

2014-08-19 15:48:07

Win7

2010-04-21 09:12:56

Oracle JDBC

2021-10-20 20:27:55

MySQL死鎖并發

2019-01-21 08:20:17

通信4G5G

2022-05-30 07:36:07

Python腳本函數

2022-12-06 09:03:44

代碼fork系統

2014-12-22 09:54:52

代碼

2012-02-22 14:21:18

點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 久久久久久久国产 | 精品福利在线 | 日韩视频一区二区在线 | av黄色片在线观看 | 久久久久国产精品一区二区 | 国产一区二区小视频 | 久久69精品久久久久久久电影好 | 福利网站在线观看 | 中文字幕一二三区 | 欧美日韩精品在线免费观看 | 免费高清av| av天天看 | 91亚洲国产亚洲国产 | 亚洲成人精品 | 欧美精品一区在线 | jizz18国产| 精品国产乱码久久久久久丨区2区 | 91精品国产91 | www.久 | 一区二区三区国产精品 | 欧美a在线看| 亚洲综合大片69999 | 久久88| 成人福利在线观看 | 91视频88av| 人人爽日日躁夜夜躁尤物 | 中文在线а√在线8 | 久久国产精品久久久久 | 日韩欧美国产一区二区三区 | 综合国产第二页 | 久久久av | 成年人视频免费在线观看 | 日本亚洲欧美 | av中文字幕在线 | 激情五月综合网 | 黄色片网站在线观看 | 亚洲在线高清 | 深夜福利影院 | 免费一级黄色 | 欧美在线一区二区三区 | 日本三级电影在线免费观看 |