Advent of Code is a series of small programming puzzles for a variety of skill levels and computer languages. Each day from December 1-25 there is a new puzzle posted at midnight with a time limit to solve it. Puzzles get progressively more difficult and require different problem solving approaches. Participants can view global and daily leaderboards to track their progress against others. The community shares solutions on Reddit and GitHub to help others learn.
3. ADVENT
DEFINITION
Count the days of Advent in anticipation of
Christmas. The term is a version of the Latin
word meaning "coming".
Advent is the first season of the Christian year
and commences on the fourth Sunday before
Christmas (sometimes known as Advent
Sunday)
Advent is a season observed in many Christian
churches as a time of expectant waiting and
preparation for the celebration of the Nativity
of Jesus at Christmas
4. OTHER
PROGRAMING
ADVENT
CALENDARS
JAVA https://www.javaadvent.com/
FRONT END https://advent2017.digitpaint.nl/
PERL http://perladvent.org/2017/
PERL6 https://perl6advent.wordpress.com/2017/12/01/
AWS https://www.awsadvent.com/aws-advent-2016/
WEB DEVELOPMENT https://24ways.org/
PERFORMANCE https://calendar.perfplanet.com/2017/
UX https://uxmas.com/
5. www.adventofcode.com by Eric Wastl
Why should you do it? Learn new language, improve problem solving skills,
just for the challenge, competition, fill github cv.
6. How does it
work?
https://adventofcode.com/2018
25 coding problems one per advent calendar day
Timer for the opening of the next problem
Greyed out drawing made by 25 lines
Each line will be lighted/animated if the problem for that day
is solved (show difference)
Each problem has two parts
You will get one start per part solved so 50 starts in total
8. PUZZLES
Describe a challenge that has to be solved
Not written in simple English, so not that easy to understand
They have references to real concepts with links to
Wikipedia. Also some funny stuff like
https://adventofcode.com/2017/day/14
This concepts are not generally needed to solve the problem
(only sometimes)
There is an example to understand the problem and test
your solution
9. HOW TO
ADDRESS
PUZZLES
Start time midnight eastern US time (6am Spain and Gib)
The input could be a string of characters, a number, many
lines of inputs, etc
Get ready to read the input in any of those ways, you need
to handle it as fast as possible.
Use the example to test your algorithm. It is usually much
smaller than the real input
After solving the problem submit your result, an Integer
You can solve the solution with a deterministic way or with
brute force (using processor power to guess the result)
11. You get feedback on your answer
But you cannot guess the answer, 1 minute
wait
12. PART TW0
• Second part usually depends on the first one. Input is the result of
first one or it is a algorithm modification (complication) of the first
one.
• Good code or a proper approach in the first part will help to solve the
second part.
13. Leaderboard
• https://adventofcode.com/2017/leaderboard
• 1 point per position in the 100 first positions. 1st 100, 2nd 99, …
• 100 points x 2 parts x 25 days = 5000 possible points
• Only 100 first shown, globally and per day
• Each user is anonymous, show name or link to authentication account: GitHub, Google,
Twitter or Reddit. GitHub is my favorite because people share their code
• For each of the days you will know how long it took for them to give the right solution
(much faster than you!)
14. GIB DEVS
Private
Leaderboard for
advent of code
Code: 25688-
fcbb1b8e (I will
share it on
meetup page)
SLACK
WORKSPACE:
gibdevs.slack.com
(give me your
email)
Slack channel:
#adventofcode
16. REDDIT
• https://www.reddit.com/r/adventofcode/
• https://www.reddit.com/r/adventofcode/wiki/solution_megathreads
Eric Wastl posts:
• https://www.reddit.com/r/adventofcode/comments/7idn6k/question_why
_does_the_difficulty_vary_so_much/dqy08tk/
“For me some are very hard but most of them a doable”
• https://www.reddit.com/r/adventofcode/comments/7kd8jt/what_would_y
ou_say_are_the_minimal_skills_for/dre0uu3/
All of this falls into a capacity that I broadly categorize as "aptitude". The
common thing to confuse this with is "knowledge"
18. SUPPORT
• You can donate
https://adventofcode.com/support
• Participate from 1$
• You will get a supporter badge on pages related
to events you've supported