├── .gitignore ├── FAQ.md ├── Projects ├── Day_01 │ └── band_name_generator.py ├── Day_02 │ └── tip_calculator.py ├── Day_03 │ ├── love_calculator.py │ └── treasure_island.py ├── Day_04 │ └── rock_paper_scissors.py ├── Day_05 │ └── pypassword_generator.py ├── Day_06 │ ├── Reeborg World Tests │ │ ├── problem_world.json │ │ ├── problem_world2.json │ │ └── problem_world3.json │ └── reeborg_maze.py ├── Day_07 │ ├── Hangman_FlowChart.png │ ├── hangman_art.py │ ├── hangman_words.py │ └── main.py ├── Day_08 │ ├── art.py │ └── caesar_cipher.py ├── Day_09 │ ├── art.py │ └── main.py ├── Day_10 │ ├── art.py │ └── main.py ├── Day_11 │ ├── Blackjack_FlowChart.png │ ├── art.py │ └── main.py ├── Day_12 │ ├── art.py │ └── main.py ├── Day_13 │ └── Debugging_steps.pdf ├── Day_14 │ ├── art.py │ ├── game_data.py │ └── main.py ├── Day_15 │ └── Coffee_Machine │ │ ├── art.py │ │ ├── coffee_data.py │ │ └── main.py ├── Day_16 │ └── oop-coffee-machine │ │ ├── art.py │ │ ├── coffee_maker.py │ │ ├── main.py │ │ ├── menu.py │ │ └── money_machine.py ├── Day_17 │ └── quiz-game │ │ ├── data.py │ │ ├── main.py │ │ ├── question_model.py │ │ └── quiz_brain.py ├── Day_18 │ └── hirst-painting │ │ ├── hirst-painting.gif │ │ ├── image.jpeg │ │ └── main.py ├── Day_19 │ └── main.py ├── Day_20 │ ├── main.py │ ├── snake-game_1.gif │ └── snake.py ├── Day_21 │ ├── food.py │ ├── main.py │ ├── scoreboard.py │ ├── snake-game.gif │ └── snake.py ├── Day_22 │ ├── ball.py │ ├── line.py │ ├── main.py │ ├── paddle.py │ ├── pong-game.gif │ └── scoreboard.py ├── Day_23 │ └── turtle-crossing │ │ ├── car_manager.py │ │ ├── main.py │ │ ├── player.py │ │ ├── scoreboard.py │ │ └── turtle-crossing.gif ├── Day_24 │ ├── mail-merge-project │ │ ├── Input │ │ │ ├── Letters │ │ │ │ └── starting_letter.txt │ │ │ └── Names │ │ │ │ └── invited_names.txt │ │ ├── Output │ │ │ └── ReadyToSend │ │ │ │ ├── example.txt │ │ │ │ ├── letter_for_Aang.txt │ │ │ │ ├── letter_for_Appa.txt │ │ │ │ ├── letter_for_Katara.txt │ │ │ │ ├── letter_for_Momo.txt │ │ │ │ ├── letter_for_Sokka.txt │ │ │ │ ├── letter_for_Toph.txt │ │ │ │ ├── letter_for_Uncle Iroh.txt │ │ │ │ └── letter_for_Zuko.txt │ │ └── main.py │ └── snake-game │ │ ├── data.txt │ │ ├── food.py │ │ ├── main.py │ │ ├── scoreboard.py │ │ └── snake.py ├── Day_25 │ └── us-states-game │ │ ├── 50_states.csv │ │ ├── blank_states_img.gif │ │ ├── main.py │ │ └── states_to_learn.csv ├── Day_26 │ └── NATO-alphabet │ │ ├── main.py │ │ └── nato_phonetic_alphabet.csv ├── Day_27 │ ├── main.py │ ├── mile-to-km-gui.gif │ └── widgets.py ├── Day_28 │ └── pomodoro │ │ ├── main.py │ │ ├── pomodoro.gif │ │ └── tomato.png ├── Day_29 │ └── password-manager │ │ ├── logo.png │ │ ├── main.py │ │ └── password-manager.gif ├── Day_30 │ ├── NATO-alphabet-refactored │ │ ├── main.py │ │ └── nato_phonetic_alphabet.csv │ └── password-manager │ │ ├── logo.png │ │ └── main.py ├── Day_31 │ └── flash-card-project │ │ ├── data │ │ └── french_words.csv │ │ ├── images │ │ ├── card_back.png │ │ ├── card_front.png │ │ ├── right.png │ │ └── wrong.png │ │ └── main.py ├── Day_32 │ ├── Birthday-Wisher │ │ ├── birthdays.csv │ │ ├── letter_templates │ │ │ ├── letter_1.txt │ │ │ ├── letter_2.txt │ │ │ └── letter_3.txt │ │ └── main.py │ └── Motivational-Quotes │ │ ├── main.py │ │ └── quotes.txt ├── Day_33 │ ├── issoverhead │ │ ├── config.py │ │ └── main.py │ └── kanye-quotes │ │ ├── background.png │ │ ├── kanye.png │ │ └── main.py ├── Day_34 │ └── quizzler-app │ │ ├── data.py │ │ ├── images │ │ ├── false.png │ │ └── true.png │ │ ├── main.py │ │ ├── question_model.py │ │ ├── quiz_brain.py │ │ └── ui.py ├── Day_35 │ └── main.py ├── Day_36 │ └── stock-news │ │ ├── .project_config │ │ └── main.py ├── Day_37 │ └── habit-tracker │ │ └── main.py ├── Day_38 │ └── workout-tracker │ │ └── main.py ├── Day_39 │ └── flight-deals │ │ ├── data_manager.py │ │ ├── flight_data.py │ │ ├── flight_search.py │ │ ├── main.py │ │ └── notification_manager.py ├── Day_40 │ └── flight-deals │ │ ├── data_manager.py │ │ ├── flight_data.py │ │ ├── flight_search.py │ │ ├── main.py │ │ └── notification_manager.py ├── Day_41-43 │ └── HTML-Personal_Site │ │ ├── contact.html │ │ ├── css │ │ └── styles.css │ │ ├── images │ │ └── Me_400x400.jpg │ │ └── index.html ├── Day_44 │ └── CSS-My_Personal_Site │ │ ├── css │ │ └── styles.css │ │ ├── index.html │ │ └── resources │ │ ├── favicon.ico │ │ └── images │ │ ├── angela.png │ │ ├── chillies.png │ │ ├── cloud.png │ │ ├── computer.png │ │ └── mountain.png ├── Day_45 │ └── main.py ├── Day_46 │ └── main.py ├── Day_47 │ ├── Data_Exploration_Pandas_College_Major.ipynb │ └── salaries_by_college_major.csv ├── Day_48 │ ├── Programming_Languages.ipynb │ └── QueryResults.csv ├── Day_49 │ └── LEGO_Analysis │ │ ├── Lego_Analysis.ipynb │ │ ├── assets │ │ ├── bricks.jpg │ │ ├── lego_sets.png │ │ ├── lego_themes.png │ │ └── rebrickable_schema.png │ │ └── data │ │ ├── colors.csv │ │ ├── sets.csv │ │ └── themes.csv ├── Day_50 │ └── Google_Trends_Data_Viz │ │ ├── Bitcoin Search Trend.csv │ │ ├── Daily Bitcoin Price.csv │ │ ├── Google_Trends_and_Data_Visualisation.ipynb │ │ ├── TESLA Search Trend vs Price.csv │ │ ├── UE Benefits Search vs UE Rate 2004-19.csv │ │ └── UE Benefits Search vs UE Rate 2004-20.csv ├── Day_51 │ └── Google_Play_Store_Project │ │ ├── Google Play Store App Analytics.ipynb │ │ ├── Paid Apps Price Distribution by Category.png │ │ └── apps.csv ├── Day_52 │ └── Computation_with_NumPy │ │ ├── Computation_with_NumPy_and_N_Dimensional_Arrays.ipynb │ │ └── yummy_macarons.jpg ├── Day_53 │ └── Seaborn_Linear_Regression │ │ ├── Seaborn_and_Linear_Regression.ipynb │ │ └── cost_revenue_dirty.csv ├── Day_54 │ └── Nobel_Prize_Analysis │ │ ├── Nobel_Prize_Analysis.ipynb │ │ └── nobel_prize_data.csv ├── Day_55 │ └── Dr_Semmelweis_Analysis │ │ ├── Dr_Semmelweis_Handwashing_Discovery.ipynb │ │ ├── annual_deaths_by_clinic.csv │ │ └── monthly_deaths.csv ├── Day_56 │ └── Multivariable_Regression │ │ ├── Multivariable_Regression_and_Valuation_Model.ipynb │ │ └── boston.csv └── Day_57 │ └── Space_Missions │ ├── Space_Missions_Analysis.ipynb │ └── mission_launches.csv ├── README.md ├── intl ├── bn │ ├── FAQ.md │ ├── README.md │ ├── log.md │ ├── r1-log.md │ ├── resources.md │ └── rules.md ├── ca │ ├── FAQ.md │ ├── README.md │ ├── log.md │ ├── r1-log.md │ ├── resources.md │ └── rules.md ├── ch │ ├── FAQ.md │ ├── README.md │ ├── log.md │ ├── r1-log.md │ ├── resources.md │ └── rules.md ├── de │ ├── FAQ-de.md │ ├── README.md │ ├── log-de.md │ ├── quellen.md │ ├── r1-log-de.md │ └── regeln.md ├── el │ ├── FAQ-el.md │ ├── README.md │ ├── log-el.md │ ├── r1-log-el.md │ ├── resources-el.md │ └── rules-el.md ├── es │ ├── README.md │ ├── diario.md │ ├── preguntas_frecuentes.md │ ├── r1-diario.md │ ├── registro.md │ └── reglas.md ├── fr │ ├── FAQ-fr.md │ ├── README.md │ ├── log.md │ ├── r1-log.md │ ├── regles.md │ ├── resources-fr.md │ └── rules.md ├── it │ ├── FAQ.md │ ├── README.md │ ├── log.md │ ├── r1-log.md │ ├── resources.md │ └── rules.md ├── ja │ ├── FAQ.md │ ├── README.md │ ├── log.md │ ├── r1-log.md │ ├── resources.md │ └── rules.md ├── ko │ ├── FAQ.md │ ├── README-ko.md │ ├── log.md │ ├── r1-log.md │ ├── resources.md │ └── rules.md ├── nl │ ├── FAQ-nl.md │ ├── README.md │ ├── bronnen.md │ ├── log-nl.md │ ├── r1-log-nl.md │ └── regels.md ├── no │ ├── FAQ.md │ ├── README.md │ ├── log.md │ ├── r1-log.md │ ├── resources.md │ └── rules.md ├── pl │ ├── FAQ-pl.md │ ├── README.md │ ├── log.md │ ├── materiały.md │ ├── r1-log.md │ └── regulamin.md ├── pt-br │ ├── LEIAME.md │ ├── log.md │ ├── perguntas_frequentes.md │ ├── r1-log.md │ ├── recursos.md │ └── regras.md ├── ru │ └── README-ru.md ├── sr │ ├── FAQ-sr.md │ ├── README-sr.md │ ├── log-sr.md │ ├── r1-log-sr.md │ ├── resources-sr.md │ └── rules-sr.md └── ua │ ├── FAQ.md │ ├── README-ua.md │ ├── log.md │ ├── r1-log.md │ ├── resources.md │ └── rules.md ├── log.md ├── resources.md └── rules.md /.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | **/__pycache__ 3 | email_info.py 4 | key.py 5 | keys.py 6 | .cache 7 | token.txt 8 | .ipynb_checkpoints -------------------------------------------------------------------------------- /Projects/Day_01/band_name_generator.py: -------------------------------------------------------------------------------- 1 | # Greeting for the program. 2 | print("Welcome to the Band Name Generator App.") 3 | #Ask the user for the city that they grew up in. 4 | city = input("What city did you grow up in ?\n") 5 | #Ask the user for the name of a pet. 6 | pet_name = input("What is the name of a pet ?\n") 7 | #Combine the name of their city and pet and show them their band name. 8 | print("Your band name could be " + pet_name + " " + city) -------------------------------------------------------------------------------- /Projects/Day_02/tip_calculator.py: -------------------------------------------------------------------------------- 1 | #Welcome message 2 | print("Welcome to the Tip Calculator.") 3 | #Gather inputs from the user 4 | bill = float(input("What was the total bill? $")) 5 | tip_perc = int(input("What percentage tip would you like to give? 10, 12, or 15? ")) 6 | people = int(input("How many people to split the bill? ")) 7 | #Calculate payment per person and use "{:.2f}".format() to round at 2 decimal places 8 | payment = "{:.2f}".format((bill * (1 + tip_perc / 100)) / people) 9 | #Print amount to pay per person 10 | print(f'Each person should pay: ${payment}') -------------------------------------------------------------------------------- /Projects/Day_03/love_calculator.py: -------------------------------------------------------------------------------- 1 | print("Welcome to the Love Calculator!") 2 | name1 = input("What is your name? \n") 3 | name2 = input("What is their name? \n") 4 | 5 | list_name = [name1, name2] 6 | #Count number of occurences of letters in True 7 | true_count = 0 8 | for name in list_name: 9 | for letter in "true": 10 | count_letter = name.lower().count(letter) 11 | true_count += count_letter 12 | #Count number of occurences of letters in Love 13 | love_count = 0 14 | for name in list_name: 15 | for letter in "love": 16 | count_letter = name.lower().count(letter) 17 | love_count += count_letter 18 | 19 | #Combine counts 20 | score = int(str(true_count) + str(love_count)) 21 | 22 | #Print output depending on score 23 | if score < 10 or score > 90: 24 | print(f'Your score is {score}, you go together like coke and mentos.') 25 | elif score >= 40 and score <= 50: 26 | print(f'Your score is {score}, you are alright together.') 27 | else: 28 | print(f'Your score is {score}.') -------------------------------------------------------------------------------- /Projects/Day_04/rock_paper_scissors.py: -------------------------------------------------------------------------------- 1 | import random 2 | 3 | rock = ''' 4 | _______ 5 | ---' ____) 6 | (_____) 7 | (_____) 8 | (____) 9 | ---.__(___) 10 | ''' 11 | 12 | paper = ''' 13 | _______ 14 | ---' ____)____ 15 | ______) 16 | _______) 17 | _______) 18 | ---.__________) 19 | ''' 20 | 21 | scissors = ''' 22 | _______ 23 | ---' ____)____ 24 | ______) 25 | __________) 26 | (____) 27 | ---.__(___) 28 | ''' 29 | 30 | print("Welcome to the Rock Paper Scissors Game!") 31 | #Prompt user to make a choice 32 | user_choice = int(input("What do you choose? Type 0 for Rock, 1 for Paper or 2 for Scissors.\n")) 33 | #If wrong input from the user, stop the program 34 | if user_choice not in range(3): 35 | print("You have typed an invalid number. Restart.") 36 | else: 37 | #Build rock paper scissors list 38 | rock_paper_scissors_list = [rock, paper, scissors] 39 | 40 | #Print user and computer choices 41 | user_rps = rock_paper_scissors_list[user_choice] 42 | comp_rps = random.choice(rock_paper_scissors_list) 43 | print(f'{user_rps}\n\nComputer chose:\n\n{comp_rps}\n') 44 | 45 | #Determine who wins 46 | if user_rps == comp_rps: 47 | print("It is a draw.") 48 | else: 49 | if user_rps == rock and comp_rps == scissors: 50 | print("You win! :-)") 51 | if user_rps == rock and comp_rps == paper: 52 | print("You lose. :-(") 53 | if user_rps == paper and comp_rps == rock: 54 | print("You win! :-)") 55 | if user_rps == paper and comp_rps == scissors: 56 | print("You lose. :-(") 57 | if user_rps == scissors and comp_rps == paper: 58 | print("You win! :-)") 59 | if user_rps == scissors and comp_rps == rock: 60 | print("You lose. :-(") -------------------------------------------------------------------------------- /Projects/Day_05/pypassword_generator.py: -------------------------------------------------------------------------------- 1 | #Password Generator Project 2 | import random 3 | letters = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z'] 4 | numbers = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9'] 5 | symbols = ['!', '#', '$', '%', '&', '(', ')', '*', '+'] 6 | 7 | print("Welcome to the PyPassword Generator!") 8 | nr_letters= int(input("How many letters would you like in your password?\n")) 9 | nr_symbols = int(input(f"How many symbols would you like?\n")) 10 | nr_numbers = int(input(f"How many numbers would you like?\n")) 11 | 12 | #Generate random letters, symbols, and numbers 13 | rand_letters = [random.choice(letters) for i in range(nr_letters)] 14 | rand_symbols = [random.choice(symbols) for i in range(nr_symbols)] 15 | rand_numbers = [random.choice(numbers) for i in range(nr_numbers)] 16 | 17 | #Combine together 18 | rand_letters.extend(rand_symbols) 19 | rand_letters.extend(rand_numbers) 20 | #shuffle the list randomly 21 | random.shuffle(rand_letters) 22 | #Convert list to str with ''.join() and print 23 | print(f"Your password is: {''.join(rand_letters)}") -------------------------------------------------------------------------------- /Projects/Day_06/reeborg_maze.py: -------------------------------------------------------------------------------- 1 | #This code is to play the Reeborg 'Maze' game on https://reeborg.ca/reeborg.html?lang=en&mode=python&menu=worlds%2Fmenus%2Freeborg_intro_en.json&name=Maze&url=worlds%2Ftutorial_en%2Fmaze1.json 2 | 3 | def turn_right(): 4 | turn_left() 5 | turn_left() 6 | turn_left() 7 | 8 | while front_is_clear(): 9 | move() 10 | turn_left() 11 | 12 | while not at_goal(): 13 | if not wall_on_right(): 14 | turn_right() 15 | 16 | if not wall_in_front(): 17 | move() 18 | else: 19 | if not wall_on_right(): 20 | turn_right() 21 | else: 22 | turn_left() -------------------------------------------------------------------------------- /Projects/Day_07/Hangman_FlowChart.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cedoula/100-days-of-code-python/723379860fcadb2d8d3cda8deccb40c1a3dc4adb/Projects/Day_07/Hangman_FlowChart.png -------------------------------------------------------------------------------- /Projects/Day_07/hangman_art.py: -------------------------------------------------------------------------------- 1 | stages = [''' 2 | +---+ 3 | | | 4 | O | 5 | /|\ | 6 | / \ | 7 | | 8 | ========= 9 | ''', ''' 10 | +---+ 11 | | | 12 | O | 13 | /|\ | 14 | / | 15 | | 16 | ========= 17 | ''', ''' 18 | +---+ 19 | | | 20 | O | 21 | /|\ | 22 | | 23 | | 24 | ========= 25 | ''', ''' 26 | +---+ 27 | | | 28 | O | 29 | /| | 30 | | 31 | | 32 | =========''', ''' 33 | +---+ 34 | | | 35 | O | 36 | | | 37 | | 38 | | 39 | ========= 40 | ''', ''' 41 | +---+ 42 | | | 43 | O | 44 | | 45 | | 46 | | 47 | ========= 48 | ''', ''' 49 | +---+ 50 | | | 51 | | 52 | | 53 | | 54 | | 55 | ========= 56 | '''] 57 | 58 | logo = ''' 59 | _ 60 | | | 61 | | |__ __ _ _ __ __ _ _ __ ___ __ _ _ __ 62 | | '_ \ / _` | '_ \ / _` | '_ ` _ \ / _` | '_ \ 63 | | | | | (_| | | | | (_| | | | | | | (_| | | | | 64 | |_| |_|\__,_|_| |_|\__, |_| |_| |_|\__,_|_| |_| 65 | __/ | 66 | |___/ ''' 67 | 68 | 69 | -------------------------------------------------------------------------------- /Projects/Day_07/main.py: -------------------------------------------------------------------------------- 1 | import random 2 | from hangman_art import stages, logo 3 | from hangman_words import word_list 4 | # import only system from os 5 | from os import system, name 6 | 7 | # define our clear function 8 | def clear(): 9 | 10 | # for windows 11 | if name == 'nt': 12 | _ = system('cls') 13 | 14 | # for mac and linux(here, os.name is 'posix') 15 | else: 16 | _ = system('clear') 17 | 18 | chosen_word = random.choice(word_list) 19 | word_length = len(chosen_word) 20 | 21 | end_of_game = False 22 | lives = 6 23 | 24 | print(logo) 25 | 26 | #Create blanks 27 | display = ["_" for letter in chosen_word] 28 | 29 | while not end_of_game: 30 | guess = input("Guess a letter: ").lower() 31 | #Clear the screen 32 | clear() 33 | 34 | if guess in display: 35 | print(f'You\'ve already guessed {guess}') 36 | 37 | #Check guessed letter 38 | for position in range(word_length): 39 | letter = chosen_word[position] 40 | if letter == guess: 41 | display[position] = letter 42 | 43 | #Check if user is wrong. 44 | if guess not in chosen_word: 45 | print(f'You guessed {guess}, that\'s not in the word. You lose a life.') 46 | lives -= 1 47 | if lives == 0: 48 | end_of_game = True 49 | print("You lose.") 50 | 51 | #Join all the elements in the list and turn it into a String. 52 | print(f"{' '.join(display)}") 53 | 54 | #Check if user has got all letters. 55 | if "_" not in display: 56 | end_of_game = True 57 | print("You win.") 58 | 59 | print(stages[lives]) -------------------------------------------------------------------------------- /Projects/Day_08/art.py: -------------------------------------------------------------------------------- 1 | logo = """ 2 | ,adPPYba, ,adPPYYba, ,adPPYba, ,adPPYba, ,adPPYYba, 8b,dPPYba, 3 | a8" "" "" `Y8 a8P_____88 I8[ "" "" `Y8 88P' "Y8 4 | 8b ,adPPPPP88 8PP""""""" `"Y8ba, ,adPPPPP88 88 5 | "8a, ,aa 88, ,88 "8b, ,aa aa ]8I 88, ,88 88 6 | `"Ybbd8"' `"8bbdP"Y8 `"Ybbd8"' `"YbbdP"' `"8bbdP"Y8 88 7 | 88 88 8 | "" 88 9 | 88 10 | ,adPPYba, 88 8b,dPPYba, 88,dPPYba, ,adPPYba, 8b,dPPYba, 11 | a8" "" 88 88P' "8a 88P' "8a a8P_____88 88P' "Y8 12 | 8b 88 88 d8 88 88 8PP""""""" 88 13 | "8a, ,aa 88 88b, ,a8" 88 88 "8b, ,aa 88 14 | `"Ybbd8"' 88 88`YbbdP"' 88 88 `"Ybbd8"' 88 15 | 88 16 | 88 17 | """ -------------------------------------------------------------------------------- /Projects/Day_08/caesar_cipher.py: -------------------------------------------------------------------------------- 1 | alphabet = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z'] 2 | 3 | def caesar(start_text, shift_amount, cipher_direction): 4 | #Handle shifts above 26 5 | shift_amount = shift_amount % 26 6 | end_text = "" 7 | for char in start_text: 8 | if char in alphabet: 9 | position = alphabet.index(char) 10 | if cipher_direction.lower() == 'encode': 11 | new_position = position + shift_amount 12 | if new_position > 25: new_position -= 26 13 | else: 14 | new_position = position - shift_amount 15 | if new_position < 0: new_position += 26 16 | end_text += alphabet[new_position] 17 | else: 18 | end_text += char 19 | 20 | print(f"Here's the {cipher_direction}d result: {end_text}") 21 | 22 | from art import logo 23 | print(logo) 24 | 25 | #Continue as long as the user say 'yes' 26 | continue_game = True 27 | while continue_game: 28 | direction = input("Type 'encode' to encrypt, type 'decode' to decrypt:\n") 29 | if direction.lower() != 'encode' and direction.lower() != 'decode': 30 | print("You have made a wrong choice. Please try again.") 31 | exit() 32 | text = input("Type your message:\n").lower() 33 | shift = int(input("Type the shift number:\n")) 34 | 35 | caesar(start_text=text, shift_amount=shift, cipher_direction=direction) 36 | 37 | user_decision = input("Type 'yes' if you want to go again. Otherwise type 'no'.\n") 38 | if user_decision == 'no': 39 | print("Goodbye!") 40 | continue_game = False -------------------------------------------------------------------------------- /Projects/Day_09/art.py: -------------------------------------------------------------------------------- 1 | logo = ''' 2 | ___________ 3 | \ / 4 | )_______( 5 | |"""""""|_.-._,.---------.,_.-._ 6 | | | | | | | ''-. 7 | | |_| |_ _| |_..-' 8 | |_______| '-' `'---------'` '-' 9 | )"""""""( 10 | /_________\\ 11 | .-------------. 12 | /_______________\\ 13 | ''' -------------------------------------------------------------------------------- /Projects/Day_09/main.py: -------------------------------------------------------------------------------- 1 | # import only system from os 2 | from os import system, name 3 | 4 | #Define our clear function 5 | def clear(): 6 | 7 | # for windows 8 | if name == 'nt': 9 | _ = system('cls') 10 | 11 | # for mac and linux(here, os.name is 'posix') 12 | else: 13 | _ = system('clear') 14 | 15 | from art import logo 16 | 17 | print(logo) 18 | print("Welcome to the secret auction program.") 19 | 20 | 21 | bids = {} 22 | continue_bidding = True 23 | 24 | while continue_bidding: 25 | name = input("What is your name?: ") 26 | bid = int(input("What's your bid?: $")) 27 | bids[name] = bid 28 | 29 | more = input("Are there any other bidders? Type 'yes' or 'no'.\n") 30 | if more.lower() == 'yes': 31 | clear() 32 | else: 33 | continue_bidding = False 34 | clear() 35 | max_bidder = max(bids, key = bids.get) 36 | print(f'The winner is {max_bidder} with a bid of ${bids[max_bidder]}.') 37 | -------------------------------------------------------------------------------- /Projects/Day_10/art.py: -------------------------------------------------------------------------------- 1 | logo = """ 2 | _____________________ 3 | | _________________ | 4 | | | Pythonista 0. | | .----------------. .----------------. .----------------. .----------------. 5 | | |_________________| | | .--------------. || .--------------. || .--------------. || .--------------. | 6 | | ___ ___ ___ ___ | | | ______ | || | __ | || | _____ | || | ______ | | 7 | | | 7 | 8 | 9 | | + | | | | .' ___ | | || | / \ | || | |_ _| | || | .' ___ | | | 8 | | |___|___|___| |___| | | | / .' \_| | || | / /\ \ | || | | | | || | / .' \_| | | 9 | | | 4 | 5 | 6 | | - | | | | | | | || | / ____ \ | || | | | _ | || | | | | | 10 | | |___|___|___| |___| | | | \ `.___.'\ | || | _/ / \ \_ | || | _| |__/ | | || | \ `.___.'\ | | 11 | | | 1 | 2 | 3 | | x | | | | `._____.' | || ||____| |____|| || | |________| | || | `._____.' | | 12 | | |___|___|___| |___| | | | | || | | || | | || | | | 13 | | | . | 0 | = | | / | | | '--------------' || '--------------' || '--------------' || '--------------' | 14 | | |___|___|___| |___| | '----------------' '----------------' '----------------' '----------------' 15 | |_____________________| 16 | """ 17 | -------------------------------------------------------------------------------- /Projects/Day_10/main.py: -------------------------------------------------------------------------------- 1 | from art import logo 2 | 3 | #Add 4 | def add(n1, n2): 5 | return n1 + n2 6 | 7 | #Subtract 8 | def subtract(n1, n2): 9 | return n1 - n2 10 | 11 | #Multiply 12 | def multiply(n1, n2): 13 | return n1 * n2 14 | 15 | #Divide 16 | def divide(n1, n2): 17 | return n1 / n2 18 | 19 | #Operations dictionary 20 | operations = { 21 | "+": add, 22 | "-": subtract, 23 | "*": multiply, 24 | "/": divide 25 | } 26 | 27 | def calculator(): 28 | print(logo) 29 | num1 = float(input("What's the first number?: ")) 30 | for symbol in operations: 31 | print(symbol) 32 | 33 | continue_calc = True 34 | while continue_calc: 35 | operation_symbol = input("Pick an operation: ") 36 | 37 | num2 = float(input("What's the next number?: ")) 38 | 39 | answer = operations[operation_symbol](num1, num2) 40 | print(f"{num1} {operation_symbol} {num2} = {answer}") 41 | 42 | decision = input(f"Type 'y' to continue calculation with {answer}, or type 's' to start a new calculation, or type 'n' to exit: ") 43 | 44 | if decision == 'y': 45 | num1 = answer 46 | else: 47 | continue_calc = False 48 | if decision == 's': 49 | calculator() 50 | 51 | calculator() -------------------------------------------------------------------------------- /Projects/Day_11/Blackjack_FlowChart.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cedoula/100-days-of-code-python/723379860fcadb2d8d3cda8deccb40c1a3dc4adb/Projects/Day_11/Blackjack_FlowChart.png -------------------------------------------------------------------------------- /Projects/Day_11/art.py: -------------------------------------------------------------------------------- 1 | logo = """ 2 | .------. _ _ _ _ _ 3 | |A_ _ |. | | | | | | (_) | | 4 | |( \/ ).-----. | |__ | | __ _ ___| | ___ __ _ ___| | __ 5 | | \ /|K /\ | | '_ \| |/ _` |/ __| |/ / |/ _` |/ __| |/ / 6 | | \/ | / \ | | |_) | | (_| | (__| <| | (_| | (__| < 7 | `-----| \ / | |_.__/|_|\__,_|\___|_|\_\ |\__,_|\___|_|\_\\ 8 | | \/ K| _/ | 9 | `------' |__/ 10 | """ 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /Projects/Day_12/art.py: -------------------------------------------------------------------------------- 1 | logo = """ 2 | \ | | \ | | 3 | |\/ | | | __| __| _ \ __| | | \ | | | __ `__ \ __ \ _ \ __| 4 | | | | | \__ \ | __/ | | | |\ | | | | | | | | __/ | 5 | _| _| \__, | ____/ \__| \___| _| \__, | _| \_| \__,_| _| _| _| _.__/ \___| _| 6 | ____/ ____/ 7 | 8 | """ -------------------------------------------------------------------------------- /Projects/Day_12/main.py: -------------------------------------------------------------------------------- 1 | import random 2 | from art import logo 3 | 4 | #Global Constants 5 | LIVES_EASY = 10 6 | LIVES_HARD = 5 7 | #Global var 8 | lives = 0 9 | 10 | def check_answer(myst_number, guess, lives): 11 | """Check mystery number against guess and returns the number of lives left.""" 12 | if guess == myst_number: 13 | print(f"You got it! The answer was {myst_number}.") 14 | elif guess > myst_number: 15 | print("Too high.") 16 | return lives - 1 17 | else: 18 | print("Too low.") 19 | return lives - 1 20 | 21 | def set_level(): 22 | level = input("Choose a difficulty. Type 'easy' or 'hard': ") 23 | if level == 'easy': 24 | return LIVES_EASY 25 | elif level == 'hard': 26 | return LIVES_HARD 27 | else: 28 | print("Wrong choice. Restart.") 29 | exit() 30 | 31 | def game(): 32 | print(logo) 33 | print("Welcome to the Mystery Number Game!\nI'm thinking of a number between 1 and 100.") 34 | mystery_number = random.randint(1,100) 35 | 36 | lives = set_level() 37 | 38 | user_guess = 0 39 | 40 | while user_guess != mystery_number and lives !=0: 41 | print(f'You have {lives} attemps remaining to guess the number.') 42 | user_guess = int(input("Make a guess: ")) 43 | lives = check_answer(mystery_number, user_guess, lives) 44 | if user_guess != mystery_number: 45 | print("Guess again.") 46 | 47 | if lives == 0: 48 | print("You've run out of guesses. You lose.") 49 | 50 | game() -------------------------------------------------------------------------------- /Projects/Day_13/Debugging_steps.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cedoula/100-days-of-code-python/723379860fcadb2d8d3cda8deccb40c1a3dc4adb/Projects/Day_13/Debugging_steps.pdf -------------------------------------------------------------------------------- /Projects/Day_14/art.py: -------------------------------------------------------------------------------- 1 | logo = """ 2 | __ ___ __ 3 | / / / (_)___ _/ /_ ___ _____ 4 | / /_/ / / __ `/ __ \/ _ \/ ___/ 5 | / __ / / /_/ / / / / __/ / 6 | /_/ ///_/\__, /_/ /_/\___/_/ 7 | / / /____/_ _____ _____ 8 | / / / __ \ | /| / / _ \/ ___/ 9 | / /___/ /_/ / |/ |/ / __/ / 10 | /_____/\____/|__/|__/\___/_/ 11 | """ 12 | 13 | vs = """ 14 | _ __ 15 | | | / /____ 16 | | | / / ___/ 17 | | |/ (__ ) 18 | |___/____(_) 19 | """ -------------------------------------------------------------------------------- /Projects/Day_14/main.py: -------------------------------------------------------------------------------- 1 | import random 2 | from art import logo, vs 3 | from game_data import data 4 | # import only system from os 5 | from os import system, name 6 | 7 | # define our clear function 8 | def clear(): 9 | 10 | # for windows 11 | if name == 'nt': 12 | _ = system('cls') 13 | 14 | # for mac and linux(here, os.name is 'posix') 15 | else: 16 | _ = system('clear') 17 | 18 | def game(): 19 | continue_game = True 20 | couple = [random.choice(data), random.choice(data)] 21 | if couple[0] == couple[1]: 22 | couple[1] = random.choice(data) 23 | score = 0 24 | 25 | while continue_game: 26 | clear() 27 | print(logo) 28 | if score > 0: 29 | print(f"You're right! Current score: {score}.") 30 | print(f"Compare A: {couple[0]['name']}, a {couple[0]['description']}, from {couple[0]['country']}.") 31 | print(vs) 32 | print(f"Against B: {couple[1]['name']}, a {couple[1]['description']}, from {couple[1]['country']}.") 33 | pick = input("Who has more followers? Type 'A' or 'B': ").lower() 34 | 35 | if pick == 'a': 36 | user_choice = couple[0] 37 | against = couple[1] 38 | elif pick == 'b': 39 | user_choice = couple[1] 40 | against = couple[0] 41 | 42 | if user_choice['follower_count'] >= against['follower_count']: 43 | score += 1 44 | couple[0] = couple[1] 45 | couple[1] = random.choice(data) 46 | if couple[0] == couple[1]: 47 | couple[1] = random.choice(data) 48 | else: 49 | continue_game = False 50 | clear() 51 | print(logo) 52 | print(f"Sorry, that's wrong. Final score: {score}") 53 | 54 | game() 55 | -------------------------------------------------------------------------------- /Projects/Day_15/Coffee_Machine/art.py: -------------------------------------------------------------------------------- 1 | logo = """ 2 | { 3 | { } 4 | }_{ __{ 5 | .-{ } }-. 6 | ( } { ) 7 | |`-.._____..-'| 8 | | ;--. 9 | | (__ ' 10 | | | ) ) 11 | | |/ / 12 | | / / 13 | | ( / 14 | \ y' 15 | `-.._____..-' 16 | """ -------------------------------------------------------------------------------- /Projects/Day_15/Coffee_Machine/coffee_data.py: -------------------------------------------------------------------------------- 1 | MENU = { 2 | "espresso": { 3 | "ingredients": { 4 | "water": 50, 5 | "coffee": 18, 6 | }, 7 | "cost": 1.5, 8 | }, 9 | "latte": { 10 | "ingredients": { 11 | "water": 200, 12 | "milk": 150, 13 | "coffee": 24, 14 | }, 15 | "cost": 2.5, 16 | }, 17 | "cappuccino": { 18 | "ingredients": { 19 | "water": 250, 20 | "milk": 100, 21 | "coffee": 24, 22 | }, 23 | "cost": 3.0, 24 | } 25 | } 26 | 27 | resources = { 28 | "water": 300, 29 | "milk": 200, 30 | "coffee": 100, 31 | } 32 | 33 | -------------------------------------------------------------------------------- /Projects/Day_16/oop-coffee-machine/art.py: -------------------------------------------------------------------------------- 1 | logo = """ 2 | { 3 | { } 4 | }_{ __{ 5 | .-{ } }-. 6 | ( } { ) 7 | |`-.._____..-'| 8 | | ;--. 9 | | (__ ' 10 | | | ) ) 11 | | |/ / 12 | | / / 13 | | ( / 14 | \ y' 15 | `-.._____..-' 16 | """ -------------------------------------------------------------------------------- /Projects/Day_16/oop-coffee-machine/coffee_maker.py: -------------------------------------------------------------------------------- 1 | class CoffeeMaker: 2 | """Models the machine that makes the coffee""" 3 | def __init__(self): 4 | self.resources = { 5 | "water": 300, 6 | "milk": 200, 7 | "coffee": 100, 8 | } 9 | 10 | def report(self): 11 | """Prints a report of all resources.""" 12 | print(f"Water: {self.resources['water']}ml") 13 | print(f"Milk: {self.resources['milk']}ml") 14 | print(f"Coffee: {self.resources['coffee']}g") 15 | 16 | def is_resource_sufficient(self, drink): 17 | """Returns True when order can be made, False if ingredients are insufficient.""" 18 | can_make = True 19 | for item in drink.ingredients: 20 | if drink.ingredients[item] > self.resources[item]: 21 | print(f"Sorry there is not enough {item}.") 22 | can_make = False 23 | return can_make 24 | 25 | def make_coffee(self, order): 26 | """Deducts the required ingredients from the resources.""" 27 | for item in order.ingredients: 28 | self.resources[item] -= order.ingredients[item] 29 | print(f"Here is your {order.name} ☕️. Enjoy!") 30 | -------------------------------------------------------------------------------- /Projects/Day_16/oop-coffee-machine/main.py: -------------------------------------------------------------------------------- 1 | from menu import Menu, MenuItem 2 | from coffee_maker import CoffeeMaker 3 | from money_machine import MoneyMachine 4 | from art import logo 5 | # import only system from os 6 | from os import system, name 7 | 8 | # define our clear function 9 | def clear(): 10 | 11 | # for windows 12 | if name == 'nt': 13 | _ = system('cls') 14 | 15 | # for mac and linux(here, os.name is 'posix') 16 | else: 17 | _ = system('clear') 18 | 19 | 20 | #Create instances of coffee and money machines and a menu 21 | menu = Menu() 22 | coffee_maker = CoffeeMaker() 23 | money_machine = MoneyMachine() 24 | 25 | clear() 26 | print(logo) 27 | 28 | turn_off = False 29 | while not turn_off: 30 | user_choice = input(f"What would you like? ({menu.get_items()}): ").lower() 31 | if user_choice == "off": 32 | turn_off = True 33 | elif user_choice == "report": 34 | coffee_maker.report() 35 | money_machine.report() 36 | else: 37 | item = menu.find_drink(user_choice) 38 | if coffee_maker.is_resource_sufficient(item) and money_machine.make_payment(item.cost): 39 | coffee_maker.make_coffee(item) -------------------------------------------------------------------------------- /Projects/Day_16/oop-coffee-machine/menu.py: -------------------------------------------------------------------------------- 1 | class MenuItem: 2 | """Models each Menu Item.""" 3 | def __init__(self, name, water, milk, coffee, cost): 4 | self.name = name 5 | self.cost = cost 6 | self.ingredients = { 7 | "water": water, 8 | "milk": milk, 9 | "coffee": coffee 10 | } 11 | 12 | 13 | class Menu: 14 | """Models the Menu with drinks.""" 15 | def __init__(self): 16 | self.menu = [ 17 | MenuItem(name="latte", water=200, milk=150, coffee=24, cost=2.5), 18 | MenuItem(name="espresso", water=50, milk=0, coffee=18, cost=1.5), 19 | MenuItem(name="cappuccino", water=250, milk=50, coffee=24, cost=3), 20 | ] 21 | 22 | def get_items(self): 23 | """Returns all the names of the available menu items""" 24 | options = "" 25 | for item in self.menu: 26 | options += f"{item.name}/" 27 | return options 28 | 29 | def find_drink(self, order_name): 30 | """Searches the menu for a particular drink by name. Returns that item if it exists, otherwise returns None""" 31 | for item in self.menu: 32 | if item.name == order_name: 33 | return item 34 | print("Sorry that item is not available.") 35 | -------------------------------------------------------------------------------- /Projects/Day_16/oop-coffee-machine/money_machine.py: -------------------------------------------------------------------------------- 1 | class MoneyMachine: 2 | 3 | CURRENCY = "$" 4 | 5 | COIN_VALUES = { 6 | "quarters": 0.25, 7 | "dimes": 0.10, 8 | "nickles": 0.05, 9 | "pennies": 0.01 10 | } 11 | 12 | def __init__(self): 13 | self.profit = 0 14 | self.money_received = 0 15 | 16 | def report(self): 17 | """Prints the current profit""" 18 | print(f"Money: {self.CURRENCY}{self.profit}") 19 | 20 | def process_coins(self): 21 | """Returns the total calculated from coins inserted.""" 22 | print("Please insert coins.") 23 | for coin in self.COIN_VALUES: 24 | self.money_received += int(input(f"How many {coin}?: ")) * self.COIN_VALUES[coin] 25 | return self.money_received 26 | 27 | def make_payment(self, cost): 28 | """Returns True when payment is accepted, or False if insufficient.""" 29 | self.process_coins() 30 | if self.money_received >= cost: 31 | change = round(self.money_received - cost, 2) 32 | print(f"Here is {self.CURRENCY}{change} in change.") 33 | self.profit += cost 34 | self.money_received = 0 35 | return True 36 | else: 37 | print("Sorry that's not enough money. Money refunded.") 38 | self.money_received = 0 39 | return False 40 | -------------------------------------------------------------------------------- /Projects/Day_17/quiz-game/main.py: -------------------------------------------------------------------------------- 1 | from question_model import Question 2 | from data import question_data 3 | from quiz_brain import QuizBrain 4 | 5 | #Create a list of question objects 6 | question_bank = [Question(question["question"], question["correct_answer"]) for question in question_data] 7 | 8 | quiz = QuizBrain(question_bank) 9 | 10 | while quiz.still_has_questions(): 11 | quiz.next_question() 12 | 13 | print(f"You've completed the quiz.\nYour final score was: {quiz.score}/{quiz.question_number}.") -------------------------------------------------------------------------------- /Projects/Day_17/quiz-game/question_model.py: -------------------------------------------------------------------------------- 1 | class Question: 2 | 3 | def __init__(self, q_text, q_answer): 4 | self.text = q_text 5 | self.answer = q_answer -------------------------------------------------------------------------------- /Projects/Day_17/quiz-game/quiz_brain.py: -------------------------------------------------------------------------------- 1 | class QuizBrain: 2 | 3 | def __init__(self, q_list): 4 | self.question_number = 0 5 | self.question_list = q_list 6 | self.score = 0 7 | 8 | def next_question(self): 9 | current_question = self.question_list[self.question_number] 10 | self.question_number += 1 11 | user_answer = input(f'Q.{self.question_number}: {current_question.text} (True/False)?: ') 12 | self.check_answer(user_answer, current_question.answer) 13 | 14 | def still_has_questions(self): 15 | return len(self.question_list) >= self.question_number + 1 16 | 17 | def check_answer(self, user_answer, correct_answer): 18 | if user_answer.lower() == correct_answer.lower(): 19 | print("You got it right!") 20 | self.score += 1 21 | else: 22 | print("That's wrong.") 23 | print(f"The correct answer was: {correct_answer}.") 24 | print(f"Your current score is: {self.score}/{self.question_number}\n\n") 25 | -------------------------------------------------------------------------------- /Projects/Day_18/hirst-painting/hirst-painting.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cedoula/100-days-of-code-python/723379860fcadb2d8d3cda8deccb40c1a3dc4adb/Projects/Day_18/hirst-painting/hirst-painting.gif -------------------------------------------------------------------------------- /Projects/Day_18/hirst-painting/image.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cedoula/100-days-of-code-python/723379860fcadb2d8d3cda8deccb40c1a3dc4adb/Projects/Day_18/hirst-painting/image.jpeg -------------------------------------------------------------------------------- /Projects/Day_18/hirst-painting/main.py: -------------------------------------------------------------------------------- 1 | import colorgram 2 | import turtle as t 3 | from turtle import Turtle, Screen 4 | from random import choice 5 | 6 | # Extract 40 colors from the image. 7 | # colors = colorgram.extract("/Users/Cedoula/Desktop/100DaysOfCode/100-days-of-code/Projects/Day_18/hirst-painting/image.jpeg", 40) 8 | # colors_rgb = [(color.rgb.r, color.rgb.g, color.rgb.b) for color in colors] 9 | # print(colors_rgb) 10 | 11 | color_list = [(198, 12, 32), (250, 237, 17), (39, 77, 189), (38, 217, 67), (238, 228, 5), (229, 159, 46), (27, 39, 158), (215, 74, 12), (15, 154, 16), (199, 14, 10), (242, 247, 252), (244, 33, 165), (229, 17, 122), (73, 9, 31), (60, 14, 8), (224, 141, 211), (222, 160, 8), (10, 98, 61), (17, 18, 43), (47, 214, 232), (11, 227, 239), (79, 72, 215), (237, 155, 222), (73, 213, 169), (78, 234, 201), (50, 234, 244), (3, 66, 40), (222, 86, 44), (174, 178, 231), (5, 246, 222), (251, 7, 48), (235, 169, 164), (10, 80, 111), (14, 51, 246), (244, 14, 14)] 12 | 13 | tim = Turtle() 14 | tim.penup() 15 | t.colormode(255) 16 | tim.speed('fastest') 17 | tim.hideturtle() 18 | 19 | for i in range(10): 20 | tim.setpos(-225,-200 + 50 * i) 21 | for _ in range(10): 22 | tim.pendown() 23 | tim.dot(20, choice(color_list)) 24 | tim.penup() 25 | tim.forward(50) 26 | 27 | screen = Screen() 28 | screen.exitonclick() -------------------------------------------------------------------------------- /Projects/Day_19/main.py: -------------------------------------------------------------------------------- 1 | from turtle import Turtle, Screen 2 | import random 3 | 4 | 5 | def go_to_starting_line(list_turtles): 6 | for i in range(len(list_turtles)): 7 | list_turtles[i].goto(x=-230, y=-125 + 50 * i) 8 | 9 | is_race_on = False 10 | screen = Screen() 11 | screen.setup(width=500, height=400) 12 | user_bet = screen.textinput(title="Make your bet", prompt="Which turtle will win the race? Enter a color: ") 13 | colors = ["red", "orange", "yellow", "green", "blue", "purple"] 14 | 15 | #Create list of Turtle instances 16 | turtles = [Turtle(shape="turtle") for color in colors] 17 | #Apply color and penup 18 | for turtle in turtles: 19 | turtle.color(colors[turtles.index(turtle)]) 20 | turtle.penup() 21 | go_to_starting_line(turtles) 22 | 23 | if user_bet: 24 | is_race_on= True 25 | 26 | while is_race_on: 27 | for turtle in turtles: 28 | if turtle.xcor() > 230: 29 | is_race_on = False 30 | winning_color = turtle.pencolor() 31 | if winning_color == user_bet: 32 | print(f"'You've won! The {winning_color} turtle is the winner!") 33 | else: 34 | print(f"You've lost! The {winning_color} turtle is the winner!") 35 | 36 | rand_distance = random.randint(0,10) 37 | turtle.forward(rand_distance) 38 | 39 | 40 | 41 | 42 | # tim.penup() 43 | # tim.goto(x=-230, y=-100) 44 | # def move_forwards(): 45 | # tim.forward(10) 46 | # def move_backwards(): 47 | # tim.backward(10) 48 | # def turn_left(): 49 | # tim.seth(tim.heading() - 10) 50 | # def turn_right(): 51 | # tim.seth(tim.heading() + 10) 52 | # def clear(): 53 | # tim.clear() 54 | # tim.reset() 55 | 56 | # screen.listen() 57 | # screen.onkey(key="w", fun=move_forwards) 58 | # screen.onkey(key="s", fun=move_backwards) 59 | # screen.onkey(key="a", fun=turn_left) 60 | # screen.onkey(key="d", fun=turn_right) 61 | # screen.onkey(key="c", fun=clear) 62 | 63 | screen.exitonclick() -------------------------------------------------------------------------------- /Projects/Day_20/main.py: -------------------------------------------------------------------------------- 1 | from turtle import Screen 2 | from snake import Snake 3 | import time 4 | 5 | 6 | screen = Screen() 7 | screen.setup(width=600, height=600) 8 | screen.bgcolor("black") 9 | screen.title("My Snake Game") 10 | screen.tracer(0) 11 | 12 | snake = Snake() 13 | screen.listen() 14 | screen.onkey(snake.up, "Up") 15 | screen.onkey(snake.down, "Down") 16 | screen.onkey(snake.left, "Left") 17 | screen.onkey(snake.right, "Right") 18 | 19 | screen.update() 20 | 21 | game_is_on = True 22 | while game_is_on: 23 | screen.update() 24 | time.sleep(0.1) 25 | 26 | snake.move() 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | screen.exitonclick() -------------------------------------------------------------------------------- /Projects/Day_20/snake-game_1.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cedoula/100-days-of-code-python/723379860fcadb2d8d3cda8deccb40c1a3dc4adb/Projects/Day_20/snake-game_1.gif -------------------------------------------------------------------------------- /Projects/Day_20/snake.py: -------------------------------------------------------------------------------- 1 | from turtle import Turtle 2 | import random 3 | 4 | X_INIT = random.randint(-240,240) 5 | Y_INIT = random.randint(-280,280) 6 | MOVE_DISTANCE = 20 7 | # STARTING_POSITION = [(0,0), (-20,0), (-40,0)] 8 | STARTING_POSITION = [(X_INIT,Y_INIT), (X_INIT-20,Y_INIT), (X_INIT-40,Y_INIT)] 9 | UP = 90 10 | DOWN = 270 11 | LEFT = 180 12 | RIGHT = 0 13 | 14 | class Snake(): 15 | def __init__(self): 16 | self.segments = [] 17 | self.create_snake() 18 | self.head = self.segments[0] 19 | 20 | def create_snake(self): 21 | self.segments = [Turtle(shape="square") for _ in range(3)] 22 | for segment in self.segments: 23 | segment.color("white") 24 | segment.penup() 25 | segment.goto(STARTING_POSITION[self.segments.index(segment)]) 26 | 27 | def move(self): 28 | for seg_num in range(len(self.segments) - 1, 0, -1): 29 | self.segments[seg_num].goto(self.segments[seg_num-1].xcor(), self.segments[seg_num-1].ycor()) 30 | self.head.forward(MOVE_DISTANCE) 31 | 32 | def up(self): 33 | if self.head.heading() != DOWN: 34 | self.head.seth(UP) 35 | 36 | def down(self): 37 | if self.head.heading() != UP: 38 | self.head.seth(DOWN) 39 | 40 | def left(self): 41 | if self.head.heading() != RIGHT: 42 | self.head.seth(LEFT) 43 | 44 | def right(self): 45 | if self.head.heading() != LEFT: 46 | self.head.seth(RIGHT) -------------------------------------------------------------------------------- /Projects/Day_21/food.py: -------------------------------------------------------------------------------- 1 | from turtle import Turtle 2 | import random 3 | 4 | COLORS = ["red", "orange", "yellow", "green", "blue", "purple"] 5 | SHAPE = ["turtle", "circle", "triangle"] 6 | 7 | class Food(Turtle): 8 | 9 | def __init__(self): 10 | super().__init__() 11 | 12 | self.penup() 13 | self.shapesize(stretch_len=0.5, stretch_wid=0.5) 14 | self.speed("fastest") 15 | self.refresh() 16 | 17 | def refresh(self): 18 | self.shape(random.choice(SHAPE)) 19 | self.color(random.choice(COLORS)) 20 | self.goto(random.randint(-280,280), random.randint(-280,280)) -------------------------------------------------------------------------------- /Projects/Day_21/main.py: -------------------------------------------------------------------------------- 1 | from turtle import Screen 2 | from snake import Snake 3 | from food import Food 4 | from scoreboard import ScoreBoard 5 | import time 6 | 7 | 8 | screen = Screen() 9 | screen.setup(width=600, height=600) 10 | screen.bgcolor("black") 11 | screen.title("My Snake Game") 12 | screen.tracer(0) 13 | 14 | snake = Snake() 15 | food = Food() 16 | scoreboard = ScoreBoard() 17 | 18 | screen.listen() 19 | screen.onkey(snake.up, "Up") 20 | screen.onkey(snake.down, "Down") 21 | screen.onkey(snake.left, "Left") 22 | screen.onkey(snake.right, "Right") 23 | 24 | screen.update() 25 | 26 | game_is_on = True 27 | while game_is_on: 28 | screen.update() 29 | time.sleep(0.1) 30 | 31 | snake.move() 32 | 33 | #Detect collision with food 34 | if snake.head.distance(food) < 15: 35 | food.refresh() 36 | scoreboard.increase_score() 37 | snake.extend() 38 | 39 | #Detect collision with wall 40 | if snake.head.xcor() > 280 or snake.head.xcor() < -280 or snake.head.ycor() > 280 or snake.head.ycor() < -280: 41 | game_is_on = False 42 | scoreboard.game_over() 43 | 44 | #Detect collision with tail 45 | for segment in snake.segments[1:]: 46 | if snake.head.distance(segment) < 10: 47 | game_is_on = False 48 | scoreboard.game_over() 49 | 50 | 51 | 52 | screen.exitonclick() -------------------------------------------------------------------------------- /Projects/Day_21/scoreboard.py: -------------------------------------------------------------------------------- 1 | from turtle import Turtle 2 | ALIGNMENT = "center" 3 | FONT = ("Comic Sans MS", 24, "bold") 4 | 5 | class ScoreBoard(Turtle): 6 | def __init__(self): 7 | super().__init__() 8 | self.penup() 9 | self.hideturtle() 10 | self.goto(0,270) 11 | self.color("white") 12 | self.score = 0 13 | self.refresh_scoreboard() 14 | 15 | def refresh_scoreboard(self): 16 | self.write(f"Score: {self.score}", False, align=ALIGNMENT, font=FONT) 17 | 18 | def increase_score(self): 19 | self.score += 1 20 | self.clear() 21 | self.refresh_scoreboard() 22 | 23 | def game_over(self): 24 | self.home() 25 | self.write("GAME OVER.", False, ALIGNMENT, FONT) -------------------------------------------------------------------------------- /Projects/Day_21/snake-game.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cedoula/100-days-of-code-python/723379860fcadb2d8d3cda8deccb40c1a3dc4adb/Projects/Day_21/snake-game.gif -------------------------------------------------------------------------------- /Projects/Day_21/snake.py: -------------------------------------------------------------------------------- 1 | from turtle import Turtle 2 | import random 3 | 4 | X_INIT = random.randint(-240,240) 5 | Y_INIT = random.randint(-280,280) 6 | MOVE_DISTANCE = 20 7 | STARTING_POSITION = [(X_INIT,Y_INIT), (X_INIT-20,Y_INIT), (X_INIT-40,Y_INIT)] 8 | UP = 90 9 | DOWN = 270 10 | LEFT = 180 11 | RIGHT = 0 12 | 13 | class Snake(): 14 | def __init__(self): 15 | self.segments = [] 16 | self.create_snake() 17 | self.head = self.segments[0] 18 | self.tail = self.segments[-1] 19 | 20 | def create_snake(self): 21 | self.segments = [Turtle(shape="square") for _ in range(3)] 22 | for segment in self.segments: 23 | segment.color("white") 24 | segment.penup() 25 | segment.goto(STARTING_POSITION[self.segments.index(segment)]) 26 | 27 | def add_segment(self, position): 28 | new_segment = Turtle("square") 29 | new_segment.color("white") 30 | new_segment.penup() 31 | new_segment.goto(position) 32 | self.segments.append(new_segment) 33 | 34 | def extend(self): 35 | self.add_segment(self.tail.position()) 36 | 37 | 38 | def move(self): 39 | for seg_num in range(len(self.segments) - 1, 0, -1): 40 | self.segments[seg_num].goto(self.segments[seg_num-1].xcor(), self.segments[seg_num-1].ycor()) 41 | self.head.forward(MOVE_DISTANCE) 42 | 43 | def up(self): 44 | if self.head.heading() != DOWN: 45 | self.head.seth(UP) 46 | 47 | def down(self): 48 | if self.head.heading() != UP: 49 | self.head.seth(DOWN) 50 | 51 | def left(self): 52 | if self.head.heading() != RIGHT: 53 | self.head.seth(LEFT) 54 | 55 | def right(self): 56 | if self.head.heading() != LEFT: 57 | self.head.seth(RIGHT) 58 | 59 | -------------------------------------------------------------------------------- /Projects/Day_22/ball.py: -------------------------------------------------------------------------------- 1 | from turtle import Turtle 2 | from random import uniform, choice 3 | 4 | class Ball(Turtle): 5 | def __init__(self): 6 | super().__init__() 7 | self.penup() 8 | self.shape("circle") 9 | self.color("white") 10 | self.speed(1) 11 | self.seth(37) 12 | self.moving_distance = 2 13 | 14 | def move_ball(self): 15 | self.forward(self.moving_distance) 16 | 17 | def bounce_on_wall(self): 18 | self.seth(360 - self.heading()) 19 | 20 | def bounce_on_r_paddle(self): 21 | self.seth(self.heading() + 90) 22 | 23 | def bounce_on_l_paddle(self): 24 | self.seth(self.heading() - 90) 25 | 26 | def reset_ball(self): 27 | if self.xcor() > 0: 28 | direction = uniform(127, 217) 29 | else: 30 | direction = choice([uniform(0, 37), uniform(323, 360)]) 31 | self.goto(0,0) 32 | self.seth(direction) 33 | self.moving_distance = 2 34 | self.move_ball() 35 | 36 | def increase_ball_speed(self): 37 | self.moving_distance += 1 -------------------------------------------------------------------------------- /Projects/Day_22/line.py: -------------------------------------------------------------------------------- 1 | from turtle import Turtle 2 | 3 | class Line(Turtle): 4 | def __init__(self): 5 | super().__init__() 6 | self.penup() 7 | self.color("white") 8 | self.goto(0,-300) 9 | self.seth(90) 10 | while self.ycor() < 300: 11 | self.pendown() 12 | self.forward(10) 13 | self.penup() 14 | self.forward(10) 15 | self.hideturtle() -------------------------------------------------------------------------------- /Projects/Day_22/main.py: -------------------------------------------------------------------------------- 1 | from turtle import Screen, Turtle 2 | from paddle import Paddle 3 | from ball import Ball 4 | from scoreboard import ScoreBoard 5 | from line import Line 6 | 7 | RIGHT = (350,0) 8 | LEFT =(-350,0) 9 | 10 | screen = Screen() 11 | screen.setup(width=800, height=600) 12 | screen.bgcolor("black") 13 | screen.title("Pong") 14 | screen.tracer(0) 15 | 16 | r_paddle = Paddle(RIGHT) 17 | l_paddle = Paddle(LEFT) 18 | ball = Ball() 19 | scoreboard = ScoreBoard() 20 | line = Line() 21 | 22 | screen.listen() 23 | screen.onkey(r_paddle.up, "Up") 24 | screen.onkey(r_paddle.down, "Down") 25 | screen.onkey(l_paddle.up, "e") 26 | screen.onkey(l_paddle.down, "s") 27 | 28 | game_is_on = True 29 | while game_is_on: 30 | screen.update() 31 | ball.move_ball() 32 | 33 | #Detect collision with top and bottom walls 34 | if ball.ycor() > 290 or ball.ycor() < -290: 35 | ball.bounce_on_wall() 36 | 37 | #Detect collision with the paddle 38 | if ball.distance(r_paddle) < 50 and ball.xcor() > 330: 39 | ball.bounce_on_r_paddle() 40 | ball.increase_ball_speed() 41 | if ball.distance(l_paddle) < 50 and ball.xcor() < -330: 42 | ball.bounce_on_l_paddle() 43 | ball.increase_ball_speed() 44 | 45 | #Detect out of bounds 46 | if ball.xcor() > 400: 47 | ball.reset_ball() 48 | scoreboard.l_score += 1 49 | scoreboard.update_scoreboard() 50 | 51 | if ball.xcor() < -400: 52 | ball.reset_ball() 53 | scoreboard.r_score += 1 54 | scoreboard.update_scoreboard() 55 | 56 | screen.exitonclick() -------------------------------------------------------------------------------- /Projects/Day_22/paddle.py: -------------------------------------------------------------------------------- 1 | from turtle import Turtle 2 | 3 | 4 | MOVE_DISTANCE = 20 5 | UP = 90 6 | DOWN = 270 7 | 8 | class Paddle(Turtle): 9 | def __init__(self, side): 10 | super().__init__() 11 | self.penup() 12 | self.shape("square") 13 | self.color("white") 14 | self.shapesize(5,1,1) 15 | self.goto(side) 16 | 17 | def up(self): 18 | self.goto(self.xcor(), self.ycor() + MOVE_DISTANCE) 19 | 20 | def down(self): 21 | self.goto(self.xcor(), self.ycor() - MOVE_DISTANCE) -------------------------------------------------------------------------------- /Projects/Day_22/pong-game.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cedoula/100-days-of-code-python/723379860fcadb2d8d3cda8deccb40c1a3dc4adb/Projects/Day_22/pong-game.gif -------------------------------------------------------------------------------- /Projects/Day_22/scoreboard.py: -------------------------------------------------------------------------------- 1 | from turtle import Turtle 2 | 3 | class ScoreBoard(Turtle): 4 | def __init__(self): 5 | super().__init__() 6 | self.color("white") 7 | self.penup() 8 | self.hideturtle() 9 | self.l_score = 0 10 | self.r_score = 0 11 | self.update_scoreboard() 12 | 13 | 14 | def update_scoreboard(self): 15 | self.clear() 16 | self.goto(-100,200) 17 | self.write(self.l_score, align="center", font=("Courier", 80, "normal")) 18 | self.goto(100,200) 19 | self.write(self.r_score, align="center", font=("Courier", 80, "normal")) 20 | 21 | -------------------------------------------------------------------------------- /Projects/Day_23/turtle-crossing/car_manager.py: -------------------------------------------------------------------------------- 1 | from turtle import Turtle 2 | from random import choice, uniform, randint 3 | 4 | COLORS = ["red", "orange", "yellow", "green", "blue", "purple"] 5 | STARTING_MOVE_DISTANCE = 5 6 | MOVE_INCREMENT = 10 7 | 8 | 9 | class CarManager(): 10 | def __init__(self): 11 | self.all_cars = [] 12 | self.moving_rate = STARTING_MOVE_DISTANCE 13 | 14 | def create_car(self): 15 | random_chance = randint(1,6) 16 | if random_chance == 1: 17 | new_car = Turtle("square") 18 | new_car.penup() 19 | new_car.shapesize(1,2,1) 20 | new_car.color(choice(COLORS)) 21 | new_car.goto(310, uniform(-240,240)) 22 | new_car.seth(180) 23 | new_car.speed("slowest") 24 | self.all_cars.append(new_car) 25 | 26 | def move_cars(self): 27 | for car in self.all_cars: 28 | car.forward(self.moving_rate) 29 | 30 | def speed_up(self): 31 | self.moving_rate += MOVE_INCREMENT 32 | -------------------------------------------------------------------------------- /Projects/Day_23/turtle-crossing/main.py: -------------------------------------------------------------------------------- 1 | import time 2 | from turtle import Screen 3 | from player import Player 4 | from car_manager import CarManager 5 | from scoreboard import Scoreboard 6 | 7 | 8 | screen = Screen() 9 | screen.setup(width=600, height=600) 10 | screen.title("Cedric's Turtle Crossing") 11 | screen.tracer(0) 12 | 13 | screen.listen() 14 | 15 | player = Player() 16 | car_manager = CarManager() 17 | scoreboard = Scoreboard() 18 | screen.onkey(player.move, "Up") 19 | 20 | game_is_on = True 21 | while game_is_on: 22 | time.sleep(0.1) 23 | screen.update() 24 | 25 | car_manager.create_car() 26 | car_manager.move_cars() 27 | 28 | for car in car_manager.all_cars: 29 | if player.distance(car) < 20: 30 | game_is_on = False 31 | scoreboard.game_over() 32 | 33 | if player.reached_finish_line(): 34 | player.go_to_start_line() 35 | car_manager.speed_up() 36 | scoreboard.level +=1 37 | scoreboard.update_scoreboard() 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | screen.exitonclick() -------------------------------------------------------------------------------- /Projects/Day_23/turtle-crossing/player.py: -------------------------------------------------------------------------------- 1 | from turtle import Turtle 2 | from random import choice 3 | 4 | STARTING_POSITION = (0, -280) 5 | MOVE_DISTANCE = 10 6 | FINISH_LINE_Y = 280 7 | COLORS = ["red", "orange", "yellow", "green", "blue", "purple"] 8 | 9 | class Player(Turtle): 10 | def __init__(self): 11 | super().__init__() 12 | self.penup() 13 | self.shape("turtle") 14 | self.seth(90) 15 | self.color(choice(COLORS)) 16 | self.go_to_start_line() 17 | 18 | def move(self): 19 | self.forward(MOVE_DISTANCE) 20 | def go_to_start_line(self): 21 | self.goto(STARTING_POSITION) 22 | 23 | def reached_finish_line(self): 24 | return self.ycor() >= FINISH_LINE_Y 25 | 26 | -------------------------------------------------------------------------------- /Projects/Day_23/turtle-crossing/scoreboard.py: -------------------------------------------------------------------------------- 1 | from turtle import Turtle 2 | 3 | FONT = ("Courier", 24, "normal") 4 | 5 | 6 | class Scoreboard(Turtle): 7 | def __init__(self): 8 | super().__init__() 9 | self.penup() 10 | self.hideturtle() 11 | self.level = 1 12 | self.update_scoreboard() 13 | 14 | 15 | def update_scoreboard(self): 16 | self.clear() 17 | self.goto(-230,260) 18 | self.write(f"Level: {self.level}", align="center", font=FONT) 19 | 20 | def game_over(self): 21 | self.clear() 22 | self.goto(0,0) 23 | self.write("GAME OVER", align="center", font=FONT) -------------------------------------------------------------------------------- /Projects/Day_23/turtle-crossing/turtle-crossing.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cedoula/100-days-of-code-python/723379860fcadb2d8d3cda8deccb40c1a3dc4adb/Projects/Day_23/turtle-crossing/turtle-crossing.gif -------------------------------------------------------------------------------- /Projects/Day_24/mail-merge-project/Input/Letters/starting_letter.txt: -------------------------------------------------------------------------------- 1 | Dear [name], 2 | 3 | You are invited to my birthday this Saturday. 4 | 5 | Hope you can make it! 6 | 7 | Angela 8 | -------------------------------------------------------------------------------- /Projects/Day_24/mail-merge-project/Input/Names/invited_names.txt: -------------------------------------------------------------------------------- 1 | Aang 2 | Zuko 3 | Appa 4 | Katara 5 | Sokka 6 | Momo 7 | Uncle Iroh 8 | Toph -------------------------------------------------------------------------------- /Projects/Day_24/mail-merge-project/Output/ReadyToSend/example.txt: -------------------------------------------------------------------------------- 1 | Dear Aang, 2 | 3 | You are invited to my birthday this Saturday. 4 | 5 | Hope you can make it! 6 | 7 | Angela 8 | -------------------------------------------------------------------------------- /Projects/Day_24/mail-merge-project/Output/ReadyToSend/letter_for_Aang.txt: -------------------------------------------------------------------------------- 1 | Dear Aang, 2 | 3 | You are invited to my birthday this Saturday. 4 | 5 | Hope you can make it! 6 | 7 | Angela 8 | -------------------------------------------------------------------------------- /Projects/Day_24/mail-merge-project/Output/ReadyToSend/letter_for_Appa.txt: -------------------------------------------------------------------------------- 1 | Dear Appa, 2 | 3 | You are invited to my birthday this Saturday. 4 | 5 | Hope you can make it! 6 | 7 | Angela 8 | -------------------------------------------------------------------------------- /Projects/Day_24/mail-merge-project/Output/ReadyToSend/letter_for_Katara.txt: -------------------------------------------------------------------------------- 1 | Dear Katara, 2 | 3 | You are invited to my birthday this Saturday. 4 | 5 | Hope you can make it! 6 | 7 | Angela 8 | -------------------------------------------------------------------------------- /Projects/Day_24/mail-merge-project/Output/ReadyToSend/letter_for_Momo.txt: -------------------------------------------------------------------------------- 1 | Dear Momo, 2 | 3 | You are invited to my birthday this Saturday. 4 | 5 | Hope you can make it! 6 | 7 | Angela 8 | -------------------------------------------------------------------------------- /Projects/Day_24/mail-merge-project/Output/ReadyToSend/letter_for_Sokka.txt: -------------------------------------------------------------------------------- 1 | Dear Sokka, 2 | 3 | You are invited to my birthday this Saturday. 4 | 5 | Hope you can make it! 6 | 7 | Angela 8 | -------------------------------------------------------------------------------- /Projects/Day_24/mail-merge-project/Output/ReadyToSend/letter_for_Toph.txt: -------------------------------------------------------------------------------- 1 | Dear Toph, 2 | 3 | You are invited to my birthday this Saturday. 4 | 5 | Hope you can make it! 6 | 7 | Angela 8 | -------------------------------------------------------------------------------- /Projects/Day_24/mail-merge-project/Output/ReadyToSend/letter_for_Uncle Iroh.txt: -------------------------------------------------------------------------------- 1 | Dear Uncle Iroh, 2 | 3 | You are invited to my birthday this Saturday. 4 | 5 | Hope you can make it! 6 | 7 | Angela 8 | -------------------------------------------------------------------------------- /Projects/Day_24/mail-merge-project/Output/ReadyToSend/letter_for_Zuko.txt: -------------------------------------------------------------------------------- 1 | Dear Zuko, 2 | 3 | You are invited to my birthday this Saturday. 4 | 5 | Hope you can make it! 6 | 7 | Angela 8 | -------------------------------------------------------------------------------- /Projects/Day_24/mail-merge-project/main.py: -------------------------------------------------------------------------------- 1 | from pathlib import Path 2 | 3 | path_names = Path(__file__).parent / "./Input/Names/invited_names.txt" 4 | path_template = Path(__file__).parent / "./Input/Letters/starting_letter.txt" 5 | 6 | with open(path_template, "r") as file: 7 | template = file.read() 8 | 9 | with open(path_names, "r") as file: 10 | list_names = file.readlines() 11 | 12 | for i in range(len(list_names)-1): 13 | list_names[i] = list_names[i].strip() 14 | 15 | output_path = Path(__file__).parent / "./Output/ReadyToSend/" 16 | for name in list_names: 17 | letter = template.replace("[name]", name) 18 | with open(f"{output_path}/letter_for_{name}.txt", "w") as file: 19 | file.write(letter) 20 | -------------------------------------------------------------------------------- /Projects/Day_24/snake-game/data.txt: -------------------------------------------------------------------------------- 1 | 11 -------------------------------------------------------------------------------- /Projects/Day_24/snake-game/food.py: -------------------------------------------------------------------------------- 1 | from turtle import Turtle 2 | import random 3 | 4 | COLORS = ["red", "orange", "yellow", "green", "blue", "purple"] 5 | SHAPE = ["turtle", "circle", "triangle"] 6 | 7 | class Food(Turtle): 8 | 9 | def __init__(self): 10 | super().__init__() 11 | 12 | self.penup() 13 | self.shapesize(stretch_len=0.5, stretch_wid=0.5) 14 | self.speed("fastest") 15 | self.refresh() 16 | 17 | def refresh(self): 18 | self.shape(random.choice(SHAPE)) 19 | self.color(random.choice(COLORS)) 20 | self.goto(random.randint(-280,280), random.randint(-280,280)) -------------------------------------------------------------------------------- /Projects/Day_24/snake-game/main.py: -------------------------------------------------------------------------------- 1 | from turtle import Screen 2 | from snake import Snake 3 | from food import Food 4 | from scoreboard import ScoreBoard 5 | import time 6 | 7 | 8 | screen = Screen() 9 | screen.setup(width=600, height=600) 10 | screen.bgcolor("black") 11 | screen.title("My Snake Game") 12 | screen.tracer(0) 13 | 14 | snake = Snake() 15 | food = Food() 16 | scoreboard = ScoreBoard() 17 | 18 | screen.listen() 19 | screen.onkey(snake.up, "Up") 20 | screen.onkey(snake.down, "Down") 21 | screen.onkey(snake.left, "Left") 22 | screen.onkey(snake.right, "Right") 23 | 24 | screen.update() 25 | 26 | game_is_on = True 27 | while game_is_on: 28 | screen.update() 29 | time.sleep(0.1) 30 | 31 | snake.move() 32 | 33 | #Detect collision with food 34 | if snake.head.distance(food) < 15: 35 | food.refresh() 36 | scoreboard.increase_score() 37 | snake.extend() 38 | 39 | #Detect collision with wall 40 | if snake.head.xcor() > 280 or snake.head.xcor() < -280 or snake.head.ycor() > 280 or snake.head.ycor() < -280: 41 | scoreboard.reset() 42 | snake.reset() 43 | 44 | #Detect collision with tail 45 | for segment in snake.segments[1:]: 46 | if snake.head.distance(segment) < 10: 47 | scoreboard.reset() 48 | snake.reset() 49 | 50 | 51 | screen.exitonclick() -------------------------------------------------------------------------------- /Projects/Day_24/snake-game/scoreboard.py: -------------------------------------------------------------------------------- 1 | from turtle import Turtle 2 | import os 3 | ALIGNMENT = "center" 4 | FONT = ("Comic Sans MS", 24, "bold") 5 | file_to_load = os.path.join("/Users/Cedoula/Desktop/100DaysOfCode/100-days-of-code/Projects/Day_24/snake-game", "data.txt") 6 | 7 | class ScoreBoard(Turtle): 8 | def __init__(self): 9 | super().__init__() 10 | self.penup() 11 | self.hideturtle() 12 | self.goto(0,270) 13 | self.color("white") 14 | self.score = 0 15 | with open(file_to_load, "r") as file: 16 | self.high_score = int(file.read()) 17 | self.refresh_scoreboard() 18 | 19 | def refresh_scoreboard(self): 20 | self.clear() 21 | self.write(f"Score: {self.score} - High Score: {self.high_score}", False, align=ALIGNMENT, font=FONT) 22 | 23 | def increase_score(self): 24 | self.score += 1 25 | self.refresh_scoreboard() 26 | 27 | def reset(self): 28 | if self.score > self.high_score: 29 | self.high_score = self.score 30 | with open(file_to_load, "w") as file: 31 | file.write(str(self.high_score)) 32 | self.score = 0 33 | self.refresh_scoreboard() 34 | 35 | 36 | # def game_over(self): 37 | # self.home() 38 | # self.write("GAME OVER.", False, ALIGNMENT, FONT) -------------------------------------------------------------------------------- /Projects/Day_24/snake-game/snake.py: -------------------------------------------------------------------------------- 1 | from turtle import Turtle 2 | import random 3 | 4 | X_INIT = random.randint(-240,240) 5 | Y_INIT = random.randint(-280,280) 6 | MOVE_DISTANCE = 20 7 | STARTING_POSITION = [(X_INIT,Y_INIT), (X_INIT-20,Y_INIT), (X_INIT-40,Y_INIT)] 8 | UP = 90 9 | DOWN = 270 10 | LEFT = 180 11 | RIGHT = 0 12 | 13 | class Snake(): 14 | def __init__(self): 15 | self.segments = [] 16 | self.create_snake() 17 | self.head = self.segments[0] 18 | self.tail = self.segments[-1] 19 | 20 | def create_snake(self): 21 | self.segments = [Turtle(shape="square") for _ in range(3)] 22 | for segment in self.segments: 23 | segment.color("white") 24 | segment.penup() 25 | segment.goto(STARTING_POSITION[self.segments.index(segment)]) 26 | 27 | def add_segment(self, position): 28 | new_segment = Turtle("square") 29 | new_segment.color("white") 30 | new_segment.penup() 31 | new_segment.goto(position) 32 | self.segments.append(new_segment) 33 | 34 | def extend(self): 35 | self.add_segment(self.tail.position()) 36 | 37 | 38 | def move(self): 39 | for seg_num in range(len(self.segments) - 1, 0, -1): 40 | self.segments[seg_num].goto(self.segments[seg_num-1].xcor(), self.segments[seg_num-1].ycor()) 41 | self.head.forward(MOVE_DISTANCE) 42 | 43 | def up(self): 44 | if self.head.heading() != DOWN: 45 | self.head.seth(UP) 46 | 47 | def down(self): 48 | if self.head.heading() != UP: 49 | self.head.seth(DOWN) 50 | 51 | def left(self): 52 | if self.head.heading() != RIGHT: 53 | self.head.seth(LEFT) 54 | 55 | def right(self): 56 | if self.head.heading() != LEFT: 57 | self.head.seth(RIGHT) 58 | 59 | def reset(self): 60 | for seg in self.segments: 61 | seg.goto(1000,1000) 62 | self.segments.clear() 63 | self.create_snake() 64 | self.head = self.segments[0] 65 | self.tail = self.segments[-1] -------------------------------------------------------------------------------- /Projects/Day_25/us-states-game/50_states.csv: -------------------------------------------------------------------------------- 1 | state,x,y 2 | Alabama,139,-77 3 | Alaska,-204,-170 4 | Arizona,-203,-40 5 | Arkansas,57,-53 6 | California,-297,13 7 | Colorado,-112,20 8 | Connecticut,297,96 9 | Delaware,275,42 10 | Florida,220,-145 11 | Georgia,182,-75 12 | Hawaii,-317,-143 13 | Idaho,-216,122 14 | Illinois,95,37 15 | Indiana,133,39 16 | Iowa,38,65 17 | Kansas,-17,5 18 | Kentucky,149,1 19 | Louisiana,59,-114 20 | Maine,319,164 21 | Maryland,288,27 22 | Massachusetts,312,112 23 | Michigan,148,101 24 | Minnesota,23,135 25 | Mississippi,94,-78 26 | Missouri,49,6 27 | Montana,-141,150 28 | Nebraska,-61,66 29 | Nevada,-257,56 30 | New Hampshire,302,127 31 | New Jersey,282,65 32 | New Mexico,-128,-43 33 | New York,236,104 34 | North Carolina,239,-22 35 | North Dakota,-44,158 36 | Ohio,176,52 37 | Oklahoma,-8,-41 38 | Oregon,-278,138 39 | Pennsylvania,238,72 40 | Rhode Island,318,94 41 | South Carolina,218,-51 42 | South Dakota,-44,109 43 | Tennessee,131,-34 44 | Texas,-38,-106 45 | Utah,-189,34 46 | Vermont,282,154 47 | Virginia,234,12 48 | Washington,-257,193 49 | West Virginia,200,20 50 | Wisconsin,83,113 51 | Wyoming,-134,90 -------------------------------------------------------------------------------- /Projects/Day_25/us-states-game/blank_states_img.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cedoula/100-days-of-code-python/723379860fcadb2d8d3cda8deccb40c1a3dc4adb/Projects/Day_25/us-states-game/blank_states_img.gif -------------------------------------------------------------------------------- /Projects/Day_25/us-states-game/main.py: -------------------------------------------------------------------------------- 1 | import turtle 2 | import pandas as pd 3 | ALIGNMENT = "center" 4 | FONT = ("Arial", 12, "bold") 5 | 6 | states_df = pd.read_csv("50_states.csv") 7 | screen = turtle.Screen() 8 | screen.title("U.S. States Game") 9 | image = "blank_states_img.gif" 10 | screen.addshape(image) 11 | turtle.shape(image) 12 | pointer = turtle.Turtle() 13 | pointer.penup() 14 | pointer.hideturtle() 15 | 16 | 17 | guesses = [] 18 | while len(guesses) != 50: 19 | answer_state = screen.textinput(title=f"{len(guesses)}/50 States Correct", prompt="What's another state's name?").title() 20 | 21 | if answer_state == "Exit": 22 | break 23 | 24 | #Check if guess is among 50 states 25 | if answer_state in states_df.values and answer_state not in guesses: 26 | x = int(states_df[states_df.state == answer_state]["x"]) 27 | y = int(states_df[states_df.state == answer_state]["y"]) 28 | pointer.goto(x,y) 29 | pointer.write(f"{answer_state}", False, align=ALIGNMENT, font=FONT) 30 | guesses.append(answer_state) 31 | 32 | #States to learn.csv 33 | states_to_learn_df = states_df.loc[~states_df.state.isin(guesses)].set_index("state").reset_index() 34 | states_to_learn_df.state.to_csv("states_to_learn.csv") -------------------------------------------------------------------------------- /Projects/Day_25/us-states-game/states_to_learn.csv: -------------------------------------------------------------------------------- 1 | ,state 2 | 0,Alabama 3 | 1,Alaska 4 | 2,Arizona 5 | 3,Arkansas 6 | 4,Colorado 7 | 5,Connecticut 8 | 6,Delaware 9 | 7,Georgia 10 | 8,Hawaii 11 | 9,Idaho 12 | 10,Illinois 13 | 11,Indiana 14 | 12,Iowa 15 | 13,Kansas 16 | 14,Kentucky 17 | 15,Maine 18 | 16,Maryland 19 | 17,Massachusetts 20 | 18,Michigan 21 | 19,Minnesota 22 | 20,Mississippi 23 | 21,Missouri 24 | 22,Montana 25 | 23,Nebraska 26 | 24,New Hampshire 27 | 25,New Jersey 28 | 26,New Mexico 29 | 27,New York 30 | 28,North Carolina 31 | 29,North Dakota 32 | 30,Oklahoma 33 | 31,Oregon 34 | 32,Pennsylvania 35 | 33,Rhode Island 36 | 34,South Carolina 37 | 35,South Dakota 38 | 36,Tennessee 39 | 37,Vermont 40 | 38,Virginia 41 | 39,Washington 42 | 40,West Virginia 43 | 41,Wisconsin 44 | 42,Wyoming 45 | -------------------------------------------------------------------------------- /Projects/Day_26/NATO-alphabet/main.py: -------------------------------------------------------------------------------- 1 | # student_dict = { 2 | # "student": ["Angela", "James", "Lily"], 3 | # "score": [56, 76, 98] 4 | # } 5 | 6 | # #Looping through dictionaries: 7 | # for (key, value) in student_dict.items(): 8 | # #Access key and value 9 | # pass 10 | 11 | # import pandas as pd 12 | # student_data_frame = pd.DataFrame(student_dict) 13 | 14 | # #Loop through rows of a data frame 15 | # for (index, row) in student_data_frame.iterrows(): 16 | # #Access index and row 17 | # #Access row.student or row.score 18 | # pass 19 | 20 | # Keyword Method with iterrows() 21 | # {new_key:new_value for (index, row) in df.iterrows()} 22 | 23 | #Create a code dictionary 24 | code_df = pd.read_csv("nato_phonetic_alphabet.csv") 25 | code_dict = {row.letter:row.code for (index, row) in code_df.iterrows()} 26 | 27 | 28 | #Create a list of the phonetic code words from a word that the user inputs. 29 | word = input("Enter a word: ").upper() 30 | print([code_dict[letter] for letter in word]) 31 | -------------------------------------------------------------------------------- /Projects/Day_26/NATO-alphabet/nato_phonetic_alphabet.csv: -------------------------------------------------------------------------------- 1 | letter,code 2 | A,Alfa 3 | B,Bravo 4 | C,Charlie 5 | D,Delta 6 | E,Echo 7 | F,Foxtrot 8 | G,Golf 9 | H,Hotel 10 | I,India 11 | J,Juliet 12 | K,Kilo 13 | L,Lima 14 | M,Mike 15 | N,November 16 | O,Oscar 17 | P,Papa 18 | Q,Quebec 19 | R,Romeo 20 | S,Sierra 21 | T,Tango 22 | U,Uniform 23 | V,Victor 24 | W,Whiskey 25 | X,X-ray 26 | Y,Yankee 27 | Z,Zulu -------------------------------------------------------------------------------- /Projects/Day_27/main.py: -------------------------------------------------------------------------------- 1 | #This program uses tkinter library to make a mile to km converter GUI 2 | from tkinter import * 3 | 4 | window = Tk() 5 | window.title("Mile to Km Converter") 6 | window.minsize(width=400,height=150) 7 | window.config(padx=20, pady=20) 8 | 9 | #Labels 10 | miles_label = Label(text="Miles", font=("Arial", 24)) 11 | miles_label.grid(column=2, row=0) 12 | label1 = Label(text="is equal to", font=("Arial", 24)) 13 | label1.grid(column=0, row=1) 14 | km_label= Label(text="0", font=("Arial", 24)) 15 | km_label.grid(column=1, row=1) 16 | label2 = Label(text="Km", font=("Arial", 24)) 17 | label2.grid(column=2, row=1) 18 | 19 | def button_clicked(): 20 | km_label["text"] = "{:.1f}".format(float(miles_input.get()) * 1.609) 21 | 22 | #Button 23 | button = Button(text="Calculate", command=button_clicked) 24 | button.grid(column=1, row=2) 25 | 26 | #Entry 27 | miles_input = Entry() 28 | miles_input.config(width=10, justify="center", font=("Arial", 24)) 29 | miles_input.grid(column=1,row=0) 30 | 31 | 32 | 33 | 34 | 35 | window.mainloop() -------------------------------------------------------------------------------- /Projects/Day_27/mile-to-km-gui.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cedoula/100-days-of-code-python/723379860fcadb2d8d3cda8deccb40c1a3dc4adb/Projects/Day_27/mile-to-km-gui.gif -------------------------------------------------------------------------------- /Projects/Day_28/pomodoro/pomodoro.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cedoula/100-days-of-code-python/723379860fcadb2d8d3cda8deccb40c1a3dc4adb/Projects/Day_28/pomodoro/pomodoro.gif -------------------------------------------------------------------------------- /Projects/Day_28/pomodoro/tomato.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cedoula/100-days-of-code-python/723379860fcadb2d8d3cda8deccb40c1a3dc4adb/Projects/Day_28/pomodoro/tomato.png -------------------------------------------------------------------------------- /Projects/Day_29/password-manager/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cedoula/100-days-of-code-python/723379860fcadb2d8d3cda8deccb40c1a3dc4adb/Projects/Day_29/password-manager/logo.png -------------------------------------------------------------------------------- /Projects/Day_29/password-manager/password-manager.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cedoula/100-days-of-code-python/723379860fcadb2d8d3cda8deccb40c1a3dc4adb/Projects/Day_29/password-manager/password-manager.gif -------------------------------------------------------------------------------- /Projects/Day_30/NATO-alphabet-refactored/main.py: -------------------------------------------------------------------------------- 1 | # student_dict = { 2 | # "student": ["Angela", "James", "Lily"], 3 | # "score": [56, 76, 98] 4 | # } 5 | 6 | # #Looping through dictionaries: 7 | # for (key, value) in student_dict.items(): 8 | # #Access key and value 9 | # pass 10 | 11 | import pandas as pd 12 | # student_data_frame = pd.DataFrame(student_dict) 13 | 14 | # #Loop through rows of a data frame 15 | # for (index, row) in student_data_frame.iterrows(): 16 | # #Access index and row 17 | # #Access row.student or row.score 18 | # pass 19 | 20 | # Keyword Method with iterrows() 21 | # {new_key:new_value for (index, row) in df.iterrows()} 22 | 23 | #Create a code dictionary 24 | code_df = pd.read_csv("nato_phonetic_alphabet.csv") 25 | code_dict = {row.letter:row.code for (index, row) in code_df.iterrows()} 26 | 27 | 28 | #Create a list of the phonetic code words from a word that the user inputs. 29 | stop = False 30 | while not stop: 31 | word = input("Enter a word: ").upper() 32 | try: 33 | word_encoded = [code_dict[letter] for letter in word] 34 | except KeyError: 35 | print("Sorry, only letters in the alphabet please.") 36 | else: 37 | stop = True 38 | print([code_dict[letter] for letter in word]) 39 | -------------------------------------------------------------------------------- /Projects/Day_30/NATO-alphabet-refactored/nato_phonetic_alphabet.csv: -------------------------------------------------------------------------------- 1 | letter,code 2 | A,Alfa 3 | B,Bravo 4 | C,Charlie 5 | D,Delta 6 | E,Echo 7 | F,Foxtrot 8 | G,Golf 9 | H,Hotel 10 | I,India 11 | J,Juliet 12 | K,Kilo 13 | L,Lima 14 | M,Mike 15 | N,November 16 | O,Oscar 17 | P,Papa 18 | Q,Quebec 19 | R,Romeo 20 | S,Sierra 21 | T,Tango 22 | U,Uniform 23 | V,Victor 24 | W,Whiskey 25 | X,X-ray 26 | Y,Yankee 27 | Z,Zulu -------------------------------------------------------------------------------- /Projects/Day_30/password-manager/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cedoula/100-days-of-code-python/723379860fcadb2d8d3cda8deccb40c1a3dc4adb/Projects/Day_30/password-manager/logo.png -------------------------------------------------------------------------------- /Projects/Day_31/flash-card-project/data/french_words.csv: -------------------------------------------------------------------------------- 1 | French,English 2 | partie,part 3 | histoire,history 4 | chercher,search 5 | seulement,only 6 | police,police 7 | pensais,thought 8 | aide,help 9 | demande,request 10 | genre,kind 11 | mois,month 12 | frère,brother 13 | laisser,let 14 | car,because 15 | mettre,to put 16 | aucun,no 17 | laisse,leash 18 | eux,them 19 | ville,city 20 | chaque,each 21 | parlé,speak 22 | arrivé,come 23 | devrait,should 24 | bébé,baby 25 | longtemps,long time 26 | heures,hours 27 | vont,will 28 | pendant,while 29 | revoir,meet again 30 | aucune,any 31 | place,square 32 | parle,speak 33 | compris,understood 34 | savais,knew 35 | étaient,were 36 | attention,Warning 37 | voici,here is 38 | pourrais,could 39 | affaire,case 40 | donner,give 41 | type,type 42 | leurs,their 43 | donné,given 44 | train,train 45 | corps,body 46 | endroit,place 47 | yeux,eyes 48 | façon,way 49 | écoute,listen 50 | dont,whose 51 | trouve,find 52 | premier,first 53 | perdu,lost 54 | main,hand 55 | première,first 56 | côté,side 57 | pouvoir,power 58 | vieux,old 59 | sois,be 60 | tiens,here 61 | matin,morning 62 | tellement,so much 63 | enfant,child 64 | point,point 65 | venu,came 66 | suite,after 67 | pardon,sorry 68 | venez,come 69 | devant,in front of 70 | vers,towards 71 | minutes,minutes 72 | demandé,request 73 | chambre,bedroom 74 | mis,placed 75 | belle,beautiful 76 | droit,law 77 | aimerais,would like to 78 | aujourd'hui,today 79 | mari,husband 80 | cause,cause 81 | enfin,finally 82 | espère,hope 83 | eau,water 84 | attendez,Wait 85 | parti,left 86 | nouvelle,new 87 | boulot,job 88 | arrêter,Stop 89 | dirait,would say 90 | terre,Earth 91 | compte,account 92 | donne,given 93 | loin,far 94 | fin,end 95 | croire,believe 96 | chérie,sweetheart 97 | gros,large 98 | plutôt,rather 99 | aura,will have 100 | filles,girls 101 | jouer,to play 102 | bureau,office -------------------------------------------------------------------------------- /Projects/Day_31/flash-card-project/images/card_back.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cedoula/100-days-of-code-python/723379860fcadb2d8d3cda8deccb40c1a3dc4adb/Projects/Day_31/flash-card-project/images/card_back.png -------------------------------------------------------------------------------- /Projects/Day_31/flash-card-project/images/card_front.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cedoula/100-days-of-code-python/723379860fcadb2d8d3cda8deccb40c1a3dc4adb/Projects/Day_31/flash-card-project/images/card_front.png -------------------------------------------------------------------------------- /Projects/Day_31/flash-card-project/images/right.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cedoula/100-days-of-code-python/723379860fcadb2d8d3cda8deccb40c1a3dc4adb/Projects/Day_31/flash-card-project/images/right.png -------------------------------------------------------------------------------- /Projects/Day_31/flash-card-project/images/wrong.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cedoula/100-days-of-code-python/723379860fcadb2d8d3cda8deccb40c1a3dc4adb/Projects/Day_31/flash-card-project/images/wrong.png -------------------------------------------------------------------------------- /Projects/Day_32/Birthday-Wisher/birthdays.csv: -------------------------------------------------------------------------------- 1 | name,email,year,month,day 2 | Cedric,cedric.vanza@yahoo.com,1961,3,29 3 | Susan,cedric.lutonda@gmail.com,1983,4,30 4 | Henry,cedric.lutonda@gmail.com,1990,3,29 5 | Risty,cedric.vanza@yahoo.com,1995,11,15 -------------------------------------------------------------------------------- /Projects/Day_32/Birthday-Wisher/letter_templates/letter_1.txt: -------------------------------------------------------------------------------- 1 | Dear [NAME], 2 | 3 | Happy birthday! 4 | 5 | All the best for the year! 6 | 7 | Cedric -------------------------------------------------------------------------------- /Projects/Day_32/Birthday-Wisher/letter_templates/letter_2.txt: -------------------------------------------------------------------------------- 1 | Hey [NAME], 2 | 3 | Happy birthday! Have a wonderful time today and eat lots of cake! 4 | 5 | Lots of love, 6 | 7 | Cedric -------------------------------------------------------------------------------- /Projects/Day_32/Birthday-Wisher/letter_templates/letter_3.txt: -------------------------------------------------------------------------------- 1 | Dear [NAME], 2 | 3 | It's your birthday! Have a great day! 4 | 5 | All my love, 6 | 7 | Cedric -------------------------------------------------------------------------------- /Projects/Day_32/Birthday-Wisher/main.py: -------------------------------------------------------------------------------- 1 | ##################### Steps ###################### 2 | 3 | # 1. Update the birthdays.csv 4 | 5 | # 2. Check if today matches a birthday in the birthdays.csv 6 | 7 | # 3. If step 2 is true, pick a random letter from letter templates and replace the [NAME] with the person's actual name from birthdays.csv 8 | 9 | # 4. Send the letter generated in step 3 to that person's email address. 10 | 11 | import pandas as pd 12 | import datetime as dt 13 | from random import choice 14 | import smtplib 15 | import os,sys,inspect 16 | currentdir = os.path.dirname(os.path.abspath(inspect.getfile(inspect.currentframe()))) 17 | parentdir = os.path.dirname(currentdir) 18 | sys.path.insert(0,parentdir) 19 | 20 | from email_info import my_email, password 21 | 22 | #Import birthday csv into dataframe 23 | birthdays_df = pd.read_csv("birthdays.csv") 24 | 25 | def send_birthday_email(df): 26 | #Check if birthday is today 27 | if df["month"] == dt.datetime.now().month and df["day"] == dt.datetime.now().day: 28 | #Pick the letter and update it with the person's name 29 | with open(f"letter_templates/{choice(['letter_1.txt', 'letter_2.txt', 'letter_3.txt'])}", "r") as file: 30 | letter = file.read() 31 | letter = letter.replace("[NAME]", df["name"]) 32 | 33 | #Send email 34 | with smtplib.SMTP("smtp.gmail.com", port=587) as connection: 35 | #Encrypt email 36 | connection.starttls() 37 | connection.login(user=my_email, password=password) 38 | connection.sendmail( 39 | from_addr=my_email, 40 | to_addrs=df["email"], 41 | msg=f"Subject:It's your Birthday!!!!\n\n{letter}" 42 | ) 43 | print(f"Birthday email sent to {df['name']}.") 44 | birthdays_df.apply(send_birthday_email, axis=1) 45 | -------------------------------------------------------------------------------- /Projects/Day_32/Motivational-Quotes/main.py: -------------------------------------------------------------------------------- 1 | import datetime as dt 2 | from random import choice 3 | import smtplib 4 | import os,sys,inspect 5 | currentdir = os.path.dirname(os.path.abspath(inspect.getfile(inspect.currentframe()))) 6 | parentdir = os.path.dirname(currentdir) 7 | sys.path.insert(0,parentdir) 8 | 9 | from email_info import my_email, password 10 | 11 | with open("quotes.txt", "r") as quotes_file: 12 | quotes = quotes_file.readlines() 13 | 14 | now = dt.datetime.now() 15 | current_day = now.weekday() 16 | if current_day == 0: 17 | with smtplib.SMTP("smtp.gmail.com", port=587) as connection: 18 | #Encrypt email 19 | connection.starttls() 20 | connection.login(user=my_email, password=password) 21 | connection.sendmail( 22 | from_addr=my_email, 23 | to_addrs="cedric.lutonda@gmail.com", 24 | msg=f"Subject:Motivational Quote\n\n{choice(quotes)}" 25 | ) 26 | print("Email sent.") 27 | 28 | -------------------------------------------------------------------------------- /Projects/Day_33/issoverhead/config.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cedoula/100-days-of-code-python/723379860fcadb2d8d3cda8deccb40c1a3dc4adb/Projects/Day_33/issoverhead/config.py -------------------------------------------------------------------------------- /Projects/Day_33/issoverhead/main.py: -------------------------------------------------------------------------------- 1 | import requests 2 | from datetime import datetime 3 | import smtplib 4 | from email_info import my_email, password 5 | import threading 6 | 7 | MY_LAT = 32.749901 # Your latitude 8 | MY_LONG = -97.330338 # Your longitude 9 | 10 | response = requests.get(url="http://api.open-notify.org/iss-now.json") 11 | response.raise_for_status() 12 | data = response.json() 13 | 14 | iss_latitude = float(data["iss_position"]["latitude"]) 15 | iss_longitude = float(data["iss_position"]["longitude"]) 16 | 17 | #Your position is within +5 or -5 degrees of the ISS position. 18 | 19 | 20 | parameters = { 21 | "lat": MY_LAT, 22 | "lng": MY_LONG, 23 | "formatted": 0, 24 | } 25 | 26 | response = requests.get("https://api.sunrise-sunset.org/json", params=parameters) 27 | response.raise_for_status() 28 | data = response.json() 29 | sunrise = int(data["results"]["sunrise"].split("T")[1].split(":")[0]) 30 | sunset = int(data["results"]["sunset"].split("T")[1].split(":")[0]) 31 | 32 | time_now = datetime.now() 33 | 34 | #If the ISS is close to my current position 35 | # and it is currently dark 36 | # Then send me an email to tell me to look up. 37 | # BONUS: run the code every 60 seconds. 38 | def check_iss_position(): 39 | threading.Timer(60.0, check_iss_position).start() # called every minute 40 | #If ISS is overhead and if it is dark 41 | if MY_LAT - 5 <= iss_latitude <= MY_LAT + 5 and MY_LONG - 5 <= iss_longitude <= MY_LONG + 5 and sunset <= time_now.hour < sunrise: 42 | #Send email 43 | with smtplib.SMTP("smtp.gmail.com", port=587) as connection: 44 | connection.starttls() 45 | connection.login(user=my_email, password=password) 46 | connection.sendmail( 47 | from_addr=my_email, 48 | to_addrs=my_email, 49 | msg="Subject:ISS in sight!!!!\n\nLook Up!" 50 | ) 51 | print("App running!") 52 | check_iss_position() 53 | 54 | 55 | -------------------------------------------------------------------------------- /Projects/Day_33/kanye-quotes/background.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cedoula/100-days-of-code-python/723379860fcadb2d8d3cda8deccb40c1a3dc4adb/Projects/Day_33/kanye-quotes/background.png -------------------------------------------------------------------------------- /Projects/Day_33/kanye-quotes/kanye.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cedoula/100-days-of-code-python/723379860fcadb2d8d3cda8deccb40c1a3dc4adb/Projects/Day_33/kanye-quotes/kanye.png -------------------------------------------------------------------------------- /Projects/Day_33/kanye-quotes/main.py: -------------------------------------------------------------------------------- 1 | from tkinter import * 2 | import requests 3 | 4 | def get_quote(): 5 | response = requests.get(url="https://api.kanye.rest") 6 | response.raise_for_status() 7 | quote = response.json()["quote"] 8 | canvas.itemconfig(quote_text, text=quote) 9 | return quote 10 | 11 | 12 | 13 | window = Tk() 14 | window.title("Kanye Says...") 15 | window.config(padx=50, pady=50) 16 | 17 | canvas = Canvas(width=300, height=414) 18 | background_img = PhotoImage(file="background.png") 19 | canvas.create_image(150, 207, image=background_img) 20 | quote_text = canvas.create_text(150, 207, text="Kanye Quote Goes HERE", width=250, font=("Arial", 30, "bold"), fill="white") 21 | canvas.grid(row=0, column=0) 22 | 23 | kanye_img = PhotoImage(file="kanye.png") 24 | kanye_button = Button(image=kanye_img, highlightthickness=0, command=get_quote) 25 | kanye_button.grid(row=1, column=0) 26 | 27 | 28 | 29 | window.mainloop() -------------------------------------------------------------------------------- /Projects/Day_34/quizzler-app/data.py: -------------------------------------------------------------------------------- 1 | import requests 2 | 3 | parameters = { 4 | "amount": 10, 5 | "type": "boolean" 6 | } 7 | 8 | response = requests.get(url="https://opentdb.com/api.php", params=parameters) 9 | response.raise_for_status() 10 | 11 | question_data = response.json()["results"] 12 | -------------------------------------------------------------------------------- /Projects/Day_34/quizzler-app/images/false.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cedoula/100-days-of-code-python/723379860fcadb2d8d3cda8deccb40c1a3dc4adb/Projects/Day_34/quizzler-app/images/false.png -------------------------------------------------------------------------------- /Projects/Day_34/quizzler-app/images/true.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cedoula/100-days-of-code-python/723379860fcadb2d8d3cda8deccb40c1a3dc4adb/Projects/Day_34/quizzler-app/images/true.png -------------------------------------------------------------------------------- /Projects/Day_34/quizzler-app/main.py: -------------------------------------------------------------------------------- 1 | from question_model import Question 2 | from data import question_data 3 | from quiz_brain import QuizBrain 4 | from ui import QuizInterface 5 | 6 | question_bank = [] 7 | for question in question_data: 8 | question_text = question["question"] 9 | question_answer = question["correct_answer"] 10 | new_question = Question(question_text, question_answer) 11 | question_bank.append(new_question) 12 | 13 | 14 | quiz = QuizBrain(question_bank) 15 | quiz_ui = QuizInterface(quiz) 16 | 17 | # while quiz.still_has_questions(): 18 | # quiz.next_question() 19 | 20 | print("You've completed the quiz") 21 | print(f"Your final score was: {quiz.score}/{quiz.question_number}") 22 | -------------------------------------------------------------------------------- /Projects/Day_34/quizzler-app/question_model.py: -------------------------------------------------------------------------------- 1 | class Question: 2 | 3 | def __init__(self, q_text, q_answer): 4 | self.text = q_text 5 | self.answer = q_answer 6 | -------------------------------------------------------------------------------- /Projects/Day_34/quizzler-app/quiz_brain.py: -------------------------------------------------------------------------------- 1 | import html 2 | 3 | class QuizBrain: 4 | 5 | def __init__(self, q_list): 6 | self.question_number = 0 7 | self.score = 0 8 | self.question_list = q_list 9 | self.current_question = None 10 | 11 | def still_has_questions(self): 12 | return self.question_number < len(self.question_list) 13 | 14 | def next_question(self): 15 | self.current_question = self.question_list[self.question_number] 16 | self.question_number += 1 17 | q_text = html.unescape(self.current_question.text) 18 | return f"Q.{self.question_number}: {q_text}" 19 | # user_answer = input(f"Q.{self.question_number}: {q_text} (True/False): ") 20 | # self.check_answer(user_answer) 21 | 22 | def check_answer(self, user_answer): 23 | correct_answer = self.current_question.answer 24 | if user_answer.lower() == correct_answer.lower(): 25 | self.score += 1 26 | return True 27 | else: 28 | return False 29 | 30 | -------------------------------------------------------------------------------- /Projects/Day_34/quizzler-app/ui.py: -------------------------------------------------------------------------------- 1 | from tkinter import * 2 | 3 | THEME_COLOR = "#375362" 4 | 5 | class QuizInterface: 6 | def __init__(self, quiz_brain): 7 | self.quiz = quiz_brain 8 | 9 | self.window = Tk() 10 | self.window.title("Quizzler") 11 | self.window.config(padx=20, pady=20, bg=THEME_COLOR) 12 | 13 | self.score_label = Label() 14 | self.score_label.config(text="Score: 0", bg=THEME_COLOR, fg="white") 15 | self.score_label.grid(column=1, row=0) 16 | 17 | self.canvas = Canvas(width=300, height=250) 18 | self.canvas.grid(column=0, row=1, columnspan=2, pady=50) 19 | self.question = self.canvas.create_text( 20 | 150, 21 | 125, 22 | width=280, 23 | text="Hello", 24 | fill=THEME_COLOR, 25 | font=("Arial", 20, "italic") 26 | ) 27 | 28 | TRUE_IMG = PhotoImage(file="images/true.png") 29 | FALSE_IMG = PhotoImage(file="images/false.png") 30 | self.true_button = Button(image=TRUE_IMG, highlightthickness=0, command=self.true_pressed) 31 | self.true_button.grid(column=0, row=2) 32 | self.false_button = Button(image=FALSE_IMG, highlightthickness=0, command=self.false_pressed) 33 | self.false_button.grid(column=1, row=2) 34 | 35 | self.get_next_question() 36 | 37 | self.window.mainloop() 38 | 39 | def get_next_question(self): 40 | self.canvas.config(bg="white") 41 | if self.quiz.still_has_questions(): 42 | self.score_label.config(text=f"Score: {self.quiz.score}") 43 | q_text = self.quiz.next_question() 44 | self.canvas.itemconfig(self.question, text=q_text) 45 | else: 46 | self.canvas.itemconfig(self.question, text="'You've reached the end of the quiz.") 47 | self.true_button.config(state="disabled") 48 | self.false_button.config(state="disabled") 49 | 50 | def true_pressed(self): 51 | self.give_feedback(self.quiz.check_answer("True")) 52 | 53 | def false_pressed(self): 54 | self.give_feedback(self.quiz.check_answer("False")) 55 | 56 | def give_feedback(self, is_right): 57 | if is_right: 58 | self.canvas.config(bg="green") 59 | else: 60 | self.canvas.config(bg="red") 61 | self.window.after(ms=1000, func=self.get_next_question) 62 | -------------------------------------------------------------------------------- /Projects/Day_35/main.py: -------------------------------------------------------------------------------- 1 | import requests 2 | from key import weather_api_key, account_sid, auth_token 3 | from twilio.rest import Client 4 | 5 | 6 | MY_LAT = 32.626827 7 | MY_LNG = -97.401011 8 | weather_api_endpoint = "https://api.openweathermap.org/data/2.5/onecall" 9 | parameters = { 10 | "lat": MY_LAT, 11 | "lon": MY_LNG, 12 | "appid": weather_api_key, 13 | "exclude": "current,minutely,daily" 14 | } 15 | 16 | response = requests.get(url=weather_api_endpoint, params=parameters) 17 | response.raise_for_status() 18 | weather_data = response.json() 19 | will_rain = False 20 | 21 | for i in range(12): 22 | if int(weather_data["hourly"][i]["weather"][0]["id"]) < 700: 23 | will_rain = True 24 | if will_rain: 25 | #Twilio client 26 | client = Client(account_sid, auth_token) 27 | 28 | message = client.messages.create( 29 | body="It's raining today. Remember to bring an ☔️.", 30 | from_='+16788418412', 31 | to='+18324665667' 32 | ) 33 | print(message.status) 34 | print("rain") -------------------------------------------------------------------------------- /Projects/Day_36/stock-news/.project_config: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cedoula/100-days-of-code-python/723379860fcadb2d8d3cda8deccb40c1a3dc4adb/Projects/Day_36/stock-news/.project_config -------------------------------------------------------------------------------- /Projects/Day_37/habit-tracker/main.py: -------------------------------------------------------------------------------- 1 | import requests 2 | import datetime as dt 3 | from keys import TOKEN 4 | 5 | USER_NAME = "cedoula" 6 | GRAPH_ID = "graph1" 7 | date = dt.datetime.now().strftime('%Y%m%d') 8 | 9 | pixela_endpoint = "https://pixe.la/v1/users" 10 | user_params = { 11 | "token": TOKEN, 12 | "username": USER_NAME, 13 | "agreeTermsOfService": "yes", 14 | "notMinor": "yes" 15 | } 16 | 17 | #response = requests.post(url=pixela_endpoint, json=user_params) 18 | #print(response.text) 19 | 20 | graph_endpoint = f"{pixela_endpoint}/{USER_NAME}/graphs" 21 | 22 | graph_config = { 23 | "id": GRAPH_ID, 24 | "name": "Workout Tracker", 25 | "unit": "Hours", 26 | "type": "float", 27 | "color": "ajisai" 28 | } 29 | 30 | headers = { 31 | "X-USER-TOKEN": TOKEN 32 | } 33 | #response = requests.post(url=graph_endpoint, json=graph_config, headers=headers) 34 | #print(response.text) 35 | 36 | my_graph_endpoint = f"{graph_endpoint}/{GRAPH_ID}" 37 | 38 | pixel_params = { 39 | "date": date, 40 | "quantity": input("How many hours did you workout today? ") 41 | } 42 | 43 | #response = requests.post(url=my_graph_endpoint, json=pixel_params, headers=headers) 44 | #print(response.text) 45 | 46 | pixel_update_endpoint = f"{my_graph_endpoint}/{date}" 47 | 48 | pixel_update_params = { 49 | "quantity": "2" 50 | } 51 | 52 | # response = requests.put(url=pixel_update_endpoint, json=pixel_update_params, headers=headers) 53 | # print(response.text) 54 | 55 | response = requests.delete(url=pixel_update_endpoint, headers=headers) 56 | print(response.text) -------------------------------------------------------------------------------- /Projects/Day_38/workout-tracker/main.py: -------------------------------------------------------------------------------- 1 | import requests 2 | from keys import API_KEY, APP_ID, sheety_endpoint, TOKEN 3 | import datetime as dt 4 | 5 | GENDER = "male" 6 | WEIGHT_KG = 80 7 | HEIGHT_CM = 172 8 | AGE = 37 9 | 10 | headers = { 11 | "x-app-id": APP_ID, 12 | "x-app-key": API_KEY, 13 | } 14 | 15 | #Bearer Token Authentication 16 | bearer_headers = { 17 | "Authorization": TOKEN 18 | } 19 | 20 | 21 | nutri_exercice_endpoint = "https://trackapi.nutritionix.com/v2/natural/exercise" 22 | 23 | 24 | input_data = input("Tell me what exercises you did: ") 25 | 26 | query_params = { 27 | "query": input_data, 28 | "gender": GENDER, 29 | "weight_kg": WEIGHT_KG, 30 | "height_cm": HEIGHT_CM, 31 | "age": AGE 32 | } 33 | response = requests.post(url=nutri_exercice_endpoint, json=query_params, headers=headers) 34 | result = response.json() 35 | 36 | print(result) 37 | 38 | today_date = dt.datetime.now().strftime("%d/%m/%Y") 39 | now_time = dt.datetime.now().strftime("%X") 40 | 41 | for exercise in result["exercises"]: 42 | sheet_inputs = { 43 | "workout": { 44 | "date": today_date, 45 | "time": now_time, 46 | "exercise": exercise["name"].title(), 47 | "duration": exercise["duration_min"], 48 | "calories": exercise["nf_calories"] 49 | } 50 | } 51 | 52 | sheet_response = requests.post(sheety_endpoint, json=sheet_inputs, headers=bearer_headers) 53 | 54 | print(sheet_response.text) 55 | 56 | -------------------------------------------------------------------------------- /Projects/Day_39/flight-deals/data_manager.py: -------------------------------------------------------------------------------- 1 | import requests 2 | from keys import sheety_endpoint, TOKEN 3 | from pprint import pprint 4 | 5 | bearer_headers = { 6 | "Authorization": TOKEN 7 | } 8 | 9 | class DataManager: 10 | #This class is responsible for talking to the Google Sheet. 11 | def __init__(self ): 12 | self.destination_data = {} 13 | 14 | def get_destination_data(self): 15 | sheet_response = requests.get(sheety_endpoint, headers=bearer_headers) 16 | data = sheet_response.json() 17 | self.destination_data = data["prices"] 18 | return self.destination_data 19 | 20 | def update_iata_code(self): 21 | for destination in self.destination_data: 22 | sheet_params = { 23 | "price": { 24 | "iataCode": destination["iataCode"] 25 | } 26 | } 27 | response = requests.put(f"{sheety_endpoint}/{destination['id']}", json=sheet_params, headers=bearer_headers) 28 | print(response.text) -------------------------------------------------------------------------------- /Projects/Day_39/flight-deals/flight_data.py: -------------------------------------------------------------------------------- 1 | import datetime as dt 2 | 3 | class FlightData: 4 | #This class is responsible for structuring the flight data. 5 | def __init__(self, price, departure_city, origin_airport, destination_city, destination_airport, out_date, return_date): 6 | self.price = price 7 | self.departure_city = departure_city 8 | self.destination_city = destination_city 9 | self.departure_airport_code = origin_airport 10 | self.destination_airport_code = destination_airport 11 | self.out_date = out_date 12 | self.return_date = return_date -------------------------------------------------------------------------------- /Projects/Day_39/flight-deals/flight_search.py: -------------------------------------------------------------------------------- 1 | import requests 2 | import datetime as dt 3 | from keys import KIWI_API_KEY 4 | from flight_data import FlightData 5 | 6 | TEQUILA_KIWI_ENDPOINT = "https://tequila-api.kiwi.com" 7 | 8 | HEADERS = {"apikey": KIWI_API_KEY} 9 | 10 | class FlightSearch: 11 | #This class is responsible for talking to the Flight Search API. 12 | # def __init__(self, city): 13 | # self.city = city 14 | 15 | def get_iata_code(self, city): 16 | global HEADERS 17 | search_params = { 18 | "term": city 19 | } 20 | response = requests.get(f"{TEQUILA_KIWI_ENDPOINT}/locations/query", params=search_params, headers=HEADERS) 21 | data = response.json() 22 | 23 | return data["locations"][0]["code"] 24 | 25 | def search_flights(self, origin_city_code, destination_city_code): 26 | global HEADERS 27 | flight_search_params = { 28 | "fly_from": origin_city_code, 29 | "fly_to": destination_city_code, 30 | "date_from": (dt.datetime.now() + dt.timedelta(days=1)).strftime('%d/%m/%Y'), 31 | "date_to": (dt.datetime.now() + dt.timedelta(days=180)).strftime('%d/%m/%Y'), 32 | "nights_in_dst_from": 7, 33 | "nights_in_dst_to": 28, 34 | "flight_type": "round", 35 | "one_for_city": 1, 36 | "max_stopovers": 1, 37 | "curr": "USD" 38 | } 39 | response = requests.get(f"{TEQUILA_KIWI_ENDPOINT}/v2/search", params=flight_search_params, headers=HEADERS) 40 | try: 41 | data = response.json()["data"][0] 42 | except IndexError: 43 | print(f"No flight found for {destination_city_code}.") 44 | return None 45 | 46 | flight_data = FlightData( 47 | data["price"], 48 | data["route"][0]["cityFrom"], 49 | data["route"][0]["flyFrom"], 50 | data["route"][0]["cityTo"], 51 | data["route"][0]["flyTo"], 52 | data["route"][0]["local_departure"].split("T")[0], 53 | data["route"][1]["local_departure"].split("T")[0] 54 | ) 55 | 56 | print(f"{flight_data.destination_city}: ${flight_data.price}") 57 | return flight_data 58 | -------------------------------------------------------------------------------- /Projects/Day_39/flight-deals/main.py: -------------------------------------------------------------------------------- 1 | #This file will need to use the DataManager,FlightSearch, FlightData, NotificationManager classes to achieve the program requirements. 2 | from data_manager import DataManager 3 | from pprint import pprint 4 | from flight_search import FlightSearch 5 | from twilio.rest import Client 6 | from keys import account_sid, auth_token, TWILIO_NUMBER, MY_NUMBER 7 | 8 | ORIGIN_CITY_CODE = "DFW" 9 | ORIGIN_CITY = "Dallas" 10 | 11 | data_manager = DataManager() 12 | sheet_data = data_manager.get_destination_data() 13 | flight_search = FlightSearch() 14 | 15 | #Check if iata code is missing in first city, if yes get the code and update the sheet 16 | if sheet_data[0]["iataCode"] == '': 17 | for data in sheet_data: 18 | data["iataCode"] = flight_search.get_iata_code(data["city"]) 19 | data_manager.destination_data = sheet_data 20 | data_manager.update_iata_code() 21 | 22 | for destination in sheet_data: 23 | flight = flight_search.search_flights(ORIGIN_CITY_CODE, destination["iataCode"]) 24 | if flight != None: 25 | if flight.price < destination["lowestPrice"]: 26 | #Twilio client 27 | client = Client(account_sid, auth_token) 28 | 29 | message = client.messages.create( 30 | body=f"""\n 31 | Low price alert!!!\n 32 | Only ${flight.price} to fly from {flight.departure_city}-{flight.departure_airport_code} to {flight.destination_city}-{flight.destination_airport_code},\n 33 | from {flight.out_date} to {flight.return_date}. 34 | """, 35 | from_= TWILIO_NUMBER, 36 | to= MY_NUMBER 37 | ) 38 | print(message.status) -------------------------------------------------------------------------------- /Projects/Day_39/flight-deals/notification_manager.py: -------------------------------------------------------------------------------- 1 | class NotificationManager: 2 | #This class is responsible for sending notifications with the deal flight details. 3 | pass -------------------------------------------------------------------------------- /Projects/Day_40/flight-deals/data_manager.py: -------------------------------------------------------------------------------- 1 | import requests 2 | from keys import sheety_endpoint, TOKEN, sheety_users_endpoint 3 | from pprint import pprint 4 | 5 | bearer_headers = { 6 | "Authorization": TOKEN 7 | } 8 | 9 | class DataManager: 10 | #This class is responsible for talking to the Google Sheet. 11 | def __init__(self ): 12 | self.destination_data = {} 13 | 14 | def get_destination_data(self): 15 | sheet_response = requests.get(sheety_endpoint, headers=bearer_headers) 16 | data = sheet_response.json() 17 | self.destination_data = data["prices"] 18 | return self.destination_data 19 | 20 | def update_iata_code(self): 21 | for destination in self.destination_data: 22 | sheet_params = { 23 | "price": { 24 | "iataCode": destination["iataCode"] 25 | } 26 | } 27 | response = requests.put(f"{sheety_endpoint}/{destination['id']}", json=sheet_params, headers=bearer_headers) 28 | print(response.text) 29 | 30 | def get_customer_emails(self): 31 | customers_endpoint = sheety_users_endpoint 32 | response = requests.get(customers_endpoint, headers=bearer_headers) 33 | data = response.json() 34 | self.customer_data = data['users'] 35 | return self.customer_data -------------------------------------------------------------------------------- /Projects/Day_40/flight-deals/flight_data.py: -------------------------------------------------------------------------------- 1 | import datetime as dt 2 | 3 | class FlightData: 4 | #This class is responsible for structuring the flight data. 5 | def __init__(self, price, departure_city, origin_airport, destination_city, destination_airport, out_date, return_date, stop_overs=0, via_city=""): 6 | self.price = price 7 | self.departure_city = departure_city 8 | self.destination_city = destination_city 9 | self.departure_airport_code = origin_airport 10 | self.destination_airport_code = destination_airport 11 | self.out_date = out_date 12 | self.return_date = return_date 13 | 14 | self.stop_overs = stop_overs 15 | self.via_city = via_city -------------------------------------------------------------------------------- /Projects/Day_40/flight-deals/main.py: -------------------------------------------------------------------------------- 1 | #This file will need to use the DataManager,FlightSearch, FlightData, NotificationManager classes to achieve the program requirements. 2 | from data_manager import DataManager 3 | from pprint import pprint 4 | from flight_search import FlightSearch 5 | from twilio.rest import Client 6 | from keys import account_sid, auth_token, TWILIO_NUMBER, MY_NUMBER 7 | from notification_manager import NotificationManager 8 | 9 | ORIGIN_CITY_CODE = "DFW" 10 | ORIGIN_CITY = "Dallas" 11 | 12 | data_manager = DataManager() 13 | sheet_data = data_manager.get_destination_data() 14 | flight_search = FlightSearch() 15 | notification_manager = NotificationManager() 16 | 17 | #Check if iata code is missing in first city, if yes get the code and update the sheet 18 | if sheet_data[0]["iataCode"] == '': 19 | for data in sheet_data: 20 | data["iataCode"] = flight_search.get_iata_code(data["city"]) 21 | data_manager.destination_data = sheet_data 22 | data_manager.update_iata_code() 23 | 24 | for destination in sheet_data: 25 | flight = flight_search.search_flights(ORIGIN_CITY_CODE, destination["iataCode"]) 26 | if flight != None: 27 | if flight.price < destination["lowestPrice"]: 28 | users = data_manager.get_customer_emails() 29 | emails = [row["email"] for row in users] 30 | names = [row["firstName"] for row in users] 31 | 32 | #Twilio client 33 | client = Client(account_sid, auth_token) 34 | 35 | message = f"Low price alert! Only ${flight.price} to fly from {flight.departure_city}-{flight.departure_airport_code} to {flight.destination_city}-{flight.destination_airport_code}, from {flight.out_date} to {flight.return_date}." 36 | if flight.stop_overs > 0: 37 | message += f"\nFlight has {flight.stop_overs} stop over, via {flight.via_city}." 38 | 39 | link = f"https://www.google.co.uk/flights?hl=en#flt={flight.departure_airport_code}.{flight.destination_airport_code}.{flight.out_date}*{flight.destination_airport_code}.{flight.departure_airport_code}.{flight.return_date}" 40 | notification_manager.send_emails(emails, message, link) -------------------------------------------------------------------------------- /Projects/Day_40/flight-deals/notification_manager.py: -------------------------------------------------------------------------------- 1 | import smtplib 2 | from keys import my_email, password 3 | 4 | class NotificationManager: 5 | #This class is responsible for sending notifications with the deal flight details. 6 | def send_emails(self, emails, message, google_flight_link): 7 | with smtplib.SMTP("smtp.gmail.com", port=587) as connection: 8 | connection.starttls() 9 | connection.login(user=my_email, password=password) 10 | for email in emails: 11 | connection.sendmail( 12 | from_addr=my_email, 13 | to_addrs=email, 14 | msg=f"Subject:New Low Price Flight!\n\n{message}\n{google_flight_link}".encode('utf-8') 15 | ) -------------------------------------------------------------------------------- /Projects/Day_41-43/HTML-Personal_Site/contact.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | Contact Me 9 | 10 | 11 | 12 | 13 |

