How This Will Work
This Nanodegree program is...
Composed of a series of lesson videos, quizzes, and projects that will ask you to demonstrate the skills you just learned. These projects will cover a wide range of topics, from web development to computer science fundamentals to understanding the roles of engineers in a tech company.
Each section is a collage of content sampled from a variety of classes taught by professional programmers, tech company creators, and university professors.
這門課是由許多專業的工程師與大學教授共同編輯而成,課程會有影片、小考與實際的一些專案,專案涵蓋網站開發、電腦科學的基礎應用,可以幫助我們了解軟體公司內的工程師職務類別。
Setting Up
You're going to experience coding by making your first webpage. You’ll first be writing code in HTML. Before getting started on your own computer, you need two tools going forward:
- Installing a text editor to save your code
- a web browser to view the rendered result.
接下來我們將會製作你的第一個網頁,你會用 HTML 來寫網頁。開始之前有兩件事要做:
- 安裝編輯器儲存你的程式碼
- 要有一個瀏覽器(web browser) 確認程式跑出來的結果(rendered result)
A text editor is just a piece of software that allows programmers to compose, edit, and save code
Most of them offer similar functionality. We recommended the Atom.
編輯器讓工程師可以編輯、儲存程式碼,大部分編輯器的功能都差不多,這邊推薦使用 Atom。
Building Your First Web Page
Writing and Saving Your Code
Open your text editor so that you’re looking at a blank file.
Type the following code (exactly as shown) into the blank file
Save your code as an HTML file by navigating to the menu bar, selecting File → Save As…, and giving the file a name like my-first-code.html. Note the location on your computer where you’re saving this file. Then, hit the Save button.
well, why <b>wouldn’t</b> I learn to code?
我們先來建立你的第一個網頁,打開你安裝好的編輯器,輸入上面這一行程式碼。接著選擇
File → Save As
,編輯你的檔案名稱,選擇你要存在電腦的哪裡然後按下Save
的按鈕。為了讓瀏覽器能編譯你的 HTML 程式碼,不要忘記副檔名
.html
Viewing the Rendered Web Page
It’s now time to view the rendered web page in a browser like Chrome, Safari, or Firefox.
There are a couple of ways you can do this:
You can find the HTML file on your computer and double-click on it to open it. (On Mac, you can use the Finder to reach the file location, and on Windows, you can use My Computer.) Most often, your computer will be set up to open the HTML file in your default web browser. If, however, this doesn’t happen, you can simply right-click on the file, and choose to open it in a browser by selecting, for example, Open With → Google Chrome.
Alternatively, you can open up a web browser and then open your HTML file directly through the browser's interface. In Chrome, for instance, this would involve navigating to the menu bar and selecting File → Open File…. You’d then select the HTML file that you saved on your computer and click Open to view the rendered web page in your browser window.
從 browser (Chrome, Safari, Firefox) 去看你的檔案,有兩個方法:
- 連點檔案兩下,用 default 的 browser 開啟;或是右鍵選擇你要的 browser
- 你也可以先開 browser 然後從
File → Open File…
,記得更改檔案要存檔,然後再 refresh 瀏覽器。
Nanodegree Overview
Nanadegree is a path starting from nothing. You'll gain three important things:
- New knowledge
- New skills
- New ways of thinking
At end of point, there are many paths you can choose.
Nanodegree 會帶初學者從什麼都不懂到了解一些基礎的 computer science 的知識。會學到下面三個方面:
- New knowledge
- New skills
- New ways of thinking
最後你可以試著選擇你接下來要專精的部分:
- Full stack
- Front end
- Android development
- iOS development
- Back end
- Something Else....
Nanodegree 的課程裡有很多小測驗(quizzes)和專案,對學習相當有幫助。
Thinking Like a Programmer
Focus on 5 ways thinking all programmers must do.
這門課一個很大的目標是理解程式設計師的思考方式,然而什麼是 thinking like a computer programmer 呢?下面我們用五個面向來看:
1. Procedural Thinking
Procedural thinking involves creating perfectly clear and unambiguous instructions for a computer to follow.
It may be easy to tell a person how to sort a deck of cards, but getting a computer to do that requires more thought. But once you've learned to think this way you'll find that computers can do it much faster.
如果將問題的 solution 拆成好幾個步驟去執行,將這些步驟轉換成程式讓電腦幫你解決問題是相當重要的一件事。如果今天要一個人去將一疊卡片分堆是較簡單的事,如果要讓電腦去做這件事,需要細細去思索,但只要找出方法你會發現電腦做的比人還快。
2. Abstract Thinking
Abstract thinking means finding similarity, or as programmers would say,generality amongst seemingly different things.
In this Nanodegree you will visit hundreds of Udacity web pages. It would be impractical for a programmer to specifically program each of these pages individually. The Udacity programmers used the power of what's called abstraction to avoid unnecessary repetition of work.
Abstract thinking 是什麼?我覺得可以解釋成思索出一件事情的規律或邏輯,以影片裡舉的例子來說,假如1個蘋果加上另一個蘋果是2個蘋果,別人問你一個橘子加上一個橘子,你就可以大概推出答案是2個橘子。然而這背後的 abstract thinking 就是1加1等於2。
3. Systems Thinking
Systems thinking happens when you break a big problem down into smaller pieces. Programmers do this when they create a plan (often on paper) for how a program will work. It involves big-picture thinking and decision-making about a problem and how different pieces of a program can work together to solve it. If this is unclear now, don't worry! You'll understand what this means much more clearly by the end of the Nanodegree.
將大問題分割成一小塊一小塊。工程師可能會寫在紙上會拆解問題,去想程式要怎麼跑。
4. Technological Empathy
It involves understanding how the computer sees things
"Technological empathy" comes in many forms. For example, computer empathy is the ability to understand what a computer is, how it works, and what it's good and bad at doing.
A computer is a tool, as are the programs we use and the programming languages used to write them. It's almost impossible to program anything substantial without a basic understanding of how these tools work.
了解電腦會如何運作程式碼。例如我們寫了下面一串程式碼,你要想到這時候 is 會是粗體。
What <b>is</b> this?
電腦是一個工具,你不太可能不了解電腦的基礎運作而可以寫出相當扎實的程式。
5. Systematic Debugging
Debugging is a systematic process of relentlessly identifying the cause of a computer program that doesn't work.
When a program doesn't work, it's because there is a mistake (also known as a "bug") somewhere in the computer code. Since these mistakes are an unavoidable part of programming, every good programmer has a system for fixing them and that system usually looks something like this:
Collect evidence (what makes this program fail?)
Generate theories (what may have caused this problem?)
Test those theories (if my theory is correct, how could I find out?)
Fix the problem
最好的工程師也會犯錯,有系統地找出問題,並追蹤淺在的原因直到找到問題並解決。
Learning Mindset
To be successful, you'll need to be self-motivated to learn. This program will be challenging, and it may be tempting to take a long break or even stop when you get stuck. Students who persevere, are consistent, and seek out answers on their own are best suited to succeed. Keep asking questions, and never give up! In a later lesson, we'll go into more detail on the topic of learning mindsets.
學習上會遇到很多困難,需要自己激勵一下自己,如果卡住可以休息一下。持續問問題並努力不懈找答案。