編碼員,程式設計師,黑客,開發人員和電腦科學家走進維恩圖
A friend recently said: "I want to learn how to code. How and where do I start?"
最近有一位朋友說:“我想學習編碼。我從哪裡開始?”
我想學習編碼-是去宜家還是種自己的樹? (I want to learn how to code - Do I go to Ikea or grow my own tree?)
It's like woodworking. You can START by growing a tree, then chopping it down and finishing it, sanding it, before you make a table. Or you can go to Ikea. More likely you'll try something in between.
這就像木工。 您可以先種植一棵樹,然後砍下來再整理,然後打磨,然後再製成桌子。 或者您可以去宜家。 您更有可能在兩者之間嘗試一些操作。
Modifying a WordPress theme is going to Ikea. Writing you own web framework is growing a tree first because you don't like the existing trees. You have to decide where on the spectrum you want to be, from being a custom furniture maker from the
修改WordPress主題將轉到宜家。 編寫自己的Web框架首先會長出一棵樹,因為您不喜歡現有的樹。 您需要決定要屬於哪個領域,從伍德賴特商店的定製傢俱製造商到組裝別人生產的預製件的人。
好,我從哪裡開始? (Ok, where do I start?)
Very cool. I'm always happy when folks want to learn to code. The Facebook thread continued with the usual suggestions:
很酷。 當人們想學習編碼時,我總是很高興。 Facebook主題繼續提供通常的建議:
Then the more interesting questions started to get to the root of the matter.
然後,更有趣的問題開始成為問題的根源。
編碼員,黑客,程式設計師,開發人員和電腦科學家之間有什麼區別? (What's the difference between a Coder, a Hacker, a Programmer, a Developer, and a Computer Scientist?)
These words might all mean the same thing to you. Perhaps you hear geek, nerd, and dweeb, but we all know these have very important differences. Knowing the differences also can give you a sense of how deep you want to go on your coding adventure.
這些話對您可能意味著同一件事。 也許您會聽到極客,書呆子和dweeb,但我們都知道這些有非常重要的區別。 瞭解這些差異還可以使您瞭解要進行編碼冒險的深度。
- Coders - Can pretty much figure out it. It'll work, but it won't be pretty. 編碼員-幾乎可以弄清楚。 可以,但是不會很漂亮。
- Hackers - usually low level folks, skillful, with detailed understanding of some area deeply, often scarily deeply. 黑客-通常是低階人員,技術嫻熟,對某些領域有深入的瞭解,經常會深入瞭解。
- Programmer - Write code and understand algorithms. Often work alone and well. 程式設計師-編寫程式碼並瞭解演算法。 經常獨自工作,身體健康。
- Developer - Are the best generalists, can use lots of different systems and languages and get them to talk to each other. Are true and broad professionals, work with people, and communicate well. 開發人員-是最好的通才,可以使用許多不同的系統和語言,並使他們彼此交談。 是真正,廣泛的專業人士,與人合作,並能很好地溝通。
- Computer Scientist - Need to be able to prove how computers work, at a theoretical level. Are usually math people also. 電腦科學家-需要能夠從理論上證明計算機的工作方式。 通常都是數學界人士。
If you are closer to one of these already you can get an idea of which direction to head.
如果您已經更接近這些方向之一,則可以瞭解朝哪個方向前進。
我們是否假設進行網路程式設計? (Are we assuming web programming?)
Everyone on the thread assumed some kind of web programming, which makes sense, since nearly everyone's on the web in 2013. However, just a few years ago we might have sat our friend down and made a Hello World app at the console, or perhaps loaded up Visual Basic, dragged a button, and MessageBox'ed Hello World.
執行緒上的每個人都採用某種網路程式設計,這很有意義,因為2013年幾乎每個人都在網路上。但是,僅在幾年前,我們可能讓我們的朋友坐下來,在控制檯上製作了Hello World應用程式,或者載入了Visual Basic,拖動了一個按鈕,然後使用了MessageBox的Hello World。
Is Markup Code? Lots of people said "learn HTML and CSS," but I don't think that's coding in the classical sense. As a gateway to JavaScript and Web Services, I think it's a good place to start. The thing is, though, that while not every app is a web application that makes HTML in a browser, most applications are connected applications in some way. Apps consume data from services, send notifications, texts, emails and tweets. Nearly every application is distributed in some way, even if it's just a simple app that calls a web server for some data.
是標記程式碼嗎? 很多人說“學習HTML和CSS”,但是我認為這不是經典意義上的編碼。 作為JavaScript和Web服務的門戶,我認為這是一個不錯的起點。 事實是,雖然不是每個應用程式都是在瀏覽器中生成HTML的Web應用程式,但大多數應用程式都是以某種方式連線的應用程式。 應用程式使用服務中的資料,傳送通知,文字,電子郵件和推文。 幾乎每個應用程式都以某種方式分佈,即使它只是一個簡單的應用程式,它呼叫Web伺服器獲取一些資料。
If you want to be a coder today, or, let me go further and say if you want to be an effective coder, you will want understand the web and what really happens when you type twitter.com in your web browser. Just like you should understand how trees grow if you want to be a carpenter, how engines work if you want to be a race car driver, or where the water comes from if you want to be a plumber. Heck, you should really understand all of these things if you want to be an effective human. ;)
如果您想今天成為一名編碼員,或者讓我進一步說,如果您想成為一名有效的編碼員,您將需要了解網路以及在網路瀏覽器中鍵入twitter.com時的實際情況。 就像您應該瞭解要成為木匠的樹木如何生長,想成為賽車手的引擎如何工作,或者想成為水管工時水從何而來。 哎呀,如果你想成為一個有效的人,你應該真正理解所有這些東西。 ;)
“我想學習編碼”實際上是什麼意思? (What do we really mean by "I want to learn to code?")
What's the question under the question? Does she want to make websites? Design them? Does she want to make mobile applications and take them on the go? Does she want to create a gadget that will text her when she leaves the garage door open too long? These are all very different endpoints and there's lots of great ways to get started if we dig in a little.
問題下的問題是什麼? 她想建立網站嗎? 設計它們? 她是否想製作移動應用程式並隨身攜帶? 她是否要建立一個小工具,當她把車庫門開啟得太久時會發簡訊給她? 這些都是截然不同的端點,如果我們稍微深入一點,就有很多很棒的入門方法。
Interested in Web Development?
對Web開發感興趣?
- Any of the many "Learn to Code" sites mentioned above will do fine. 上面提到的許多“學習編碼”網站中的任何一個都可以。
Interested in Web Development?
對Web開發感興趣?
Interested in Hardware?
對硬體感興趣?
Consider a Raspberry Pi or Arduino.
考慮使用Raspberry Pi或Arduino 。
Interested in Hardware?
對硬體感興趣?
Interested in the code and history under the code you use every day?
對您每天使用的程式碼和歷史記錄感興趣嗎?
Interested in the code and history under the code you use every day?
對您每天使用的程式碼和歷史記錄感興趣嗎?
Already a techie but want to learn the hard way?
已經是技術人員,但想學習艱難的方法?
Already a techie but want to learn the hard way?
已經是技術人員,但想學習艱難的方法?
Interested in being a well-rounded developer?
有興趣成為一名全面的開發人員嗎?
Interested in being a well-rounded developer?
有興趣成為一名全面的開發人員嗎?
You can totally jump in to the web, learn a little JavaScript and start making web apps, and you should. But as with everything, if you've got deeper interest, there are a few different paths to going further. Do a little research into the breadth of possibilities available to you, and you just might try a slightly different path.
您完全可以進入網路,學習一些JavaScript,然後開始製作Web應用程式,應該這樣做。 但是,與所有事物一樣,如果您有更深的興趣,可以有一些不同的方法來進一步發展。 對可用的廣度進行一些研究,您可能會嘗試一條稍微不同的路徑。
相關連結 (Related Links)
Teaching Kids Electronics, Computers, and Programming Fundamentals with Snap Circuits
Programming's not for you? How about thinking? Be empowered.
關於斯科特 (About Scott)
Scott Hanselman is a former professor, former Chief Architect in finance, now speaker, consultant, father, diabetic, and Microsoft employee. He is a failed stand-up comic, a cornrower, and a book author.
斯科特·漢塞爾曼(Scott Hanselman)是前教授,前金融首席架構師,現在是演講者,顧問,父親,糖尿病患者和Microsoft員工。 他是一位失敗的單口相聲漫畫家,一個玉米種植者和一本書的作者。
About 關於 Newsletter 時事通訊 Hosting By 主持人