My Contact Details

14 | 19 |
20 |
21 | 22 |
23 | 24 |
25 |
26 |
27 | 28 |
29 | 30 | 31 | -------------------------------------------------------------------------------- /Projects/Day_41-43/HTML-Personal_Site/css/styles.css: -------------------------------------------------------------------------------- 1 | body { 2 | background-color: rgb(225, 241, 243); 3 | } 4 | 5 | hr { 6 | border-color: grey; 7 | border-style: dotted none none; 8 | border-width: 5px; 9 | width: 5%; 10 | } 11 | 12 | h1, 13 | h3 { 14 | color: #66BFBF; 15 | } -------------------------------------------------------------------------------- /Projects/Day_41-43/HTML-Personal_Site/images/Me_400x400.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cedoula/100-days-of-code-python/723379860fcadb2d8d3cda8deccb40c1a3dc4adb/Projects/Day_41-43/HTML-Personal_Site/images/Me_400x400.jpg -------------------------------------------------------------------------------- /Projects/Day_44/CSS-My_Personal_Site/resources/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cedoula/100-days-of-code-python/723379860fcadb2d8d3cda8deccb40c1a3dc4adb/Projects/Day_44/CSS-My_Personal_Site/resources/favicon.ico -------------------------------------------------------------------------------- /Projects/Day_44/CSS-My_Personal_Site/resources/images/angela.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cedoula/100-days-of-code-python/723379860fcadb2d8d3cda8deccb40c1a3dc4adb/Projects/Day_44/CSS-My_Personal_Site/resources/images/angela.png -------------------------------------------------------------------------------- /Projects/Day_44/CSS-My_Personal_Site/resources/images/chillies.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cedoula/100-days-of-code-python/723379860fcadb2d8d3cda8deccb40c1a3dc4adb/Projects/Day_44/CSS-My_Personal_Site/resources/images/chillies.png -------------------------------------------------------------------------------- /Projects/Day_44/CSS-My_Personal_Site/resources/images/cloud.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cedoula/100-days-of-code-python/723379860fcadb2d8d3cda8deccb40c1a3dc4adb/Projects/Day_44/CSS-My_Personal_Site/resources/images/cloud.png -------------------------------------------------------------------------------- /Projects/Day_44/CSS-My_Personal_Site/resources/images/computer.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cedoula/100-days-of-code-python/723379860fcadb2d8d3cda8deccb40c1a3dc4adb/Projects/Day_44/CSS-My_Personal_Site/resources/images/computer.png -------------------------------------------------------------------------------- /Projects/Day_44/CSS-My_Personal_Site/resources/images/mountain.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cedoula/100-days-of-code-python/723379860fcadb2d8d3cda8deccb40c1a3dc4adb/Projects/Day_44/CSS-My_Personal_Site/resources/images/mountain.png -------------------------------------------------------------------------------- /Projects/Day_45/main.py: -------------------------------------------------------------------------------- 1 | from bs4 import BeautifulSoup 2 | import requests 3 | 4 | # with open("website.html", "r") as file: 5 | # contents = file.read() 6 | 7 | # soup = BeautifulSoup(contents, "html.parser") 8 | 9 | # #print(soup.title) 10 | # #print(soup.title.string) 11 | 12 | # all_anchor_tags = soup.find_all(name="a") 13 | 14 | # #for tag in all_anchor_tags: 15 | # #print(tag.getText()) 16 | # #print(tag.get("href")) 17 | 18 | # #heading = soup.find(name="h1", id="name") 19 | # #print(heading) 20 | 21 | # #section_heading = soup.find(name="h3", class_="heading") 22 | # #print(section_heading) 23 | 24 | # company_url = soup.select_one(selector="p a") 25 | # print(company_url) 26 | 27 | # response = requests.get("https://news.ycombinator.com/news") 28 | 29 | # yc_web_page = response.text 30 | 31 | # soup = BeautifulSoup(yc_web_page, "html.parser") 32 | 33 | # print(soup.title) 34 | 35 | # articles = soup.find_all(name="a", class_="storylink") 36 | # article_texts = [] 37 | # article_links = [] 38 | # for article_tag in articles: 39 | # text = article_tag.getText() 40 | # article_texts.append(text) 41 | 42 | # link = article_tag.get("href") 43 | # article_links.append(link) 44 | 45 | 46 | # article_upvotes = [int(score.getText().split()[0]) for score in soup.find_all(name="span", class_="score")] 47 | 48 | # #print(article_texts) 49 | # #print(article_links) 50 | # print(article_upvotes) 51 | 52 | # #print(article_upvotes[0].split()[0]) 53 | 54 | # index_max = article_upvotes.index(max(article_upvotes)) 55 | # print(article_texts[index_max]) 56 | # print(article_links[index_max]) 57 | 58 | URL = "https://www.empireonline.com/movies/features/best-movies-2/" 59 | response = requests.get(URL) 60 | empire_web_page_html = response.text 61 | 62 | soup = BeautifulSoup(empire_web_page_html, "html.parser") 63 | 64 | top_movies = soup.find_all(name="h3", class_="title") 65 | 66 | 67 | movie_titles = [movie.getText() for movie in top_movies] 68 | 69 | movies = movie_titles[::-1] 70 | 71 | with open("list_top_100_movies.txt", "w") as file: 72 | for movie in movies: 73 | file.write(f"{movie}\n") -------------------------------------------------------------------------------- /Projects/Day_46/main.py: -------------------------------------------------------------------------------- 1 | from bs4 import BeautifulSoup 2 | import requests 3 | import spotipy 4 | from keys import SPOTIFY_CLIENT_ID, SPOTIFY_CLIENT_SECRET 5 | from spotipy.oauth2 import SpotifyOAuth 6 | 7 | 8 | BILLBOARD_URL = "https://www.billboard.com/charts/hot-100/" 9 | SPOTIFY_SEARCH_ENDPOINT = "https://api.spotify.com/v1/search" 10 | 11 | date = input("Which year do you want to travel to? Type the date in this format YYYY-MM-DD: ") 12 | 13 | url = BILLBOARD_URL + date 14 | response = requests.get(url) 15 | billboard_page_html = response.text 16 | 17 | soup = BeautifulSoup(billboard_page_html, "html.parser") 18 | 19 | list_songs = soup.find_all(name="span", class_="chart-element__information__song text--truncate color--primary") 20 | 21 | songs = [song.getText() for song in list_songs] 22 | 23 | sp = spotipy.Spotify(auth_manager=SpotifyOAuth( 24 | scope="playlist-modify-private", 25 | client_id=SPOTIFY_CLIENT_ID, 26 | client_secret=SPOTIFY_CLIENT_SECRET, 27 | redirect_uri="http://example.com", 28 | show_dialog=True, 29 | cache_path="token.txt" 30 | ) 31 | ) 32 | 33 | user_id = sp.current_user()["id"] 34 | song_uris = [] 35 | 36 | for song in songs: 37 | result = sp.search(q=f"track:{song} year:{date[:4]}", type="track") 38 | #print(result) 39 | try: 40 | uri = result["tracks"]["items"][0]["uri"] 41 | song_uris.append(uri) 42 | except IndexError: 43 | print(f"{song} doesn't exist in Spotify. Skipped.") 44 | 45 | playlist = sp.user_playlist_create(user=user_id, name=f"{date} Billboard 100", public=False) 46 | #print(playlist) 47 | 48 | sp.playlist_add_items(playlist_id=playlist["id"], items=song_uris) -------------------------------------------------------------------------------- /Projects/Day_49/LEGO_Analysis/assets/bricks.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cedoula/100-days-of-code-python/723379860fcadb2d8d3cda8deccb40c1a3dc4adb/Projects/Day_49/LEGO_Analysis/assets/bricks.jpg -------------------------------------------------------------------------------- /Projects/Day_49/LEGO_Analysis/assets/lego_sets.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cedoula/100-days-of-code-python/723379860fcadb2d8d3cda8deccb40c1a3dc4adb/Projects/Day_49/LEGO_Analysis/assets/lego_sets.png -------------------------------------------------------------------------------- /Projects/Day_49/LEGO_Analysis/assets/lego_themes.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cedoula/100-days-of-code-python/723379860fcadb2d8d3cda8deccb40c1a3dc4adb/Projects/Day_49/LEGO_Analysis/assets/lego_themes.png -------------------------------------------------------------------------------- /Projects/Day_49/LEGO_Analysis/assets/rebrickable_schema.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cedoula/100-days-of-code-python/723379860fcadb2d8d3cda8deccb40c1a3dc4adb/Projects/Day_49/LEGO_Analysis/assets/rebrickable_schema.png -------------------------------------------------------------------------------- /Projects/Day_50/Google_Trends_Data_Viz/Bitcoin Search Trend.csv: -------------------------------------------------------------------------------- 1 | MONTH,BTC_NEWS_SEARCH 2 | 2014-09,5 3 | 2014-10,4 4 | 2014-11,4 5 | 2014-12,4 6 | 2015-01,5 7 | 2015-02,4 8 | 2015-03,6 9 | 2015-04,3 10 | 2015-05,3 11 | 2015-06,3 12 | 2015-07,4 13 | 2015-08,3 14 | 2015-09,3 15 | 2015-10,3 16 | 2015-11,4 17 | 2015-12,5 18 | 2016-01,4 19 | 2016-02,4 20 | 2016-03,5 21 | 2016-04,3 22 | 2016-05,6 23 | 2016-06,6 24 | 2016-07,6 25 | 2016-08,6 26 | 2016-09,5 27 | 2016-10,5 28 | 2016-11,5 29 | 2016-12,6 30 | 2017-01,9 31 | 2017-02,8 32 | 2017-03,12 33 | 2017-04,5 34 | 2017-05,15 35 | 2017-06,13 36 | 2017-07,14 37 | 2017-08,22 38 | 2017-09,26 39 | 2017-10,25 40 | 2017-11,50 41 | 2017-12,100 42 | 2018-01,62 43 | 2018-02,52 44 | 2018-03,30 45 | 2018-04,25 46 | 2018-05,21 47 | 2018-06,18 48 | 2018-07,18 49 | 2018-08,20 50 | 2018-09,17 51 | 2018-10,14 52 | 2018-11,23 53 | 2018-12,19 54 | 2019-01,15 55 | 2019-02,15 56 | 2019-03,14 57 | 2019-04,19 58 | 2019-05,26 59 | 2019-06,26 60 | 2019-07,21 61 | 2019-08,17 62 | 2019-09,15 63 | 2019-10,16 64 | 2019-11,14 65 | 2019-12,14 66 | 2020-01,16 67 | 2020-02,18 68 | 2020-03,15 69 | 2020-04,15 70 | 2020-05,22 71 | 2020-06,13 72 | 2020-07,14 73 | 2020-08,16 74 | 2020-09,13 -------------------------------------------------------------------------------- /Projects/Day_51/Google_Play_Store_Project/Paid Apps Price Distribution by Category.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cedoula/100-days-of-code-python/723379860fcadb2d8d3cda8deccb40c1a3dc4adb/Projects/Day_51/Google_Play_Store_Project/Paid Apps Price Distribution by Category.png -------------------------------------------------------------------------------- /Projects/Day_52/Computation_with_NumPy/yummy_macarons.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cedoula/100-days-of-code-python/723379860fcadb2d8d3cda8deccb40c1a3dc4adb/Projects/Day_52/Computation_with_NumPy/yummy_macarons.jpg -------------------------------------------------------------------------------- /Projects/Day_55/Dr_Semmelweis_Analysis/annual_deaths_by_clinic.csv: -------------------------------------------------------------------------------- 1 | year,births,deaths,clinic 2 | 1841,3036,237,clinic 1 3 | 1842,3287,518,clinic 1 4 | 1843,3060,274,clinic 1 5 | 1844,3157,260,clinic 1 6 | 1845,3492,241,clinic 1 7 | 1846,4010,459,clinic 1 8 | 1841,2442,86,clinic 2 9 | 1842,2659,202,clinic 2 10 | 1843,2739,164,clinic 2 11 | 1844,2956,68,clinic 2 12 | 1845,3241,66,clinic 2 13 | 1846,3754,105,clinic 2 14 | -------------------------------------------------------------------------------- /Projects/Day_55/Dr_Semmelweis_Analysis/monthly_deaths.csv: -------------------------------------------------------------------------------- 1 | date,births,deaths 2 | 1841-01-01,254,37 3 | 1841-02-01,239,18 4 | 1841-03-01,277,12 5 | 1841-04-01,255,4 6 | 1841-05-01,255,2 7 | 1841-06-01,200,10 8 | 1841-07-01,190,16 9 | 1841-08-01,222,3 10 | 1841-09-01,213,4 11 | 1841-10-01,236,26 12 | 1841-11-01,235,53 13 | 1842-01-01,307,64 14 | 1842-02-01,311,38 15 | 1842-03-01,264,27 16 | 1842-04-01,242,26 17 | 1842-05-01,310,10 18 | 1842-06-01,273,18 19 | 1842-07-01,231,48 20 | 1842-08-01,216,55 21 | 1842-09-01,223,41 22 | 1842-10-01,242,71 23 | 1842-11-01,209,48 24 | 1842-12-01,239,75 25 | 1843-01-01,272,52 26 | 1843-02-01,263,42 27 | 1843-03-01,266,33 28 | 1843-04-01,285,34 29 | 1843-05-01,246,15 30 | 1843-06-01,196,8 31 | 1843-07-01,191,1 32 | 1843-08-01,193,3 33 | 1843-09-01,221,5 34 | 1843-10-01,250,44 35 | 1843-11-01,252,18 36 | 1843-12-01,236,19 37 | 1844-01-01,244,37 38 | 1844-02-01,257,29 39 | 1844-03-01,276,47 40 | 1844-04-01,208,36 41 | 1844-05-01,240,14 42 | 1844-06-01,224,6 43 | 1844-07-01,206,9 44 | 1844-08-01,269,17 45 | 1844-09-01,245,3 46 | 1844-10-01,248,8 47 | 1844-11-01,245,27 48 | 1844-12-01,256,27 49 | 1845-01-01,303,23 50 | 1845-02-01,274,13 51 | 1845-03-01,292,13 52 | 1845-04-01,260,11 53 | 1845-05-01,296,13 54 | 1845-06-01,280,20 55 | 1845-07-01,245,15 56 | 1845-08-01,251,9 57 | 1845-09-01,237,25 58 | 1845-10-01,283,42 59 | 1845-11-01,265,29 60 | 1845-12-01,267,28 61 | 1846-01-01,336,45 62 | 1846-02-01,293,53 63 | 1846-03-01,311,48 64 | 1846-04-01,253,48 65 | 1846-05-01,305,41 66 | 1846-06-01,266,27 67 | 1846-07-01,252,33 68 | 1846-08-01,216,39 69 | 1846-09-01,271,39 70 | 1846-10-01,254,38 71 | 1846-11-01,297,32 72 | 1846-12-01,298,16 73 | 1847-01-01,311,10 74 | 1847-02-01,312,6 75 | 1847-03-01,305,11 76 | 1847-04-01,312,57 77 | 1847-05-01,294,36 78 | 1847-06-01,268,6 79 | 1847-07-01,250,3 80 | 1847-08-01,264,5 81 | 1847-09-01,262,12 82 | 1847-10-01,278,11 83 | 1847-11-01,246,11 84 | 1847-12-01,273,8 85 | 1848-01-01,283,10 86 | 1848-02-01,291,2 87 | 1848-03-01,276,0 88 | 1848-04-01,305,2 89 | 1848-05-01,313,3 90 | 1848-06-01,264,3 91 | 1848-07-01,269,1 92 | 1848-08-01,261,0 93 | 1848-09-01,312,3 94 | 1848-10-01,299,7 95 | 1848-11-01,310,9 96 | 1848-12-01,373,5 97 | 1849-01-01,403,9 98 | 1849-02-01,389,12 99 | 1849-03-01,406,20 100 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # I've joined the #100DaysOfCode Challenge 2 | 3 | Responsive image 4 | 5 | # About 6 | 7 | The #100DaysOfCode challenge is a journey to gaining skills in the programming world.
8 | I have chosen to master Python by building 100 projects in 100 days with Angela Yu's 100 Days of Python Pro. I will be uploading all progress to my [log](https://github.com/cedoula/100-days-of-code/blob/master/log.md).
9 | If you would like to follow me along this journey I will be posting daily updates on my Twitter: [@CedricVanza](https://twitter.com/CedricVanza)! 10 | 11 | ## Contents 12 | 13 | * [Rules](rules.md) 14 | * [Log - click here to see my progress](log.md) 15 | * [FAQ](FAQ.md) 16 | * [Resources](resources.md) -------------------------------------------------------------------------------- /intl/bn/log.md: -------------------------------------------------------------------------------- 1 | # 100 Days Of Code - দিনলিপি 2 | 3 | ### দিন ০: জুলাই ৩০ (উদাহরন ১) 4 | ##### (এটি মুছে ফেলুন অথবা কমেন্ট করে রাখুন) 5 | 6 | **আজকের অগ্রগতি**: সিএসএস এর কোড ঠিক করলাম, এ্যাপ এর canvas functionality এর উপর কাজ করলাম। 7 | 8 | **ভাবনা:** সিএসএস আমাগে ভালোই ভোগাচ্ছে. তবে অবশেষে, আমার মনে হচ্ছে ধীরে ধীরে আমি এটি আয়ত্বে আনতে পারছি। ক্যানভাস ব্যাপারটা আমার কাছে একেবারেই নতুন, তবে সাধারন বিষয়গুলো আমি বুঝতে পারছি। 9 | 10 | **কাজের সংযুক্তি:** [ক্যালকুলেটর এ্যাপ](http://www.example.com) 11 | 12 | ### দিন ০: জুলাই ৩০ (উদাহরন ২) 13 | ##### (এটি মুছে ফেলুন অথবা কমেন্ট করে রাখুন) 14 | 15 | **আজকের অগ্রগতি**: সিএসএস এর কোড ঠিক করলাম, এ্যাপ এর canvas functionality এর উপর কাজ করলাম। 16 | 17 | **ভাবনা:** সিএসএস আমাগে ভালোই ভোগাচ্ছে. তবে অবশেষে, আমার মনে হচ্ছে ধীরে ধীরে আমি এটি আয়ত্বে আনতে পারছি। ক্যানভাস ব্যাপারটা আমার কাছে একেবারেই নতুন, তবে সাধারন বিষয়গুলো আমি বুঝতে পারছি। 18 | 19 | **কাজের সংযুক্তিসমূহ**: [ক্যালকুলেটর এ্যাপ](http://www.example.com) 20 | 21 | 22 | ### দিন ১: জুলাই ৩১, মঙ্গলবার 23 | 24 | **আজকের অগ্রগতি**: FreeCodeCamp এর বেশ কিছু অনুশীলন সম্পন্ন করলাম। 25 | 26 | **ভাবনা** আমি সম্প্রতি কোডিং শুরু করেছি, এবং বেশ কয়েকবারের চেষ্টায় ও অনেক সময় ব্যয় করার পরে আমি একটি অ্যালগরিদম চ্যালেঞ্জ সমাধান করতে পেরেছি, এটি অসাধারন একটি অনুভুতি। 27 | 28 | **কাজের সংযুক্তিসমূহ**: 29 | 1. [একটি বাক্যের সবচেয়ে লম্বা শব্দ খুজে বের করা](https://www.freecodecamp.com/challenges/find-the-longest-word-in-a-string) 30 | 2. [Title Case a Sentence](https://www.freecodecamp.com/challenges/title-case-a-sentence) 31 | -------------------------------------------------------------------------------- /intl/bn/r1-log.md: -------------------------------------------------------------------------------- 1 | # #100DaysOfCode দিনলিপি - রাউন্ড ১ - [এখানে আপনার নাম লিখুন] 2 | 3 | আমার #100DaysOfCode চ্যালেঞ্জ এর দিলনিপি। শুরু করেছি [জুলাই ১৪, শনিবার, ২০১৭] 4 | 5 | ## দিনলিপি 6 | 7 | ### R1D1 8 | একটি আবহাওয়া বিষয়ক এ্যাপ শুরু করলাম। এ্যাপ এর প্রাথমিক নকশার উপরে কাজ করলাম। OpenWeather API নিয়ে একটু মুশকিল হচ্ছে http://www.example.com 9 | 10 | ### R1D2 11 | -------------------------------------------------------------------------------- /intl/bn/rules.md: -------------------------------------------------------------------------------- 1 | # 100 Days Of Code চ্যালেঞ্জ এর নিয়মাবলী 2 | 3 | ## প্রধান প্রতিশ্রুতি 4 | ### *আমি আগামী ১০০ দিন দৈনিক কমপক্ষে ১ ঘন্টা কোডিং করবো* 5 | 6 | #### শুরুর তারিখ 7 | জুলাই ১৪, ২০১৮ [আপনার তারিখ এখানে লিখুন] 8 | 9 | ## অতিরিক্ত কিছু নিয়মাবলী 10 | 1. আমি আমার প্রতিদিনের অগ্রগতি টুইট করবো -> #100DaysOfCode হ্যাশট্যাগ ব্যবহার করে 11 | 2. আমি যদি কর্মস্থলে কোড করি, ঐ সময়টুকু এই চ্যালেঞ্জে গন্য করা হবে না। 12 | 3. আমি গিটহাবে প্রতিদিন কোড পুশ করবো যেন সকলে আমার অগ্রগতি দেখতে পারে। 13 | 4. আমি প্রতিদিনের অগ্রগতি [দিনলিপিতে](log.md) হালনাগাদ করবো এবং লিংক যোগ করবো, যাতে সকলে আমার অগ্রগতি দেখতে পারে। 14 | 5. আমি বাস্তব প্রকল্পের উপর কাজ করবো, বাস্তব সমস্যা সমাধানের চেষ্টা করবো। বিভিন্ন টিউটোরিয়াল, অনলাইন কোর্স এবং এরকম অন্যান্য রিসোর্সের উপর কাজ করলে সেই সময় চ্যালেঞ্জের ভেতর গন্য হবে না। (যদি এমন হয়, আপনি মাত্রই কোড শেখা শুরু করেছেন, তাহলে [সচরাচর জিজ্ঞাস্য প্রশ্ন](FAQ.md) দেখুন) 15 | 16 | 17 | ## এই চ্যালেঞ্জ আরও কার্যকর করার কিছু ধারনাসমূহ 18 | 1. সফলতার সম্ভাবনা বৃদ্ধির জন্য, আপনার [দিনলিপিতে](log.md) প্রতিদিনের লেখার সাথে লিংক যোগ করুন। এটি গিটহাবের কোন কমিট এর লিংক হতে পারে, কিংবা আপনার কোন ব্লগের লেখার লিংকও হতে পারে। 19 | 2. আপনি যদি উৎসাহ হারিয়ে ফেলেন কিংবা একটি জায়গায় আটকে যান, তাহলে এই লেখাটি পড়ুনঃ [Learning to Code: When It Gets Dark](https://www.freecodecamp.org/news/learning-to-code-when-it-gets-dark-e485edfb58fd) 20 | 3. আপনি যদি না জানেন কেন টিউটোরিয়াল বা অনলাইন কোর্স করার চেয়ে বাস্তব প্রকল্পে কাজ করার উপরে কেন জোড় দেয়া হয়েছে, এটা পড়ুনঃ [How to Get a Developer Job in Less Than a Year](https://www.freecodecamp.org/news/how-to-get-a-developer-job-in-less-than-a-year-c27bbfe71645) 21 | 4. যদি কোন কারনে আপনি আপনার কোড গিটহাবে push করতে না পারেন (যেমনঃ আপনি কোডিং শেখা শুরু করেছেন এবং অনুশীলন করছেন), তাহলে আপনার টুইট এর লিংক যোগ করুন। টুইটার ছাড়াও আপনি অন্য যে কোন মাধ্যম ব্যবহার করতে পারেন। তবে আপনার চ্যালেঞ্জ অবশ্যই সর্বসাধারনের জন্য উন্মুক্ত হতে হবে। যাতে আপনি চ্যালেঞ্জে প্রতিশ্রুতিবদ্ধ ও আপনার অগ্রগতির জন্য দায়বদ্ধ থাকতে পারেন। 22 | 5. এই repo টি fork করায় বাড়তি লাভ হচ্ছে -> আপনি যদি Markdown নিয়ে আগে কাজ না করে থাকেন, এটি Markdown চর্চা করার একটা ভালো মাধ্যম। 23 | 24 | ## সূচীপত্র 25 | * [নিয়মাবলী](rules.md) 26 | * [লগ - আমার অগ্রগতি দেখতে এখানে ক্লিক করুন](log.md) 27 | * [সজিপ্র](FAQ.md) 28 | * [রিসোর্সসমূহ](resources.md) 29 | -------------------------------------------------------------------------------- /intl/ca/log.md: -------------------------------------------------------------------------------- 1 | # 100 Days Of Code - Registre 2 | 3 | ### Day 0: 30 de Febrer de 2018 (exemple 1) 4 | ##### (esborra o comenta-ho) 5 | 6 | **Progrés d'avui**: He corregit codi CSS, he treballat en la funcionalitat del canvas per una app. 7 | 8 | **Reflexions:** He tingut dificultats amb el CSS però tinc la sensació que vaig millorant poc a poc. El Canvas és molt nou per mi, però crec que me les he arreglat per donar-li una funcionalitat bàsica. 9 | 10 | **Enllaç a la feina:** [App Calculadora](http://www.example.com) 11 | 12 | ### Day 0: 30 de Febrer de 2018 (exemple 1) 13 | ##### (esborra o comenta-ho) 14 | 15 | **Progrés d'avui**: He corregit codi CSS, he treballat en la funcionalitat del canvas per una app. 16 | 17 | **Reflexions:** He tingut dificultats amb el CSS però tinc la sensació que vaig millorant poc a poc. El Canvas és molt nou per mi, però crec que me les he arreglat per donar-li una funcionalitat bàsica. 18 | 19 | **Enllaç a la feina:** [App Calculadora](http://www.example.com) 20 | 21 | ### Day 1: Dilluns 27 de Juny de 2018 22 | 23 | **Progrés d'avui**: I've gone through many exercises on FreeCodeCamp. 24 | 25 | **Reflexions:** I've recently started coding, and it's a great feeling when I finally solve an algorithm challenge after a lot of attempts and hours spent. 26 | 27 | **Enllaç(os) a la meva feina** 28 | 1. [Troba la paraula més llarga en un string](https://www.freecodecamp.com/challenges/find-the-longest-word-in-a-string) 29 | 2. [Majúscules al inici de cada paraula](https://www.freecodecamp.com/challenges/title-case-a-sentence) 30 | -------------------------------------------------------------------------------- /intl/ca/r1-log.md: -------------------------------------------------------------------------------- 1 | # #100DaysOfCode Log - Round 1 - [Your Name Here] 2 | 3 | The log of my #100DaysOfCode challenge. Started on [July 17, Monday, 2017]. 4 | 5 | ## Log 6 | 7 | ### R1D1 8 | Started a Weather App. Worked on the draft layout of the app, struggled with OpenWeather API http://www.example.com 9 | 10 | ### R1D2 11 | -------------------------------------------------------------------------------- /intl/ca/resources.md: -------------------------------------------------------------------------------- 1 | # Primary Resources on the #100DaysOfCode 2 | 3 | [The #100DaysOfCode Official Site](http://100daysofcode.com/) 4 | 5 | ### Articles 6 | 1. [Join the #100DaysOfCode](https://medium.freecodecamp.com/join-the-100daysofcode-556ddb4579e4) freeCodeCamp Medium 7 | 2. [Boot Up 2017 with the #100DaysOfCode Challenge](https://medium.freecodecamp.com/start-2017-with-the-100daysofcode-improved-and-updated-18ce604b237b) freeCodeCamp Medium 8 | 3. [Resistance, Habit Change and the #100DaysOfCode Movement](https://studywebdevelopment.com/100-days-of-code.html) StudyWebDevelopment Blog 9 | 10 | ### Podcasts 11 | 12 | # Recursos addicional sobre #100DaysOfCode 13 | 14 | ## Articles Interessants 15 | 1. [Gentle Explanation of 'this keyword in JavaScript](http://rainsoft.io/gentle-explanation-of-this-in-javascript/) 16 | 17 | ## Projectes and Idees 18 | 1. [FreeCodeCamp](https://www.freecodecamp.com) 19 | 2. [The Odin Project](http://www.theodinproject.com/) 20 | 21 | ## Altres recursos 22 | 1. [CodeNewbie - #100DaysOfCode Slack Channel](https://codenewbie.typeform.com/to/uwsWlZ) 23 | 24 | ## Llibres (Tant de programació com no) 25 | 26 | ### De no programació 27 | 1. ["The War of Art" by Steven Pressfield](http://www.goodreads.com/book/show/1319.The_War_of_Art) 28 | 2. ["The Obstacle is the Way" by Ryan Holiday](http://www.goodreads.com/book/show/18668059-the-obstacle-is-the-way?ac=1&from_search=true) 29 | 3. ["Ego is the Enemy" by Ryan Holiday](http://www.goodreads.com/book/show/27036528-ego-is-the-enemy?from_search=true&search_version=service) 30 | 4. ["Meditations" by Marcus Aurelius](https://www.goodreads.com/book/show/662925.Meditations) 31 | 32 | ### Sobre programació 33 | 1. "Professional Node.js" by Teixeira 34 | 2. ["Eloquent Javascript" by Marijn Haverbeke](http://eloquentjavascript.net/) - available online (free) & as a paperback 35 | 3. "Mastering JavaScript" by Ved Antani 36 | 37 | ## Contingut 38 | * [Regles](rules.md) 39 | * [Log - clica aquí per veure el meu progrés](log.md) 40 | * [FAQ](FAQ.md) 41 | * [Recursos](resources.md) 42 | -------------------------------------------------------------------------------- /intl/ca/rules.md: -------------------------------------------------------------------------------- 1 | # Regles per al repte 100 dies de programació (100 Days Of Code Challenge) 2 | 3 | ## Principal Compromís 4 | ### *Programaré un mínim d'una hora cada dia en els propers 100 dies.* 5 | 6 | #### Data d'inici 7 | 25 de juny de 2016. [POSA AQUÍ LA TEVA DATA] 8 | 9 | ## Regles addicionals 10 | 1. Tuitejaré el meu progrés cada dia -> utilitzant el hashtag #100DaysOfCode 11 | 2. Si programo a la feina, el temps dedicat no comptarà per al repte. 12 | 3. Pujaré el meu codi al Github cada dia per tal que tothom pugui veure el meu progrés. 13 | 4. Actualitzaré el fitxer (Log)[log.md] amb el meu progrés diari incloent un link per a que els altres puguin veure el meu progrés. 14 | 5. Treballaré en projectes reals que solucionin reptes reals. El temps realitzant tutorials, cursos online i recursos similars no comptaràn per al repte. (Si estàs començant a aprendre a programar, llegeix les [FAQ](FAQ.md)) 15 | 16 | 17 | ## Idees per fer aquest repte més efectiu 18 | 1. Per millorar la possibilitat d'èxit, és necessari que afegeixis un link al teu post en el [log](log.md). Pot ser un link a un commit a github o un link a un articleal teu blog 19 | 2. Si et trobes molest o encallat llegeix : [Aprendre a programar: Quan es fa fosc (Anglès)](https://www.freecodecamp.org/news/learning-to-code-when-it-gets-dark-e485edfb58fd) 20 | 3. Si no entens aquest èmfasi en treballar en projectes enlloc de fer tutorials o cursos online, llegeix això: [Com aconseguir un treball com a desenvolupador en menys d'un any](https://www.freecodecamp.org/news/how-to-get-a-developer-job-in-less-than-a-year-c27bbfe71645) 21 | 4. Si no pots pujar el teu codi a Github per alguna raó (p.ex. estàs començant a programar i només fas exercicis interactius), enllaça un tuit. Pots pensar en qualsevol altra cosa sempre i quan facis el repte públic - obtenint el benefici del compromís i la responsabilitat del seu progrés. 22 | 5. Un altra benefici de bifurcar aquest repositori -> SI no has treballat anteriorment amb el format Markdown, és una molt bona manera de practicar. 23 | 24 | ## Contents 25 | * [Regles](rules.md) 26 | * [Log - clica aquí per veure el meu progrés](log.md) 27 | * [FAQ](FAQ.md) 28 | * [Recursos](resources.md) 29 | -------------------------------------------------------------------------------- /intl/ch/FAQ.md: -------------------------------------------------------------------------------- 1 | ## 常见问题和回答: 2 | **Q:** 我怎样与其它参加挑战的人建立联系? 3 | **A:** 最好的方法是察看 100DaysOfCode 的官方网站:www.100DaysOfCode.com/connect 4 | 也可以通过[100DaysOfCode Slack channel 邀请链接](https://www.100daysofcode.com/slack)。 5 | 6 | 在Twitter上搜索 #100DaysOfCode,或者加入[Gitter上的the 100DaysOfCode](https://gitter.im/Kallaway/100DaysOfCode) - 你不需要邀请,它是向任何人开放。或者在Twitter上follow [@_100DaysOfCode](https://twitter.com/_100DaysOfCode),和社区保持联系。 7 | 8 | **Q:** 我已经开始了挑战,现在是第8天。我怎样开始用这个repo来记录我的进展? 9 | **A:** 别着急。尽可能多的纪录你之前的内容,但是如果不适用你,就直接从现在开始。如果你每天都tweet你的进展,就把你每天的tweets链接添加到日志中。之后就一直用这个形式。 10 | 11 | **Q:** 对于写代码,我是一个新人(或者刚刚决定开始学习写代码),我还做不出project,我应该做什么? 12 | **A:** 最好的开始办法是从头学习[FreeCodeCamp 前端课程](https://www.freecodecamp.com/)。在100天内,进展越多越好。 13 | 14 | **Q:** 我漏掉了一天,这意味着我在这个挑战上失败了吗? 15 | **A:** 当然没有。你允许漏掉一天(只要在100天之后补上就可以),但是不要连续漏掉两天。这是对于养成习惯非常好的建议,我从Leo Babauta关于zen habits那里获得这个建议。 16 | 17 | **Q:** 我很晚才回家,我完成当日挑战要求的时间后,已经过了午夜,还能算到今天吗? 18 | **A:** 当然算!可以用这个法则:你在睡觉前写了至少一个小时的代码吗?如果答案是肯定的,那你就走在正轨上。我们每个人都有不同的时间安排,处在不同的人生阶段(孩子,学校,工作,你能想象到的),所以没必要拿一个随机的时间标准要求自己。午过了夜,发生在灰姑娘身上的事情不会发生在你身上。不要担心你当天是否在github上得到了一分,是,看到那些连续的竖条确实很有满足感,但是根据时钟来评价你的努力,并不能帮到你太多。 19 | 20 | **Q:** 我是否应该记日记? 21 | **A:** 是的,你应该,而且最好的办法就是fork这个repo,并且每天都更新[日志](log.md)。这样能在两个方面帮到你:你可以看到每天的进展和已经进步了多少,另外,在100天后,你可很好的分析你的经历,看看什么适合你,什么不适合你。 22 | 23 | **Q:** 我应该把我的project放在网上吗? 24 | **A:** 当然。知道你正在做的东西可以被任何人在网上看到,这是非常好的约束和激励自己的办法。这会让你更在乎最终的产品,最后的结果会让其他人眼前一亮。我建议把你的project放在github上。 25 | 26 | **Q:** 我应该担心github上是否有连续竖条吗? 27 | **A:** 连续竖条很好也很有帮助,但是就像我上面说的 - 不要太过担心他们,也不要过于苛责自己漏掉一天。相反,你应该尽最大努力让它不再发生,担忧和苛责自己不会带给你想要的结果(好吧,它也会给你结果,但是是负面的。我称它为后果,而不是结果)让自己走出负面情绪最好的办法就是,坐下来写代码。 28 | 29 | **Q:** 这个挑战中最难的部分是什么? 30 | **A:** 最难的部分就是你要坐下来开始写代码。不要推迟,也不要想太多,因为你会说服自己不要去做了。把它机械化:坐下,打开电脑,代开编辑器,然后开始打代码。5分钟以后,你就不会感到任何问题/拖延/想要停下。 31 | 32 | **Q:** 如果每个人在特定的一天开始,我是否应该在那一天加入他们?例如,从第12天开始? 33 | **A:** 这个挑战是个人化的,你开始的那一天就是第一天。在Twitter或者其它地方,无论什么时候发布了一条更新,请确保提到了你在第几天,并且使用标签#100DaysOfCode,这样大家就可以找到你,支持你! 34 | 35 | ## 目录 36 | 37 | * [规则](rules.md) 38 | * [日志 - 点击这里查看我的进展](log.md) 39 | * [常见问题及回答](FAQ.md) 40 | * [资源](resources.md) 41 | -------------------------------------------------------------------------------- /intl/ch/README.md: -------------------------------------------------------------------------------- 1 | # 我决定加入 #100DaysOfCode 挑战 2 | 3 | ## 目录 4 | 5 | * [规则](rules.md) 6 | * [日志 - 点击这里查看我的进展](log.md) 7 | * [常见问题及回答](FAQ.md) 8 | * [资源](resources.md) 9 | 10 | ## Translations 11 | [বাংলা](../bn/README.md) - [中文](README.md) - [deutsch](../de/README.md) - [español](../es/README.md) – [français](../fr/FAQ-fr.md) – [日本語](../ja/README.md) - [한국어](../ko/README-ko.md) – [nederlands](../nl/README.md) – [norsk](../no/README.md) – [polski](../pl/README.md) - [português do Brasil](../pt-br/LEIAME.md) - [русский](../ru/README-ru.md) – [українська](../ua/README-ua.md) - [srpski](intl/sr/README-sr.md) 12 | 13 | ## 如果你已经决定要加入: 14 | 15 | 0. 查看 #100DaysOfCode 运动的[官方网站](http://100daysofcode.com/)。与其他人在这些平台上建立联系:www.100DaysOfCode.com/connect 16 | 除此之外,这是 100DaysOfCode Slack channel的邀请[链接](https://www.100daysofcode.com/slack)。 17 | 1. 阅读 [加入 #100DaysOfCode](https://medium.freecodecamp.com/join-the-100daysofcode-556ddb4579e4) 18 | 1. Fork这个repo并且每天更新[日志](log.md),或者[R1日志](r1-log.md) (R1是round 1,即第一轮)。[例子](https://github.com/Kallaway/100-days-kallaway-log)。 19 | 1. **在之后的100天,每天至少写一个小时的代码。** 20 | 1. **每天在Twitter上,鼓励至少另外两个也在参加挑战的人!“将爱传递下去!”** 21 | 1. 将[规则](rules.md)中的日期改为你开始挑战的日期。 22 | 1. 将日志中的例子删除或者注释掉,并且开始添加你自己的内容。 23 | 1. **用 #100DaysOfCode 来Tweet你每天的进展。** 24 | 1. Follow [100DaysOfCode](https://twitter.com/_100DaysOfCode) 的Twitter机器人,它会自动retweet含有#100DaysOfCode的推文。这样不但可以持续激励你自己,你也可以很好的参与这个社区。感谢 [@amanhimself](https://twitter.com/amanhimself) 创建了这个Twitter机器人。 25 | 1. 重要:(看上面第四条规则)在Twitter或其他平台上,鼓励同样在参与这个挑战的人 - 在他们更新自己的进度时做出赞扬,在他们遇到困难时进行支持。这样,我们的社区可以成长为一个既有效又有帮助的社区,提高每一个参与者的成功率。同时,因为你已经和社区中的其它成员有了联系,你也更有可能坚持自己的承诺, 26 | 1. 如果你找到了能帮助到其它人的资料,你可以提交一个pull request,或者直接tweet给我。 27 | 28 | ## 想改变其它的习惯? 29 | 30 | 查看[the #100DaysOfX 挑战计划](http://100daysofx.com/)。改变你的习惯就是改变你的人生。现在是最好的时机。 31 | 32 | 我建议同时进行的挑战不要超过2-3个,最好是2个。如果你已经开始了 #100DaysOfCode,进行了很多脑力活动,则可以试一下[#100DaysOfHealth](http://100daysofx.com/where-x-is/health/),或者[#100DaysOfFitness](http://100daysofx.com/challenges/),网站上有更多的内容,选择一个你想要获得的技能,一门新语言,写作,冥想,日记,厨艺,等等! 33 | 34 | ## 注意 35 | 36 | * 如果你对 100DaysOfCode 有任何疑问或者想法,可以随时在Twitter上联系我:[@ka11away](https://twitter.com/ka11away) 37 | * 如果你喜欢这个repo并且觉得它有用,请考虑给它一颗★(就在页面的右上角):) 38 | 39 | -------------------------------------------------------------------------------- /intl/ch/log.md: -------------------------------------------------------------------------------- 1 | # 100 Days Of Code - 日志 2 | 3 | ### 第0天: 2016年2月28日 (例子 1) 4 | ##### (删除我或注释掉我) 5 | 6 | **今天的进展:** 修改了css,为app的canvas的功能进行了工作。 7 | 8 | **思考:** 被css困住了一些,但总体来说,我感觉自己在这方面在慢慢进步。Canvas对我来说还是很新,但我明白了一些基本的功能。 9 | 10 | **工作成果链接:** [计算器 app](http://www.example.com) 11 | 12 | ### 第0天: 2016年2月28日 (例子 2) 13 | ##### (删除我或注释掉我) 14 | 15 | **今天的进展:** 修改了css,为app的canvas的功能进行工作。 16 | 17 | **思考:** 被css困住了一些,但总体来说,我感觉自己在这方面在慢慢进步。Canvas对我来说还是很新,但我明白了一些基本的功能。 18 | 19 | **工作成果链接:** [计算器 app](http://www.example.com) 20 | 21 | 22 | ### 第二天: 6月27日, 星期一 23 | 24 | **今天的进展:** 我完成了FreeCodeCamp上的练习。 25 | 26 | **思考:** 我刚开始学习代码,最终在多次尝试和几个小时以后,解诀了算法挑战,这个感觉真不错。 27 | 28 | **工作成果链接:** 29 | 1. [找到一个String中最长的单词](https://www.freecodecamp.com/challenges/find-the-longest-word-in-a-string) 30 | 2. [把一个句子变成标题](https://www.freecodecamp.com/challenges/title-case-a-sentence) 31 | -------------------------------------------------------------------------------- /intl/ch/r1-log.md: -------------------------------------------------------------------------------- 1 | # # 100DaysOfCode Log - 第一轮 - [你的名字] 2 | 3 | 我的 #100DaysOfCode 挑战日志。 [2017年7月17日,周一] 开始。 4 | 5 | ## 日志 6 | 7 | ### R1D1 (第一轮第一天) 8 | 开始了天气app。在app的layout的草稿上工作,有点在 OpenWeather API http://www.example.com 卡住。 9 | 10 | ### R1D2 (第一轮第二天) 11 | -------------------------------------------------------------------------------- /intl/ch/resources.md: -------------------------------------------------------------------------------- 1 | # 关于 #100DaysOfCode 的主要资源 2 | 3 | [#100DaysOfCode 官方网站](http://100daysofcode.com/) 4 | 5 | ### 文章 6 | 1. [Join the #100DaysOfCode](https://medium.freecodecamp.com/join-the-100daysofcode-556ddb4579e4) freeCodeCamp Medium 文章 7 | 2. [Boot Up 2017 with the #100DaysOfCode Challenge](https://medium.freecodecamp.com/start-2017-with-the-100daysofcode-improved-and-updated-18ce604b237b) freeCodeCamp Medium 文章 8 | 3. [Resistance, Habit Change and the #100DaysOfCode Movement ](https://studywebdevelopment.com/100-days-of-code.html) StudyWebDevelopment 博客 9 | 10 | ### 广播 11 | 12 | # 其它关于 #100DaysOfCode 的资源 13 | 14 | ## 有帮助的文章 15 | 1. [Gentle Explanation of 'this keyword in JavaScript](http://rainsoft.io/gentle-explanation-of-this-in-javascript/) 16 | 17 | ## Projects和想法 18 | 1. [FreeCodeCamp](https://www.freecodecamp.com) 19 | 2. [The Odin Project](http://www.theodinproject.com/) 20 | 21 | ## 其它资源 22 | 1. [CodeNewbie - #100DaysOfCode Slack Channel](https://codenewbie.typeform.com/to/uwsWlZ) 23 | 24 | ## 书籍 (关于代码和非代码) 25 | 26 | ### 非代码 27 | 1. ["The War of Art" by Steven Pressfield](http://www.goodreads.com/book/show/1319.The_War_of_Art) 28 | 2. ["The Obstacle is the Way" by Ryan Holiday](http://www.goodreads.com/book/show/18668059-the-obstacle-is-the-way?ac=1&from_search=true) 29 | 3. ["Ego is the Enemy" by Ryan Holiday](http://www.goodreads.com/book/show/27036528-ego-is-the-enemy?from_search=true&search_version=service) 30 | 4. ["Meditations" by Marcus Aurelius](https://www.goodreads.com/book/show/662925.Meditations) 31 | 32 | ### 关于代码 33 | 1. "Professional Node.js" by Teixeira 34 | 2. ["Eloquent Javascript" by Marijn Haverbeke](http://eloquentjavascript.net/) - available online (free) & as a paperback 35 | 3. "Mastering JavaScript" by Ved Antani 36 | 37 | ## 目录 38 | 39 | * [规则](rules.md) 40 | * [日志 - 点击这里查看我的进展](log.md) 41 | * [常见问题及回答](FAQ.md) 42 | * [资源](resources.md) 43 | -------------------------------------------------------------------------------- /intl/ch/rules.md: -------------------------------------------------------------------------------- 1 | # 100 Days Of Code 挑战的规则 2 | 3 | ## 主要承诺 4 | ### *在之后的100天,我每天会至少写一个小时代码。* 5 | 6 | ### 开始日期 7 | 2016年6月25日 [添加你自己的日期] 8 | 9 | ## 其它规则 10 | 1. 我每天都会tweet我的进展 -> 使用标签 #100DaysOfCode 11 | 2. 如果我在工作中需要写代码,那些时间则不会算在挑战中。 12 | 3. 我每天都会把代码push到github上,这样所有人都可以看到我的进展。 13 | 4. 我会在[日志](log.md)里更新我每天的进展,并且提供链接,这样其他人可以看到我的进展。 14 | 5. 我会在真实的project上工作,面对真实的挑战。花在教程、网上课程、或者其它相似资源上的时间不会算在挑战中。(如果你刚开始学习代码,请阅读[常见问题及回答](FAQ.md)) 15 | 16 | ## 如何让这个挑战更有效 17 | 1. 提高成功的概率,有必要在[日志](log.md)中添加链接,可以是github commit链接,也可以是博客文章链接。 18 | 2. 如果感到沮丧或卡住了,请阅读这篇文章:[Learning to Code: When It Gets Dark](https://www.freecodecamp.org/news/learning-to-code-when-it-gets-dark-e485edfb58fd) 19 | 3. 如果你不知道为什会强调做project,而不是教程和网课,请阅读这里:[How to Get a Developer Job in Less Than a Year](https://www.freecodecamp.org/news/how-to-get-a-developer-job-in-less-than-a-year-c27bbfe71645) 20 | 4. 如果出于某种原因,你无法push你的代码到github(比如,你刚开始学习写代码,还在做练习),请提供tweet的链接。你能想到的都可以,只要能让这个挑战保持公开,你会从保持承诺和要求己进步中受益。 21 | 5. 另一个fork这个repo的理由 -> 如果你从未接触过Markdown,这是一个很好的练习机会。 22 | 23 | ## 目录 24 | 25 | * [规则](rules.md) 26 | * [日志 - 点击这里查看我的进展](log.md) 27 | * [常见问题及回答](FAQ.md) 28 | * [资源](resources.md) 29 | -------------------------------------------------------------------------------- /intl/de/log-de.md: -------------------------------------------------------------------------------- 1 | # 100 Days Of Code - Logbuch 2 | 3 | ### Tag 0: 20. Februar 2016 (Beispiel 1) 4 | ##### (lösche oder kommentiere mich aus) 5 | 6 | **Heutiger Fortschritt**: CSS Korrektur, Arbeit an der Canvas Funktionalität der App. 7 | 8 | **Gedanken:** Ich habe mich wirklich schwer getan mit CSS, aber alles in Allem habe ich das Gefühl, ich werde langsam besser darin. Canvas ist noch immer Neuland für mich, aber ich habe es geschafft einen Teil der grundlegenden Funktionalität zu verstehen. 9 | 10 | **Link zur Arbeit:** [Taschenrechner App](http://www.example.com) 11 | 12 | ### Tag 1: 21. Februar 2016 13 | ##### (lösche mich oder kommentiere mich aus) 14 | 15 | **Heutiger Fortschritt**: CSS Korrektur, Arbeit an der Canvas Funktionalität der App. 16 | 17 | **Gedanken:** Ich habe mich wirklich schwer getan mit CSS/ wirklich mit CSS gekämpft, aber alles in allem habe ich das Gefühl, ich werde langsam besser darin. Canvas ist noch immer Neuland für mich, aber ich habe es geschafft einen Teil der grundlegenden Funktionalität zu verstehen. 18 | 19 | **Link zur Arbeit:** [Taschenrechner App](http://www.example.com) 20 | 21 | 22 | ### Tag 1: Montag, 27. Juni (Beispiel 2) 23 | 24 | **Heutiger Fortschritt**: Ich bin einige Übungen auf freeCodeCamp durchgegangen. 25 | 26 | **Gedanken** Ich habe vor Kurzem mit dem Coden begonnen, und es ist ein tolles Gefühl, wenn ich nach vielfachen Ansätzen und mehreren investierten Stunden endlich einen Algorithmus gelöst bekomme. 27 | 28 | **Link(s) zur Arbeit** 29 | 1. [Find the Longest Word in a String](https://www.freecodecamp.com/challenges/find-the-longest-word-in-a-string) 30 | 2. [Title Case a Sentence](https://www.freecodecamp.com/challenges/title-case-a-sentence) -------------------------------------------------------------------------------- /intl/de/quellen.md: -------------------------------------------------------------------------------- 1 | # Hauptquellen für die #100DaysOfCode 2 | 3 | [Die offizielle #100DaysOfCode Seite](http://100daysofcode.com/) 4 | 5 | ### Artikel 6 | 1. [Join the #100DaysOfCode](https://medium.freecodecamp.com/join-the-100daysofcode-556ddb4579e4) freeCodeCamp Medium 7 | 2. [Boot Up 2017 with the #100DaysOfCode Challenge](https://medium.freecodecamp.com/start-2017-with-the-100daysofcode-improved-and-updated-18ce604b237b) freeCodeCamp Medium 8 | 3. [Resistance, Habit Change and the #100DaysOfCode Movement](https://studywebdevelopment.com/100-days-of-code.html) StudyWebDevelopment Blog 9 | 10 | ### Podcasts 11 | 12 | # Zusätzliche Quellen für die #100DaysOfCode 13 | 14 | ## Hilfreiche Artikel 15 | 1. [Gentle Explanation of 'this keyword in JavaScript](http://rainsoft.io/gentle-explanation-of-this-in-javascript/) 16 | 17 | ## Projekte und Ideen 18 | 1. [FreeCodeCamp](https://www.freecodecamp.com) 19 | 2. [The Odin Project](http://www.theodinproject.com/) 20 | 21 | ## Weitere Quellen 22 | 1. [CodeNewbie - #100DaysOfCode Slack Channel](https://codenewbie.typeform.com/to/uwsWlZ) 23 | 24 | ## Bücher (Coding bezogen, sowie andere) 25 | 26 | ### Nicht-Coding 27 | 1. ["The War of Art" by Steven Pressfield](http://www.goodreads.com/book/show/1319.The_War_of_Art) 28 | 2. ["The Obstacle is the Way" by Ryan Holiday](http://www.goodreads.com/book/show/18668059-the-obstacle-is-the-way?ac=1&from_search=true) 29 | 3. ["Ego is the Enemy" by Ryan Holiday](http://www.goodreads.com/book/show/27036528-ego-is-the-enemy?from_search=true&search_version=service) 30 | 4. ["Meditations" by Marcus Aurelius](https://www.goodreads.com/book/show/662925.Meditations) 31 | 32 | ### Coding 33 | 1. "Professional Node.js" by Teixeira 34 | 2. ["Eloquent Javascript" by Marijn Haverbeke](http://eloquentjavascript.net/) - available online (free) & as a paperback 35 | 3. "Mastering JavaScript" by Ved Antani 36 | 37 | ## Inhalt 38 | * [Regeln](regeln.md) 39 | * [Log - klicke hier, um meinen Fortschritt zu sehen](log-de.md) 40 | * [FAQ](FAQ-de.md) 41 | * [Quellen](quellen.md) 42 | -------------------------------------------------------------------------------- /intl/de/r1-log-de.md: -------------------------------------------------------------------------------- 1 | # #100DaysOfCode Log - Runde 1 - [Dein Name] 2 | 3 | Das Logbuch meiner #100DaysOfCode Challenge. Begonnen am [Montag, 17. Juli 2017]. 4 | 5 | ## Log 6 | 7 | ### R1D1 8 | Habe mit einem Wetter App Projekt begonnen. Habe am Skizzen Layout der App gearbeitet, hatte etwas Schwierigkeiten mit der OpenWeather API http://www.example.com 9 | 10 | ### R1D2 11 | -------------------------------------------------------------------------------- /intl/el/log-el.md: -------------------------------------------------------------------------------- 1 | # 100 Ημέρες Κώδικα - Ημερολόγιο 2 | 3 | ### Ημέρα 0: 30 Φεβρουαρίου, 2016 (Παράδειγμα 1) 4 | ##### (διέγραψέ με ή κάνε με σχόλιο) 5 | 6 | **Ημερήσια Πρόοδος:** Διόρθωσα το CSS, δούλεψα στο canvas functionality για την εφαρμογή. 7 | 8 | **Σκέψεις:** Πραγματικά πάλεψα με το CSS, ωστόσο, γενικά, νιώθω ότι γίνομαι καλύτερος σ' αυτό. Το canvas είναι ακόμα καινούριο για εμένα, αλλά κατάφερα να βρω κάποιες βασικές λειτουργίες. 9 | 10 | **Σύνδεσμος/οι προς το project:** [Calculator App](http://www.example.com) 11 | 12 | 13 | ### Ημέρα 1: 27 Ιουνίου, Δευτέρα (Παράδειγμα 2) 14 | ##### (διέγραψέ με ή κάνε με σχόλιο) 15 | 16 | **Ημερήσια Πρόοδος:** Έκανα πολλές ασκήσεις στο FreeCodeCamp. 17 | 18 | **Σκέψεις:** Ξεκίνησα να προγραμματίζω πρόσφατα, και νιώθω περίφημα όταν καταφέρνω επιτέλους να λύσω μια αλγοριθμική πρόκληση μετά από πολλές απόπειρες και πολλές ώρες δουλειάς. 19 | 20 | **Σύνδεσμος/οι προς το project:** 21 | 1. [Find the Longest Word in a String](https://www.freecodecamp.com/challenges/find-the-longest-word-in-a-string) 22 | 2. [Title Case a Sentence](https://www.freecodecamp.com/challenges/title-case-a-sentence) 23 | -------------------------------------------------------------------------------- /intl/el/r1-log-el.md: -------------------------------------------------------------------------------- 1 | # Ημερολόγιο #100ΗμέρεςΚώδικα - Γύρος 1 - [Βάλε το όνομά σου εδώ] 2 | 3 | Το ημερολόγιό μου για την πρόκληση #100ΗμέρεςΚώδικα. Ξεκίνησα στις [17 Ιουλίου, Δευτέρα, 2017]. 4 | 5 | ## Ημερολόγιο 6 | 7 | ### R1D1 8 | Ξεκίνησα μια εφαρμογή καιρού. Δούλεψα στο πρόχειρο layout της εφαρμογής, πάλεψα με το OpenWeather API http://www.example.com 9 | 10 | ### R1D2 11 | -------------------------------------------------------------------------------- /intl/el/resources-el.md: -------------------------------------------------------------------------------- 1 | # Κύριοι πόροι για τις #100ΗμέρεςΚώδικα 2 | 3 | _[ΣτΜ.: Οι πόροι που διατίθενται είναι στα αγγλικά.]_ 4 | 5 | [Το επίσημο σάιτ για τις #100ΗμέρεςΚώδικα](http://100daysofcode.com/) 6 | 7 | ### Άρθρα 8 | 9 | 1. [Join the #100DaysOfCode](https://medium.freecodecamp.com/join-the-100daysofcode-556ddb4579e4) freeCodeCamp Medium 10 | 2. [Boot Up 2017 with the #100DaysOfCode Challenge](https://medium.freecodecamp.com/start-2017-with-the-100daysofcode-improved-and-updated-18ce604b237b) freeCodeCamp Medium 11 | 3. [Resistance, Habit Change and the #100DaysOfCode Movement](https://studywebdevelopment.com/100-days-of-code.html) StudyWebDevelopment Blog 12 | 13 | ### Podcast 14 | 15 | # Επιπλέον πόροι για τις #100ΗμέρεςΚώδικα 16 | 17 | ## Βοηθητικά Άρθρα 18 | 1. [Gentle Explanation of 'this keyword in JavaScript](http://rainsoft.io/gentle-explanation-of-this-in-javascript/) 19 | 20 | ## Projects και Ιδέες 21 | 1. [FreeCodeCamp](https://www.freecodecamp.com) 22 | 2. [The Odin Project](http://www.theodinproject.com/) 23 | 24 | ## Άλλοι πόροι 25 | 1. [CodeNewbie - #100DaysOfCode Slack Channel](https://codenewbie.typeform.com/to/uwsWlZ) 26 | 27 | ## Βιβλία (προγραμματιστικά και μη) 28 | 29 | ### Μη-προγραμματιστικά 30 | 1. ["The War of Art" του Steven Pressfield](http://www.goodreads.com/book/show/1319.The_War_of_Art) 31 | 2. ["The Obstacle is the Way" του Ryan Holiday](http://www.goodreads.com/book/show/18668059-the-obstacle-is-the-way?ac=1&from_search=true) 32 | 3. ["Ego is the Enemy" του Ryan Holiday](http://www.goodreads.com/book/show/27036528-ego-is-the-enemy?from_search=true&search_version=service) 33 | 4. ["Meditations" του Marcus Aurelius](https://www.goodreads.com/book/show/662925.Meditations) 34 | 35 | ### Προγραμματιστικά 36 | 1. "Professional Node.js" του Teixeira 37 | 2. ["Eloquent Javascript" του Marijn Haverbeke](http://eloquentjavascript.net/) - διαθέσιμο online (δωρεάν) & ως κανονικό βιβλίο 38 | 3. "Mastering JavaScript" του Ved Antani 39 | 40 | ## Περιεχόμενα 41 | * [Κανόνες](rules-el.md) 42 | * [Ημερολόγιο - κλίκαρε εδώ για να δεις την πρόοδό μου](log-el.md) 43 | * [FAQ](FAQ-el.md) 44 | * [Πόροι](resources-el.md) 45 | -------------------------------------------------------------------------------- /intl/el/rules-el.md: -------------------------------------------------------------------------------- 1 | # Κανόνες για την πρόκληση « 100 Ημέρες Κώδικα » 2 | 3 | ## Κύρια Δέσμευση 4 | ### *Θα προγραμματίζω για τουλάχιστον μία ώρα κάθε ημέρα για τις επόμενες 100 ημέρες.* 5 | 6 | #### Ημερομηνία Εκκίνησης 7 | 25η Ιουνίου, 2016. [ΒΑΛΤΕ ΤΗΝ ΗΜΕΡΟΜΗΝΙΑ ΣΑΣ ΕΔΩ] 8 | 9 | ## Επιπλέον Κανόνες 10 | 1. Θα tweetάρω την πρόοδό μου κάθε ημέρα -> χρησιμοποιώντας το hashtag #100DaysOfCode 11 | 2. Αν προγραμματίζω στη δουλειά, αυτός ο χρόνος δεν θα μετράει για την πρόκληση. 12 | 3. Θα pushάρω κώδικα στο GitHub κάθε ημέρα ούτως ώστε όλοι να μπορούν να δουν την πρόοδό μου. 13 | 4. Θα ενημερώνω το [Ημερολόγιο](log-el.md) με την ημερήσια πρόοδό μου και θα προσθέτω ένα σύνδεσμο ούτως ώστε οι άλλοι να μπορούν να δουν την πρόοδό μου. 14 | 5. Θα δουλεύω πάνω σε πραγματικά project, αντιμετωπίζοντας πραγματικές προκλήσεις. Ο χρόνος που θα περάσω ακολουθώντας tutorials, online μαθήματα και άλλους παρόμοιους πόρους ΔΕΝ θα μετράει όσον αφορά αυτή την πρόκληση. (Αν μόλις ξεκινάς να μαθαίνεις προγραμματισμό, διάβασε το [FAQ](FAQ-el.md)) 15 | 16 | 17 | ## Ιδέες για να κάνεις αυτή την πρόκληση πιο αποτελεσματική 18 | 1. Για να αυξήσεις τις πιθανότητες επιτυχίας σου, πρέπει υποχρεωτικά να προσθέσεις ένα σύνδεσμο προς κάθε ημερήσιο post στο [Ημερολόγιο](log-el.md). Μπορεί να είναι σύνδεσμος προς ένα commit στο GitHub, προς ένα blog post... 19 | 2. Αν κολλήσεις κάπου, διάβασε αυτό το άρθρο [Learning to Code: When It Gets Dark](https://www.freecodecamp.org/news/learning-to-code-when-it-gets-dark-e485edfb58fd) 20 | 3. Αν δεν ξέρεις γιατί υπάρχει τόση έμφαση στο να δουλεύεις πάνω σε πραγματικά project αντί για tutorials ή online μαθήματα, διάβασε αυτό: [How to Get a Developer Job in Less Than a Year](https://www.freecodecamp.org/news/how-to-get-a-developer-job-in-less-than-a-year-c27bbfe71645) 21 | 4. Αν δεν μπορείς να ανεβάσεις τον κώδικά σου στο GitHub (για παράδειγμα μόλις έχεις ξεκινήσει να προγραμματίζεις και κάνεις διαδραστικές ασκήσεις), πρόσθεσε ένα σύνδεσμο προς ένα tweet σου. Μπορείς να σκεφτείς και κάτι άλλο, αρκεί η πρόκλησή σου να μείνει δημόσια - λαμβάνεις το όφελος του να είσαι δεσμευμένος και υπεύθυνος για την πρόοδό σου. 22 | 5. Άλλο ένα bonus του να κάνεις fork αυτό το repo -> αν δεν έχεις δουλέψει με Markdown στο παρελθόν, είναι μια καλή ευκαιρία να εξασκηθείς. 23 | 24 | ## Περιεχόμενα 25 | * [Κανόνες](rules-el.md) 26 | * [Ημερολόγιο - κλίκαρε εδώ για να δεις την πρόοδό μου](log-el.md) 27 | * [FAQ](FAQ-el.md) 28 | * [Πόροι](resources-el.md) 29 | -------------------------------------------------------------------------------- /intl/es/diario.md: -------------------------------------------------------------------------------- 1 | # Recursos principales para el #100DaysOfCode 2 | 3 | **IMPORTANTE: Algunos de estos recursos están en inglés** 4 | 5 | [El sitio oficial #100DaysOfCode](http://100daysofcode.com/) 6 | 7 | ### Artículos (en inglés) 8 | 9 | 1. [Join the #100DaysOfCode](https://medium.freecodecamp.com/join-the-100daysofcode-556ddb4579e4) freeCodeCamp Medium 10 | 2. [Boot Up 2017 with the #100DaysOfCode Challenge](https://medium.freecodecamp.com/start-2017-with-the-100daysofcode-improved-and-updated-18ce604b237b) freeCodeCamp Medium 11 | 3. [Resistance, Habit Change and the #100DaysOfCode Movement](https://studywebdevelopment.com/100-days-of-code.html) StudyWebDevelopment Blog 12 | 13 | ### Podcasts 14 | 15 | # Recursos adicionales para el #100DaysOfCode 16 | 17 | ## Artículos útiles (en inglés) 18 | 19 | 1. [Gentle Explanation of 'this' keyword in JavaScript](http://rainsoft.io/gentle-explanation-of-this-in-javascript/) 20 | 21 | ## Proyectos e ideas 22 | 23 | 1. [FreeCodeCamp](https://www.freecodecamp.com) 24 | 2. [The Odin Project](http://www.theodinproject.com/) 25 | 26 | ## Otros recursos (en inglés) 27 | 28 | 1. [CodeNewbie - #100DaysOfCode canal de Slack](https://codenewbie.typeform.com/to/uwsWlZ) 29 | 30 | ## Libros (tanto de programación como de no programación) 31 | 32 | ### No sobre código 33 | 34 | 1. ["La Guerra del Arte" por Steven Pressfield](https://www.goodreads.com/book/show/24674834-la-guerra-del-arte) 35 | 2. ["The Obstacle is the Way" by Ryan Holiday](http://www.goodreads.com/book/show/18668059-the-obstacle-is-the-way) 36 | 3. ["El ego es el enemigo" por Ryan Holiday](https://www.goodreads.com/book/show/38473655-el-ego-es-el-enemigo) 37 | 4. ["Meditaciones" por Marcus Aurelius](https://www.goodreads.com/book/show/19213933-meditaciones) 38 | 39 | ### Sobre código (en inglés) 40 | 41 | 1. "Professional Node.js" by Teixeira 42 | 2. ["Eloquent Javascript" by Marijn Haverbeke](http://eloquentjavascript.net/) - available online (free) & as a paperback 43 | 1. [Segunda edición en español](https://hectorip.github.io/Eloquent-JavaScript-ES-online/git) 44 | 3. "Mastering JavaScript" by Ved Antani 45 | 46 | ## Tabla de contenidos 47 | 48 | * [Reglas](reglas.md) 49 | * [Diario - haga clic aquí para ver mi progreso](registro.md) 50 | * [Preguntas frecuentes](preguntas_frecuentes.md) 51 | * [Recursos](recursos.md) 52 | -------------------------------------------------------------------------------- /intl/es/r1-diario.md: -------------------------------------------------------------------------------- 1 | # #100DaysOfCode diario - ronda 1 - [ponga su nombre aquí] 2 | 3 | El diario de mi reto #100DaysOfCode. Empecé el [17 de julio, lunes, 2017] 4 | 5 | ## Registro 6 | 7 | ### R1D1 8 | 9 | Empecé una aplicación de clima. Trabajé en el diseño gráfico de la aplicación. El API de OpenWeather fue una prueba http://www.example.com. 10 | 11 | ### R1D2 12 | -------------------------------------------------------------------------------- /intl/es/registro.md: -------------------------------------------------------------------------------- 1 | # 100 días de código - diario 2 | 3 | ### Día 0: 30 de febrero de 2016 (ejemplo 1) 4 | 5 | ##### (elimine o comente) 6 | 7 | **Progreso de hoy**: Arreglé CSS y trabajé en funciones de canvas por el app. 8 | 9 | **Reflexiones:** Trabajando con el CSS fue una prueba pero, en general, siento que estoy progresando y mejorando lentamente. Canvas, todavía es nuevo para mi pero logré descubrir algunas funcionalidades básicas. 10 | **Enlace a mi trabajo:** [Calculadora App](http://www.example.com) 11 | 12 | ### Día 0: 30 de febrero de 2016 (ejemplo 1) 13 | 14 | ##### (elimine o comente) 15 | 16 | **Progreso de hoy**: Arreglé CSS y trabajé en funciones de canvas por el app. 17 | 18 | **Reflexiones:** Trabajando con el CSS fue una prueba pero, en general, siento que estoy progresando y mejorando lentamente. Canvas, todavía es nuevo para mi pero logré descubrir algunas funcionalidades básicas. 19 | **Enlace a mi trabajo:** [Calculadora App](http://www.example.com) 20 | 21 | ### día 1: 27 de junio, 2016 22 | 23 | **Progreso de hoy**: He completado muchos ejercicios en FreeCodeCamp. 24 | 25 | **Reflexiones** Recientemente comencé a programar y es una gran sensación cuando finalmente resuelvo un desafío de algoritmo después de muchos intentos y horas. 26 | **Enlace(s) a mi trabajo** 27 | 28 | 1. [Descubra la palabra más larga en una cadena de caracteres](https://www.freecodecamp.com/challenges/find-the-longest-word-in-a-string) 29 | 2. [Poner título en mayúsculas en una oración](https://www.freecodecamp.com/challenges/title-case-a-sentence) 30 | -------------------------------------------------------------------------------- /intl/fr/log.md: -------------------------------------------------------------------------------- 1 | # 100 Jours de Code - Log 2 | 3 | ### Jour 0: 26 Février 2016 4 | ##### (supprimer ou commenter l'exemple) 5 | 6 | **Progrès**: Correction du CSS, avancement de la fonctionnalité canvas dans l'app 7 | 8 | **Pensées**: J'ai vraiment bataillé avec le CSS, mais, dans l'ensemble, j'ai l'impression que je commence à m'améliorer. Canvas est encore un concept nouveau pour moi, mais j'ai réussi à comprendre des fonctionnalités de base. 9 | 10 | **Lien vers les travaux**: [Calculator App](http://www.example.com) 11 | 12 | ### Jour 1: 27 février 2016 13 | ##### (supprimer ou commenter l'exemple) 14 | 15 | **Progrès**: J'ai complété des exercices surFreeCodeCamp. 16 | 17 | **Pensées**: J'ai commencé à coder récemment, et c'est vraiment super quand je parviens à résoudre un exercice d'algorithme après de nombreux essais et des heures passées dessus. 18 | 19 | **Liens vers les travaux**: 20 | 1. [Find the Longest Word in a String](https://www.freecodecamp.com/challenges/find-the-longest-word-in-a-string) 21 | 2. [Title Case a Sentence](https://www.freecodecamp.com/challenges/title-case-a-sentence) 22 | -------------------------------------------------------------------------------- /intl/fr/r1-log.md: -------------------------------------------------------------------------------- 1 | # #100DaysOfCode Log - Round 1 - [Your Name Here] 2 | 3 | The log of my #100DaysOfCode challenge. Started on [July 17, Monday, 2017]. 4 | 5 | ## Log 6 | 7 | ### R1D1 8 | Started a Weather App. Worked on the draft layout of the app, struggled with OpenWeather API http://www.example.com 9 | 10 | ### R1D2 11 | -------------------------------------------------------------------------------- /intl/fr/regles.md: -------------------------------------------------------------------------------- 1 | # Règles du défi des 100 Jours de Code 2 | 3 | ## Engagement principal 4 | ### *Je coderai au moins une heure par jour pendant les 100 prochains jours.* 5 | 6 | #### Date de départ 7 | 25 juin 2016. [Inscrivez votre propre date ici] 8 | 9 | ## Règles supplémentaires 10 | 1. Je twitterai mes progrès chaque jour -> en utilisant le hashtag #100JoursDeCode 11 | 2. Si je code au travail, ce temps ne compte pas dans le défi. 12 | 3. Je pusherai mon code chaque jour sur GitHub pour que chacun-e puisse voir mes progrès. 13 | 4. Je mettrai à jour le [Log](log.md) avec mes progrès du jour et je donnerai un lien pour que les autres puissent voir mes progrès. 14 | 5. Je travaillerai à des projets REELS, me confrontant à des difficultés réelles. Le temps passé à suivre des tutos, des cours en ligne et des ressources similaires ne comptera PAS dans ce défi. (Si vous venez juste de commencer à apprendre à coder, lisez la [FAQ](FAQ-fr.md) 15 | 16 | 17 | ## Idées pour que ce défi soit plus efficace 18 | 1. Pour augmenter votre chance de succès, ajoutez un lien à chacune des entrées de votre [log](log.md). Ça peut être le lien de votre commit sur GitHub ou un lien vers un article de blog. 19 | 2. Si vous vous démoralisez ou que vous êtes coincés, lisez cette article: [Learning to Code: When It Gets Dark](https://www.freecodecamp.org/news/learning-to-code-when-it-gets-dark-e485edfb58fd) 20 | 3. Si vous ne voyez pas pourquoi le défi met l'emphase sur la réalisation de projets, par opposition au fait de suivre des tutos ou des cours en ligne, lisez ceci: [How to Get a Developer Job in Less Than a Year](https://www.freecodecamp.org/news/how-to-get-a-developer-job-in-less-than-a-year-c27bbfe71645) 21 | 4. Si vous ne pouvez pas pusher votre code sur Github pour une raison ou pour une autre (ex: si vous débutez dans le code et que vous faites des exercices interactifs), fournissez un lien vers votre tweet du jour. Vous pourrez penser à un projet à inclure plus tard dans le défi tant que votre engagement reste public - et vous aurez le bénéfice d'être resté engagé dans le défi et d'avoir rendu compte de votre progression. 22 | 5. Un autre bonus dans le fait de forker ce repo -> si vous n'aviez jamais travaillé avec du Markdown auparavant, c'est un bon moyen de pratiquer. 23 | 24 | ## Contenu 25 | * [Règles](regles.md) 26 | * [Log - cliquez ici pour voir mes progrès](log.md) 27 | * [FAQ](FAQ-fr.md) 28 | * [Ressources](resources-fr.md) 29 | -------------------------------------------------------------------------------- /intl/fr/resources-fr.md: -------------------------------------------------------------------------------- 1 | # Ressources principales à propos des #100JoursdeCode 2 | 3 | *(Ndlt : la plupart de ces ressources sont actuellement uniquement en anglais.)* 4 | 5 | [Site officiel des #100DaysOfCode](http://100daysofcode.com/) 6 | 7 | ### Articles 8 | 9 | 1. [Join the #100DaysOfCode](https://medium.freecodecamp.com/join-the-100daysofcode-556ddb4579e4) freeCodeCamp Medium 10 | 2. [Boot Up 2017 with the #100DaysOfCode Challenge](https://medium.freecodecamp.com/start-2017-with-the-100daysofcode-improved-and-updated-18ce604b237b) freeCodeCamp Medium 11 | 3. [Resistance, Habit Change and the #100DaysOfCode Movement](https://studywebdevelopment.com/100-days-of-code.html) StudyWebDevelopment Blog 12 | 13 | ### Podcasts 14 | 15 | # Ressources supplémentaires sur les #100DaysOfCode 16 | 17 | ## Articles utiles 18 | 1. [Gentle Explanation of 'this keyword in JavaScript](http://rainsoft.io/gentle-explanation-of-this-in-javascript/) 19 | 20 | ## Idées et projets 21 | 1. [FreeCodeCamp](https://www.freecodecamp.com) 22 | 2. [The Odin Project](http://www.theodinproject.com/) 23 | 24 | ## Autres ressources 25 | 1. [CodeNewbie - #100DaysOfCode Slack Channel](https://codenewbie.typeform.com/to/uwsWlZ) 26 | 27 | ## Livres (programmation et autre) 28 | 29 | ### En dehors du code 30 | 1. ["The War of Art" by Steven Pressfield](http://www.goodreads.com/book/show/1319.The_War_of_Art) 31 | 2. ["The Obstacle is the Way" by Ryan Holiday](http://www.goodreads.com/book/show/18668059-the-obstacle-is-the-way?ac=1&from_search=true) 32 | 3. ["Ego is the Enemy" by Ryan Holiday](http://www.goodreads.com/book/show/27036528-ego-is-the-enemy?from_search=true&search_version=service) 33 | 4. ["Meditations" by Marcus Aurelius](https://www.goodreads.com/book/show/662925.Meditations) 34 | 35 | ### Programmation 36 | 1. "Professional Node.js" by Teixeira 37 | 2. ["Eloquent Javascript" by Marijn Haverbeke](http://eloquentjavascript.net/) - disponible en ligne (gratuitement) & en version papier 38 | 3. "Mastering JavaScript" by Ved Antani 39 | 40 | ## Contenu 41 | * [Règles](regles.md) 42 | * [Log - click here to see my progress](log.md) 43 | * [FAQ](FAQ-fr.md) 44 | * [Resources](resources-fr.md) 45 | -------------------------------------------------------------------------------- /intl/fr/rules.md: -------------------------------------------------------------------------------- 1 | # Rules of the 100 Days Of Code Challenge 2 | 3 | ## Main Commitment 4 | ### *I will code for at least an hour every day for the next 100 days.* 5 | 6 | #### Start Date 7 | June 25th, 2016. [PUT YOUR DATE HERE] 8 | 9 | ## Additional Rules 10 | 1. I will tweet about my progress every day -> using the hashtag #100DaysOfCode 11 | 2. If I code at work, that time won't count towards the challenge. 12 | 3. I will push code to GitHub every day so that anyone can see my progress. 13 | 4. I will update the (Log)[log.md] with the day's progress and provide a link so that others can see my progress. 14 | 5. I will work on real projects, facing real challenges. The time spent doing tutorials, online courses and other similar resources will NOT count towards this challenge. (If you've just started learning to code, read [FAQ](FAQ.md)) 15 | 16 | 17 | ## Ideas to make this challenge more effective 18 | 1. To increase the chances of success, it's a requirement that you add a link to each of the day posts in the [log](log.md). It can be a link to a commit on GitHub, a link to a blog post 19 | 2. If you get upset or stuck, read this article: [Learning to Code: When It Gets Dark](https://www.freecodecamp.org/news/learning-to-code-when-it-gets-dark-e485edfb58fd) 20 | 3. If you don't know why there is such an emphasis on working on the projects vs doing tutorials or online courses, read this: [How to Get a Developer Job in Less Than a Year](https://www.freecodecamp.org/news/how-to-get-a-developer-job-in-less-than-a-year-c27bbfe71645) 21 | 4. If you can't push your code to GitHub for some reason (e.g. if you're only starting to code and doing interactive exercises), provide a link to a tweet. You can think of something else as long as your challenge stays public - and you get the benefit of being committed to it and accountable for your progress. 22 | 5. Another good bonus of forking this repo -> if you haven't worked with Markdown before, it's a good way to practice. 23 | 24 | ## Contents 25 | * [Rules](rules.md) 26 | * [Log - click here to see my progress](log.md) 27 | * [FAQ](FAQ.md) 28 | * [Resources](resources.md) 29 | -------------------------------------------------------------------------------- /intl/it/log.md: -------------------------------------------------------------------------------- 1 | # 100 Days Of Code - Log 2 | 3 | ### Giorno 0: 18 Gennaio 2019 (Esempio 1) 4 | ##### (cancellami o commentami) 5 | 6 | **Progressi di oggi**: Fixati CSS, lavorato alle canvas per l'app. 7 | 8 | **Appunti:** Ho avuto veramemte difficoltà con i CSS, ma, tutto sommato, mi sembra di essere un po' migliorato. Le Canvas sono nuovissime per me, ma sono riuscito a capirne qualche funzionalità di base. 9 | 10 | **Link al lavoro:** [Calculator App](http://www.example.com) 11 | 12 | ### Giorno 0: 18 Gennaio 2019 (Esempio 2) 13 | ##### (cancellami o commentami) 14 | 15 | **Progressi di oggi**: Fixati CSS, lavorato alle canvas per l'app. 16 | 17 | **Appunti:** Ho avuto veramemte difficoltà con i CSS, ma, tutto sommato, mi sembra di essere un po' migliorato. Le Canvas sono nuovissime per me, ma sono riuscito a capirne qualche funzionalità di base. 18 | 19 | **Link al lavoro:** [Calculator App](http://www.example.com) 20 | 21 | 22 | **Link al lavoro:** [Calculator App](http://www.example.com) 23 | 24 | ### Giorno 1: 18 Gennaio 2019 (Esempio 2) 25 | 26 | **Progressi di oggi**: Fixati CSS, lavorato alle canvas per l'app. 27 | 28 | **Appunti:** Ho avuto veramemte difficoltà con i CSS, ma, tutto sommato, mi sembra di essere un po' migliorato. Le Canvas sono nuovissime per me, ma sono riuscito a capirne qualche funzionalità di base. 29 | 30 | **Link al lavoro:** 31 | 1. [Find the Longest Word in a String](https://www.freecodecamp.com/challenges/find-the-longest-word-in-a-string) 32 | 2. [Title Case a Sentence](https://www.freecodecamp.com/challenges/title-case-a-sentence) 33 | -------------------------------------------------------------------------------- /intl/it/r1-log.md: -------------------------------------------------------------------------------- 1 | # #100DaysOfCode Log - Round 1 - [Il tuo nome qui] 2 | 3 | Log della mia #100DaysOfCode challenge. Iniziata il [18 Gennaio 2019]. 4 | 5 | ## Log 6 | 7 | ### R1D1 8 | Iniziata una app per il meteo. Ho lavorato sulla bozza per il layout e sono impazzito con le API di OpenWeather http://www.example.com 9 | 10 | ### R1D2 11 | -------------------------------------------------------------------------------- /intl/it/resources.md: -------------------------------------------------------------------------------- 1 | # Risorse principali per la #100DaysOfCode 2 | 3 | [Sito ufficiale #100DaysOfCode](http://100daysofcode.com/) 4 | 5 | ### Articoli 6 | 1. [Join the #100DaysOfCode](https://medium.freecodecamp.com/join-the-100daysofcode-556ddb4579e4) freeCodeCamp Medium 7 | 2. [Boot Up 2017 with the #100DaysOfCode Challenge](https://medium.freecodecamp.com/start-2017-with-the-100daysofcode-improved-and-updated-18ce604b237b) freeCodeCamp Medium 8 | 3. [Resistance, Habit Change and the #100DaysOfCode Movement](https://studywebdevelopment.com/100-days-of-code.html) StudyWebDevelopment Blog 9 | 10 | ### Podcast 11 | 12 | # Ulteriori risorse per la #100DaysOfCode 13 | 14 | ## Articoli utili 15 | 1. [Gentle Explanation of 'this keyword in JavaScript](http://rainsoft.io/gentle-explanation-of-this-in-javascript/) 16 | 17 | ## Progetti e idee 18 | 1. [FreeCodeCamp](https://www.freecodecamp.com) 19 | 2. [The Odin Project](http://www.theodinproject.com/) 20 | 21 | ## Altre risorse 22 | 1. [CodeNewbie - #100DaysOfCode Slack Channel](https://codenewbie.typeform.com/to/uwsWlZ) 23 | 24 | ## Libri (relativi e non al coding) 25 | 26 | ### Non-Coding 27 | 1. ["The War of Art" by Steven Pressfield](http://www.goodreads.com/book/show/1319.The_War_of_Art) 28 | 2. ["The Obstacle is the Way" by Ryan Holiday](http://www.goodreads.com/book/show/18668059-the-obstacle-is-the-way?ac=1&from_search=true) 29 | 3. ["Ego is the Enemy" by Ryan Holiday](http://www.goodreads.com/book/show/27036528-ego-is-the-enemy?from_search=true&search_version=service) 30 | 4. ["Meditations" by Marcus Aurelius](https://www.goodreads.com/book/show/662925.Meditations) 31 | 32 | ### Coding 33 | 1. "Professional Node.js" by Teixeira 34 | 2. ["Eloquent Javascript" by Marijn Haverbeke](http://eloquentjavascript.net/) - available online (free) & as a paperback 35 | 3. "Mastering JavaScript" by Ved Antani 36 | 37 | ## Contenuti 38 | * [Regole](rules.md) 39 | * [Log - guarda i miei progressi](log.md) 40 | * [FAQ](FAQ.md) 41 | * [Risorse](resources.md) 42 | -------------------------------------------------------------------------------- /intl/it/rules.md: -------------------------------------------------------------------------------- 1 | # Regole della 100 Days Of Code Challenge 2 | 3 | ## Impegno principale 4 | ### *Programmerò per almeno un'ora ogni giorno per i prossimi 100 giorni.* 5 | 6 | #### Data di inizio 7 | 25 Giugno 2016. [INSERISCI LA TUA DATA QUI] 8 | 9 | ## Ulteriori regole 10 | 1. Twitterò i miei progressi ogni giorno usando l'hashtag #100DaysOfCode 11 | 2. Se programmo al lavoro, quel tempo non conterà per la challange. 12 | 3. Pusherò il codice su GitHub tutti i giorni così chiunque potrà vedere i miei progressi. 13 | 4. Aggiornerò il (Log)[log.md] con i progressi del giorno e ne fornirò il link così chiunqu potrà vedere i miei progressi. 14 | 5. Lavorerò su progetti reali, affrontando problemi reali. Il tempo impiegato a fare tutorial, corsi online e simili non conterà per la challange. (Se stai imparando a programmare leggi le [FAQ](FAQ.md)) 15 | 16 | 17 | ## Idee per rendere la challange più efficace 18 | 1. Per aumentare le chance di successo è richiesto che tu aggiunga un link ad ogni post giornaliero nel [log](log.md). Può essere un link a una commit su GitHub o un link a un post su un blog 19 | 2. Se ti senti stufo o sei bloccato leggi questo articolo: [Learning to Code: When It Gets Dark](https://www.freecodecamp.org/news/learning-to-code-when-it-gets-dark-e485edfb58fd) 20 | 3. Se non sai perchè sia meglio lavorare su un progetto piuttosto che fare tutorial o corsi online, leggi questo articolo: [How to Get a Developer Job in Less Than a Year](https://www.freecodecamp.org/news/how-to-get-a-developer-job-in-less-than-a-year-c27bbfe71645) 21 | 4. Se non puoi pushare il tuo codice su GitHub per qualche ragione (es. hai appena cominciato a programmare e fai solo esercizi interattivi), fornisci un link a un tweet. Puoi pensare ad altro a patto che la tua challange rimanga pubblica - e manterrai i benefici del rimanere concentrato e responsabile per i tuoi progressi. 22 | 5. Forka questo repository -> se non hai mai avuto a che fare con Markdown finora, è un buon modo per imparare. 23 | 24 | ## Contenuti 25 | * [Regole](rules.md) 26 | * [Log - guarda i miei progressi](log.md) 27 | * [FAQ](FAQ.md) 28 | * [Risorse](resources.md) 29 | -------------------------------------------------------------------------------- /intl/ja/README.md: -------------------------------------------------------------------------------- 1 | # #100DaysOfCodeチャレンジへの参加 2 | 3 | ## コンテンツ 4 | 5 | * [ルール](rules.md) 6 | * [学習ログ](log.md) 7 | * [FAQ](FAQ.md) 8 | * [リソース](resources.md) 9 | 10 | ## Translations 11 | [বাংলা](../bn/README.md) - [中文](../ch/README.md) - [deutsch](../de/README.md) - [español](../es/README.md) – [français](../fr/FAQ-fr.md) – [日本語](../ja/README.md) - [한국어](../ko/README-ko.md) – [nederlands](../nl/README.md) – [norsk](../no/README.md) – [polski](../pl/README.md) - [português do Brasil](../pt-br/LEIAME.md) - [русский](../ru/README-ru.md) – [українська](../ua/README-ua.md) - [srpski](intl/sr/README-sr.md) 12 | 13 | ## 参加方法 14 | 15 | 0. [公式サイト](http://100daysofcode.com/)で#100DaysOfCodeの活動を見てください。このリスト(www.100DaysOfCode.com/connect)から、好きなプラットフォームを選んで他の参加者と繋がりましょう。 16 | また、[こちら](https://www.100daysofcode.com/slack)から100DaysOfCodeのSlackに参加することができます。 17 | 1. [Join the #100DaysOfCode](https://medium.freecodecamp.com/join-the-100daysofcode-556ddb4579e4)を読んでください。 18 | 1. このリポジトリをフォークして[学習ログ](log.md)、もしくは[R1学習ログ](r1-log.md) (R1はラウンド1の略)に毎日投稿してください。[例](https://github.com/Kallaway/100-days-kallaway-log). 19 | 1. **これから100日間、毎日最低1時間プログラミングをしましょう。** 20 | 1. **毎日Twitter上で最低2人の人を応援してください!励まし合っていきましょう。** 21 | 1. [ルール](rules.md)の開始日を自分がチャレンジを初めた日に変更してください。 22 | 1. 学習ログの例は削除し、自分の学習内容を記述してください。 23 | 1. **毎日Twitterにその日の進捗を#100DaysOfCodeタグを付けて投稿してください。** 24 | 1. [100DaysOfCode](https://twitter.com/_100DaysOfCode)をフォローしてください。このBotは#100DaysOfCodeタグのツイートを自動でリツイートします。これによりモチベーションを保ち、コミュニティの参加者と関わり合うことができます。[@amanhimself](https://twitter.com/amanhimself)さん、Botを作ってくれてありがとうございます! 25 | 1. 【重要】 (詳しくは4番目のルールを見てください) Twitter上で、チャレンジの参加者と励まし合いましょう!進捗の投稿に返信してみたり、質問に答えてあげたりすることで、このコミュニティがより効果的なものになり、一人ひとりの成功確率が上がっていきます。また、周りの参加者と関係を築くことで、自身の決意もより固くなるでしょう。 26 | 1. もし他の人も使えそうな有用なサイトを見つけたら、このリポジトリに追加してプルリクエストを送るか、[@ka11away](https://twitter.com/ka11away)までDMを送ってください。 27 | 28 | ## その他のチャレンジにも参加してみませんか? 29 | 30 | [the #100DaysOfX Challenges Project](http://100daysofx.com/)を見てみてください。習慣が変われば、人生が変わります。始めるなら今です! 31 | 32 | 私のおすすめは最大でも同時に2,3個以上のチャレンジに同時には参加しないことで、理想は2個です。#100DaysOfCodeのような精神的な強さが必要なチャレンジをしているのであれば、 [#100DaysOfHealth](http://100daysofx.com/where-x-is/health/)や[#100DaysOfFitness](http://100daysofx.com/challenges/)などのチャレンジを同時にやることがおすすめです。 33 | その他にも言語、作文、瞑想、料理などたくさんあるので、色々見て選んでみてください! 34 | 35 | ## 備考 36 | 37 | * 100DaysOfCodeに関するその他の質問やアイデアに関しては、こちらのツイッターへ: [@ka11away](https://twitter.com/ka11away) 38 | * このリポジトリを気に入っていただけた場合は、右上とスターボタンを押してもらえると大変嬉しいです :) 39 | -------------------------------------------------------------------------------- /intl/ja/log.md: -------------------------------------------------------------------------------- 1 | # 100 Days Of Code - 学習ログ 2 | 3 | ### 0日目: 2016年2月28日 4 | 5 | **今日の進捗**: 計算機アプリのCSSを修正して、canvasの機能に取り掛かった。 6 | 7 | **思ったこと** CSSにはとても苦労したけど、少しずつ上達してきてる気がする。Canvasはまだ始めたばっかりだけど、基本的な機能はいくつか理解できてきた。 8 | 9 | **リンク** [計算機アプリ](http://www.example.com) 10 | 11 | ### 1日目: 2016年6月27日(月) 12 | 13 | **今日の進捗**: FreeCodeCampの演習をたくさん進めた。 14 | 15 | **思ったこと** プログラミングを始めたばかりだから、何時間もかけてやっとアルゴリズムのチャレンジが解けるとめちゃくちゃ気持ちいい! 16 | 17 | **リンク** 18 | 1. [Find the Longest Word in a String](https://www.freecodecamp.com/challenges/find-the-longest-word-in-a-string) 19 | 2. [Title Case a Sentence](https://www.freecodecamp.com/challenges/title-case-a-sentence) 20 | -------------------------------------------------------------------------------- /intl/ja/r1-log.md: -------------------------------------------------------------------------------- 1 | # #100DaysOfCode 学習ログ - 1週目 - [自分の名前] 2 | 3 | 私の#100DaysOfCodeチャレンジの学習ログです。2017年6月17日開始。 4 | 5 | ## 学習ログ 6 | 7 | ### R1D1 8 | 天気アプリの開発を開始。アプリの大まかなレイアウトができてきたが、OpenWeatherのAPIの扱いに苦労した。 http://www.example.com 9 | 10 | ### R1D2 11 | -------------------------------------------------------------------------------- /intl/ja/resources.md: -------------------------------------------------------------------------------- 1 | # #100DaysOfCodeの主なリソース 2 | 3 | [#100DaysOfCode公式サイト](http://100daysofcode.com/) 4 | 5 | ### 記事 6 | 1. [Join the #100DaysOfCode](https://medium.freecodecamp.com/join-the-100daysofcode-556ddb4579e4) freeCodeCamp Medium 7 | 2. [Boot Up 2017 with the #100DaysOfCode Challenge](https://medium.freecodecamp.com/start-2017-with-the-100daysofcode-improved-and-updated-18ce604b237b) freeCodeCamp Medium 8 | 3. [Resistance, Habit Change and the #100DaysOfCode Movement](https://studywebdevelopment.com/100-days-of-code.html) StudyWebDevelopment Blog 9 | 10 | ### ポットキャスト 11 | 12 | # #100DaysOfCodeのその他のリソース 13 | 14 | ## 参考になる記事 15 | 1. [Gentle Explanation of 'this keyword in JavaScript](http://rainsoft.io/gentle-explanation-of-this-in-javascript/) 16 | 17 | ## プロジェクトやアイデア 18 | 1. [FreeCodeCamp](https://www.freecodecamp.com) 19 | 2. [The Odin Project](http://www.theodinproject.com/) 20 | 21 | ## その他のリソース 22 | 1. [CodeNewbie - #100DaysOfCode Slack Channel](https://codenewbie.typeform.com/to/uwsWlZ) 23 | 24 | ## 本 25 | 26 | ### 自己啓発関連 27 | 1. ["The War of Art" by Steven Pressfield](http://www.goodreads.com/book/show/1319.The_War_of_Art) 28 | 2. ["The Obstacle is the Way" by Ryan Holiday](http://www.goodreads.com/book/show/18668059-the-obstacle-is-the-way?ac=1&from_search=true) 29 | 3. ["Ego is the Enemy" by Ryan Holiday](http://www.goodreads.com/book/show/27036528-ego-is-the-enemy?from_search=true&search_version=service) 30 | 4. ["Meditations" by Marcus Aurelius](https://www.goodreads.com/book/show/662925.Meditations) 31 | 32 | ### プログラミング関連 33 | 1. "Professional Node.js" by Teixeira 34 | 2. ["Eloquent Javascript" by Marijn Haverbeke](http://eloquentjavascript.net/) - オンライン(無料)と文庫で入手可能 35 | 3. "Mastering JavaScript" by Ved Antani 36 | 37 | ## コンテンツ 38 | * [ルール](rules.md) 39 | * [学習ログ](log.md) 40 | * [FAQ](FAQ.md) 41 | * [リソース](resources.md) 42 | -------------------------------------------------------------------------------- /intl/ja/rules.md: -------------------------------------------------------------------------------- 1 | # 「100 Days Of Codeチャレンジ」のルール 2 | 3 | ## 主な約束事 4 | ### *これから100日間、毎日最低1時間プログラミングをすること* 5 | 6 | #### 開始日 7 | 2016年6月25日 [自分の開始日を記入] 8 | 9 | ## その他のルール 10 | 1. 毎日Twitterにその日の進捗を投稿しましょう。 -> #100DaysOfCode タグをつけること。 11 | 2. 仕事中にプログラミングをしたとしても、その時間はこのチャレンジには含まれません。 12 | 3. 誰でも自分の進捗を確認できるように、毎日Githubにコードをプッシュしましょう。 13 | 4. 誰でも自分の進捗を確認できるように(学習ログ)[log.md]にその日の進捗を毎日追加しましょう。 14 | 5. 実際にプロジェクトなどに挑戦すること。チュートリアルやオンラインのコースだけをやっていてもこのチャレンジにはカウントされません。(プログラミングをまだ学び初めの方は, [FAQ](FAQ.md)を読んでください。) 15 | 16 | 17 | ## このチャレンジをより効果的にするための工夫 18 | 1. 成功の確率を上げるためには、毎日の投稿を[学習ログ](log.md)に追加していくことが必要です。投稿はGithubのコミットでも、ブログへのリンクでも構いません。 19 | 2. うまくいかないときには、こちらの記事を読んでみてください。[Learning to Code: When It Gets Dark](https://www.freecodecamp.org/news/learning-to-code-when-it-gets-dark-e485edfb58fd) 20 | 3. なぜチュートリアルやオンラインのコースだけではなく、プロジェクトをやるべきかを疑問に思ったときには、こちらの記事を読んでみてください。[How to Get a Developer Job in Less Than a Year](https://www.freecodecamp.org/news/how-to-get-a-developer-job-in-less-than-a-year-c27bbfe71645) 21 | 4. Githubにうまくコードをプッシュできないときには (まだ初心者でチュートリアルをやっている場合など)、ツイートへのリンクを公開してください。何かしら、公に見れるものであればやる気が持続します。 22 | 5. このリポジトリをフォークするメリットがさらにあるとしたら、マークダウン記法のいい練習になることです。 23 | 24 | ## コンテンツ 25 | * [ルール](rules.md) 26 | * [学習ログ](log.md) 27 | * [FAQ](FAQ.md) 28 | * [リソース](resources.md) 29 | -------------------------------------------------------------------------------- /intl/ko/log.md: -------------------------------------------------------------------------------- 1 | # 100일 코딩 - 로그(Log) 2 | 3 | ### 0일차: 2016년 2월 30일 (예시 1) 4 | ##### (이 예시는 삭제하거나 주석 처리하고 본인의 내용으로 새로 작성해주세요) 5 | 6 | **오늘 진행한 내용**: CSS 수정, 앱의 canvas 기능 작업 7 | 8 | **느낀 점:** CSS 때문에 많이 고생했지만, 전체적으로 서서히 나아지는 점을 느꼈다. Canvas는 여전히 새롭지만, 기본적인 기능은 어느 정도 파악했다. 9 | 10 | **작업 내용 링크:** [계산기 앱](http://www.example.com) 11 | 12 | ### 0일차: 2016년 2월 30일 (예시 1) 13 | ##### (이 예시는 삭제하거나 주석 처리하고 본인의 내용으로 새로 작성해주세요) 14 | 15 | **오늘 진행한 내용**: CSS 수정, 앱의 canvas 기능 작업 16 | 17 | **느낀 점:** CSS 때문에 많이 고생했지만, 전체적으로 서서히 나아지는 점을 느꼈다. Canvas는 여전히 새롭지만, 기본적인 기능은 어느 정도 파악했다. 18 | 19 | **작업 내용 링크:** [계산기 앱](http://www.example.com) 20 | 21 | ### 1일차: 6월 27일, 월요일 22 | 23 | **오늘 진행한 내용**: FreeCodeCamp에서 많은 예제를 해결함 24 | 25 | **느낀 점**: 나는 최근에 코딩을 시작했고, 많은 시간과 시도를 통해 해결한 알고리즘 문제는 내게 큰 기쁨을 주었다. 26 | 27 | **작업 내용 링크** 28 | 1. [String에서 가장 긴 단어 찾기(Find the Longest Word in a String)](https://www.freecodecamp.com/challenges/find-the-longest-word-in-a-string) 29 | 2. [첫 문자 대문자로 만들기(Title Case a Sentence)](https://www.freecodecamp.com/challenges/title-case-a-sentence) 30 | -------------------------------------------------------------------------------- /intl/ko/r1-log.md: -------------------------------------------------------------------------------- 1 | # #100DaysOfCode (#100일코딩) 로그(Log) - 1라운드 - [당신의 이름] 2 | 3 | #100DaysOfCode (#100일코딩) 도전에 대한 로그 기록. [2017년 7월 17일, 월요일] 시작함. 4 | 5 | ## 로그(Log) 6 | 7 | ### R1D1 8 | 날씨 앱을 만들기 시작했다. 앱의 레이아웃 초안을 작업하고, OpenWeather API http://www.example.com 와 씨름하고 있다. 9 | 10 | ### R1D2 11 | -------------------------------------------------------------------------------- /intl/ko/resources.md: -------------------------------------------------------------------------------- 1 | # #100DaysOfCode (#100일코딩) 기본 참고 자료 2 | 3 | [#100DaysOfCode 공식 사이트(영문)](http://100daysofcode.com/) 4 | 5 | ### 게시물(영문) 6 | 1. [Join the #100DaysOfCode](https://medium.freecodecamp.com/join-the-100daysofcode-556ddb4579e4) freeCodeCamp Medium 7 | 2. [Boot Up 2017 with the #100DaysOfCode Challenge](https://medium.freecodecamp.com/start-2017-with-the-100daysofcode-improved-and-updated-18ce604b237b) freeCodeCamp Medium 8 | 3. [Resistance, Habit Change and the #100DaysOfCode Movement](https://studywebdevelopment.com/100-days-of-code.html) StudyWebDevelopment Blog 9 | 10 | ### 팟캐스트 11 | 12 | # #100DaysOfCode (#100일코딩) 추가 참고 자료 13 | 14 | ## 도움이 되는 게시물(영문) 15 | 1. [Gentle Explanation of 'this keyword in JavaScript](http://rainsoft.io/gentle-explanation-of-this-in-javascript/) 16 | 17 | ## 프로젝트 및 아이디어(영문) 18 | 1. [FreeCodeCamp](https://www.freecodecamp.com) 19 | 2. [The Odin Project](http://www.theodinproject.com/) 20 | 21 | ## 기타 자료(영문) 22 | 1. [CodeNewbie - #100DaysOfCode Slack Channel](https://codenewbie.typeform.com/to/uwsWlZ) 23 | 24 | ## 책 (코딩 도서 및 일반 도서) 25 | 26 | ### 일반 도서(영문) 27 | 1. ["The War of Art" by Steven Pressfield](http://www.goodreads.com/book/show/1319.The_War_of_Art) 28 | 2. ["The Obstacle is the Way" by Ryan Holiday](http://www.goodreads.com/book/show/18668059-the-obstacle-is-the-way?ac=1&from_search=true) 29 | 3. ["Ego is the Enemy" by Ryan Holiday](http://www.goodreads.com/book/show/27036528-ego-is-the-enemy?from_search=true&search_version=service) 30 | 4. ["Meditations" by Marcus Aurelius](https://www.goodreads.com/book/show/662925.Meditations) 31 | 32 | ### 코딩 도서(영문) 33 | 1. "Professional Node.js" by Teixeira 34 | 2. ["Eloquent Javascript" by Marijn Haverbeke](http://eloquentjavascript.net/) - 온라인 (무료) & 종이책 (유료) 35 | 3. "Mastering JavaScript" by Ved Antani 36 | 37 | ## 내용 38 | * [규칙](rules.md) 39 | * [로그 - 내 진행 상황을 보려면 클릭하세요](log.md) 40 | * [FAQ](FAQ.md) 41 | * [참고 자료](resources.md) 42 | -------------------------------------------------------------------------------- /intl/ko/rules.md: -------------------------------------------------------------------------------- 1 | # 100일 코딩 도전의 규칙 2 | 3 | ## 주요 약속 4 | ### *앞으로 100일 동안 하루에 최소 1시간씩 코딩을 합니다.* 5 | 6 | #### 시작일 7 | 2016년 6월 25일. [당신의 날짜로 바꾸세요] 8 | 9 | ## 추가 규칙 10 | 1. 매일 내 진행 상황을 트윗한다. -> #100DaysOfCode (#100일코딩) 해시태그와 함께 11 | 2. 만약 직장이나 일과 관련된 코딩을 한다면, 그 시간은 도전 시간에 포함되지 않습니다. 12 | 3. 모두가 내 진행 상황을 볼 수 있도록, GitHub에 작성한 코드를 올립니다. 13 | 4. 모두가 내 진행 내용을 알 수 있도록, 하루의 진행 내용과 링크를 (Log)[log.md] 파일에 업데이트합니다. 14 | 5. 실제 프로젝트를 통해 실질적인 도전을 합니다. 튜토리얼이나 온라인 강의 같은 내용은 도전 시간에 포함되지 않습니다. (만약 당신이 코딩을 갓 시작했다면 [FAQ](FAQ.md) 내용을 참고합니다.) 15 | 16 | ## 더욱 효과적인 도전을 위한 조언 17 | 1. 성공 확률을 높이기 위해, [로그(log)](log.md) 에 매일 작성하는 내용에 링크를 추가하는 건 필수적입니다. GitHub commit에 대한 링크일 수도, 블로그 포스팅 글에 대한 링크일 수도 있습니다. 18 | 2. 만약 짜증이 나거나 막막하다면, 이 글을 읽어보세요: [Learning to Code: When It Gets Dark](https://www.freecodecamp.org/news/learning-to-code-when-it-gets-dark-e485edfb58fd) (영문 글입니다.) 19 | 3. 왜 튜토리얼이나 온라인 강의가 아닌 실제 프로젝트를 진행하는 것을 강조하는지 이해할 수 없다면, 이 글을 읽어보세요: [How to Get a Developer Job in Less Than a Year](https://www.freecodecamp.org/news/how-to-get-a-developer-job-in-less-than-a-year-c27bbfe71645) 20 | 4. 만약 GitHub에 코드를 올릴 수 없다면 (예를 들어, 당신이 코딩을 막 시작했고 인터랙티브한 예제만을 해보고 있다면), 트윗에 링크를 적어주세요. 도전이 공개될 경우에만 당신은 더 큰 무언가를 생각할 수 있고 - 스스로 약속한 것에 대한 보상을 받을 수 있고 진행해야 한다는 책임감을 가질 수 있습니다. 21 | 5. 이 repo(저장소)를 fork하는 것에 대한 또 다른 장점은 -> 만약 아직 마크다운(Markdown) 문서 작성을 경험해 보지 못 했다면, 좋은 연습이 될 것입니다. 22 | 23 | ## 내용 24 | * [규칙](rules.md) 25 | * [로그 - 내 진행 상황을 보려면 클릭하세요](log.md) 26 | * [FAQ](FAQ.md) 27 | * [참고 자료](resources.md) 28 | -------------------------------------------------------------------------------- /intl/nl/bronnen.md: -------------------------------------------------------------------------------- 1 | # Hoofdbronnen over #100DaysOfCOde 2 | 3 | [De officiële #100DaysOfCode-site](http://100daysofcode.com/) 4 | 5 | ### Artikelen 6 | 1. [Join the #100DaysOfCode](https://medium.freecodecamp.com/join-the-100daysofcode-556ddb4579e4) freeCodeCamp Medium 7 | 2. [Boot Up 2017 with the #100DaysOfCode Challenge](https://medium.freecodecamp.com/start-2017-with-the-100daysofcode-improved-and-updated-18ce604b237b) freeCodeCamp Medium 8 | 3. [Resistance, Habit Change and the #100DaysOfCode Movement](https://studywebdevelopment.com/100-days-of-code.html) StudyWebDevelopment Blog 9 | 10 | ### Podcasts 11 | 12 | # Extra bronnen over #100DaysOfCode 13 | 14 | ## Nuttige artikelen 15 | 1. [Gentle Explanation of 'this keyword in JavaScript](http://rainsoft.io/gentle-explanation-of-this-in-javascript/) 16 | 2. [Build a Laravel CRUD Application from scratch](https://www.codewall.co.uk/laravel-crud-demo-with-resource-controller-tutorial/) 17 | 18 | ## Projecten en ideeën 19 | 1. [FreeCodeCamp](https://www.freecodecamp.com) 20 | 2. [The Odin Project](http://www.theodinproject.com/) 21 | 22 | ## Overige bronnen 23 | 24 | ### Non-Coding 25 | 1. ["The War of Art" door Steven Pressfield](http://www.goodreads.com/book/show/1319.The_War_of_Art) 26 | 2. ["The Obstacle is the Way" door Ryan Holiday](http://www.goodreads.com/book/show/18668059-the-obstacle-is-the-way?ac=1&from_search=true) 27 | 3. ["Ego is the Enemy" door Ryan Holiday](http://www.goodreads.com/book/show/27036528-ego-is-the-enemy?from_search=true&search_version=service) 28 | 4. ["Meditations" door Marcus Aurelius](https://www.goodreads.com/book/show/662925.Meditations) 29 | 30 | 31 | ### Coding 32 | 1. "Professional Node.js" door Teixeira 33 | 2. ["Eloquent Javascript" door Marijn Haverbeke](http://eloquentjavascript.net/) - online beschikbaar (gratis) en als paperback 34 | 3. "Mastering JavaScript" door Ved Antani 35 | 36 | ## Inhoud 37 | * [Regels](regels.md) 38 | * [Log - klik hier om mijn voortgang te zien](log-nl.md) 39 | * [FAQ](FAQ-nl.md) 40 | * [Bronnen](bronnen.md) -------------------------------------------------------------------------------- /intl/nl/log-nl.md: -------------------------------------------------------------------------------- 1 | # 100 Days Of Code - Log 2 | 3 | ### Dag 0: 30 februari 2016 (Voorbeeld 1) 4 | ##### (verwijder or comment me uit) 5 | 6 | **Voortgang van vandaag**: CSS gefixet, gewerkt aan canvasfunctionaliteit voor de app. 7 | 8 | **Gedachten**: Ik liep tegen de CSS aan, over het algemeen krijg ik de indruk dan ik langzamerhand beter word. Canvas is erg nieuw voor me maar het is me gelukt om basisfunctionaliteit de begrijpen. 9 | 10 | **Link naar mijn werk**: [Rekenmachineapp](http://www.example.com) 11 | 12 | ### Dag 0: 30 februari 2016 (Voorbeeld 1) 13 | ##### (verwijder or comment me uit) 14 | 15 | **Voortgang van vandaag**: CSS gefixet, gewerkt aan canvasfunctionaliteit voor de app. 16 | 17 | **Gedachten**: Ik liep tegen de CSS aan, over het algemeen krijg ik de indruk dan ik langzamerhand beter word. Canvas is erg nieuw voor me maar het is me gelukt om basisfunctionaliteit de begrijpen. 18 | 19 | **Link naar mijn werk**: [Rekenmachineapp](http://www.example.com) -------------------------------------------------------------------------------- /intl/nl/r1-log-nl.md: -------------------------------------------------------------------------------- 1 | # #100DaysOfCode Log - Ronde 1 - [Jouw naam hier] 2 | 3 | De log van mijn #100DaysOfCode challenge. Begonnen op [maandag, 17 juli 2017]. 4 | 5 | ## Log 6 | 7 | ### R1D1 8 | Begonnen aan een weerapp. Gewerkt aan een ontwerp voor de lay-out van de app, geworsteld met de OpenWeather API http://www.example.com 9 | 10 | ### R1D2 11 | -------------------------------------------------------------------------------- /intl/nl/regels.md: -------------------------------------------------------------------------------- 1 | # Regels van de 100 Days of Code Challenge 2 | 3 | ## Hoofdinzet 4 | ### *Ik zal voor de komende 100 dagen minstens één uur per dag aan coderen besteden.* 5 | 6 | #### Startdatum 7 | 25 juni 2016. [PLAATS JE EIGEN DATUM HIER] 8 | 9 | ## Toegevoegde regels 10 | 1. Ik zal elke dag over mijn voortgang tweeten -> met de hashtag #100DaysOfCode 11 | 2. Als ik codeer tijdens werk, wordt deze tijd niet meegerekend voor de challenge. 12 | 3. Ik zal elke dag mijn code pushen naar GitHub, zodat iedereen mijn voortgang kan zien. 13 | 4. Ik zal elke dag (Log)[log-nl.md] updaten met de voortgang van de dag en ik voorzie een link waardoor anderen mijn voortgang kunnen zien. 14 | 5. Ik zal aan èchte projecten werken en èchte problemen tegenkomen. De tijd die ik besteed aan zelfstudies, online lessen en soortgelijke bronnen tellen NIET mee voor deze challenge. (Als je pas net heb geleerd te coderen lees [FAQ](FAQ-nl.md)) 15 | 16 | ## Ideeën om deze challenge effectiever te maken 17 | 1. Om de succeskans te verhogen is het een vereiste om elke dag een link toe te voegen in (Log)[log-nl.md]. Het kan een link naar een commit op GitHub zijn or een link naar een blog post. 18 | 2. Als je ooit vast komt te zitten, lees dan dit artikel: [Learning to Code: When It Gets Dark](https://www.freecodecamp.org/news/learning-to-code-when-it-gets-dark-e485edfb58fd/) 19 | 3. Als je niet weet waarom er een nadruk wordt gelegd op werken aan projecten in tegenstelling tot online lessen en zelfstudies lees dit: [How to Get a Developer Job in Less Than a Year](https://www.freecodecamp.org/news/how-to-get-a-developer-job-in-less-than-a-year-c27bbfe71645/) 20 | 4. Als je om wat voor reden je code niet kan pushen naar GitHub (bijvoorbeeld omdat je net begonnen bent met coderen en nog oefeningen aan het doen bent), plaats dan een link naar een tweet. Je kan ook met iets anders komen zolange je challenge openbaar is - en je krijgt het voordeel van toegeweid zijn en verantwoordelijk zijn voor je voortgang. 21 | 5. Nog een reden om deze repository te forken: als je niet eerder met markdown hebt gewerkt is dit een goede oefening. 22 | 23 | ## Inhoud 24 | * [Regels](regels.md) 25 | * [Log - klik hier om mijn voortgang te zien](log-nl.md) 26 | * [FAQ](FAQ-nl.md) 27 | * [Bronnen](bronnen.md) -------------------------------------------------------------------------------- /intl/no/log.md: -------------------------------------------------------------------------------- 1 | # 100 Days Of Code - Logg 2 | 3 | ## Dag 0: 26 februar, 2016 (Eksempel 1) 4 | 5 | **Dagens fremgang**: Fikset CSS, jobbet med canvas-funksjonalitet for appen. 6 | 7 | **Tanker:** Jeg slet virkelig med CSS, men alt-i-alt føler jeg at jeg sakte blir bedre. Canvas er fortsatt nytt for meg, men jeg klarte å finne ut av de basise funksjonalitetene. 8 | 9 | **Link(er) til hva jeg har gjort:** [Kalkulatorapp](http://www.example.com) 10 | 11 | ## Dag 1: 27 februar, 2016 (Eksempel 2) 12 | 13 | **Dagens fremgang**: Fikset CSS, jobbet med canvas-funksjonalitet for appen. 14 | 15 | **Tanker:** Jeg slet virkelig med CSS, men alt-i-alt føler jeg at jeg sakte blir bedre. Canvas er fortsatt nytt for meg, men jeg klarte å finne ut av de basise funksjonalitetene. 16 | 17 | **Link(er) til hva jeg har gjort:** [Kalkulatorapp](http://www.example.com) -------------------------------------------------------------------------------- /intl/no/r1-log.md: -------------------------------------------------------------------------------- 1 | # #100DaysOfCode Logg - Runde 1 - [Ditt navn her] 2 | 3 | Loggen til min #100DaysOfCode-utfordring. Startet [16 juli, mandag, 2017]. 4 | 5 | ## Logg 6 | 7 | ### **R1D1 (runde 1, dag 1)** 8 | 9 | Begynte å lage en værapp. Jobbet med skisser til hvordan appen skal se ut. Hadde det vanskelig med OpenWeather API http://www.example.com 10 | 11 | ### **R1D2** 12 | -------------------------------------------------------------------------------- /intl/no/resources.md: -------------------------------------------------------------------------------- 1 | # Hovedressurser til #100DaysOfCode 2 | 3 | [Den offiselle #100DaysOfCode-nettsiden](http://100daysofcode.com/) 4 | 5 | ## Artikler 6 | 7 | 1. [Join the #100DaysOfCode](https://medium.freecodecamp.com/join-the-100daysofcode-556ddb4579e4) freeCodeCamp Medium 8 | 2. [Boot Up 2017 with the #100DaysOfCode Challenge](https://medium.freecodecamp.com/start-2017-with-the-100daysofcode-improved-and-updated-18ce604b237b) freeCodeCamp Medium 9 | 3. [Resistance, Habit Change and the #100DaysOfCode Movement](https://studywebdevelopment.com/100-days-of-code.html) StudyWebDevelopment Blog 10 | 11 | ## Podcasts 12 | 13 | ## Ekstraressurser til #100DaysOfCode 14 | 15 | ### Nyttige artikler 16 | 17 | 1. [Gentle Explanation of 'this keyword in JavaScript](http://rainsoft.io/gentle-explanation-of-this-in-javascript/) 18 | 19 | ### Projekter og ideér 20 | 21 | 1. [FreeCodeCamp](https://www.freecodecamp.com) 22 | 2. [The Odin Project](http://www.theodinproject.com/) 23 | 24 | ### Andre ressurser 25 | 26 | 1. [CodeNewbie - #100DaysOfCode Slack Channel](https://codenewbie.typeform.com/to/uwsWlZ) 27 | 28 | ### Bøker (både koding-relatert og ikke-koding-relatert) 29 | 30 | #### Ikke-koding 31 | 32 | 1. ["The War of Art" av Steven Pressfield](http://www.goodreads.com/book/show/1319.The_War_of_Art) 33 | 2. ["The Obstacle is the Way" av Ryan Holiday](http://www.goodreads.com/book/show/18668059-the-obstacle-is-the-way?ac=1&from_search=true) 34 | 3. ["Ego is the Enemy" av Ryan Holiday](http://www.goodreads.com/book/show/27036528-ego-is-the-enemy?from_search=true&search_version=service) 35 | 4. ["Meditations" av Marcus Aurelius](https://www.goodreads.com/book/show/662925.Meditations) 36 | 37 | #### Koding 38 | 39 | 1. "Professional Node.js" av Teixeira 40 | 2. ["Eloquent Javascript" av Marijn Haverbeke](http://eloquentjavascript.net/) - tilgjengelig online (gratis) & som paperback 41 | 3. "Mastering JavaScript" av Ved Antani 42 | 43 | ## Innhold 44 | 45 | * [Regler](rules.md) 46 | * [Logg - click here to see my progress](log.md) 47 | * [FAQ](FAQ.md) 48 | * [Ressurser](resources.md) 49 | -------------------------------------------------------------------------------- /intl/no/rules.md: -------------------------------------------------------------------------------- 1 | # Regler for 100 Days Of Code-utfordingen 2 | 3 | ## Hovedforpliktelse 4 | 5 | ### *Jeg skal kode i minst én time hver dag de neste 100 dagene.* 6 | 7 | #### Startdato: 25 juni 2016 [SKRIV INN DIN DATO HER] 8 | 9 | ## Tileggsregler 10 | 11 | 1. Jeg skal skrive om fremgangen min på Twitter hver dag -> og bruke #100DaysOfCode-hashtaggen 12 | 2. Hvis jeg koder profesjonelt, teller ikke dette mot utfordringen. 13 | 3. Jeg skal pushe kode til GitHub hver dag slik at hvem som helst kan se fremgangen min. 14 | 4. Jeg skal oppdatere [loggen](log.md) med dagens fremgang og dele linker slik at andre kan se fremgangen min. 15 | 5. Jeg skal jobbe med faktiske projekter, og møte virkelig utfordringer. Tid som blir brukt på turotials, nettkurs og andre lignende ressurser teller IKKE mot denne utfordringen. (Hvis du akkurat har begynt å lære deg koding, les [FAQ](FAQ.md)) 16 | 17 | ## Ideér for å gjøre denne utfordringen mer effektiv 18 | 19 | 1. For å øke sjansene for suksess, kreves det at du legger til en link til hva du har gjort hver dag i [loggen](log.md). Det kan være en link til en commit på GitHub, eller en link til et blogginnlegg 20 | 2. Hvis du har det vanskelig eller står fast, les denne artikkelen: [Learning to Code: When It Gets Dark](https://www.freecodecamp.org/news/learning-to-code-when-it-gets-dark-e485edfb58fd) 21 | 3. Hvis du ikke forstår hvofor det er så stort fokus på å jobbe med projekter i forhold til tutorials eller nettkurs, les dette: [How to Get a Developer Job in Less Than a Year](https://www.freecodecamp.org/news/how-to-get-a-developer-job-in-less-than-a-year-c27bbfe71645) 22 | 4. Hvis du av en eller annen grunn ikke kan pushe kode til GitHub (f.eks. hvis du akkurat har startet med koding og holder på med interaktive øvelser), link til en tweet om fremgangen din. Du kan også legge til andre ting så lenge det er tilgjengelig til offentligheten, og du drar nytte av det fordi du holder deg forpliktet og ansvarlig for fremgangen din. 23 | 5. En annen bonus som du får av å forke dette repo-et -> hvis du ikke har brukt Markdown before, er dette en flott måte å komme i gang med det. 24 | 25 | ## Innhold 26 | 27 | * [Regler](rules.md) 28 | * [Logg - trykk her fpr å se fremgangen min](log.md) 29 | * [FAQ](FAQ.md) 30 | * [Ressurser](resources.md) 31 | -------------------------------------------------------------------------------- /intl/pl/log.md: -------------------------------------------------------------------------------- 1 | # 100 Days Of Code - Log 2 | 3 | ### Dzień 0: 22 Stycznia 2018 (Przykład 1) 4 | ##### (usuń to lub skomentuj) 5 | 6 | **Dzisiejszy Progres**: Naprawiłem/am CSS, pracowałem/am nad implementacją canvasu do apki. 7 | 8 | **Przemyślenia:** Miałem/am sporo problemów z CSS, but, overall, Ale generalnie, czuję że rozumiem coraz więcej. Canvas jest dla mnie czymś kompletnie nowym ale udało mi się wprowadzić podstawowe funkcję. 9 | 10 | **Linki** [Kalkulator Aplikacja](http://www.example.com) 11 | 12 | ### Dzień 0: 22 Stycznia 2018 (Przykład 2) 13 | ##### (usuń to lub skomentuj) 14 | 15 | **Dzisiejszy Progres**: Naprawiłem/am CSS, pracowałem/am nad implementacją canvasu do apki. 16 | 17 | **Przemyślenia**: Miałem/am sporo problemów z CSS, but, overall, Ale generalnie, czuję że rozumiem coraz więcej. Canvas jest dla mnie czymś kompletnie nowym ale udało mi się wprowadzić podstawowe funkcję. 18 | 19 | **Linki**: [Kalkulator Aplikacja](http://www.example.com) 20 | 21 | 22 | ### Dzień 1: 22 Stycznia, Poniedziałek 23 | 24 | **Dzisiejszy Progres**: Ukończyłem kilka zadań na FreeCodeCamp. 25 | 26 | **Przemyślenia** Dopiero co zaczynam programowanie, uczucie ukończenia czegoś i rozwiązania problemu jest super, zwłaszcza po wielu nieudanych próbach. 27 | 28 | **Linki** 29 | 1. [Find the Longest Word in a String](https://www.freecodecamp.com/challenges/find-the-longest-word-in-a-string) 30 | 2. [Title Case a Sentence](https://www.freecodecamp.com/challenges/title-case-a-sentence) 31 | -------------------------------------------------------------------------------- /intl/pl/materiały.md: -------------------------------------------------------------------------------- 1 | # Główne Materiały #100DaysOfCode 2 | 3 | [The #100DaysOfCode Official Site](http://100daysofcode.com/) 4 | 5 | ### Artykuły 6 | 1. [Join the #100DaysOfCode](https://medium.freecodecamp.com/join-the-100daysofcode-556ddb4579e4) freeCodeCamp Medium 7 | 2. [Boot Up 2017 with the #100DaysOfCode Challenge](https://medium.freecodecamp.com/start-2017-with-the-100daysofcode-improved-and-updated-18ce604b237b) freeCodeCamp Medium 8 | 3. [Resistance, Habit Change and the #100DaysOfCode Movement](https://studywebdevelopment.com/100-days-of-code.html) StudyWebDevelopment Blog 9 | 10 | ### Podkasty 11 | 12 | # Materiały Dodatkowe #100DaysOfCode 13 | 14 | ## Artykuły Pomocnicze 15 | 1. [Gentle Explanation of 'this keyword in JavaScript](http://rainsoft.io/gentle-explanation-of-this-in-javascript/) 16 | 17 | ## Projekty i Pomysły 18 | 1. [FreeCodeCamp](https://www.freecodecamp.com) 19 | 2. [The Odin Project](http://www.theodinproject.com/) 20 | 21 | ## Inne Materiały 22 | 1. [CodeNewbie - #100DaysOfCode Slack Channel](https://codenewbie.typeform.com/to/uwsWlZ) 23 | 24 | ## Książki (o programowaniu i nie tylko) 25 | 26 | ### Nie o programowaniu 27 | 1. ["The War of Art" by Steven Pressfield](http://www.goodreads.com/book/show/1319.The_War_of_Art) 28 | 2. ["The Obstacle is the Way" by Ryan Holiday](http://www.goodreads.com/book/show/18668059-the-obstacle-is-the-way?ac=1&from_search=true) 29 | 3. ["Ego is the Enemy" by Ryan Holiday](http://www.goodreads.com/book/show/27036528-ego-is-the-enemy?from_search=true&search_version=service) 30 | 4. ["Meditations" by Marcus Aurelius](https://www.goodreads.com/book/show/662925.Meditations) 31 | 32 | ### Programowanie 33 | 1. "Professional Node.js" by Teixeira 34 | 2. ["Eloquent Javascript" by Marijn Haverbeke](http://eloquentjavascript.net/) - available online (free) & as a paperback 35 | 3. "Mastering JavaScript" by Ved Antani 36 | 37 | ## Spis Treści 38 | * [Regulamin](regulamin.md) 39 | * [Log - kliknij tutaj aby zobaczyć mój progres](log.md) 40 | * [FAQ (często zadawane pytania)](FAQ-pl.md) 41 | * [Materiały](materiały.md) 42 | -------------------------------------------------------------------------------- /intl/pl/r1-log.md: -------------------------------------------------------------------------------- 1 | # #100DaysOfCode Log - Runda 1 - [Twoje Imię Tutaj] 2 | 3 | Rozpoczynam wyzwanie #100DaysOfCode w dniu [1 Stycznia 2018]. 4 | 5 | ## Log 6 | 7 | ### R1D1 8 | Zacząłem/am pracować nad aplikacją pogodową. Zrobiłem/am plany oraz skecze UI/UX. Miałem/am problemy z OpenWeather API http://www.example.com 9 | 10 | ### R1D2 11 | -------------------------------------------------------------------------------- /intl/pl/regulamin.md: -------------------------------------------------------------------------------- 1 | # Regulamin wyzwania 100 Dni kodowania 2 | 3 | ## Główne Zobowiązanie 4 | ### *Będę programować przez przynajmniej godzinę dziennie przez następne 100 dni.* 5 | 6 | #### Data Rozpoczęcia 7 | 1 Stycznia 2018 [Wpisz Datę Tutaj] 8 | 9 | ## Dodatkowy Regulamin 10 | 1. Będę tweetować mój progres każdego dnia używając hasztagu #100DaysOfCode 11 | 2. Jeżeli programuję w pracy, czas ten nie zalicza się do wyzwania. 12 | 3. Będę pushować mój kod na GitHub, żeby wszyscy mogli śledzić mój progres. 13 | 4. Będę aktualizować (Log)[log.md] uzupełniając swój dzienny progres wraz z linkami. 14 | 5. Będę pracował/ła nad prawdziwymi projektami, stawiając sobie wyzwania. Czas spędzony na robienie poradników, kursów online itp nie zaliczają się do wyzwania. Jeżeli dopiero zaczynasz przygodę z programowaniem, zapoznaj się z [FAQ (często zadawane pytania)](FAQ-pl.md)) 15 | 16 | 17 | ## Pomysły aby zrobić to wyzwanie bardziej efektywnym 18 | 1. Aby zwiększyć szansę ukończenia wyzwania, wymagamy abyś umieścił link do każdego wpisu w [log](log.md). Może to być lick do commitu na GitHubie, link do bloga itp… 19 | 2. Jeżeli masz problemy lub wydaje ci się, że nie ukończysz wyzwania przeczytaj Learning to Code: When It Gets Dark](https://www.freecodecamp.org/news/learning-to-code-when-it-gets-dark-e485edfb58fd) 20 | 3. Jeżeli nie rozumiesz dlaczego tak bardzo naciskamy na robienie prawdziwych projektów a nie np oglądanie poradników czy kursów online to przeczytaj [How to Get a Developer Job in Less Than a Year](https://www.freecodecamp.org/news/how-to-get-a-developer-job-in-less-than-a-year-c27bbfe71645) 21 | 4. Jeżeli nie możesz pushować swojego kodu na GitHub bo np dopiero co zaczynasz przygodę z programowaniem i robisz zadanie online to wklej linka do tweeta. Możesz wymyślić coś podobnego i dopóki upubliczniasz wszystko co robisz i jesteś odpowiedzialny za progres to wszystko jest okej. 22 | 5. Dodatkowy bonus z forkowania tego rypozytorium -> jeżeli nigdy nie używałeś Markdown to będziesz mógł go potrenować poprzez uzupełnianie swoich wpisów. 23 | 24 | 25 | ## Contents 26 | * [Regulamin](regulamin.md) 27 | * [Log - click here to see my progress](log.md) 28 | * [FAQ (często zadawane pytania)](FAQ-pl.md) 29 | * [Materiały](materiały.md) -------------------------------------------------------------------------------- /intl/pt-br/log.md: -------------------------------------------------------------------------------- 1 | # 100 Days Of Code - Log 2 | 3 | ### Dia 0: 29 de fevereiro, 2016 (Exemplo 1) 4 | ##### (me delete ou transforme em comentário) 5 | 6 | **Progresso do dia:** Consertei CSS, trabalhei na funcionalidade canvas para o app. 7 | 8 | **Aprendizados:** Eu realmente apanhei do CSS, mas sinto que estou progredindo e melhorando a cada dia. Canvas ainda é novo para mim, mas eu consegui compreender suas funcionalidades básicas.. 9 | 10 | **Link do trabalho:** [App de calculadora](http://www.example.com) 11 | 12 | ### Dia 1: 30 de fevereiro, 2016 (Exemplo 2) 13 | ##### (me delete ou transforme em comentário) 14 | 15 | **Progresso do dia:** Consertei CSS, trabalhei na funcionalidade canvas para o app. 16 | 17 | **Aprendizados:** Eu realmente apanhei do CSS, mas sinto que estou progredindo e melhorando a cada dia. Canvas ainda é novo para mim, mas eu consegui compreender suas funcionalidades básicas.. 18 | 19 | **Link do trabalho:** [App de calculadora](http://www.example.com) 20 | 21 | ### Day 2: 1 de março, 2016 (Exemplo 2) 22 | 23 | **Progresso do dia:** Eu avancei em alguns exercícios do FreeCodeCamp. 24 | 25 | **Aprendizados:** Comecei a programar recentemente e me dá um sentimento muito bom quando consigo resolver um algoritmo que me desafiou durante horas. 26 | 27 | **Link(s) do(s) trabalho(s)** 28 | 1. [Find the Longest Word in a String](https://www.freecodecamp.com/challenges/find-the-longest-word-in-a-string) 29 | 2. [Title Case a Sentence](https://www.freecodecamp.com/challenges/title-case-a-sentence) 30 | -------------------------------------------------------------------------------- /intl/pt-br/r1-log.md: -------------------------------------------------------------------------------- 1 | # #100DaysOfCode Log - Round 1 - [Seu nome aqui] 2 | 3 | O log do meu desafio #100DaysOfCode. Iniciado em [17 de julho, segunda-feira, 2017]. 4 | 5 | ## Log 6 | 7 | ### R1D1 8 | 9 | Iniciei um app de previsão do tempo. Trabalhei no rascunho do layout e tive dificuldades com a API OpenWeather http://www.example.com 10 | 11 | ### R1D2 12 | -------------------------------------------------------------------------------- /intl/pt-br/recursos.md: -------------------------------------------------------------------------------- 1 | # Recursos primários do #100DaysOfCode 2 | 3 | [The #100DaysOfCode Official Site](http://100daysofcode.com/) 4 | 5 | ### Artigos 6 | 7 | 1. [Join the #100DaysOfCode](https://medium.freecodecamp.com/join-the-100daysofcode-556ddb4579e4) freeCodeCamp Medium 8 | 2. [Boot Up 2017 with the #100DaysOfCode Challenge](https://medium.freecodecamp.com/start-2017-with-the-100daysofcode-improved-and-updated-18ce604b237b) freeCodeCamp Medium 9 | 3. [Resistance, Habit Change and the #100DaysOfCode Movement](https://studywebdevelopment.com/100-days-of-code.html) StudyWebDevelopment Blog 10 | 11 | ### Podcasts 12 | 13 | # Recursos adicionais do #100DaysOfCode 14 | 15 | ## Artigos úteis 16 | 17 | 1. [Gentle Explanation of 'this keyword in JavaScript](http://rainsoft.io/gentle-explanation-of-this-in-javascript/) 18 | 19 | ## Projetos e ideias 20 | 21 | 1. [FreeCodeCamp](https://www.freecodecamp.com) 22 | 2. [The Odin Project](http://www.theodinproject.com/) 23 | 24 | ## Outros recursos 25 | 26 | 1. [CodeNewbie - #100DaysOfCode Slack Channel](https://codenewbie.typeform.com/to/uwsWlZ) 27 | 28 | ## Livros (sobre programação ou não) 29 | 30 | ### Não relacionado com programação 31 | 32 | 1. ["The War of Art" by Steven Pressfield](http://www.goodreads.com/book/show/1319.The_War_of_Art) 33 | 2. ["The Obstacle is the Way" by Ryan Holiday](http://www.goodreads.com/book/show/18668059-the-obstacle-is-the-way?ac=1&from_search=true) 34 | 3. ["Ego is the Enemy" by Ryan Holiday](http://www.goodreads.com/book/show/27036528-ego-is-the-enemy?from_search=true&search_version=service) 35 | 4. ["Meditations" by Marcus Aurelius](https://www.goodreads.com/book/show/662925.Meditations) 36 | 37 | ### Programação 38 | 39 | 1. "Professional Node.js" por Teixeira 40 | 2. ["Eloquent Javascript" by Marijn Haverbeke](http://eloquentjavascript.net/) - disponível online (free) & em papel 41 | 3. "Mastering JavaScript" por Ved Antani 42 | 43 | ## Conteúdo 44 | 45 | * [Regras](regras.md) 46 | * [Log - clique aqui para ver meu progresso](log.md) 47 | * [LEIA-ME](LEIAME.md) 48 | * [Recursos](recursos.md) 49 | -------------------------------------------------------------------------------- /intl/pt-br/regras.md: -------------------------------------------------------------------------------- 1 | # Regras do desafio 100 Days Of Code 2 | 3 | ## Compromisso principal 4 | 5 | ### *Eu irei programar por, pelo menos, uma hora por dia pelos próximos 100 dias.* 6 | 7 | #### Data de início 8 | 9 | 25 de junho, 2016. [COLOQUE SUA DATA AQUI] 10 | 11 | ## Regras adicionais 12 | 13 | 1. Eu irei twittar sobre meu progresso diariamente -> usando a hashtag #100DaysOfCode 14 | 2. Se eu programar no trabalho, não irei considerar esse tempo como parte do desafio. 15 | 3. Eu irei enviar meu código para o GitHub todo dia para que qualquer pessoa possa ver meu progresso. 16 | 4. Eu irei atualizar o (Log)[log.md] com meu progresso diário e irei providenciar um link para que outros possam ver meu progresso. 17 | 5. Eu irei trabalhar em projetos reais, com desafios verdadeiros. O tempo que usar vendo tutoriais, cursos online e outros recursos similares NÃO irão contar para o desafio. (Caso você esteja aprendendo a programar, leia [LEIA-ME](LEIAME.md)) 18 | 19 | ## Ideias para fazer esse desafio ser mais eficiente 20 | 21 | 1. Para aumentar as chances de sucesso, é requerido que você adicione o link de cada dia de posts no [log](log.md). Pode ser um link do commit no GitHub ou um link para um artigo de blog. 22 | 2. Se você perder a paciência ou ficar travado, leia esse artigo: [Learning to Code: When It Gets Dark](https://www.freecodecamp.org/news/learning-to-code-when-it-gets-dark-e485edfb58fd) 23 | 3. Se você não sabe o motivo da ênfase de trabalhar em projetos reais, em relação aos tutoriais ou cursos online, leia isso: [How to Get a Developer Job in Less Than a Year](https://www.freecodecamp.org/news/how-to-get-a-developer-job-in-less-than-a-year-c27bbfe71645) 24 | 4. Se você não puder enviar seu código para o GitHub por alguma razão (por exemplo, se você estiver aprendendo a programar ou estiver resolvendo exercícios interativos), forneça um link para o tweet. É fundamental manter seu desafio publicamente - você será beneficiado de estar comprometido com o desafio e com o registro do seu progresso publicado. 25 | 5. Outro benefício de dar um fork neste repositório -> se você nunca trabalhou com Markdown anteriormente, é um bom modo de praticar. 26 | 27 | ## Conteúdo 28 | 29 | * [Regras](regras.md) 30 | * [Log - clique aqui para ver meu progresso](log.md) 31 | * [LEIA-ME](LEIAME.md) 32 | * [Recursos](recursos.md) 33 | -------------------------------------------------------------------------------- /intl/sr/log-sr.md: -------------------------------------------------------------------------------- 1 | # 100 Days Of Code - Dnevnik 2 | 3 | ### Dan 0: Februar 30, 2016 (Primjer 1) 4 | ##### (izbriši me ili unesi komentar) 5 | 6 | **Današnji napredak**: Ispravljen CSS, radio na funkcionalnosti Canvas-a za aplikaciju. 7 | 8 | **Misli:** Zaista sam se borio sa CSS-om, ali, generalno, imam osećaj kao da polako postajem bolji u tome. Canvas je za mene još uvijek nov, ali uspio sam razabrati neke osnovne funkcionalnosti. 9 | 10 | **Link do rada:** [Kalkulator Aplikacija](http://www.example.com) 11 | 12 | ### Dan 0: Februar 30, 2016 (Primjer 2) 13 | ##### (izbriši me ili unesi komentar) 14 | 15 | **Današnji napredak**: Ispravljen CSS, radio na funkcionalnosti Canvas-a za aplikaciju. 16 | 17 | **Misli:** Zaista sam se borio sa CSS-om, ali, generalno, imam osećaj kao da polako postajem bolji u tome. Canvas je za mene još uvijek nov, ali uspio sam razabrati neke osnovne funkcionalnosti. 18 | 19 | **Linkovi do rada:**: [Kalkulator Aplikacija](http://www.example.com) 20 | 21 | 22 | ### Dan 1: Jun 27, Ponedeljak 23 | 24 | **Današnji napredak**: Prošao sam mnoge vježbe na FreeCodeCamp-u. 25 | 26 | **Misli:** Nedavno sam započeo s programiranjem, i odličan je osjećaj kada konačno riješim izazov algoritma nakon puno pokušaja i mnogo potrošenih sati. 27 | 28 | **Linkovi do rada:** 29 | 1. [Pronađite najdužu riječ u nizu](https://www.freecodecamp.com/challenges/find-the-longest-word-in-a-string) 30 | 2. [Naslov Case a Sentence](https://www.freecodecamp.com/challenges/title-case-a-sentence) 31 | -------------------------------------------------------------------------------- /intl/sr/r1-log-sr.md: -------------------------------------------------------------------------------- 1 | # #100DaysOfCode Dnevnik - Runda 1 - [Vaše ime ovde] 2 | 3 | Dnevnik mog #100DaysOfCode izazova. Započeo [17. jula, ponedjeljak, 2017]. 4 | 5 | ## Dnevnik 6 | 7 | ### R1D1 8 | Započeo vremensku aplikaciju. Radio na nacrtu izgleda aplikacije, borio se sa OpenWeather API http://www.example.com 9 | 10 | ### R1D2 11 | -------------------------------------------------------------------------------- /intl/sr/resources-sr.md: -------------------------------------------------------------------------------- 1 | # Primarni resursi na #100DaysOfCode 2 | 3 | [#100DaysOfCode Zvanični sajt](http://100daysofcode.com/) 4 | 5 | ### Članci 6 | 1. [Pridružite se #100DaysOfCode izazovu](https://medium.freecodecamp.com/join-the-100daysofcode-556ddb4579e4) freeCodeCamp Medium 7 | 2. [Započnite 2017 sa #100DaysOfCode Izazovom](https://medium.freecodecamp.com/start-2017-with-the-100daysofcode-improved-and-updated-18ce604b237b) freeCodeCamp Medium 8 | 3. [Otpor, promjena navike i #100DaysOfCode pokret](https://studywebdevelopment.com/100-days-of-code.html) StudyWebDevelopment Blog 9 | 10 | ### Podcast-i 11 | 12 | # Dodatni resursi na #100DaysOfCode 13 | 14 | ## Korisni članci 15 | 1. [Nježno objašnjenje this u JavaScript-u](http://rainsoft.io/gentle-explanation-of-this-in-javascript/) 16 | 2. [Napravite Laravel CRUD aplikaciju od nule](https://www.codewall.co.uk/laravel-crud-demo-with-resource-controller-tutorial/) 17 | 18 | ## Projekti i ideje 19 | 1. [FreeCodeCamp](https://www.freecodecamp.com) 20 | 2. [The Odin Project](http://www.theodinproject.com/) 21 | 22 | ## Ostali resursi 23 | 1. [CodeNewbie - #100DaysOfCode Slack kanal](https://codenewbie.typeform.com/to/uwsWlZ) 24 | 25 | ## Knjige (oboje, programiranje i ne) 26 | 27 | ### Bez programiranja 28 | 1. ["The War of Art" by Steven Pressfield](http://www.goodreads.com/book/show/1319.The_War_of_Art) 29 | 2. ["The Obstacle is the Way" by Ryan Holiday](http://www.goodreads.com/book/show/18668059-the-obstacle-is-the-way?ac=1&from_search=true) 30 | 3. ["Ego is the Enemy" by Ryan Holiday](http://www.goodreads.com/book/show/27036528-ego-is-the-enemy?from_search=true&search_version=service) 31 | 4. ["Meditations" by Marcus Aurelius](https://www.goodreads.com/book/show/662925.Meditations) 32 | 33 | ### Programiranje 34 | 1. "Professional Node.js" by Teixeira 35 | 2. ["Eloquent Javascript" by Marijn Haverbeke](http://eloquentjavascript.net/) - available online (free) & as a paperback 36 | 3. "Mastering JavaScript" by Ved Antani 37 | 38 | ## Sadržaj 39 | * [Pravila](rules-sr.md) 40 | * [Dnevnik - kliknite ovdje da vidite moj napredak](log-sr.md) 41 | * [FAQ](FAQ-sr.md) 42 | * [Resursi](resources-sr.md) 43 | -------------------------------------------------------------------------------- /intl/sr/rules-sr.md: -------------------------------------------------------------------------------- 1 | # Pravila 100 Days Of Code izazova 2 | 3 | ## Glavna obveza 4 | ### *Svakodnevno ću programirati barem sat vremena svaki dan u narednih 100 dana.* 5 | 6 | #### Početni datum 7 | Jun 25., 2016. [UNESITE VAŠ DATUM OVDJE] 8 | 9 | ## Dodatna pravila 10 | 1. Svakodnevno ću tvitovati o svom napretku -> koristeći hešteg #100DaysOfCode 11 | 2. Ako programiram na poslu, to vrijeme se neće računati u izazovu. 12 | 3. Svakodnevno ću stavljati kod na ​​GitHub kako bi svako mogao vidjeti moj napredak. 13 | 4. Ažurirat ću [Dnevnik](log-sr.md) s napretkom svakog dana i postavću link kako bi i drugi mogli vidjeti moj napredak. 14 | 5. Radit ću na stvarnim projektima, suočen sa stvarnim izazovima. Vrijeme provedeno radeći na vježbama, internet kursevima i drugim sličnim resursima NEĆE se računati u ovaj izazov. (Ako ste tek počeli učiti programiranje, pročitajte [FAQ](FAQ-sr.md)) 15 | 16 | 17 | ## Ideje kako ovaj izazov učiniti učinkovitijim 18 | 1. Da biste povećali šanse za uspjeh, potrebno je dodati link na svaki dan u postu [Dnevnik](log-sr.md). To može biti link do commit-a na GitHub-u, link do članka na blogu 19 | 2. Ako se uznemirite ili ste zaglavili, pročitajte ovaj članak: [Učenje programiranja: Kada padne mrak](https://www.freecodecamp.org/news/learning-to-code-when-it-gets-dark-e485edfb58fd/) 20 | 3. Ako ne znate zašto je toliki akcenat na radu na projektima u odnosu na izvođenju tutorijala ili internet kurseva, pročitajte ovo: [Kako dobiti posao programera za manje od godinu dana](https://www.freecodecamp.org/news/how-to-get-a-developer-job-in-less-than-a-year-c27bbfe71645/) 21 | 4. Ako iz nekog razloga ne možete push-ati svoj kod na GitHub (npr. Ako samo počinjete programirati i raditi interaktivne vježbe), dodajte link do tvita. Možete razmišljati o nečemu drugom sve dok vaš izazov ostane javan - i dobijete korist od toga da ste predani njemu i odgovorni za svoj napredak. 22 | 5. Još jedan dobar bonus fork-ovanja ovog repo-a -> ako do sada niste radili s Markdown-om, dobar je način vježbanja. 23 | 24 | ## Sadržaj 25 | * [Pravila](rules-sr.md) 26 | * [Dnevnik - kliknite ovdje da vidite svoj napredak](log-sr.md) 27 | * [FAQ](FAQ-sr.md) 28 | * [Resursi](resources-sr.md) 29 | -------------------------------------------------------------------------------- /intl/ua/log.md: -------------------------------------------------------------------------------- 1 | # 100 Днів Коду - Лог 2 | 3 | ### День 0: 1 травня 2018 (Приклад 1) 4 | ##### (видали мене або закоментуй) 5 | 6 | **Сьогоднішній прогрес**: Робив правки у CSS, працбвав над canvas функіоналом для додатку. 7 | 8 | **Думки:** Блаблабла 9 | 10 | **Посилання:** [Calculator App](http://www.example.com) 11 | -------------------------------------------------------------------------------- /intl/ua/r1-log.md: -------------------------------------------------------------------------------- 1 | # #100ДнівКоду Журнал - Раунд 1 - [Ваше ім'я] 2 | 3 | Журнал мого челленджу #100ДнівКоду. Старт челленджу [1 травня 2018]. 4 | 5 | ##Журнал 6 | 7 | ### Р1Д1 8 | Блаблабла 9 | 10 | ### Р2Д2 11 | 12 | -------------------------------------------------------------------------------- /intl/ua/resources.md: -------------------------------------------------------------------------------- 1 | # Основні ресурси челленджу #100DaysOfCode 2 | 3 | [The #100DaysOfCode Офіційний Сайт](http://100daysofcode.com/) 4 | 5 | ### Статті 6 | 1. [Join the #100DaysOfCode](https://medium.freecodecamp.com/join-the-100daysofcode-556ddb4579e4) freeCodeCamp Medium 7 | 2. [Boot Up 2017 with the #100DaysOfCode Challenge](https://medium.freecodecamp.com/start-2017-with-the-100daysofcode-improved-and-updated-18ce604b237b) freeCodeCamp Medium 8 | 3. [Resistance, Habit Change and the #100DaysOfCode Movement](https://studywebdevelopment.com/100-days-of-code.html) StudyWebDevelopment Blog 9 | 10 | ### Підкасти 11 | 12 | # Додаткові ресурси #100DaysOfCode 13 | 14 | ## Корисні статті 15 | 1. [Gentle Explanation of 'this keyword in JavaScript](http://rainsoft.io/gentle-explanation-of-this-in-javascript/) 16 | 17 | ## Проекти та ідеї 18 | 1. [FreeCodeCamp](https://www.freecodecamp.com) 19 | 2. [The Odin Project](http://www.theodinproject.com/) 20 | 21 | ## Інші ресурси 22 | 1. [CodeNewbie - #100DaysOfCode Slack Channel](https://codenewbie.typeform.com/to/uwsWlZ) 23 | 24 | ## Книжки (як про кодиг, так і не про кодинг) 25 | 26 | ### Не про кодинг 27 | 1. ["The War of Art" by Steven Pressfield](http://www.goodreads.com/book/show/1319.The_War_of_Art) 28 | 2. ["The Obstacle is the Way" by Ryan Holiday](http://www.goodreads.com/book/show/18668059-the-obstacle-is-the-way?ac=1&from_search=true) 29 | 3. ["Ego is the Enemy" by Ryan Holiday](http://www.goodreads.com/book/show/27036528-ego-is-the-enemy?from_search=true&search_version=service) 30 | 4. ["Meditations" by Marcus Aurelius](https://www.goodreads.com/book/show/662925.Meditations) 31 | 32 | 33 | ### Про кодинг 34 | 1. "Professional Node.js" by Teixeira 35 | 2. ["Eloquent Javascript" by Marijn Haverbeke](http://eloquentjavascript.net/) - available online (free) & as a paperback 36 | 3. "Mastering JavaScript" by Ved Antani 37 | 38 | ## Зміст 39 | * [Rules](rules.md) 40 | * [Log - click here to see my progress](log.md) 41 | * [FAQ](FAQ.md) 42 | * [Resources](resources.md) 43 | -------------------------------------------------------------------------------- /intl/ua/rules.md: -------------------------------------------------------------------------------- 1 | # Правила челленджу 100 Днів Коду 2 | 3 | ## Головне забов'язання 4 | ### *Я буду кодити, принаймні онду годину на день щодня наступні 100 днів.* 5 | 6 | #### Дата початку 7 | 22 травня 2018. [вкажіть вашу дату] 8 | 9 | ## Додаткові правила 10 | 1. Я буду публікувати у Твіттер мій прогрес щодня -> використовуючи хеш-тег #100DaysOfCode, #100ДнівКоду 11 | 2. Якшо я пишу к од на роботі, цей час не буде зараховуватись у мій челлендж. 12 | 3. Я буду заливати мій код на GitHub щодня, щоб будь-хто міг відстежити мій прогрес. 13 | 4. Я буду оновлювати (Log)[log.md] з моїм щоденним прогресом і надавати посилання, щоб інші могли бачити мій прогрес. 14 | 5. Я буду працювати над реальними проектами, стикаючись з реальними проблемами. Час витрачений на туторіали, онлайн курси або інші подібні ресурси - не зараховується! (Якщо ви щойно почали вивчати код, ознайомтесь з [FAQ](FAQ.md)). 15 | 16 | ## Ідеї, щоб зробити цей челлендж більш ефективним 17 | 1. Щоб збільшити шанси на успіх, мається на увазі, що ви будете додавати посиланя на ващі щоденні пости у [log](log.md). Це може бути посилання на комміт на GitHub, посилання на публікацію блогу. 18 | 2. Якщо ви засмучені або застрягли - прочитайте цю статтю: [Learning to Code: When It Gets Dark] 19 | (https://www.freecodecamp.org/news/learning-to-code-when-it-gets-dark-e485edfb58fd). 20 | 3. Якщо ви не розумієте, чому акцент ставиться, саме на роботі над реальними проектами, аніж проходження туторіалів чи онлайн-курсів, прочитайте це: [How to Get a Developer Job in Less Than a Year](https://www.freecodecamp.org/news/how-to-get-a-developer-job-in-less-than-a-year-c27bbfe71645). 21 | 4. Якщо ви не можете завантажити ваш код на GitHub з якоїсь причини (наприклад, якщо ви тільки почали кодити і виконуєте інтеркативні вправи), надішліть посилання на твіт. Ви можете думати над чимось іншим, доки ваш челлендж залишається загальнодоступним ви віддаєте перевагу відданості справі та відповідальності за ваш прогрес. 22 | 5. Ще один хороший бонус зробити форк цього репозиторію -> якщо ви ще не працювали з Розмыткою, то це гарний спосыб попрактикуватись. 23 | 24 | ## Зміст 25 | * [Rules](rules.md) 26 | * [Log - click here to see my progress](log.md) 27 | * [FAQ](FAQ.md) 28 | * [Resources](resources.md) 29 | -------------------------------------------------------------------------------- /resources.md: -------------------------------------------------------------------------------- 1 | # Primary Resources on the #100DaysOfCode 2 | 3 | [The #100DaysOfCode Official Site](http://100daysofcode.com/) 4 | 5 | ### Articles 6 | 1. [Join the #100DaysOfCode](https://medium.freecodecamp.com/join-the-100daysofcode-556ddb4579e4) freeCodeCamp Medium 7 | 2. [Boot Up 2017 with the #100DaysOfCode Challenge](https://medium.freecodecamp.com/start-2017-with-the-100daysofcode-improved-and-updated-18ce604b237b) freeCodeCamp Medium 8 | 3. [Resistance, Habit Change and the #100DaysOfCode Movement](https://studywebdevelopment.com/100-days-of-code.html) StudyWebDevelopment Blog 9 | 10 | ### Podcasts 11 | 12 | # Additional Resources on the #100DaysOfCode 13 | 14 | ## Helpful Articles 15 | 1. [Gentle Explanation of 'this keyword in JavaScript](http://rainsoft.io/gentle-explanation-of-this-in-javascript/) 16 | 2. [Build a Laravel CRUD Application from scratch](https://www.codewall.co.uk/laravel-crud-demo-with-resource-controller-tutorial/) 17 | 18 | ## Projects and Ideas 19 | 1. [FreeCodeCamp](https://www.freecodecamp.com) 20 | 2. [The Odin Project](http://www.theodinproject.com/) 21 | 22 | ## Other resources 23 | 1. [CodeNewbie - #100DaysOfCode Slack Channel](https://codenewbie.typeform.com/to/uwsWlZ) 24 | 25 | ## Books (both coding and non-coding) 26 | 27 | ### Non-Coding 28 | 1. ["The War of Art" by Steven Pressfield](http://www.goodreads.com/book/show/1319.The_War_of_Art) 29 | 2. ["The Obstacle is the Way" by Ryan Holiday](http://www.goodreads.com/book/show/18668059-the-obstacle-is-the-way?ac=1&from_search=true) 30 | 3. ["Ego is the Enemy" by Ryan Holiday](http://www.goodreads.com/book/show/27036528-ego-is-the-enemy?from_search=true&search_version=service) 31 | 4. ["Meditations" by Marcus Aurelius](https://www.goodreads.com/book/show/662925.Meditations) 32 | 33 | ### Coding 34 | 1. "Professional Node.js" by Teixeira 35 | 2. ["Eloquent Javascript" by Marijn Haverbeke](http://eloquentjavascript.net/) - available online (free) & as a paperback 36 | 3. "Mastering JavaScript" by Ved Antani 37 | 38 | ## Contents 39 | * [Rules](rules.md) 40 | * [Log - click here to see my progress](log.md) 41 | * [FAQ](FAQ.md) 42 | * [Resources](resources.md) 43 | -------------------------------------------------------------------------------- /rules.md: -------------------------------------------------------------------------------- 1 | # Rules of the 100 Days Of Code Challenge 2 | 3 | ## Main Commitment 4 | ### *I will code for at least an hour every day for the next 100 days.* 5 | 6 | #### Start Date 7 | February 25th, 2021. 8 | 9 | ## Additional Rules 10 | 1. I will tweet about my progress every day -> using the hashtag #100DaysOfCode 11 | 2. If I code at work, that time won't count towards the challenge. 12 | 3. I will push code to GitHub every day so that anyone can see my progress. 13 | 4. I will update the (Log)[log.md] with the day's progress and provide a link so that others can see my progress. 14 | 5. I will work on real projects, facing real challenges. The time spent doing tutorials, online courses and other similar resources will NOT count towards this challenge. (If you've just started learning to code, read [FAQ](FAQ.md)) 15 | 16 | 17 | ## Ideas to make this challenge more effective 18 | 1. To increase the chances of success, it's a requirement that you add a link to each of the day posts in the [log](log.md). It can be a link to a commit on GitHub, a link to a blog post 19 | 2. If you get upset or stuck, read this article: [Learning to Code: When It Gets Dark](https://www.freecodecamp.org/news/learning-to-code-when-it-gets-dark-e485edfb58fd/) 20 | 3. If you don't know why there is such an emphasis on working on the projects vs doing tutorials or online courses, read this: [How to Get a Developer Job in Less Than a Year](https://www.freecodecamp.org/news/how-to-get-a-developer-job-in-less-than-a-year-c27bbfe71645/) 21 | 4. If you can't push your code to GitHub for some reason (e.g. if you're only starting to code and doing interactive exercises), provide a link to a tweet. You can think of something else as long as your challenge stays public - and you get the benefit of being committed to it and accountable for your progress. 22 | 5. Another good bonus of forking this repo -> if you haven't worked with Markdown before, it's a good way to practice. 23 | 24 | ## Contents 25 | * [Rules](rules.md) 26 | * [Log - click here to see my progress](log.md) 27 | * [FAQ](FAQ.md) 28 | * [Resources](resources.md) 29 | --------------------------------------------------------------------------------