117 lines
6.4 KiB
JSON
117 lines
6.4 KiB
JSON
{
|
|
"name": "Object Oriented and Functional Programming",
|
|
"order" : 0.010,
|
|
"challenges": [
|
|
{
|
|
"id": "bd7153d8c44eeddfaeb5bd0f",
|
|
"title": "Waypoint: Learn Scope Chains and Closures",
|
|
"difficulty": 0.01,
|
|
"challengeSeed": ["133316031"],
|
|
"description": [
|
|
"We'll build this Waypoint on Cloud 9, a powerful online code editor with a full Ubuntu Linux workspace, all running in the cloud.",
|
|
"If you don't already have Cloud 9 account, create one now at <a href='http://c9.io' target='_blank'>http://c9.io</a>.",
|
|
"Open up <a href='http://c9.io' target='_blank'>http://c9.io</a> and sign in to your account.",
|
|
"Click on Create New Workspace at the top right of the c9.io page, then click on the \"Create a new workspace\" popup that appears below it the button after you click on it.",
|
|
"Give your workspace a name.",
|
|
"Choose Node.js in the selection area below the name field.",
|
|
"Click the Create button. Then click into your new workspace.",
|
|
"In the lower right hand corner you should see a terminal window. In this window use the following commands. You don't need to know what these mean at this point.",
|
|
"Install <code>scope-chains-closures</code> with this command: <code>npm install -g scope-chains-closures</code>",
|
|
"Now start the tutorial by running <code>scope-chains-closures</code>.",
|
|
"Note that you can resize the c9.io's windows by dragging their borders.",
|
|
"Make sure that you are always in your project's \"workspace\" directory. You can always navigate back to this directory by running this command: <code>cd ~/workspace</code>.",
|
|
"You can view this Node School module's source code on GitHub at <a href='https://github.com/jesstelford/scope-chains-closures'>https://github.com/jesstelford/scope-chains-closures</a>.",
|
|
"Complete \"Scopes\"",
|
|
"Complete \"Scope Chains\"",
|
|
"Complete \"Global Scope and Shadowing\"",
|
|
"Complete \"Closures\"",
|
|
"Complete \"Garbage Collection\"",
|
|
"Once you've completed these steps, move on to our next challenge."
|
|
],
|
|
"challengeType": 2,
|
|
"tests": [],
|
|
"nameCn": "",
|
|
"descriptionCn": [],
|
|
"nameFr": "",
|
|
"descriptionFr": [],
|
|
"nameRu": "",
|
|
"descriptionRu": [],
|
|
"nameEs": "",
|
|
"descriptionEs": [],
|
|
"namePt": "",
|
|
"descriptionPt": []
|
|
},
|
|
{
|
|
"id": "bd7153d8b44eeddfaeb5bd0f",
|
|
"title": "Waypoint: Use Prototypes for Inheriting Properties",
|
|
"difficulty": 0.02,
|
|
"challengeSeed": ["133316036"],
|
|
"description": [
|
|
"We'll build this Waypoint on Cloud 9, a powerful online code editor with a full Ubuntu Linux workspace, all running in the cloud.",
|
|
"If you don't already have Cloud 9 account, create one now at <a href='http://c9.io' target='_blank'>http://c9.io</a>.",
|
|
"Open up <a href='http://c9.io' target='_blank'>http://c9.io</a> and sign in to your account.",
|
|
"Click on Create New Workspace at the top right of the c9.io page, then click on the \"Create a new workspace\" popup that appears below it the button after you click on it.",
|
|
"Give your workspace a name.",
|
|
"Choose Node.js in the selection area below the name field.",
|
|
"Click the Create button. Then click into your new workspace.",
|
|
"In the lower right hand corner you should see a terminal window. In this window use the following commands. You don't need to know what these mean at this point.",
|
|
"Install <code>planetproto</code> with this command: <code>npm install -g planetproto</code>",
|
|
"Now start the tutorial by running <code>planetproto</code>.",
|
|
"Note that you can resize the c9.io's windows by dragging their borders.",
|
|
"Make sure that you are always in your project's \"workspace\" directory. You can always navigate back to this directory by running this command: <code>cd ~/workspace</code>.",
|
|
"You can view this Node School module's source code on GitHub at <a href='https://github.com/sporto/planetproto'>https://github.com/sporto/planetproto</a>.",
|
|
"Complete \"Simple Objects\"",
|
|
"Complete \"Proto\"",
|
|
"Complete \"Dynamic Lookups\"",
|
|
"Complete \"Property Assignments\"",
|
|
"Complete \"Arrays and Objects\"",
|
|
"Complete \"Object Create\"",
|
|
"Complete \"Dot New\"",
|
|
"Complete \"Constructor Functions\"",
|
|
"Complete \"Implicit This\"",
|
|
"Note that you can skip the last challenge.",
|
|
"Once you've completed these steps, move on to our next challenge."
|
|
],
|
|
"challengeType": 2,
|
|
"tests": [],
|
|
"nameCn": "",
|
|
"descriptionCn": [],
|
|
"nameFr": "",
|
|
"descriptionFr": [],
|
|
"nameRu": "",
|
|
"descriptionRu": [],
|
|
"nameEs": "",
|
|
"descriptionEs": [],
|
|
"namePt": "",
|
|
"descriptionPt": []
|
|
},
|
|
{
|
|
"id": "bd7129d8c441eddfbeb5bddf",
|
|
"title": "Waypoint: Practice Functional Programming",
|
|
"difficulty": 0.01,
|
|
"challengeSeed": ["129169463"],
|
|
"description": [
|
|
"Functional programming holds the key to unlocking JavaScript's powerful asynchronous features.",
|
|
"Jafar Husain's interactive Functional Programming course will familiarize you with the various ways you can recombine these functions.",
|
|
"Functional programming in JavaScript involves using five key functions: \"map\", \"reduce\", \"filter\", \"concatAll\", and \"zip\".",
|
|
"Click here to go to the challenge: <a href='http://jhusain.github.io/learnrx/' target='_blank'>http://jhusain.github.io/learnrx/</a>.",
|
|
"You only need to complete the first 27 steps of this tutorial.",
|
|
"This challenge will take several hours, but don't worry. Jafar's website will save your progress (using your browser's local storage) so you don't need to finish it in one sitting.",
|
|
"If you've spent several minutes on one of these challenges, and still can't figure out its correct answer, you can click \"show answer\", then click \"run\" to advance to the next challenge. Be sure to read the correct answer and make sure you understand it before moving on."
|
|
],
|
|
"challengeType": 2,
|
|
"tests": [],
|
|
"nameCn": "",
|
|
"descriptionCn": [],
|
|
"nameFr": "",
|
|
"descriptionFr": [],
|
|
"nameRu": "",
|
|
"descriptionRu": [],
|
|
"nameEs": "",
|
|
"descriptionEs": [],
|
|
"namePt": "",
|
|
"descriptionPt": []
|
|
}
|
|
]
|
|
}
|