@ -617,6 +617,14 @@ thead {
|
||||
border-radius: 5px;
|
||||
}
|
||||
|
||||
.gif-block {
|
||||
margin-top: 30px;
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
|
||||
.gif-caption {
|
||||
font-size: 18px;
|
||||
}
|
||||
|
||||
.testimonial-copy {
|
||||
font-size: 20px;
|
||||
@ -1026,6 +1034,10 @@ hr {
|
||||
margin: 18px 0;
|
||||
}
|
||||
|
||||
.big-spacer {
|
||||
padding: 30px 0 30px 0;
|
||||
}
|
||||
|
||||
#reply-to-main-post, #upvote {
|
||||
cursor: pointer;
|
||||
}
|
||||
|
@ -2,46 +2,6 @@
|
||||
"name": "Basic Algorithm Scripting",
|
||||
"order": 0.006,
|
||||
"challenges": [
|
||||
{
|
||||
"id": "bd7139d8c441eddfaeb5bdef",
|
||||
"title": "Pair Program on Bonfires",
|
||||
"difficulty": 0.44,
|
||||
"challengeSeed": [
|
||||
"119657641"
|
||||
],
|
||||
"description": [
|
||||
"Please note that the video for this challenge is a little outdated, and doesn't perfectly match these steps. We plan to record a new video soon.",
|
||||
"OK, we're finally ready to start pair programming!",
|
||||
"Pair Programming is where two people code together on the same computer. It is an efficient way to collaborate, and widely practiced at software companies. Pair Programming is one of the core concepts of \"Agile\" Software Development, which you will hear more about later.",
|
||||
"Many people use Skype or Google Hangouts to pair program, but if you talk with professional software engineers, they will tell you that it's not really pair programming unless both people have the ability to use the keyboard and mouse.",
|
||||
"The most popular tool for pair programming is Screenhero. You can download Screenhero for <a href='http://links.screenhero.com/e/c/eyJlbWFpbF9pZCI6Ik1qQTNNem9XQkNJQ1pBQUNjd0FYQVZrVEdnRkxNamtfX0JWZEdGVEpSZkVCWlRwbFpXRTBNamM0WVMxaE56SmlMVEV4WlRRdE9HUXpZUzFpWXpVNE1HRTJNalkxTldNNk1UUTJNVEEyQUE9PSIsInBvc2l0aW9uIjowLCJocmVmIjoiaHR0cDovL2RsLnNjcmVlbmhlcm8uY29tL3NtYXJ0ZG93bmxvYWQvZklYQU1UUUJBTEtQQkhQTC9TY3JlZW5oZXJvLnppcD9zb3VyY2U9d2ViIn0=' target='_blank'>Mac</a> or <a href='http://links.screenhero.com/e/c/eyJlbWFpbF9pZCI6Ik1qQTNNem9XQkNJQ1pBQUNjd0FYQVZrVEdnRkxNamtfX0JWZEdGVEpSZkVCWlRwbFpXRTBNamM0WVMxaE56SmlMVEV4WlRRdE9HUXpZUzFpWXpVNE1HRTJNalkxTldNNk1UUTJNVEEyQUE9PSIsInBvc2l0aW9uIjoxLCJocmVmIjoiaHR0cDovL2RsLnNjcmVlbmhlcm8uY29tL3NtYXJ0ZG93bmxvYWQvZklYQU1UUUJBTEtQQkhQTC9TY3JlZW5oZXJvLXNldHVwLmV4ZSJ9' target='_blank'>Windows</a>. Create your new user account from within the app.",
|
||||
"We have a special chat room for people ready to pair program. Go to our <a href='//gitter.im/FreeCodeCamp/LetsPair' target='_blank'>LetsPair chatroom on Gitter</a> and type \"Hello Pair Programmers!\"",
|
||||
"If someone is available, they will be your \"pair\" - the person you pair programming with.",
|
||||
"If no one gets back to you in the first few minutes, don't worry. There will be lots of opportunities to pair program in the future.",
|
||||
"If someone does get back to you, private message them and ask for the email address they used to register Screenhero.",
|
||||
"Add them as a new contact in Screenhero, then click the monitor-looking button to attempt to share your screen with them.",
|
||||
"Once the Screenhero session starts, your screen's margins will glow orange. You are now sharing your screen.",
|
||||
"Your pair will have their own cursor, and will be able to type text on his or her keyboard.",
|
||||
"Now it's time to tackle our Bonfires. You can begin them by advancing to the next challenge.",
|
||||
"Once you you finish pair programming, end the session in Screenhero session.",
|
||||
"Congratulations! You have completed your first pair programming session.",
|
||||
"Pair program as much as possible with different campers until you've completed all the Bonfire challenges. This is a big time investment, but the JavaScript practice you get will be well worth it!",
|
||||
"Mark this Waypoint complete and move on."
|
||||
],
|
||||
"type": "waypoint",
|
||||
"challengeType": 2,
|
||||
"tests": [],
|
||||
"nameCn": "",
|
||||
"descriptionCn": [],
|
||||
"nameFr": "",
|
||||
"descriptionFr": [],
|
||||
"nameRu": "",
|
||||
"descriptionRu": [],
|
||||
"nameEs": "",
|
||||
"descriptionEs": [],
|
||||
"namePt": "",
|
||||
"descriptionPt": []
|
||||
},
|
||||
{
|
||||
"id": "ad7123c8c441eddfaeb5bdef",
|
||||
"title": "Meet Bonfire",
|
||||
@ -95,7 +55,7 @@
|
||||
"Reverse the provided string.",
|
||||
"You may need to turn the string into an array before you can reverse it.",
|
||||
"Your result must be a string.",
|
||||
"Remember to use <a href='//github.com/FreeCodeCamp/freecodecamp/wiki/How-to-get-help-when-you-get-stuck' target='_blank'>RSAP</a> if you get stuck. Try to pair program. Write your own code."
|
||||
"Remember to use <a href='//github.com/FreeCodeCamp/freecodecamp/wiki/How-to-get-help-when-you-get-stuck' target='_blank'>RSAP</a> if you get stuck. Write your own code."
|
||||
],
|
||||
"challengeSeed": [
|
||||
"function reverseString(str) {",
|
||||
@ -138,7 +98,7 @@
|
||||
"If the integer is represented with the letter n, a factorial is the product of all positive integers less than or equal to n.",
|
||||
"Factorials are often represented with the shorthand notation n!",
|
||||
"For example: 5! = 1 * 2 * 3 * 4 * 5 = 120f",
|
||||
"Remember to use <a href='//github.com/FreeCodeCamp/freecodecamp/wiki/How-to-get-help-when-you-get-stuck' target='_blank'>RSAP</a> if you get stuck. Try to pair program. Write your own code."
|
||||
"Remember to use <a href='//github.com/FreeCodeCamp/freecodecamp/wiki/How-to-get-help-when-you-get-stuck' target='_blank'>RSAP</a> if you get stuck. Write your own code."
|
||||
],
|
||||
"challengeSeed": [
|
||||
"function factorialize(num) {",
|
||||
@ -172,7 +132,7 @@
|
||||
"A palindrome is a word or sentence that's spelled the same way both forward and backward, ignoring punctuation, case, and spacing.",
|
||||
"You'll need to remove punctuation and turn everything lower case in order to check for palindromes.",
|
||||
"We'll pass strings with varying formats, such as \"racecar\", \"RaceCar\", and \"race CAR\" among others.",
|
||||
"Remember to use <a href='//github.com/FreeCodeCamp/freecodecamp/wiki/How-to-get-help-when-you-get-stuck' target='_blank'>RSAP</a> if you get stuck. Try to pair program. Write your own code."
|
||||
"Remember to use <a href='//github.com/FreeCodeCamp/freecodecamp/wiki/How-to-get-help-when-you-get-stuck' target='_blank'>RSAP</a> if you get stuck. Write your own code."
|
||||
],
|
||||
"tests": [
|
||||
"expect(palindrome(\"eye\")).to.be.a(\"boolean\");",
|
||||
@ -218,7 +178,7 @@
|
||||
"description": [
|
||||
"Return the length of the longest word in the provided sentence.",
|
||||
"Your response should be a number.",
|
||||
"Remember to use <a href='//github.com/FreeCodeCamp/freecodecamp/wiki/How-to-get-help-when-you-get-stuck' target='_blank'>RSAP</a> if you get stuck. Try to pair program. Write your own code."
|
||||
"Remember to use <a href='//github.com/FreeCodeCamp/freecodecamp/wiki/How-to-get-help-when-you-get-stuck' target='_blank'>RSAP</a> if you get stuck. Write your own code."
|
||||
],
|
||||
"challengeSeed": [
|
||||
"function findLongestWord(str) {",
|
||||
@ -258,7 +218,7 @@
|
||||
"description": [
|
||||
"Return the provided string with the first letter of each word capitalized.",
|
||||
"For the purpose of this exercise, you should also capitalize connecting words like 'the' and 'of'.",
|
||||
"Remember to use <a href='//github.com/FreeCodeCamp/freecodecamp/wiki/How-to-get-help-when-you-get-stuck' target='_blank'>RSAP</a> if you get stuck. Try to pair program. Write your own code."
|
||||
"Remember to use <a href='//github.com/FreeCodeCamp/freecodecamp/wiki/How-to-get-help-when-you-get-stuck' target='_blank'>RSAP</a> if you get stuck. Write your own code."
|
||||
],
|
||||
"challengeSeed": [
|
||||
"function titleCase(str) {",
|
||||
@ -297,7 +257,7 @@
|
||||
"Return an array consisting of the largest number from each provided sub-array. For simplicity, the provided array will contain exactly 4 sub-arrays.",
|
||||
"Remember, you can iterate through an array with a simple for loop, and access each member with array syntax arr[i] .",
|
||||
"If you are writing your own Chai.js tests, be sure to use a deep equal statement instead of an equal statement when comparing arrays.",
|
||||
"Remember to use <a href='//github.com/FreeCodeCamp/freecodecamp/wiki/How-to-get-help-when-you-get-stuck' target='_blank'>RSAP</a> if you get stuck. Try to pair program. Write your own code."
|
||||
"Remember to use <a href='//github.com/FreeCodeCamp/freecodecamp/wiki/How-to-get-help-when-you-get-stuck' target='_blank'>RSAP</a> if you get stuck. Write your own code."
|
||||
],
|
||||
"challengeSeed": [
|
||||
"function largestOfFour(arr) {",
|
||||
@ -334,7 +294,7 @@
|
||||
"difficulty": "1.07",
|
||||
"description": [
|
||||
"Check if a string (first argument) ends with the given target string (second argument).",
|
||||
"Remember to use <a href='//github.com/FreeCodeCamp/freecodecamp/wiki/How-to-get-help-when-you-get-stuck' target='_blank'>RSAP</a> if you get stuck. Try to pair program. Write your own code."
|
||||
"Remember to use <a href='//github.com/FreeCodeCamp/freecodecamp/wiki/How-to-get-help-when-you-get-stuck' target='_blank'>RSAP</a> if you get stuck. Write your own code."
|
||||
],
|
||||
"challengeSeed": [
|
||||
"function end(str, target) {",
|
||||
@ -374,7 +334,7 @@
|
||||
"difficulty": "1.08",
|
||||
"description": [
|
||||
"Repeat a given string (first argument) n times (second argument). Return an empty string if n is a negative number.",
|
||||
"Remember to use <a href='//github.com/FreeCodeCamp/freecodecamp/wiki/How-to-get-help-when-you-get-stuck' target='_blank'>RSAP</a> if you get stuck. Try to pair program. Write your own code."
|
||||
"Remember to use <a href='//github.com/FreeCodeCamp/freecodecamp/wiki/How-to-get-help-when-you-get-stuck' target='_blank'>RSAP</a> if you get stuck. Write your own code."
|
||||
],
|
||||
"challengeSeed": [
|
||||
"function repeat(str, num) {",
|
||||
@ -412,7 +372,7 @@
|
||||
"description": [
|
||||
"Truncate a string (first argument) if it is longer than the given maximum string length (second argument). Return the truncated string with a '...' ending.",
|
||||
"Note that the three dots at the end add to the string length.",
|
||||
"Remember to use <a href='//github.com/FreeCodeCamp/freecodecamp/wiki/How-to-get-help-when-you-get-stuck' target='_blank'>RSAP</a> if you get stuck. Try to pair program. Write your own code."
|
||||
"Remember to use <a href='//github.com/FreeCodeCamp/freecodecamp/wiki/How-to-get-help-when-you-get-stuck' target='_blank'>RSAP</a> if you get stuck. Write your own code."
|
||||
],
|
||||
"challengeSeed": [
|
||||
"function truncate(str, num) {",
|
||||
@ -450,7 +410,7 @@
|
||||
"difficulty": "1.10",
|
||||
"description": [
|
||||
"Write a function that splits an array (first argument) into groups the length of size (second argument) and returns them as a multidimensional array.",
|
||||
"Remember to use <a href='//github.com/FreeCodeCamp/freecodecamp/wiki/How-to-get-help-when-you-get-stuck' target='_blank'>RSAP</a> if you get stuck. Try to pair program. Write your own code."
|
||||
"Remember to use <a href='//github.com/FreeCodeCamp/freecodecamp/wiki/How-to-get-help-when-you-get-stuck' target='_blank'>RSAP</a> if you get stuck. Write your own code."
|
||||
],
|
||||
"challengeSeed": [
|
||||
"function chunk(arr, size) {",
|
||||
@ -488,7 +448,7 @@
|
||||
"difficulty": "1.11",
|
||||
"description": [
|
||||
"Return the remaining elements of an array after chopping off n elements from the head.",
|
||||
"Remember to use <a href='//github.com/FreeCodeCamp/freecodecamp/wiki/How-to-get-help-when-you-get-stuck' target='_blank'>RSAP</a> if you get stuck. Try to pair program. Write your own code."
|
||||
"Remember to use <a href='//github.com/FreeCodeCamp/freecodecamp/wiki/How-to-get-help-when-you-get-stuck' target='_blank'>RSAP</a> if you get stuck. Write your own code."
|
||||
],
|
||||
"challengeSeed": [
|
||||
"function slasher(arr, howMany) {",
|
||||
@ -529,7 +489,7 @@
|
||||
"For example, ['hello', 'Hello'], should return true because all of the letters in the second string are present in the first, ignoring case.",
|
||||
"The arguments ['hello', 'hey'] should return false because the string 'hello' does not contain a 'y'.",
|
||||
"Lastly, ['Alien', 'line'], should return true because all of the letters in 'line' are present in 'Alien'.",
|
||||
"Remember to use <a href='//github.com/FreeCodeCamp/freecodecamp/wiki/How-to-get-help-when-you-get-stuck' target='_blank'>RSAP</a> if you get stuck. Try to pair program. Write your own code."
|
||||
"Remember to use <a href='//github.com/FreeCodeCamp/freecodecamp/wiki/How-to-get-help-when-you-get-stuck' target='_blank'>RSAP</a> if you get stuck. Write your own code."
|
||||
],
|
||||
"challengeSeed": [
|
||||
"function mutation(arr) {",
|
||||
@ -570,7 +530,7 @@
|
||||
"description": [
|
||||
"Remove all falsey values from an array.",
|
||||
"Falsey values in javascript are false, null, 0, \"\", undefined, and NaN.",
|
||||
"Remember to use <a href='//github.com/FreeCodeCamp/freecodecamp/wiki/How-to-get-help-when-you-get-stuck' target='_blank'>RSAP</a> if you get stuck. Try to pair program. Write your own code."
|
||||
"Remember to use <a href='//github.com/FreeCodeCamp/freecodecamp/wiki/How-to-get-help-when-you-get-stuck' target='_blank'>RSAP</a> if you get stuck. Write your own code."
|
||||
],
|
||||
"challengeSeed": [
|
||||
"function bouncer(arr) {",
|
||||
@ -608,7 +568,7 @@
|
||||
"difficulty": "1.55",
|
||||
"description": [
|
||||
"Make a function that looks through an array (first argument) and returns an array of all objects that have equivalent property values (second argument).",
|
||||
"Remember to use <a href='//github.com/FreeCodeCamp/freecodecamp/wiki/How-to-get-help-when-you-get-stuck' target='_blank'>RSAP</a> if you get stuck. Try to pair program. Write your own code."
|
||||
"Remember to use <a href='//github.com/FreeCodeCamp/freecodecamp/wiki/How-to-get-help-when-you-get-stuck' target='_blank'>RSAP</a> if you get stuck. Write your own code."
|
||||
],
|
||||
"challengeSeed": [
|
||||
"function where(collection, source) {",
|
||||
@ -647,7 +607,7 @@
|
||||
"difficulty": "1.60",
|
||||
"description": [
|
||||
"You will be provided with an initial array (the first argument in the destroyer function), followed by one or more arguments. Remove all elements from the initial array that are of the same value as these arguments.",
|
||||
"Remember to use <a href='//github.com/FreeCodeCamp/freecodecamp/wiki/How-to-get-help-when-you-get-stuck' target='_blank'>RSAP</a> if you get stuck. Try to pair program. Write your own code."
|
||||
"Remember to use <a href='//github.com/FreeCodeCamp/freecodecamp/wiki/How-to-get-help-when-you-get-stuck' target='_blank'>RSAP</a> if you get stuck. Write your own code."
|
||||
],
|
||||
"challengeSeed": [
|
||||
"function destroyer(arr) {",
|
||||
@ -688,7 +648,7 @@
|
||||
"description": [
|
||||
"Return the lowest index at which a value (second argument) should be inserted into a sorted array (first argument).",
|
||||
"For example, where([1,2,3,4], 1.5) should return 1 because it is greater than 1 (0th index), but less than 2 (1st index).",
|
||||
"Remember to use <a href='//github.com/FreeCodeCamp/freecodecamp/wiki/How-to-get-help-when-you-get-stuck' target='_blank'>RSAP</a> if you get stuck. Try to pair program. Write your own code."
|
||||
"Remember to use <a href='//github.com/FreeCodeCamp/freecodecamp/wiki/How-to-get-help-when-you-get-stuck' target='_blank'>RSAP</a> if you get stuck. Write your own code."
|
||||
],
|
||||
"challengeSeed": [
|
||||
"function where(arr, num) {",
|
||||
|
@ -1,304 +0,0 @@
|
||||
{
|
||||
"name": "Expert Algorithm Scripting",
|
||||
"order": 0.013,
|
||||
"challenges": [
|
||||
{
|
||||
"id": "aff0495970f5d3034dc0bfc9",
|
||||
"title": "Validate US Telephone Numbers",
|
||||
"difficulty": "4.01",
|
||||
"description": [
|
||||
"Return true if the passed string is a valid US phone number",
|
||||
"The user may fill out the form field any way they choose as long as it is a valid US number. The following are all valid formats for US numbers:",
|
||||
"555-555-5555, (555)555-5555, (555) 555-5555, 555 555 5555, 5555555555, 1 555 555 5555",
|
||||
"For this challenge you will be presented with a string such as \"800-692-7753\" or \"8oo-six427676;laskdjf\". Your job is to validate or reject the US phone number based on any combination of the formats provided above. The area code is required. If the country code is provided, you must confirm that the country code is \"1\". Return true if the string is a valid US phone number; otherwise false.",
|
||||
"Remember to use <a href='//github.com/FreeCodeCamp/freecodecamp/wiki/How-to-get-help-when-you-get-stuck' target='_blank'>RSAP</a> if you get stuck. Try to pair program. Write your own code."
|
||||
],
|
||||
"tests": [
|
||||
"expect(telephoneCheck(\"555-555-5555\")).to.be.a(\"boolean\");",
|
||||
"assert.deepEqual(telephoneCheck(\"1 555-555-5555\"), true);",
|
||||
"assert.deepEqual(telephoneCheck(\"1 (555) 555-5555\"), true);",
|
||||
"assert.deepEqual(telephoneCheck(\"5555555555\"), true);",
|
||||
"assert.deepEqual(telephoneCheck(\"555-555-5555\"), true);",
|
||||
"assert.deepEqual(telephoneCheck(\"(555)555-5555\"), true);",
|
||||
"assert.deepEqual(telephoneCheck(\"1(555)555-5555\"), true);",
|
||||
"assert.deepEqual(telephoneCheck(\"1 555 555 5555\"), true);",
|
||||
"assert.deepEqual(telephoneCheck(\"555-555-5555\"), true);",
|
||||
"assert.deepEqual(telephoneCheck(\"1 456 789 4444\"), true);",
|
||||
"assert.deepEqual(telephoneCheck(\"123**&!!asdf#\"), false);",
|
||||
"assert.deepEqual(telephoneCheck(\"55555555\"), false);",
|
||||
"assert.deepEqual(telephoneCheck(\"(6505552368)\"), false);",
|
||||
"assert.deepEqual(telephoneCheck(\"2 (757) 622-7382\"), false);",
|
||||
"assert.deepEqual(telephoneCheck(\"0 (757) 622-7382\"), false);",
|
||||
"assert.deepEqual(telephoneCheck(\"-1 (757) 622-7382\"), false);",
|
||||
"assert.deepEqual(telephoneCheck(\"2 757 622-7382\"), false);",
|
||||
"assert.deepEqual(telephoneCheck(\"10 (757) 622-7382\"), false);",
|
||||
"assert.deepEqual(telephoneCheck(\"27576227382\"), false);",
|
||||
"assert.deepEqual(telephoneCheck(\"(275)76227382\"), false);",
|
||||
"assert.deepEqual(telephoneCheck(\"2(757)6227382\"), false);",
|
||||
"assert.deepEqual(telephoneCheck(\"2(757)622-7382\"), false);"
|
||||
],
|
||||
"challengeSeed": [
|
||||
"function telephoneCheck(str) {",
|
||||
" // Good luck!",
|
||||
" return true;",
|
||||
"}",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"telephoneCheck(\"555-555-5555\");"
|
||||
],
|
||||
"MDNlinks": [
|
||||
"RegExp"
|
||||
],
|
||||
"type": "bonfire",
|
||||
"challengeType": 5,
|
||||
"nameCn": "",
|
||||
"descriptionCn": [],
|
||||
"nameFr": "",
|
||||
"descriptionFr": [],
|
||||
"nameRu": "",
|
||||
"descriptionRu": [],
|
||||
"nameEs": "",
|
||||
"descriptionEs": [],
|
||||
"namePt": "",
|
||||
"descriptionPt": []
|
||||
},
|
||||
{
|
||||
"id": "a3f512de51cf954ede28891d",
|
||||
"title": "Symmetric Difference",
|
||||
"difficulty": "4.02",
|
||||
"description": [
|
||||
"Create a function that takes two or more arrays and returns an array of the symmetric difference of the provided arrays.",
|
||||
"The mathematical term symmetric difference refers to the elements in two sets that are in either the first or second set, but not in both.",
|
||||
"Remember to use <a href='//github.com/FreeCodeCamp/freecodecamp/wiki/How-to-get-help-when-you-get-stuck' target='_blank'>RSAP</a> if you get stuck. Try to pair program. Write your own code."
|
||||
],
|
||||
"challengeSeed": [
|
||||
"function sym(args) {",
|
||||
" return arguments;",
|
||||
"}",
|
||||
"",
|
||||
"sym([1, 2, 3], [5, 2, 1, 4]);"
|
||||
],
|
||||
"tests": [
|
||||
"assert.deepEqual(sym([1, 2, 3], [5, 2, 1, 4]).sort(), [3, 4, 5], 'should return the symmetric difference of the given arrays');",
|
||||
"assert.deepEqual(sym([1, 2, 5], [2, 3, 5], [3, 4, 5]).sort(), [1, 4, 5], 'should return the symmetric difference of the given arrays');",
|
||||
"assert.deepEqual(sym([1, 1, 2, 5], [2, 2, 3, 5], [3, 4, 5, 5]).sort(), [1, 4, 5], 'should return an array of unique values');",
|
||||
"assert.deepEqual(sym([1, 1]), [1], 'should return an array of unique values');"
|
||||
],
|
||||
"MDNlinks": [
|
||||
"Array.reduce()",
|
||||
"Symmetric Difference"
|
||||
],
|
||||
"type": "bonfire",
|
||||
"challengeType": 5,
|
||||
"nameCn": "",
|
||||
"descriptionCn": [],
|
||||
"nameFr": "",
|
||||
"descriptionFr": [],
|
||||
"nameRu": "",
|
||||
"descriptionRu": [],
|
||||
"nameEs": "",
|
||||
"descriptionEs": [],
|
||||
"namePt": "",
|
||||
"descriptionPt": []
|
||||
},
|
||||
{
|
||||
"id": "aa2e6f96cab3ab736c9a9b24",
|
||||
"title": "Exact Change",
|
||||
"difficulty": "4.03",
|
||||
"description": [
|
||||
"Design a cash register drawer function that accepts purchase price as the first argument, payment as the second argument, and cash-in-drawer (cid) as the third argument.",
|
||||
"cid is a 2d array listing available currency.",
|
||||
"Return the string \"Insufficient Funds\" if cash-in-drawer is less than the change due. Return the string \"Closed\" if cash-in-drawer is equal to the change due.",
|
||||
"Otherwise, return change in coin and bills, sorted in highest to lowest order.",
|
||||
"Remember to use <a href='//github.com/FreeCodeCamp/freecodecamp/wiki/How-to-get-help-when-you-get-stuck' target='_blank'>RSAP</a> if you get stuck. Try to pair program. Write your own code."
|
||||
],
|
||||
"challengeSeed": [
|
||||
"function drawer(price, cash, cid) {",
|
||||
" var change;",
|
||||
" // Here is your change, ma'am.",
|
||||
" return change;",
|
||||
"}",
|
||||
"",
|
||||
"// Example cash-in-drawer array:",
|
||||
"// [['PENNY', 1.01],",
|
||||
"// ['NICKEL', 2.05],",
|
||||
"// ['DIME', 3.10],",
|
||||
"// ['QUARTER', 4.25],",
|
||||
"// ['ONE', 90.00],",
|
||||
"// ['FIVE', 55.00],",
|
||||
"// ['TEN', 20.00],",
|
||||
"// ['TWENTY', 60.00],",
|
||||
"// ['ONE HUNDRED', 100.00]]",
|
||||
"",
|
||||
"drawer(19.50, 20.00, [['PENNY', 1.01], ['NICKEL', 2.05], ['DIME', 3.10], ['QUARTER', 4.25], ['ONE', 90.00], ['FIVE', 55.00], ['TEN', 20.00], ['TWENTY', 60.00], ['ONE HUNDRED', 100.00]]);"
|
||||
],
|
||||
"tests": [
|
||||
"expect(drawer(19.50, 20.00, [['PENNY', 1.01], ['NICKEL', 2.05], ['DIME', 3.10], ['QUARTER', 4.25], ['ONE', 90.00], ['FIVE', 55.00], ['TEN', 20.00], ['TWENTY', 60.00], ['ONE HUNDRED', 100.00]])).to.be.a('array');",
|
||||
"expect(drawer(19.50, 20.00, [['PENNY', 0.01], ['NICKEL', 0], ['DIME', 0], ['QUARTER', 0], ['ONE', 0], ['FIVE', 0], ['TEN', 0], ['TWENTY', 0], ['ONE HUNDRED', 0]])).to.be.a('string');",
|
||||
"expect(drawer(19.50, 20.00, [['PENNY', 0.50], ['NICKEL', 0], ['DIME', 0], ['QUARTER', 0], ['ONE', 0], ['FIVE', 0], ['TEN', 0], ['TWENTY', 0], ['ONE HUNDRED', 0]])).to.be.a('string');",
|
||||
"assert.deepEqual(drawer(19.50, 20.00, [['PENNY', 1.01], ['NICKEL', 2.05], ['DIME', 3.10], ['QUARTER', 4.25], ['ONE', 90.00], ['FIVE', 55.00], ['TEN', 20.00], ['TWENTY', 60.00], ['ONE HUNDRED', 100.00]]), [['QUARTER', 0.50]], 'return correct change');",
|
||||
"assert.deepEqual(drawer(3.26, 100.00, [['PENNY', 1.01], ['NICKEL', 2.05], ['DIME', 3.10], ['QUARTER', 4.25], ['ONE', 90.00], ['FIVE', 55.00], ['TEN', 20.00], ['TWENTY', 60.00], ['ONE HUNDRED', 100.00]]), [['TWENTY', 60.00], ['TEN', 20.00], ['FIVE', 15], ['ONE', 1], ['QUARTER', 0.50], ['DIME', 0.20], ['PENNY', 0.04] ], 'return correct change with multiple coins and bills');",
|
||||
"assert.deepEqual(drawer(19.50, 20.00, [['PENNY', 0.01], ['NICKEL', 0], ['DIME', 0], ['QUARTER', 0], ['ONE', 0], ['FIVE', 0], ['TEN', 0], ['TWENTY', 0], ['ONE HUNDRED', 0]]), 'Insufficient Funds', 'insufficient funds');",
|
||||
"assert.deepEqual(drawer(19.50, 20.00, [['PENNY', 0.50], ['NICKEL', 0], ['DIME', 0], ['QUARTER', 0], ['ONE', 0], ['FIVE', 0], ['TEN', 0], ['TWENTY', 0], ['ONE HUNDRED', 0]]), \"Closed\", 'cash-in-drawer equals change');"
|
||||
],
|
||||
"MDNlinks": [
|
||||
"Global Object"
|
||||
],
|
||||
"type": "bonfire",
|
||||
"challengeType": 5,
|
||||
"nameCn": "",
|
||||
"descriptionCn": [],
|
||||
"nameFr": "",
|
||||
"descriptionFr": [],
|
||||
"nameRu": "",
|
||||
"descriptionRu": [],
|
||||
"nameEs": "",
|
||||
"descriptionEs": [],
|
||||
"namePt": "",
|
||||
"descriptionPt": []
|
||||
},
|
||||
{
|
||||
"id": "a56244aff60341a09ed6c480",
|
||||
"title": "Inventory Update",
|
||||
"difficulty": "4.04",
|
||||
"description": [
|
||||
"Compare and update inventory stored in a 2d array against a second 2d array of a fresh delivery. Update current inventory item quantity, and if an item cannot be found, add the new item and quantity into the inventory array in alphabetical order.",
|
||||
"Remember to use <a href='//github.com/FreeCodeCamp/freecodecamp/wiki/How-to-get-help-when-you-get-stuck' target='_blank'>RSAP</a> if you get stuck. Try to pair program. Write your own code."
|
||||
],
|
||||
"challengeSeed": [
|
||||
"function inventory(arr1, arr2) {",
|
||||
" // All inventory must be accounted for or you're fired!",
|
||||
" return arr1;",
|
||||
"}",
|
||||
"",
|
||||
"// Example inventory lists",
|
||||
"var curInv = [",
|
||||
" [21, 'Bowling Ball'],",
|
||||
" [2, 'Dirty Sock'],",
|
||||
" [1, 'Hair Pin'],",
|
||||
" [5, 'Microphone']",
|
||||
"];",
|
||||
"",
|
||||
"var newInv = [",
|
||||
" [2, 'Hair Pin'],",
|
||||
" [3, 'Half-Eaten Apple'],",
|
||||
" [67, 'Bowling Ball'],",
|
||||
" [7, 'Toothpaste']",
|
||||
"];",
|
||||
"",
|
||||
"inventory(curInv, newInv);"
|
||||
],
|
||||
"tests": [
|
||||
"expect(inventory([[21, 'Bowling Ball'], [2, 'Dirty Sock'], [1, 'Hair Pin'], [5, 'Microphone']], [[2, 'Hair Pin'], [3, 'Half-Eaten Apple'], [67, 'Bowling Ball'], [7, 'Toothpaste']])).to.be.a('array');",
|
||||
"assert.equal(inventory([[21, 'Bowling Ball'], [2, 'Dirty Sock'], [1, 'Hair Pin'], [5, 'Microphone']], [[2, 'Hair Pin'], [3, 'Half-Eaten Apple'], [67, 'Bowling Ball'], [7, 'Toothpaste']]).length, 6);",
|
||||
"assert.deepEqual(inventory([[21, 'Bowling Ball'], [2, 'Dirty Sock'], [1, 'Hair Pin'], [5, 'Microphone']], [[2, 'Hair Pin'], [3, 'Half-Eaten Apple'], [67, 'Bowling Ball'], [7, 'Toothpaste']]), [[88, 'Bowling Ball'], [2, 'Dirty Sock'], [3, 'Hair Pin'], [3, 'Half-Eaten Apple'], [5, 'Microphone'], [7, 'Toothpaste']]);",
|
||||
"assert.deepEqual(inventory([[21, 'Bowling Ball'], [2, 'Dirty Sock'], [1, 'Hair Pin'], [5, 'Microphone']], []), [[21, 'Bowling Ball'], [2, 'Dirty Sock'], [1, 'Hair Pin'], [5, 'Microphone']]);",
|
||||
"assert.deepEqual(inventory([], [[2, 'Hair Pin'], [3, 'Half-Eaten Apple'], [67, 'Bowling Ball'], [7, 'Toothpaste']]), [[67, 'Bowling Ball'], [2, 'Hair Pin'], [3, 'Half-Eaten Apple'], [7, 'Toothpaste']]);",
|
||||
"assert.deepEqual(inventory([[0, 'Bowling Ball'], [0, 'Dirty Sock'], [0, 'Hair Pin'], [0, 'Microphone']], [[1, 'Hair Pin'], [1, 'Half-Eaten Apple'], [1, 'Bowling Ball'], [1, 'Toothpaste']]), [[1, 'Bowling Ball'], [0, 'Dirty Sock'], [1, 'Hair Pin'], [1, 'Half-Eaten Apple'], [0, 'Microphone'], [1, 'Toothpaste']]);"
|
||||
],
|
||||
"MDNlinks": [
|
||||
"Global Array Object"
|
||||
],
|
||||
"type": "bonfire",
|
||||
"challengeType": 5,
|
||||
"nameCn": "",
|
||||
"descriptionCn": [],
|
||||
"nameFr": "",
|
||||
"descriptionFr": [],
|
||||
"nameRu": "",
|
||||
"descriptionRu": [],
|
||||
"nameEs": "",
|
||||
"descriptionEs": [],
|
||||
"namePt": "",
|
||||
"descriptionPt": []
|
||||
},
|
||||
{
|
||||
"id": "a8bf800cd123b9a54eef01d5",
|
||||
"title": "No repeats please",
|
||||
"difficulty": "4.05",
|
||||
"description": [
|
||||
"Return the number of total permutations of the provided string that don't have repeated consecutive letters.",
|
||||
"For example, 'aab' should return 2 because it has 6 total permutations, but only 2 of them don't have the same letter (in this case 'a') repeating.",
|
||||
"Remember to use <a href='//github.com/FreeCodeCamp/freecodecamp/wiki/How-to-get-help-when-you-get-stuck' target='_blank'>RSAP</a> if you get stuck. Try to pair program. Write your own code."
|
||||
],
|
||||
"challengeSeed": [
|
||||
"function permAlone(str) {",
|
||||
" return str;",
|
||||
"}",
|
||||
"",
|
||||
"permAlone('aab');"
|
||||
],
|
||||
"tests": [
|
||||
"expect(permAlone('aab')).to.be.a('number');",
|
||||
"expect(permAlone('aab')).to.equal(2);",
|
||||
"expect(permAlone('aaa')).to.equal(0);",
|
||||
"expect(permAlone('aabb')).to.equal(8);",
|
||||
"expect(permAlone('abcdefa')).to.equal(3600);",
|
||||
"expect(permAlone('abfdefa')).to.equal(2640);",
|
||||
"expect(permAlone('zzzzzzzz')).to.equal(0);"
|
||||
],
|
||||
"MDNlinks": [
|
||||
"Permutations",
|
||||
"RegExp"
|
||||
],
|
||||
"type": "bonfire",
|
||||
"challengeType": 5,
|
||||
"nameCn": "",
|
||||
"descriptionCn": [],
|
||||
"nameFr": "",
|
||||
"descriptionFr": [],
|
||||
"nameRu": "",
|
||||
"descriptionRu": [],
|
||||
"nameEs": "",
|
||||
"descriptionEs": [],
|
||||
"namePt": "",
|
||||
"descriptionPt": []
|
||||
},
|
||||
{
|
||||
"id": "a19f0fbe1872186acd434d54",
|
||||
"title": "Friendly Date Ranges",
|
||||
"difficulty": "4.06",
|
||||
"description": [
|
||||
"Implement a way of converting two dates into a more friendly date range that could be presented to a user.",
|
||||
"It must not show any redundant information in the date range.",
|
||||
"For example, if the year and month are the same then only the day range should be displayed.",
|
||||
"Secondly, if the starting year is the current year, and the ending year can be inferred by the reader, the year should be omitted.",
|
||||
"Input date is formatted as YYYY-MM-DD",
|
||||
"Remember to use <a href='//github.com/FreeCodeCamp/freecodecamp/wiki/How-to-get-help-when-you-get-stuck' target='_blank'>RSAP</a> if you get stuck. Try to pair program. Write your own code."
|
||||
],
|
||||
"challengeSeed": [
|
||||
"function friendly(str) {",
|
||||
" return str;",
|
||||
"}",
|
||||
"",
|
||||
"friendly(['2015-07-01', '2015-07-04']);"
|
||||
],
|
||||
"tests": [
|
||||
"assert.deepEqual(friendly(['2015-07-01', '2015-07-04']), ['July 1st','4th'], 'ending month should be omitted since it is already mentioned');",
|
||||
"assert.deepEqual(friendly(['2015-12-01', '2016-02-03']), ['December 1st','February 3rd'], 'two months apart can be inferred if it is the next year');",
|
||||
"assert.deepEqual(friendly(['2015-12-01', '2017-02-03']), ['December 1st, 2015','February 3rd, 2017']);",
|
||||
"assert.deepEqual(friendly(['2016-03-01', '2016-05-05']), ['March 1st','May 5th'], 'one month apart can be inferred it is the same year');",
|
||||
"assert.deepEqual(friendly(['2017-01-01', '2017-01-01']), ['January 1st, 2017'], 'since we do not duplicate only return once');",
|
||||
"assert.deepEqual(friendly(['2022-09-05', '2023-09-04']), ['September 5th, 2022','September 4th, 2023']);"
|
||||
],
|
||||
"MDNlinks": [
|
||||
"String.split()",
|
||||
"String.substr()",
|
||||
"parseInt()"
|
||||
],
|
||||
"type": "bonfire",
|
||||
"challengeType": 5,
|
||||
"nameCn": "",
|
||||
"descriptionCn": [],
|
||||
"nameFr": "",
|
||||
"descriptionFr": [],
|
||||
"nameRu": "",
|
||||
"descriptionRu": [],
|
||||
"nameEs": "",
|
||||
"descriptionEs": [],
|
||||
"namePt": "",
|
||||
"descriptionPt": []
|
||||
}
|
||||
]
|
||||
}
|
@ -1,427 +0,0 @@
|
||||
{
|
||||
"name": "Get Set for Free Code Camp",
|
||||
"order": 0.001,
|
||||
"challenges": [
|
||||
{
|
||||
"id": "bd7124d8c441eddfaeb5bdef",
|
||||
"title": "Learn how Free Code Camp Works",
|
||||
"difficulty": 0.01,
|
||||
"challengeSeed": ["125407438"],
|
||||
"description": [
|
||||
"Watch this 1-minute video, or simply read this summary:",
|
||||
"Welcome to Free Code Camp. We're an open source community of busy people who learn to code, then practice by building projects for nonprofits.",
|
||||
"Learning to code is hard. It takes a lot of practice.",
|
||||
"So we've focused on making Free Code Camp as convenient and accessible as possible.",
|
||||
"Free Code Camp is self-paced, browser-based, and free.",
|
||||
"During the first 800 hours of Free Code Camp, you'll learn technologies like HTML5, Node.js and databases.",
|
||||
"During the last 800 hours, you'll build several real-life projects for nonprofits.",
|
||||
"By the time you finish, you'll be a job-ready coder who has a portfolio of apps with happy users to prove it.",
|
||||
"We'll even help you meet other coders in your city and find a coding job.",
|
||||
"We'll provide you with the most rigorous curriculum and the most supportive community on earth. All you need to do sit down, day after day, and put in the hard work.",
|
||||
"Now it's time to join our chat room. Click the \"I've completed this challenge\" button to move on to your next challenge."
|
||||
],
|
||||
"type": "waypoint",
|
||||
"challengeType": 2,
|
||||
"tests": [],
|
||||
"nameCn": "",
|
||||
"descriptionCn": [],
|
||||
"nameFr": "",
|
||||
"descriptionFr": [],
|
||||
"nameRu": "",
|
||||
"descriptionRu": [],
|
||||
"nameEs": "Waypoint: Aprende sobre como funciona Free Code Camp",
|
||||
"descriptionEs": [
|
||||
"Mira el video de 1 minuto o simplemente lee este resumen:",
|
||||
"Bienvenido a Free Code Camp. Somos una comunidad de personas ocupadas tratando de aprender a programar construyendo proyectos para empresas sin fines de lucro.",
|
||||
"Hemos construido esta comunidad porque aprender a programar es dificil; pero cualquiera que se pueda mantener motivado puede aprender a programar. Para mantenerte motivado, solo necesitas: <ol><li>hacerte amigo o amiga de personas que sepan programar</li><li>programar un poco cada día</li></ol>",
|
||||
"Todos nuestros desafíos son <ol><li>gratuitos</li><li>manejados a tu propio ritmo</li><li>basados en tu navegador</li></ol>",
|
||||
"Estaremos trabajando <ol><li>200 horas aprendiendo a utilizar herramientas como HTML, CSS, JavaScript, Node.js y bases de datos</li><li>600 horas construyendo proyectos prácticos</li><li>800 horas construyendo soluciones full stack para empresas sin fines de lucro</li></ol>",
|
||||
"Al finalizar <ol><li>seremos buenos en programación</li><li>tendremos un portafolio con apps con usuarios contentos que puedan abogar por nuestro trabajo</li></ol>",
|
||||
"Una vez que completes el Free Code Camp, serás capaz de obtener un trabajo como desarrollador. Hay muchas posiciones de trabajo que están en búsqueda de programadores calificados.",
|
||||
"Ahora es el momento de ingresar a nuestra sala de chat. Dale click al botón de \"I've completed this challenge\" para continuar con el siguiente desafío."
|
||||
],
|
||||
"namePt": "",
|
||||
"descriptionPt": [],
|
||||
"nameDe": "Waypoint: Lerne wie Free Code Camp funktioniert",
|
||||
"descriptionDe": [
|
||||
"Sieh dir das kurze Video an oder lies einfach diese Übersicht:",
|
||||
"Willkommen im Free Code Camp. Wir sind eine Community aus eifrigen Personen, die Programmieren lernen, indem sie Projekte für gemeinnützige Organisationen umsetzen.",
|
||||
"Programmieren zu lernen ist hart, weshalb wir diese Community ins Leben gerufen haben. Jeder, der motiviert bleiben kann, ist auch in der Lage Programmieren zu lernen. Und um motiviert zu bleiben, musst du nur: <ol><li>Freunde finden, die programmieren</li><li>jeden Tag ein wenig programmieren</li></ol>",
|
||||
"All unsere Challenges sind <ol><li>kostenlos</li><li>selbstbestimmt</li><li>Browser-basiert</li></ol>",
|
||||
"Wir werden <ol><li>200 Stunden mit Werkzeugen wie HTML, CSS, JavaScript, Node.js und Datenbanken arbeiten</li><li>600 Stunden Projekte umsetzen</li><li>800 Stunden komplette Lösungen für gemeinnützige Organisationen erstellen</li></ol>",
|
||||
"Am Ende werden wir <ol><li>gut im Programmieren sein</li><li>ein Portfolio aus Anwendungen mit zufriedenen Nutzern vorweisen können</li></ol>",
|
||||
"Wenn du das Free Code Camp abgeschlossen hast, wirst du in der Lage sein einen Job in der Branche zu bekommen. Es gibt sehr viel mehr offene Stellen als fähige Programmierer, um sie zu besetzen.",
|
||||
"Jetzt wird es Zeit unserem Chat beizutreten. Klicke auf \"I've completed this challenge\" um zur nächsten Challenge fortzufahren."
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "bd7125d8c441eddfaeb5bd0f",
|
||||
"title": "Join Our Chat Room",
|
||||
"difficulty": 0.02,
|
||||
"challengeSeed": ["131574135"],
|
||||
"description": [
|
||||
"Now we're going to join the Free Code Camp chat room. You can come here any time of day to hang out, ask questions, or find another camper to pair program with.",
|
||||
"Create an account with GitHub here: <a href='https://github.com/join' target='_blank'>https://github.com/join</a>.",
|
||||
"Click the pixel art in the upper right hand corner of GitHub, then choose settings. Upload a picture of yourself. A picture of your face works best. This is how people will see you in our chat rooms, so put your best foot forward. You can add your city and your personal website if you have one.",
|
||||
"Go to Free Code Camp's open-source repository: <a href='//github.com/freecodecamp/freecodecamp' target='_blank'>https://github.com/freecodecamp/freecodecamp</a>.",
|
||||
"You can \"star\" this repository by clicking the star button in the upper right hand corner.",
|
||||
"Later, you'll be able to fork this repository if you'd like to contribute to our open source codebase.",
|
||||
"Join our main chat room: <a href='https://gitter.im/FreeCodeCamp/FreeCodeCamp' target='_blank'>https://gitter.im/FreeCodeCamp/FreeCodeCamp</a>.",
|
||||
"Once you're in our chat room, introduce yourself by saying : \"Hello world!\".",
|
||||
"Tell your fellow campers how you found Free Code Camp. Also tell us why you want to learn to code.",
|
||||
"We have a busy chat room, so be sure to configure your notification settings in the top right corner.",
|
||||
"Please note that all of our chat rooms are visible to the public, so if you need to share sensative information like an email address or phone number, do it in a private message.",
|
||||
"Also Join our help chat room: <a href='https://gitter.im/FreeCodeCamp/help' target='_blank'>https://gitter.im/FreeCodeCamp/help</a>, where you can get help with our challenges in real time.",
|
||||
"Keep our chat room open while you work through our other challenges. That way, you ask for help if you get stuck on a challenge. You can also socialize when you feel like taking a break.",
|
||||
"You can also download a desktop or mobile chat application here: <a href='https://gitter.im/apps' target='_blank'>https://gitter.im/apps</a>",
|
||||
"You can also access this chat room by clicking the \"Chat\" button in the upper right hand corner.",
|
||||
"In order to keep our community a friendly and positive place to learn to code, please read and follow our Code of Conduct: <a href='https://github.com/FreeCodeCamp/freecodecamp/wiki/Code-of-Conduct' target='_blank'>https://github.com/FreeCodeCamp/freecodecamp/wiki/Code-of-Conduct</a>",
|
||||
"Now you're ready to move on. Click the \"I've completed this challenge\" button to move on to your next challenge."
|
||||
],
|
||||
"type": "waypoint",
|
||||
"challengeType": 2,
|
||||
"tests": [],
|
||||
"nameCn": "",
|
||||
"descriptionCn": [],
|
||||
"nameFr": "",
|
||||
"descriptionFr": [],
|
||||
"nameRu": "",
|
||||
"descriptionRu": [],
|
||||
"nameEs": "Waypoint: Únete a Nuestra Sala de Chat",
|
||||
"descriptionEs": [
|
||||
"Ahora vamos a unirnos a la sala de chat de Free Code Camp. Puedes ingresar en cualquier momento para pasar el rato, hacer preguntas o para encontrar algún otro camper para programar en pares.",
|
||||
"Asegurate de que tu cuenta de Free Code Camp incluya tu dirección de correo electrónico. Vale recalcar que si bien tu dirección de correo electrónico será invisible para el público, Slack lo hará visible para otros campers en las salas de chat. Puedes ingresar por aquí: <a href='/account' target='_blank'>http://freecodecamp.com/account</a>.",
|
||||
"Dale click a este link, el cual te enviará una invitación a las salas de chat de Free Code Camp: <a href='/api/slack' target='_blank'>http://freecodecamp.com/api/slack</a>.",
|
||||
"Ahora revisa tu buzón de correo y dale click al link del correo electrónico que has recibido de Slack.",
|
||||
"Completa el proceso de registro, actualiza tu información biográfica y sube una imagen. Una foto de tu cara funciona mejor. Esta es la manera como las personas te verán en las salas de chat, asegurate de mostrar tu mejor sonrisa.",
|
||||
"Ahora ingresa al chat #General (Inglés) o #Espanol (Español) e introdúcete escribiendo: \"Hola mundo!\".",
|
||||
"Comentale a otros campers como es que encontraste Free Code Camp. También hablanos sobre las razones por las cuales decidiste aprender a programar.",
|
||||
"Mantén la sala de chat abierta mientras estás trabajando otros desafíos. De esa manera podrás pedir ayuda en caso te quedes atascado en algún de ellos. También puedes socializar cuando sientas que necesitas un descanso.",
|
||||
"Puedes acceder a la sala de chat dándole click al botón de \"Chat\" en la parte superior derecha de la página.",
|
||||
"Para mantener a nuestra comunidad como un lugar de aprendizaje positivo y amigable, por favor lee y sigue nuestro Código de Conducta: <a href='/https://github.com/FreeCodeCamp/freecodecamp/wiki/Code-of-Conduct' target='_blank'>https://github.com/FreeCodeCamp/freecodecamp/wiki/Code-of-Conduct</a>"
|
||||
],
|
||||
"namePt": "",
|
||||
"descriptionPt": [],
|
||||
"nameDe": "Waypoint: Trete unserem Chat-Raum bei",
|
||||
"descriptionDe": [
|
||||
"Nun werden wir dem Chat-Raum von Free Code Camp beitreten. Du kannst jederzeit vorbei kommen um abzuhängen, Fragen zu stellen oder andere Camper für Paarprogrammierung zu finden.",
|
||||
"Stelle sicher, dass deine Email Adresse in deinem Free Code Camp Account hinterlegt ist. Bitte beachte, dass deine Email Adresse für die Öffentlichkeit nicht einsehbar ist, aber für andere Camper in Slack wird sie sichtbar sein. Du kannst sie hier eintragen: <a href='/account' target='_blank'>http://freecodecamp.com/account</a>.",
|
||||
"Klicke auf diesen Link, um von Slack eine Einladung zu den Chat-Räumen von Free Code Camp zu erhalten: <a href='/api/slack' target='_blank'>http://freecodecamp.com/api/slack</a>.",
|
||||
"Kontrolliere jetzt dein Email Postfach und klicke in der Email von Slack auf den Link.",
|
||||
"Beende die Registrierung und vervollständige dein Profil. Vergiss nicht, dein Profil-Bild hochzuladen. Ein Bild von deinem Gesicht ist am besten. So werden dich andere Personen im Chat sehen, also zeige dich von deiner Schokoladenseite.",
|
||||
"Jetzt betrete den General Chat-Raum und stelle dich den anderen vor, indem du folgendes schreibst: \"Hello world!\".",
|
||||
"Teile den anderen Campern mit, wie du auf Free Code Camp gestoßen bist. Wir interessieren uns auch dafür, warum du Programmieren lernen willst – aber auf englisch bitte, sonst versteht dich kaum einer.",
|
||||
"Behalte den Chat geöffnet, während du an den Challenges arbeitest. Auf diesem Weg kannst du schnell nach Hilfe fragen, wenn du nicht weiter kommst. Du kannst auch jederzeit mit uns chatten, wenn du eine Pause einlegen möchtest.",
|
||||
"Du kannst den Chat auch über die Schaltfläche \"Chat\" oben rechts auf dieser Seite erreichen.",
|
||||
"Damit diese Community ein freundlicher und positiver Ort zum Lernen bleibt, lies und folge bitte unseren Verhaltensregeln: <a href='//github.com/FreeCodeCamp/freecodecamp/wiki/Code-of-Conduct' target='_blank'>https://github.com/FreeCodeCamp/freecodecamp/wiki/Code-of-Conduct</a>"
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "bd7125d8c441eddfaeb5bdff",
|
||||
"title": "Preview our Challenge Map",
|
||||
"difficulty": 0.03,
|
||||
"challengeSeed": ["125407437"],
|
||||
"description": [
|
||||
"Before you start learning how to code, we'd like to introduce you to a few things.",
|
||||
"Let's look at our Challenge Map. Click on the \"Map\" button in the upper right hand corner. This map shows all the challenges that will teach you how to code.",
|
||||
"You should complete all of these challenges in order.",
|
||||
"In addition to our Waypoint challenges, like the one you're doing now, we have algorithm practice challenges (Bonfires), front end development challenges (Ziplines) and full stack development challenges (Basejumps). After you finish all of these, you'll start building projects for nonprofits.",
|
||||
"Please note that our open-source curriculum is a work in progress. Our volunteer community is constantly improving it. If you think you've encountered a bug, typo, or something that seems confusing, be sure to click the \"bug\" button to create a GitHub issue."
|
||||
],
|
||||
"type": "waypoint",
|
||||
"challengeType": 2,
|
||||
"tests": [],
|
||||
"nameCn": "",
|
||||
"descriptionCn": [],
|
||||
"nameFr": "",
|
||||
"descriptionFr": [],
|
||||
"nameRu": "",
|
||||
"descriptionRu": [],
|
||||
"nameEs": "Waypoint: Revisa nuestro Mapa de Desafíos",
|
||||
"descriptionEs": [
|
||||
"Antes de comenzar a aprender a programar, nos gustaría mostrarte algunas cosas.",
|
||||
"Revisemos el Mapa de Desafíos. Dale click al botón de \"Map\" en la parte superior derecha. Este mapa muestra todos los desafíos que te enseñarán a programar.",
|
||||
"Deberías completar todos estos desafíos en orden.",
|
||||
"Una vez que termines con los Waypoints, seguiremos con los Bonfires (práctica de algoritmos), luego Ziplines (práctica de desarrollo front end) y para terminar los Basejumps (práctica de desarrollo full stack). Después de eso, empezarás a desarrollar proyectos para empresas sin fines de lúcro.",
|
||||
"El mapa de desafíos es solamente de referencia. Puedes también presionar el botón de \"Learn\", el cual te llevará directamente al siguiente desafío.",
|
||||
"Para terminar, ten en cuenta que nuestra currícula open-source es un trabajo en progreso. Nuestra comunidad de voluntarios está mejorandola constantemente. Si crees que te has topado con algún bug, error ortográfico o algo que parezca confuso, haznos el favor de abrir un ticket a través de Github: <a href='https://github.com/FreeCodeCamp/freecodecamp/issues'>https://github.com/FreeCodeCamp/freecodecamp/issues</a>."
|
||||
],
|
||||
"namePt": "",
|
||||
"descriptionPt": [],
|
||||
"nameDe": "Waypoint: Besuche die Challenge Map",
|
||||
"descriptionDe": [
|
||||
"Bevor du startest, wollen wir dir ein paar Dinge zeigen.",
|
||||
"Betrachte die Challenge Map. Klicke auf \"Map\" oben rechts auf dieser Seite. Diese Übersicht zeigt dir alle Challenges.",
|
||||
"Du solltest alle Challenges in der gezeigten Reihenfolge abschließen.",
|
||||
"Hast du alle Waypoint-Challenges beendet, folgen die Bonfires (Algorithmen), darauf Ziplines (Frontend Development) und zum Schluss Basejumps (Full Stack Development). Danach wirst du anfangen, Projekte für gemeinnützige Organisationen umzusetzen.",
|
||||
"Diese Challenge Map dient dir als Orientierung. Du kannst einfach auf \"Learn\" klicken und direkt zur nächsten Challenge fortfahren.",
|
||||
"Bitte beachte, dass unser Open Source Lehrplan nicht fertig ist. Unsere freiwillige Community verbessert diesen stetig. Wenn du einen Bug, Rechtschreib-Fehler oder etwas gefunden hast, das dir komisch vorkommt, öffne bitte ein GitHub Issue: <a href='https://github.com/FreeCodeCamp/freecodecamp/issues'>https://github.com/FreeCodeCamp/freecodecamp/issues</a>. Wie gehabt bitte in englischer Sprache."
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "bd7125d8c441eddfaeb5bd1f",
|
||||
"title": "Browse our Wiki",
|
||||
"difficulty": 0.04,
|
||||
"challengeSeed": ["125407435"],
|
||||
"description": [
|
||||
"Free Code Camp has an up-to-date wiki that will answer your many questions.",
|
||||
"Click the \"Wiki\" button in the upper right hand corner.",
|
||||
"You can browse our wiki at your convenience. Most of its articles take less than 1 minute to read.",
|
||||
"All of our Wiki articles are contributed by our community. You can update our wiki articles, and even create wiki articles of your own.",
|
||||
"Now you can move on to your next challenge."
|
||||
],
|
||||
"type": "waypoint",
|
||||
"challengeType": 2,
|
||||
"tests": [],
|
||||
"nameCn": "",
|
||||
"descriptionCn": [],
|
||||
"nameFr": "",
|
||||
"descriptionFr": [],
|
||||
"nameRu": "",
|
||||
"descriptionRu": [],
|
||||
"nameEs": "Waypoint: Revisa nuestro Field Guide",
|
||||
"descriptionEs": [
|
||||
"Free Code Camp tiene un field guide actualizado que respondera tus preguntas.",
|
||||
"Dale click al botón \"Field Guide\" en la parte superior derecha.",
|
||||
"Puedes navegar el Field Guide cuando veas conveniente. La mayoría de los artículos los puedes leer en menos de 1 minuto .",
|
||||
"Cuando le des click al botón de Field Guide, siempre te regresará al último artículo que estuviste leyendo.",
|
||||
"Lee algunos de nuestros artículos, luego continúa con tu siguiente desafío."
|
||||
],
|
||||
"namePt": "",
|
||||
"descriptionPt": [],
|
||||
"nameDe": "Waypoint: Stöbere in unserem Field Guide",
|
||||
"descriptionDe": [
|
||||
"Free Code Camp hat einen aktuellen Field Guide, welcher viele deiner Fragen beantworten wird.",
|
||||
"Klicke oben rechts auf \"Field Guide\".",
|
||||
"Du kannst im Field Guide nach Lust und Laune stöbern. Die meisten der Artikel sind in weniger als einer Minute gelesen.",
|
||||
"Wenn du auf den besagten Field Guide in der Navigation klickst, wirst du direkt zu dem Artikel geleitet, den du als letztes gelesen hast.",
|
||||
"Lies ein paar der Artikel, dann schreite zu deiner nächsten Challenge voran."
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "bd7125d8c441eddfaeb5bd2f",
|
||||
"title": "Customize your Portfolio Page",
|
||||
"difficulty": 0.05,
|
||||
"challengeSeed": ["125407433"],
|
||||
"description": [
|
||||
"You and all your fellow campers have portfolio pages.",
|
||||
"Click your picture in the upper right hand corner to go to your account page.",
|
||||
"Before you can see your portfolio page, you'll need to link your GitHub account with Free Code Camp.",
|
||||
"You can also fill out a short biography, and add links to your social media profiles.",
|
||||
"Your portfolio page shows how many Brownie Points you have. You can get Brownie Points by completing challenges and by helping other campers in our chat rooms.",
|
||||
"Your portfolio page also shows off your progress through Free Code Camp. If you get Brownie Points on several days in a row, you'll get streak.",
|
||||
"Once you're happy with your portfolio page, you can move on to your next challenge."
|
||||
],
|
||||
"type": "waypoint",
|
||||
"challengeType": 2,
|
||||
"tests": [],
|
||||
"nameCn": "",
|
||||
"descriptionCn": [],
|
||||
"nameFr": "",
|
||||
"descriptionFr": [],
|
||||
"nameRu": "",
|
||||
"descriptionRu": [],
|
||||
"nameEs": "Waypoint: Personaliza tu página de Portafolio",
|
||||
"descriptionEs": [
|
||||
"Tú y tus otros amigos campers tienen sus propias páginas de portafolio.",
|
||||
"Para visualizar tu página de portafolio, dale click a tu foto en la parte superior derecha.",
|
||||
"Tu página de portafolio mostrará automaticamente tu progreso en Free Code Camp",
|
||||
"Dale click al botón de \"Update my portfolio page or manage my account\"",
|
||||
"Puedes enlazarte con tus cuentas de Github, Twitter y LinkedIn. Si ya has creado alguna página web, puedes enlazarla aquí también.",
|
||||
"Asegurate de darle click al botón de \"Update my Bio\" o \"Update my Social Links\" para agregar esta nueva información a tu portafolio.",
|
||||
"Una vez que estés satisfecho con tu página de portafolio, puedes seguir con el siguiente desafío."
|
||||
],
|
||||
"namePt": "",
|
||||
"descriptionPt": [],
|
||||
"nameDe": "Waypoint: Personalisiere deine Portfolio-Seite",
|
||||
"descriptionDe": [
|
||||
"Du und die anderen Camper habt Portfolio-Seiten.",
|
||||
"Um zu deinem Portfolio zu gelangen, klicke oben rechts auf dein Bild.",
|
||||
"Dein Portfolio wird deinen Fortschritt im Free Code Camp automatisch anzeigen.",
|
||||
"Klicke auf \"Update my portfolio page or manage my account\"",
|
||||
"Du kannst deine GitHub, Twitter und LinkedIn Accounts verlinken. Wenn du bereits ein paar Websites gebaut hast, kannst du sie ebenfalls präsentieren.",
|
||||
"Stelle sicher, dass du auf \"Update my Bio\" oder \"Update my Social Links\" klickst, um diese neuen Informationen zu speichern.",
|
||||
"Sobald du zufrieden mit deinem Portfolio bist, kannst du zur nächsten Challenge fortfahren."
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "bd7126d8c441eddfaeb5bd3f",
|
||||
"title": "Try Camper News",
|
||||
"difficulty": 0.06,
|
||||
"challengeSeed": ["124553410"],
|
||||
"description": [
|
||||
"Camper News is the best place for our campers to share and discuss helpful links.",
|
||||
"Click \"News\" in the upper right hand corner.",
|
||||
"You'll see a variety of links that have been submitted. Their rank is determined by how recently they were submitted and how many upvotes they have.",
|
||||
"If you enjoy a link, you should upvote it.",
|
||||
"You can also submit links that you think will be interesting to other campers.",
|
||||
"You can view the portfolio pages of any camper who has posted links on Camper News. Just click on their photo.",
|
||||
"When you submit a link, you'll get a Brownie Point. You'll also get a Brownie Point each time someone upvotes your link.",
|
||||
"Now that you've learned how to use Camper News, let's move on to your next challenge."
|
||||
],
|
||||
"type": "waypoint",
|
||||
"challengeType": 2,
|
||||
"tests": [],
|
||||
"nameCn": "",
|
||||
"descriptionCn": [],
|
||||
"nameFr": "",
|
||||
"descriptionFr": [],
|
||||
"nameRu": "",
|
||||
"descriptionRu": [],
|
||||
"nameEs": "Waypoint: Prueba las Noticias de Campers",
|
||||
"descriptionEs": [
|
||||
"Noticias de Campers es el mejor lugar para que nuestros campers puedan discutir y compartir links útiles.",
|
||||
"Dale click a \"News\" en la parte superior derecha.",
|
||||
"Verás una gran variedad de links que han sido enviados. Dale click al botón de \"Discuss\" debajo de uno de ellos.",
|
||||
"Puedes votar por links que te gusten. Esto hará que el ranking de tu link suba.",
|
||||
"Puedes también dejar un comentario a un link. Si alguien responde a tu comentario recibirás un correo electrónico de notificación para que puedas regresar y responderlo.",
|
||||
"También puedes enviar tus propios links. Puedes escoger el título del link, asi como también dejar un comentario inicial sobre él.",
|
||||
"Puedes ver las páginas de portafolio de cualquier camper que ha enviado links o comentarios en las Noticias de Campers. Solo tienes que darle click a su fotografía.",
|
||||
"Cuando envies un link, recibirás un punto. También obtendrás un punto cada vez que otra persona vote por tu link.",
|
||||
"Ahora que has aprendido a utilizar las Noticias de Campers, continuaremos con el siguiente desafío."
|
||||
],
|
||||
"namePt": "",
|
||||
"descriptionPt": [],
|
||||
"nameDe": "Waypoint: Verpasse nicht die Camper News",
|
||||
"descriptionDe": [
|
||||
"Camper News ist der beste Ort für unsere Camper, nützliche Links zu teilen und zu diskutieren.",
|
||||
"Klicke oben rechts auf \"News\".",
|
||||
"Du wirst eine Vielzahl an Links sehen, die bereits geteilt wurden. Klicke auf \"Discuss\" unter einem von ihnen.",
|
||||
"Du kannst Links bewerten. Das wird den Link in der Platzierung weiter nach oben befördern.",
|
||||
"Du kannst einen Link auch kommentieren. Wenn jemand auf deinen Kommentar antwortet, wirst du per Email benachrichtigt, sodass du zurück kommen und reagieren kannst.",
|
||||
"Du kannst ebenfalls Links teilen. Bearbeite den Titel des Links und hinterlasse einen ersten Kommentar, um die Diskussion zu starten.",
|
||||
"Du kannst dir das Portfolio jedes Campers anschauen, der einen Link geteilt hat. Klicke dazu einfach auf ihr Bild.",
|
||||
"Sobald du einen Link teilst, erhältst du einen Punkt. Jedes Mal, wenn jemand deinen Link bewertet, erhältst du zusätzlich einen Punkt.",
|
||||
"Jetzt da du gelernt hast, was Camper News ist, kanns du zur nächsten Challenge gehen."
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "bd7126d8c441eddfaeb5bd3e",
|
||||
"title": "Meet Other Campers in your City",
|
||||
"difficulty": 0.07,
|
||||
"challengeSeed": ["127358841"],
|
||||
"description": [
|
||||
"One of the best ways to stay motivated when learning to code is to hang out with other campers in-person.",
|
||||
"The easiest way to meet other campers in your city is to join your city's Campsite. Each of these has its own Facebook group and Gitter chat room. Click <a href='https://github.com/FreeCodeCamp/freecodecamp/wiki/List-of-Free-Code-Camp-city-based-Campsites' target='_blank'>here</a> to view our growing list of Campsites. ",
|
||||
"Click the link to your city's Facebook group. Then, once Facebook loads, click \"Join group\".",
|
||||
"If you don't see your city on this list, you should follow <a href='https://github.com/FreeCodeCamp/freecodecamp/wiki/How-to-create-a-Campsite-for-your-city' target='_blank'>these directions</a> to create a Facebook group for your city.",
|
||||
"If you don't have a Facebook account, we strongly recommend you create one, even if it's just for the purpose of coordinating with campers in your city through your Campsite.",
|
||||
"Our Campsites allow you to create events, coordinate those events, and share photos from the events afterward.",
|
||||
"Whether you're hosting a study group, pair programming at your local library, or going to a weekend hackathon, your city's Campsite will help you make it happen."
|
||||
],
|
||||
"type": "waypoint",
|
||||
"challengeType": 2,
|
||||
"tests": [],
|
||||
"nameCn": "",
|
||||
"descriptionCn": [],
|
||||
"nameFr": "",
|
||||
"descriptionFr": [],
|
||||
"nameRu": "",
|
||||
"descriptionRu": [],
|
||||
"nameEs": "Waypoint: Encuentrate con otros Campers en tu Ciudad",
|
||||
"descriptionEs": [
|
||||
"Una de las mejores maneras de mantenerte motivado cuando estás aprendiendo a programar es pasar el rato con otros campers.",
|
||||
"Gitter y Noticias de Campers son una muy buena forma de comunicarte con otros campers, pero no hay ningún substituto para conocerlos en persona.",
|
||||
"La forma más fácil de encontrarte con otros campers en tu ciudad es unirte al grupo de Facebook de tu ciudad o país. Dale click a <a href='https://github.com/FreeCodeCamp/freecodecamp/wiki/List-of-Free-Code-Camp-city-based-Campsites' target='_blank'>here</a> para ver la lista de grupos locales.",
|
||||
"Dale click al link de tu ciudad o país y una vez que Facebook cargue, dale click a \"Join group\".",
|
||||
"Nuestros grupos locales son pocos, asi que en caso no veas tu ciudad o país en la lista, solamente sigue las instrucciones para crear un grupo de Facebook para ello.",
|
||||
"Si no tienes una cuenta de Facebook, te recomendamos que crees una, asi sea solamente con el proposito de coordinar con otros campers en tu ciudad a través del grupo",
|
||||
"Nuestros grupos te dan la potestad de crear eventos y coordinarlos, solamente asegurate de compartir las fotos del evento una vez terminado.",
|
||||
"En caso seas el anfitrión de un grupo de estudio, estes programando en pares en una biblioteca local o piensen en ir a un hackathon de fin de semana, tu grupo local te ayudará a hacerlo."
|
||||
],
|
||||
"namePt": "",
|
||||
"descriptionPt": [],
|
||||
"nameDe": "Waypoint: Treffe andere Camper in deiner Stadt",
|
||||
"descriptionDe": [
|
||||
"Der beste Weg, motiviert am Ball zu bleiben, ist mit anderen Campern abzuhängen.",
|
||||
"Slack und Camper News sind super Wege zur Kommunikation mit anderen Campern. Es gibt aber nichts vergleichbares, Personen im echten Leben zu treffen.",
|
||||
"Um leicht andere Camper in deiner Stadt zu treffen, solltest du der Facebook Gruppe deiner Stadt beitreten. Klicke <a href='https://github.com/FreeCodeCamp/freecodecamp/wiki/List-of-Free-Code-Camp-city-based-Campsites' target='_blank'>hier</a> um unsere wachsende Liste der lokalen Gruppen zu sehen.",
|
||||
"Klicke auf den Link zu deiner Stadt. Sobald Facebook geladen ist, klicke auf \"Gruppe beitreten\".",
|
||||
"Unsere lokalen Gruppen sind neu. Solltest du deine Stadt also nicht in der Liste sehen, erstelle doch bitte eine Facebook Gruppe deiner Stadt indem du den Anweisungen dazu folgst.",
|
||||
"Wenn du keinen Facebook Account hast, empfehlen wir dir einen zu erstellen. Auch wenn dieser nur dazu dient, sich mit anderen Campern in deiner Stadt zu koordinieren.",
|
||||
"Unsere Gruppen erlauben dir, Events zu planen und Fotos davon zu teilen.",
|
||||
"Egal ob du eine Studenten-Gruppe, Paarprogrammierung an deiner lokalen Bibliothek oder einen Hackathon am Wochenende anbieten willst. Die Gruppe deiner Stadt macht das alles möglich."
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "bd7126d8c431eddfaeb5bd3e",
|
||||
"title": "Add Free Code Camp to your LinkedIn Profile",
|
||||
"difficulty": 0.08,
|
||||
"challengeSeed": ["131574134"],
|
||||
"description": [
|
||||
"LinkedIn is a critical tool for your job search later on.",
|
||||
"Add Free Code Camp to your LinkedIn profile by going to <a href='https://www.linkedin.com/profile/edit-education?school=Free+Code+Camp' target='_blank'>https://www.linkedin.com/profile/edit-education?school=Free+Code+Camp</a>.",
|
||||
"Estimate your dates. Keep in mind that Free Code Camp is a rigorous 1,600 hour program, and will probably take at least a year to complete.",
|
||||
"In the \"Degree\" section, type \"Full Stack Web Development\".",
|
||||
"In the \"Field of study\" section, type \"Computer Software Engineering\".",
|
||||
"Click the \"Save Changes\" button.",
|
||||
"Be sure to add your key word skills to LinkedIn's skills section as you learn them, such as HTML, jQuery, Linux and Node.js.",
|
||||
"You can expand your LinkedIn network by inviting friends you meet through Free Code Camp to connect with you on LinkedIn.",
|
||||
"Make your LinkedIn profile as complete as possible. Unlike other social networks, with LinkedIn, it's perfectly fine if you don't want to add a photo.",
|
||||
"Let's keep moving. We're almost ready to start coding!"
|
||||
],
|
||||
"type": "waypoint",
|
||||
"challengeType": 2,
|
||||
"tests": [],
|
||||
"nameCn": "",
|
||||
"descriptionCn": [],
|
||||
"nameFr": "",
|
||||
"descriptionFr": [],
|
||||
"nameRu": "",
|
||||
"descriptionRu": [],
|
||||
"nameEs": "",
|
||||
"descriptionEs": [],
|
||||
"namePt": "",
|
||||
"descriptionPt": []
|
||||
},
|
||||
{
|
||||
"id": "bd7137d8c441eddfaeb5bdef",
|
||||
"title": "Get Help the Hacker Way with RSAP",
|
||||
"difficulty": 0.09,
|
||||
"challengeSeed": ["125407432"],
|
||||
"description": [
|
||||
"Let's cover one last thing before you start working through our lessons: how to get help.",
|
||||
"Any time you get stuck or don't know what to do next, follow this simple algorithm (procedure): RSAP (Read, Search, Ask, Post).",
|
||||
"First, R - Read the documentation or error message. A key skill that good coders have is the ability to interpret and then follow instructions.",
|
||||
"Next, S - Search Google. Good Google queries take a lot of practice. When you search Google, you usually want to include the language or framework you're using. You also want to limit the results to a recent period.",
|
||||
"Then, if you still haven't found an answer to your question, A - Ask your friends. If you have trouble, you can ask your fellow campers. We have a special chat room specifically for getting help with tools you learn through these Free Code Camp Challenges. Go to <a href='https://gitter.im/FreeCodeCamp/Help' target='_blank'>https://gitter.im/FreeCodeCamp/Help</a>. Keep this chat open while you work on the remaining challenges.",
|
||||
"Finally, P - Post on Stack Overflow. Before you attempt to do this, read Stack Overflow's guide to asking good questions: <a href='http://stackoverflow.com/help/how-to-ask'>http://stackoverflow.com/help/how-to-ask</a>.",
|
||||
"Here's our detailed wiki article on getting help: <a href='//github.com/FreeCodeCamp/freecodecamp/wiki/How-to-get-help-when-you-get-stuck' target='_blank'>http://freecodecamp.com//github.com/FreeCodeCamp/freecodecamp/wiki/How-to-get-help-when-you-get-stuck</a>.",
|
||||
"Now you have a clear algorithm to follow when you need help! Let's start coding! Move on to your next challenge."
|
||||
],
|
||||
"type": "waypoint",
|
||||
"challengeType": 2,
|
||||
"tests": [],
|
||||
"nameCn": "",
|
||||
"descriptionCn": [],
|
||||
"nameFr": "",
|
||||
"descriptionFr": [],
|
||||
"nameRu": "",
|
||||
"descriptionRu": [],
|
||||
"nameEs": "Waypoint: Obtén ayuda del modo Hacker con RSAP",
|
||||
"descriptionEs": [
|
||||
"Cubramos un último punto antes que empieces a trabajar en los cursos: como obtener ayuda.",
|
||||
"Cualquier momento en el que te atasques o no sepas que hacer, sigue este simple algoritmo (procedimiento): RSAP (Read, Search, Ask, Post). Que en español vendría a ser Lee, Busca, Pregunta, Publica.",
|
||||
"Primero, Lee - Lee la documentación o el mensaje de error. El punto fuerte de un buen programador es la habilidad de interpretar y seguir instrucciones.",
|
||||
"Luego, Busca - Busca en Google. Buenas búsquedas o queries requieren bastante práctica. Cuando búsques en Google, idealmente tienes que incluir el lenguaje o framework que estés usando. También tendrás que limitar los resultados de búsqueda a un periodo reciente.",
|
||||
"Ahora, en caso no hayas encontrado la respuesta a tu pregunta, Pregunta - Pregunta a tus amigos. En caso estes en problemas, puedes preguntar a otros campers. Tenemos una sala de chat especificamente para obtener ayuda sobre las herramientas que utilizamos en los desafíos de Free Code Camp. Ingresa a <a href='https://gitter.im/FreeCodeCamp/Help' target='_blank'>https://gitter.im/FreeCodeCamp/Help</a>. Mantén este chat abierto mientras trabajas en los desafíos subsiguientes.",
|
||||
"Finalmente, Publica - Publica tu pregunta en Stack Overflow. Antes de hacer esto lee la guía de Stack Overflow para publicar buenas preguntas: <a href='http://stackoverflow.com/help/how-to-ask'>http://stackoverflow.com/help/how-to-ask</a>. Tendrás que hacerlo en inglés, en caso no sepas como, pide que te ayuden a traducir tu pregunta en el canal #espanol de Slack.",
|
||||
"Aquí está nuestra guia detallada en como obtener ayuda: <a href='//github.com/FreeCodeCamp/freecodecamp/wiki/How-to-get-help-when-you-get-stuck' target='_blank'>http://freecodecamp.com//github.com/FreeCodeCamp/freecodecamp/wiki/How-to-get-help-when-you-get-stuck</a>.",
|
||||
"Ahora que tienes en claro el procedimiento a seguir cuando necesites ayuda. ¡Empecémos a programar! Continua con el siguiente desafío."
|
||||
],
|
||||
"namePt": "",
|
||||
"descriptionPt": [],
|
||||
"nameDe": "Waypoint: Der Weg des Hackers – Hilfe erhalten mit RSAP",
|
||||
"descriptionDe": [
|
||||
"Lass uns eine letzte Sache behandeln, bevor du mit den Lektionen beginnst: Wie du Hilfe bekommst.",
|
||||
"Immer wenn du nicht weiter kommst oder du nicht weißt, was als nächstes zu Tun ist, kannst du diesem einfachen Algorithmus (Prozedur) folgen: RSAP (Read, Search, Ask, Post – Lesen, Suchen, Fragen, Posten).",
|
||||
"Erstens, R – Lies die Dokumentation oder die Fehler-Meldung. Eine wichtige Eigenschaft aller Coder ist es, Anweisungen zu interpretieren und zu folgen.",
|
||||
"Danach, S – Suche bei Google. Es bedarf viel Übung, gute Such-Anfragen zu stellen. Wenn du bei Google suchst, solltest du die Sprache oder das Framework angeben, welches du benutzt. Außerdem wirst du die aktuellsten Ergebnisse haben wollen.",
|
||||
"Wenn du keine Antwort auf deine Frage erhalten hast, folge A – Frage deine Freunde. Wenn du Probleme hast, kannst du andere Camper fragen. Wir haben einen speziellen Chat-Raum zur Unterstützung beim Lernen eingerichtet. Gehe zu <a href='https://freecode.slack.com/messages/help/' target='_blank'>https://freecode.slack.com/messages/help/</a>. Behalte diesen Chat offen, solange du an den Challenges arbeitest.",
|
||||
"Und zum Schluss, P – Poste auf Stack Overflow. Bevor du das tust, lies bitte den Leitfaden für gute Fragen auf Stack Overflow: <a href='http://stackoverflow.com/help/how-to-ask'>http://stackoverflow.com/help/how-to-ask</a>.",
|
||||
"Hier ist unser detaillierter Field Guide um Hilfe zu erhalten: <a href='//github.com/FreeCodeCamp/freecodecamp/wiki/How-to-get-help-when-you-get-stuck' target='_blank'>http://freecodecamp.com//github.com/FreeCodeCamp/freecodecamp/wiki/How-to-get-help-when-you-get-stuck</a>.",
|
||||
"Jetzt hast du einen klaren Algorithmus, dem du folgen kannst wenn du Hilfe benötigst. Fangen wir an zu programmieren! Gehe zur nächsten Challenge."
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
@ -10,13 +10,18 @@ module.exports = function(app) {
|
||||
app.use(router);
|
||||
|
||||
function index(req, res, next) {
|
||||
if (req.user && !req.user.picture) {
|
||||
req.user.picture = defaultProfileImage;
|
||||
if (req.user)
|
||||
if (!req.user.picture) {
|
||||
req.user.picture = defaultProfileImage;
|
||||
|
||||
req.user.save(function(err) {
|
||||
if (err) { return next(err); }
|
||||
res.render('home', { title: message });
|
||||
});
|
||||
req.user.save(function (err) {
|
||||
if (err) {
|
||||
return next(err);
|
||||
}
|
||||
res.render('get-started', {title: message});
|
||||
});
|
||||
} else {
|
||||
res.render('resources/get-started', {title: message});
|
||||
} else {
|
||||
res.render('home', { title: message });
|
||||
}
|
||||
|
@ -30,6 +30,7 @@ module.exports = function(app) {
|
||||
router.get('/jobs-form', jobsForm);
|
||||
router.get('/unsubscribe/:email', unsubscribe);
|
||||
router.get('/unsubscribed', unsubscribed);
|
||||
router.get('/get-started', getStarted);
|
||||
|
||||
app.use(router);
|
||||
|
||||
@ -259,6 +260,12 @@ module.exports = function(app) {
|
||||
});
|
||||
}
|
||||
|
||||
function getStarted(req, res) {
|
||||
res.render('resources/get-started', {
|
||||
title: 'How to get started with Free Code Camp'
|
||||
});
|
||||
}
|
||||
|
||||
function githubCalls(req, res, next) {
|
||||
var githubHeaders = {
|
||||
headers: {
|
||||
|
@ -44,9 +44,7 @@ module.exports = function(app) {
|
||||
router.post('/reset/:token', postReset);
|
||||
router.get('/email-signup', getEmailSignup);
|
||||
router.get('/email-signin', getEmailSignin);
|
||||
|
||||
router.get('/account/api', getAccountAngular);
|
||||
router.post('/account/profile', postUpdateProfile);
|
||||
router.post('/account/password', postUpdatePassword);
|
||||
router.post('/account/delete', postDeleteAccount);
|
||||
router.get('/account/unlink/:provider', getOauthUnlink);
|
||||
@ -167,11 +165,11 @@ module.exports = function(app) {
|
||||
isMigrationGrandfathered: user.isMigrationGrandfathered,
|
||||
isGithubCool: user.isGithubCool,
|
||||
location: user.location,
|
||||
githubProfile: user.githubProfile,
|
||||
linkedinProfile: user.linkedinProfile,
|
||||
codepenProfile: user.codepenProfile,
|
||||
facebookProfile: user.facebookProfile,
|
||||
twitterHandle: user.twitterHandle,
|
||||
githubProfile: user.github,
|
||||
linkedinProfile: user.linkedin,
|
||||
googleProfile: user.google,
|
||||
facebookProfile: user.facebook,
|
||||
twitterHandle: user.twitter,
|
||||
bio: user.bio,
|
||||
picture: user.picture,
|
||||
progressTimestamps: user.progressTimestamps,
|
||||
@ -185,80 +183,6 @@ module.exports = function(app) {
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* POST /account/profile
|
||||
* Update profile information.
|
||||
*/
|
||||
|
||||
function postUpdateProfile(req, res, next) {
|
||||
|
||||
User.findById(req.user.id, function(err) {
|
||||
if (err) { return next(err); }
|
||||
var errors = req.validationErrors();
|
||||
if (errors) {
|
||||
req.flash('errors', errors);
|
||||
return res.redirect('/account');
|
||||
}
|
||||
|
||||
User.findOne({
|
||||
where: { email: req.body.email }
|
||||
}, function(err, existingEmail) {
|
||||
if (err) {
|
||||
return next(err);
|
||||
}
|
||||
var user = req.user;
|
||||
if (existingEmail && existingEmail.email !== user.email) {
|
||||
req.flash('errors', {
|
||||
msg: 'An account with that email address already exists.'
|
||||
});
|
||||
return res.redirect('/account');
|
||||
}
|
||||
User.findOne(
|
||||
{ where: { username: req.body.username } },
|
||||
function(err, existingUsername) {
|
||||
if (err) {
|
||||
return next(err);
|
||||
}
|
||||
var user = req.user;
|
||||
if (
|
||||
existingUsername &&
|
||||
existingUsername.username !== user.username
|
||||
) {
|
||||
req.flash('errors', {
|
||||
msg: 'An account with that username already exists.'
|
||||
});
|
||||
return res.redirect('/account');
|
||||
}
|
||||
var body = req.body || {};
|
||||
user.facebookProfile = body.facebookProfile.trim() || '';
|
||||
user.linkedinProfile = body.linkedinProfile.trim() || '';
|
||||
user.codepenProfile = body.codepenProfile.trim() || '';
|
||||
user.twitterHandle = body.twitterHandle.trim() || '';
|
||||
user.bio = body.bio.trim() || '';
|
||||
|
||||
user.save(function(err) {
|
||||
if (err) {
|
||||
return next(err);
|
||||
}
|
||||
updateUserStoryPictures(
|
||||
user.id.toString(),
|
||||
user.picture,
|
||||
user.username,
|
||||
function(err) {
|
||||
if (err) { return next(err); }
|
||||
req.flash('success', {
|
||||
msg: 'Profile information updated.'
|
||||
});
|
||||
res.redirect('/account');
|
||||
}
|
||||
);
|
||||
});
|
||||
}
|
||||
);
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* POST /account/password
|
||||
* Update current password.
|
||||
|
@ -3,113 +3,54 @@ block content
|
||||
script.
|
||||
var challengeName = 'Account View'
|
||||
.panel.panel-info(ng-controller="profileValidationController")
|
||||
.panel-heading.text-center Update your portfolio here:
|
||||
.panel-heading.text-center Manage your account here
|
||||
.panel-body
|
||||
if (!user.isGithubCool)
|
||||
.row
|
||||
.col-xs-12
|
||||
.text-left.btn-info.btn.btn-block.btn-link-social(href='http://www.freecodecamp.com/challenges/waypoint-join-our-chat-room')
|
||||
span Link your account to GitHub to update your portfolio page. Click here if you don’t have a GitHub account yet.
|
||||
.row
|
||||
.col-xs-12
|
||||
a.btn.btn-lg.btn-block.btn-github.btn-link-social(href='/auth/github')
|
||||
a.btn.btn-lg.btn-block.btn-github.btn-link-social(href='/link/github')
|
||||
i.fa.fa-github
|
||||
| Link GitHub with my account
|
||||
| Link my GitHub to unlock this profile
|
||||
else
|
||||
.row
|
||||
.col-xs-12
|
||||
a.btn.btn-lg.btn-block.btn-github.btn-link-social(href='/auth/github')
|
||||
a.btn.btn-lg.btn-block.btn-github.btn-link-social(href='/link/github')
|
||||
i.fa.fa-github
|
||||
| Update Github Info
|
||||
| Update my profile from Github
|
||||
|
||||
.row
|
||||
if (!user.twitter)
|
||||
.col-xs-12
|
||||
a.btn.btn-lg.btn-block.btn-twitter.btn-link-social(href='/link/twitter')
|
||||
i.fa.fa-twitter
|
||||
| Add my Twitter to my profile
|
||||
if (!user.facebook)
|
||||
.col-xs-12
|
||||
a.btn.btn-lg.btn-block.btn-facebook.btn-link-social(href='/link/facebook')
|
||||
i.fa.fa-facebook
|
||||
| Add my Facebook to my profile
|
||||
if (!user.linkedin)
|
||||
.col-xs-12
|
||||
a.btn.btn-lg.btn-block.btn-linkedin.btn-link-social(href='/link/linkedin')
|
||||
i.fa.fa-linkedin
|
||||
| Add my LinkedIn to my profile
|
||||
if (!user.google)
|
||||
.col-xs-12
|
||||
a.btn.btn-lg.btn-block.btn-google-plus.btn-link-social(href='/link/google')
|
||||
i.fa.fa-google-plus
|
||||
| Add my Google+ to my profile
|
||||
.spacer
|
||||
hr
|
||||
.spacer
|
||||
.col-xs-12
|
||||
form.form-horizontal(action='/account/profile', method='POST', novalidate='novalidate', name='profileForm' ng-show="asyncComplete")
|
||||
input(type='hidden', name='_csrf', value=_csrf)
|
||||
.form-group
|
||||
label.col-sm-3.col-sm-offset-1.control-label(for='bio') Bio (140 characters)
|
||||
.col-sm-4
|
||||
input.form-control(type='text', name='bio', autocomplete="off", ng-model='user.bio', ng-maxlength='140', id='bio')
|
||||
.col-sm-4.col-sm-offset-5(ng-cloak, ng-show='profileForm.bio.$error.maxlength && !profileForm.bio.$pristine')
|
||||
alert(type='danger')
|
||||
span.ion-close-circled
|
||||
| Your bio must be fewer than 140 characters.
|
||||
.form-group
|
||||
label.col-sm-3.col-sm-offset-1.control-label(for='email') Twitter
|
||||
.col-sm-4
|
||||
.input-group.twitter-input
|
||||
span.input-group-addon @
|
||||
input.form-control(type='text', name='twitterHandle', autocomplete="off", id='twitterHandle', ng-model='user.twitterHandle', ng-maxlength='15', ng-pattern="/^[A-z0-9_]+$/")
|
||||
.col-sm-4.col-sm-offset-5(ng-cloak, ng-show="profileForm.twitterHandle.$error.pattern")
|
||||
alert(type='danger')
|
||||
span.ion-close-circled
|
||||
| Your Twitter handle should only contain letters, numbers and underscores (az10_).
|
||||
.col-sm-4.col-sm-offset-5(ng-cloak, ng-show='profileForm.twitterHandle.$error.maxlength && !profileForm.twitterHandle.$pristine')
|
||||
alert(type='danger')
|
||||
span.ion-close-circled
|
||||
| Your name must be fewer than 15 characters.
|
||||
|
||||
.form-group
|
||||
label.col-sm-3.col-sm-offset-1.control-label(for='email') CodePen
|
||||
.col-sm-4
|
||||
input.form-control(type='url', name='codepenProfile', id='codepenProfile', autocomplete="off", ng-model='user.codepenProfile', placeholder='http://')
|
||||
.col-sm-4.col-sm-offset-5(ng-cloak, ng-show="profileForm.codepenProfile.$error.url && !profileForm.codepenProfile.$pristine")
|
||||
alert(type='danger')
|
||||
span.ion-close-circled
|
||||
| Please enter a valid URL format (http://www.example.com).
|
||||
|
||||
.form-group
|
||||
label.col-sm-3.col-sm-offset-1.control-label(for='email') LinkedIn
|
||||
.col-sm-4
|
||||
input.form-control(type='url', name='linkedinProfile', id='linkedinProfile', autocomplete="off", ng-model='user.linkedinProfile', placeholder='http://')
|
||||
.col-sm-4.col-sm-offset-5(ng-cloak, ng-show="profileForm.linkedinProfile.$error.url && !profileForm.linkedinProfile.$pristine")
|
||||
alert(type='danger')
|
||||
span.ion-close-circled
|
||||
| Please enter a valid URL format (http://www.example.com).
|
||||
|
||||
.form-group
|
||||
label.col-sm-3.col-sm-offset-1.control-label(for='email') Facebook
|
||||
.col-sm-4
|
||||
input.form-control(type='url', name='facebookProfile', id='facebookProfile', autocomplete="off", ng-model='user.facebookProfile', placeholder='http://')
|
||||
.col-sm-4.col-sm-offset-5(ng-cloak, ng-show="profileForm.facebookProfile.$error.url && !profileForm.facebookProfile.$pristine")
|
||||
alert(type='danger')
|
||||
span.ion-close-circled
|
||||
| Please enter a valid URL format (http://www.example.com).
|
||||
|
||||
button.btn.btn-lg.btn-block.btn-primary.btn-link-social(type='submit', ng-disabled='!user.isGithubCool || profileForm.$invalid')
|
||||
span.ion-edit
|
||||
| Update my info
|
||||
|
||||
.panel.panel-info
|
||||
.panel-heading.text-center Manage your account here:
|
||||
.panel-body
|
||||
if (!user.google || !user.facebook || !user.linkedin || !user.twitter)
|
||||
if (!user.twitter)
|
||||
.col-xs-12
|
||||
a.btn.btn-lg.btn-block.btn-twitter.btn-link-social.disabled(href='#')
|
||||
i.fa.fa-twitter
|
||||
| Link Twitter with my account
|
||||
if (!user.google)
|
||||
.col-xs-12
|
||||
a.btn.btn-lg.btn-block.btn-google-plus.btn-link-social.disabled(href='#')
|
||||
i.fa.fa-google-plus
|
||||
| Link Google with my account
|
||||
if (!user.facebook)
|
||||
.col-xs-12
|
||||
a.btn.btn-lg.btn-block.btn-facebook.btn-link-social.disabled(href='#')
|
||||
i.fa.fa-facebook
|
||||
| Link Facebook with my account
|
||||
if (!user.linkedin)
|
||||
.col-xs-12
|
||||
a.btn.btn-lg.btn-block.btn-linkedin.btn-link-social.disabled(href='#')
|
||||
i.fa.fa-linkedin
|
||||
| Link LinkedIn with my account
|
||||
.col-xs-12
|
||||
a.btn.btn-lg.btn-block.btn-warning.btn-link-social(href='/logout')
|
||||
span.ion-android-exit
|
||||
| Sign me out of Free Code Camp
|
||||
.col-xs-12
|
||||
a.btn.btn-lg.btn-block.btn-danger.confirm-deletion.btn-link-social
|
||||
.col-xs-12
|
||||
a.btn.btn-lg.btn-block.btn-primary.btn-link-social(href='mailto:team@freecodecamp.com')
|
||||
span.ion-email
|
||||
| Email us at team@freecodecamp.com
|
||||
.col-xs-12
|
||||
a.btn.btn-lg.btn-block.btn-danger.btn-link-social.confirm-deletion
|
||||
span.ion-trash-b
|
||||
| Delete my Free Code Camp account
|
||||
script.
|
||||
|
@ -23,16 +23,16 @@ block content
|
||||
else
|
||||
img.img-center.img-responsive.public-profile-img(src='https://s3.amazonaws.com/freecodecamp/camper-image-placeholder.png')
|
||||
h1.text-center.negative-5.profile-social-icons
|
||||
if (twitterHandle)
|
||||
a.fa.fa-twitter-square.text-primary(title="@#{username}'s Twitter Profile", href="http://twitter.com/#{twitterHandle}", target='_blank')
|
||||
if (githubProfile)
|
||||
a.fa.fa-github-square.text-primary(title="@#{username}'s GitHub Profile", href=githubProfile, target='_blank')
|
||||
if (codepenProfile)
|
||||
a.ion-social-codepen.text-primary(title="@#{username}'s CodePen Profile", href=codepenProfile, target='_blank')
|
||||
if (linkedinProfile)
|
||||
a.fa.fa-linkedin-square.text-primary(title="@#{username}'s LinkedIn Profile", href=linkedinProfile, target='_blank')
|
||||
if (facebookProfile)
|
||||
a.fa.fa-facebook-square.text-primary(title="@#{username}'s Facebook Profile", href=facebookProfile, target='_blank')
|
||||
if (twitter)
|
||||
a.fa.fa-twitter-square.text-primary(title="@#{username}'s Twitter Profile", href=twitter, target='_blank')
|
||||
if (github)
|
||||
a.fa.fa-github-square.text-primary(title="@#{username}'s GitHub Profile", href=github, target='_blank')
|
||||
if (linkedin)
|
||||
a.fa.fa-linkedin-square.text-primary(title="@#{username}'s LinkedIn Profile", href=linkedin, target='_blank')
|
||||
if (facebook)
|
||||
a.fa.fa-facebook-square.text-primary(title="@#{username}'s Facebook Profile", href=facebook, target='_blank')
|
||||
if (google)
|
||||
a.fa.fa-google-square.text-primary(title="@#{username}'s Google Profile", href=google, target='_blank')
|
||||
.visible-md.visible-lg
|
||||
.col-xs-12.col-sm-12.col-md-4.text-justify
|
||||
h1.flat-top.wrappable= name
|
||||
|
@ -1,8 +1,5 @@
|
||||
extends layout
|
||||
block content
|
||||
.bg-danger.default-border-radius
|
||||
p
|
||||
a(href='https://github.com/FreeCodeCamp/freecodecamp/wiki/beta' target='_blank') You're using our experimental beta site. None of your progress here will be saved. Please click this to learn more.
|
||||
.jumbotron
|
||||
.text-center
|
||||
h1.hug-top Code with Us
|
||||
@ -10,7 +7,7 @@ block content
|
||||
.row
|
||||
.col-xs-12.col-sm-12.col-md-3
|
||||
h3.nowrap Get Connected
|
||||
img.img-responsive.landing-icon.img-center(src= 'https://s3.amazonaws.com/freecodecamp/landingIcons_connect.svg.gz', alt='Get great references and connections for your reto help you get a job')
|
||||
img.img-responsive.landing-icon.img-center(src= 'https://s3.amazonaws.com/freecodecamp/landingIcons_connect.svg.gz', alt='Get great references and connections to start your software engineer career')
|
||||
p.landing-p Join a community of busy, motivated professionals.
|
||||
.col-xs-12.col-sm-12.col-md-3
|
||||
h3.nowrap Learn JavaScript
|
||||
@ -30,7 +27,7 @@ block content
|
||||
a.btn.btn-cta.signup-btn.btn-block(href="/login") Start learning to code (it's free)
|
||||
.button-spacer
|
||||
a.btn.btn-cta.btn-success.btn-block(href="/nonprofits") My nonprofit needs coding help
|
||||
h2 As seen in:
|
||||
h2 As featured in
|
||||
img.img-center.img-responsive(src='https://s3.amazonaws.com/freecodecamp/as-seen-on.png')
|
||||
.spacer
|
||||
h2 We're a proven way to start your software engineering career:
|
||||
|
@ -4,7 +4,7 @@ nav.navbar.navbar-default.navbar-fixed-top.nav-height
|
||||
.col-xs-12
|
||||
span.hamburger-text Menu
|
||||
a.navbar-brand(href='/')
|
||||
img.img-responsive.nav-logo(src='https://s3.amazonaws.com/freecodecamp/freecodecamp_logo.svg.gz', alt='learn to code javascript at Free Code Camp logo')
|
||||
img.img-responsive.nav-logo(src='https://s3.amazonaws.com/freecodecamp/freecodecamp_logo.svg', alt='learn to code javascript at Free Code Camp logo')
|
||||
.collapse.navbar-collapse
|
||||
ul.nav.navbar-nav.navbar-right.hamburger-dropdown
|
||||
li
|
||||
|
167
server/views/resources/get-started.jade
Normal file
167
server/views/resources/get-started.jade
Normal file
@ -0,0 +1,167 @@
|
||||
extends ../layout
|
||||
block content
|
||||
.jumbotron
|
||||
h2.text-center This 10-minute guide will help you get the most out of Free Code Camp.
|
||||
img.gif-block.img-center.img-responsive.thumbnail(src='http://i.imgur.com/RlEk2IF.jpg' alt='a gif showing how to install this')
|
||||
p.large-p.gif-caption Welcome to Free Code Camp. We're an open source community of busy people who learn to code, then practice by building projects for nonprofits.
|
||||
|
||||
.big-spacer
|
||||
img.gif-block.img-center.img-responsive.thumbnail(src='http://i.imgur.com/pYsTbjI.jpg' alt='a gif showing how to install this')
|
||||
p.large-p.gif-caption Learning to code is hard. To succeed, you'll need lots practice and support. That's why we've created a rigorous curriculum and supportive community.
|
||||
|
||||
.big-spacer
|
||||
img.gif-block.img-center.img-responsive.thumbnail(src='http://i.imgur.com/Gtf8aIq.jpg' alt='a gif showing how to install this')
|
||||
p.large-p.gif-caption Free Code Code camp is self-paced, browser-based, and free.
|
||||
|
||||
.big-spacer
|
||||
img.gif-block.img-center.img-responsive.thumbnail(src='http://i.imgur.com/D7Y5luw.jpg' alt='a gif showing how to install this')
|
||||
p.large-p.gif-caption If you can finish Free Code Camp, you will be able to get a coding job. There are thousands of coding jobs currently going unfilled, and the demand for coders grows every year.
|
||||
|
||||
.big-spacer
|
||||
img.gif-block.img-center.img-responsive.thumbnail(src='http://i.imgur.com/dLx8nrg.jpg' alt='a gif showing how to install this')
|
||||
p.large-p.gif-caption During the first 800 hours of Free Code Camp, you'll learn technologies like HTML5, Node.js and databases.
|
||||
|
||||
.big-spacer
|
||||
img.gif-block.img-center.img-responsive.thumbnail(src='http://i.imgur.com/yXyxbDd.jpg' alt='a gif showing how to install this')
|
||||
p.large-p.gif-caption During the last 800 hours, you'll build several real-life projects for nonprofits.
|
||||
|
||||
.big-spacer
|
||||
img.gif-block.img-center.img-responsive.thumbnail(src='http://i.imgur.com/PprMPUx.jpg' alt='a gif showing how to install this')
|
||||
p.large-p.gif-caption By the time you finish, you'll have a job-winning portfolio of real apps that people use every day.
|
||||
|
||||
.big-spacer
|
||||
img.gif-block.img-center.img-responsive.thumbnail(src='http://i.imgur.com/EAR7Lvh.jpg' alt='a gif showing how to install this')
|
||||
p.large-p.gif-caption Now let's join Free Code Camp's chat rooms. You can come here any time of day to hang out, ask questions, or find another camper to pair program with.
|
||||
|
||||
.big-spacer
|
||||
img.gif-block.img-center.img-responsive.thumbnail(src='https://s3.amazonaws.com/freecodecamp/sign-up-for-github.gif' alt='a gif showing how to install this')
|
||||
p.large-p.gif-caption
|
||||
span.text-info Try this: 
|
||||
a(href='https://github.com/join' target='_blank') Create an account with GitHub
|
||||
| . Be sure to use your real email address - GitHub will keep this private.
|
||||
|
||||
.big-spacer
|
||||
img.gif-block.img-center.img-responsive.thumbnail(src='https://s3.amazonaws.com/freecodecamp/github-profile.gif' alt='a gif showing how to install this')
|
||||
p.large-p.gif-caption
|
||||
span.text-info Try this: 
|
||||
| Click the pixel art in the upper right hand corner of GitHub, then choose settings. Upload a picture of yourself. A picture of your face works best. This is how people will see you in our chat rooms, so put your best foot forward. You can add your city and your name if you want.
|
||||
|
||||
.big-spacer
|
||||
img.gif-block.img-center.img-responsive.thumbnail(src='https://s3.amazonaws.com/freecodecamp/star-repository.gif' alt='a gif showing how to install this')
|
||||
p.large-p.gif-caption
|
||||
span.text-info Try this: 
|
||||
a(href='//github.com/freecodecamp/freecodecamp' target='_blank') Go to Free Code Camp's open-source repository
|
||||
|  and "star" it. "Starring" is the GitHub equivalent of "liking" something.
|
||||
|
||||
.big-spacer
|
||||
img.gif-block.img-center.img-responsive.thumbnail(src='https://s3.amazonaws.com/freecodecamp/join-gitter.gif' alt='a gif showing how to install this')
|
||||
p.large-p.gif-caption
|
||||
span.text-info Try this: 
|
||||
| Now that you have a GitHub account, you can 
|
||||
a(href='https://gitter.im/FreeCodeCamp/FreeCodeCamp' target='_blank') join our main chat room by logging in with GitHub
|
||||
| . Introduce yourself by saying "Hello world!". Tell your fellow campers how you found Free Code Camp. Also tell us why you want to learn to code.
|
||||
|
||||
.big-spacer
|
||||
img.gif-block.img-center.img-responsive.thumbnail(src='https://s3.amazonaws.com/freecodecamp/gitter-notifications.gif' alt='a gif showing how to install this')
|
||||
p.large-p.gif-caption
|
||||
span.text-info Try this: 
|
||||
| Our chat rooms are extremely active. You should change your settings so you're only notified if someone mentions you.
|
||||
|
||||
.big-spacer
|
||||
img.gif-block.img-center.img-responsive.thumbnail(src='https://s3.amazonaws.com/freecodecamp/private-messages.gif' alt='a gif showing how to install this')
|
||||
p.large-p.gif-caption Please note that all of our chat rooms are visible to the public. If you need to share sensitive information, such as an email address or phone number, do it in a private message.
|
||||
|
||||
.big-spacer
|
||||
img.gif-block.img-center.img-responsive.thumbnail(src='https://s3.amazonaws.com/freecodecamp/keep-chat-open.gif' alt='a gif showing how to install this')
|
||||
p.large-p.gif-caption Keep our chat room open while you work through our challenges. That way, you can ask for help if you get stuck. You can also socialize with other campers when you feel like taking a break.
|
||||
|
||||
.big-spacer
|
||||
img.gif-block.img-center.img-responsive.thumbnail(src='https://s3.amazonaws.com/freecodecamp/download-gitter-app.gif' alt='a gif showing how to install this')
|
||||
p.large-p.gif-caption
|
||||
span.text-info Try this: 
|
||||
a(href='https://gitter.im/apps' target='_blank') You can also download the chat room app to your computer or phone
|
||||
| .
|
||||
|
||||
.big-spacer
|
||||
img.gif-block.img-center.img-responsive.thumbnail(src='https://s3.amazonaws.com/freecodecamp/challenge-map.gif' alt='a gif showing how to install this')
|
||||
p.large-p.gif-caption
|
||||
span.text-info Try this: 
|
||||
| Click the "Map" button in your upper right hand corner. Our map shows all our coding challenges. We recommend that you complete these from top to bottom, at a sustainable pace.
|
||||
|
||||
.big-spacer
|
||||
img.gif-block.img-center.img-responsive.thumbnail(src='http://i.imgur.com/9NJfPQv.jpg' alt='a gif showing how to install this')
|
||||
p.large-p.gif-caption After you finish all of our challenges, you'll start building projects for nonprofits.
|
||||
|
||||
.big-spacer
|
||||
img.gif-block.img-center.img-responsive.thumbnail(src='https://s3.amazonaws.com/freecodecamp/wiki.gif' alt='a gif showing how to install this')
|
||||
p.large-p.gif-caption
|
||||
span.text-info Try this: 
|
||||
| Click the "Wiki" button in your upper right hand corner. Our community has contributed lots of useful information to this searchable wiki.
|
||||
|
||||
.big-spacer
|
||||
img.gif-block.img-center.img-responsive.thumbnail(src='http://i.imgur.com/RlEk2IF.jpg' alt='a gif showing how to install this')
|
||||
p.large-p.gif-caption
|
||||
span.text-info Try this: 
|
||||
| Check out your portfolio page. Click your picture your upper right hand corner. Before you can see your portfolio page, you'll need to link your GitHub account with Free Code Camp.
|
||||
|
||||
.big-spacer
|
||||
img.gif-block.img-center.img-responsive.thumbnail(src='http://i.imgur.com/RlEk2IF.jpg' alt='a gif showing how to install this')
|
||||
p.large-p.gif-caption Your portfolio page shows your progress and how many Brownie Points you have. You can get Brownie Points by completing challenges and by helping other campers in our chat rooms. If you get Brownie Points on several days in a row, you'll get a streak.
|
||||
|
||||
.big-spacer
|
||||
img.gif-block.img-center.img-responsive.thumbnail(src='https://s3.amazonaws.com/freecodecamp/camper-news.gif' alt='a gif showing how to install this')
|
||||
p.large-p.gif-caption
|
||||
span.text-info Try this: 
|
||||
| Click the "News" button in your upper right hand corner. You can browse links on Camper News and upvote ones that you enjoy.
|
||||
|
||||
.big-spacer
|
||||
img.gif-block.img-center.img-responsive.thumbnail(src='http://i.imgur.com/Elb3dfj.jpg' alt='a gif showing how to install this')
|
||||
p.large-p.gif-caption Our Campsites help you code with campers in your city. You can coordinate study groups or attend local coding events together.
|
||||
|
||||
.big-spacer
|
||||
img.gif-block.img-center.img-responsive.thumbnail(src='https://s3.amazonaws.com/freecodecamp/join-facebook-group.gif' alt='a gif showing how to install this')
|
||||
p.large-p.gif-caption
|
||||
span.text-info Try this: 
|
||||
a(href='https://github.com/FreeCodeCamp/freecodecamp/wiki/List-of-Free-Code-Camp-city-based-Campsites' target='_blank') Find your city on this list
|
||||
| . Click the "Join group" button to join your city's Facebook group. If your city isn't on this list, 
|
||||
a(href='https://github.com/FreeCodeCamp/freecodecamp/wiki/How-to-create-a-Campsite-for-your-city' target='_blank') follow these directions to create a Facebook group for your city
|
||||
| .
|
||||
|
||||
.big-spacer
|
||||
img.gif-block.img-center.img-responsive.thumbnail(src='https://www.evernote.com/l/AnuMiYJUMhFOzqKu2bAjL88LIrCiuHr998sB/image.png' alt='a gif showing how to install this')
|
||||
p.large-p.gif-caption
|
||||
a(href='https://github.com/FreeCodeCamp/freecodecamp/wiki/List-of-Free-Code-Camp-city-based-Campsites' target='_blank') Go back to our list of Campsites 
|
||||
| and click "Gitter" to join your city's chat room.
|
||||
|
||||
.big-spacer
|
||||
img.gif-block.img-center.img-responsive.thumbnail(src='https://s3.amazonaws.com/freecodecamp/add-linkedin.gif' alt='a gif showing how to install this')
|
||||
p.large-p.gif-caption You can 
|
||||
a(href='https://www.linkedin.com/profile/edit-education?school=Free+Code+Camp' target='_blank') add Free Code Camp to your LinkedIn education background
|
||||
| . Set your graduation date as next year. For "Degree", type "Full Stack Web Development". For "Field of study", type "Computer Software Engineering". Then click "Save Changes".
|
||||
|
||||
.big-spacer
|
||||
img.gif-block.img-center.img-responsive.thumbnail(src='http://i.imgur.com/6VtsD1K.jpg' alt='a gif showing how to install this')
|
||||
p.large-p.gif-caption Let's cover one last thing before you start working through our challenges: how to get help. Any time you get stuck or don't know what to do next: RSAP (Read, Search, Ask, Post).
|
||||
|
||||
.big-spacer
|
||||
img.gif-block.img-center.img-responsive.thumbnail(src='http://i.imgur.com/99BfAcK.jpg' alt='a gif showing how to install this')
|
||||
p.large-p.gif-caption First, R - Read the documentation or error message. A key skill that good coders have is the ability to interpret and then follow instructions.
|
||||
|
||||
.big-spacer
|
||||
img.gif-block.img-center.img-responsive.thumbnail(src='https://s3.amazonaws.com/freecodecamp/google-search.gif' alt='a gif showing how to install this')
|
||||
p.large-p.gif-caption If that didn't help, S - Search Google. Good Google queries take a lot of practice. When you search Google, you usually want to include the language or framework you're using. You also want to limit the results to a recent period.
|
||||
|
||||
.big-spacer
|
||||
img.gif-block.img-center.img-responsive.thumbnail(src='https://s3.amazonaws.com/freecodecamp/ask-for-help.gif' alt='a gif showing how to install this')
|
||||
p.large-p.gif-caption If that didn't help, A - Ask your friends. If you have trouble, you can ask your fellow campers in our 
|
||||
a(href='https://gitter.im/FreeCodeCamp/Help' target='_blank') help chat room
|
||||
| .
|
||||
|
||||
.big-spacer
|
||||
img.gif-block.img-center.img-responsive.thumbnail(src='http://i.imgur.com/rWeBOhF.jpg' alt='a gif showing how to install this')
|
||||
p.large-p.gif-caption Finally if you still haven't found an answer to your question, P - Post on Stack Overflow. This is a popular question and answer site where you can get help with coding questions.
|
||||
|
||||
.big-spacer
|
||||
h2.text-center Nicely done. Now you have all the tools you need to succeed. Happy coding!
|
||||
.spacer
|
||||
a.btn.btn-cta.signup-btn.btn-block(href="/map") Take me to my Challenge Map
|
Reference in New Issue
Block a user