SlideShare a Scribd company logo
A static site generator
should be your next
language learning project
john sj anderson | @genehack | ! seagl 2017
why&how2learn — SeaGL 2017 — @genehack 1
hi, i’m
john.
a/k/a @genehack
why&how2learn — SeaGL 2017 — @genehack 2
vp, technology
infinity
interactive
why&how2learn — SeaGL 2017 — @genehack 3
ex-biologist
perl tribe
polyglot coder
why&how2learn — SeaGL 2017 — @genehack 4
a static site generator
should be your next
language learning project
why&how2learn — SeaGL 2017 — @genehack 5
the why and the how of
learning
a new programming language
why&how2learn — SeaGL 2017 — @genehack 6
premise:
lifelong
learning
is critical.
why&how2learn — SeaGL 2017 — @genehack 7
the only constant thing is people
telling you over and over that
the only constant thing is
change.
why&how2learn — SeaGL 2017 — @genehack 8
“Learn at least one
new language
every year.”
— David Thomas & Andrew Hunt, “The Pragmatic Programmer”, 1999
why&how2learn — SeaGL 2017 — @genehack 9
“Learn at least one
new JavaScript framework
every month”
— Me, This Talk, Right Now.
why&how2learn — SeaGL 2017 — @genehack 10
some of the languages i’ve “learned”
basic
pascal
applescript
why&how2learn — SeaGL 2017 — @genehack 11
some of the languages i’ve “learned”
perl
ruby
python
why&how2learn — SeaGL 2017 — @genehack 12
some of the languages i’ve “learned”
javascript
php
cwhy&how2learn — SeaGL 2017 — @genehack 13
some of the languages i’ve “learned”
lisp
clojure
scalawhy&how2learn — SeaGL 2017 — @genehack 14
some of the languages i’ve “learned”
node
swift
c♯why&how2learn — SeaGL 2017 — @genehack 15
how do you
learn a
language?
why&how2learn — SeaGL 2017 — @genehack 16
read
books and docs
why&how2learn — SeaGL 2017 — @genehack 17
dopractice exercises
why&how2learn — SeaGL 2017 — @genehack 18
learning
projects
why&how2learn — SeaGL 2017 — @genehack 19
my language learning project of choice:
static site
generatorswhy&how2learn — SeaGL 2017 — @genehack 20
whatis a static site generator?
why&how2learn — SeaGL 2017 — @genehack 21
ssgwhy&how2learn — SeaGL 2017 — @genehack 22
some inputs
➡
a websitewhy&how2learn — SeaGL 2017 — @genehack 23
nodatabase!
why&how2learn — SeaGL 2017 — @genehack 24
can be very
simple
why&how2learn — SeaGL 2017 — @genehack 25
why&how2learn — SeaGL 2017 — @genehack 26
single
pagewhy&how2learn — SeaGL 2017 — @genehack 27
part of a larger
sitewhy&how2learn — SeaGL 2017 — @genehack 28
regenerated
every day
why&how2learn — SeaGL 2017 — @genehack 29
wrote ~10-15
years ago
why&how2learn — SeaGL 2017 — @genehack 30
or can be
kinda
complicated
why&how2learn — SeaGL 2017 — @genehack 31
why&how2learn — SeaGL 2017 — @genehack 32
company
sitewhy&how2learn — SeaGL 2017 — @genehack 33
weblog
with tags, archive, et cetera
why&how2learn — SeaGL 2017 — @genehack 34
so why are
ssgs great for
learning?
why&how2learn — SeaGL 2017 — @genehack 35
iterative
& incremental
why&how2learn — SeaGL 2017 — @genehack 36
they hit on all the
classicswhy&how2learn — SeaGL 2017 — @genehack 37
hello
world
as a ssg
why&how2learn — SeaGL 2017 — @genehack 38
o hai
there
why&how2learn — SeaGL 2017 — @genehack 39
1. read input from file
2. process the input
3. write output to file
why&how2learn — SeaGL 2017 — @genehack 40
why&how2learn — SeaGL 2017 — @genehack 41
let’s
pause
herewhy&how2learn — SeaGL 2017 — @genehack 42
1. read input from file
2. process the input
3. write output to file
why&how2learn — SeaGL 2017 — @genehack 43
in those 3 steps we just did a
whole bunch
of stuffwhy&how2learn — SeaGL 2017 — @genehack 44
writing some code
and
getting it to build/run
why&how2learn — SeaGL 2017 — @genehack 45
reading & writing
files
why&how2learn — SeaGL 2017 — @genehack 46
getting data into a
variable
why&how2learn — SeaGL 2017 — @genehack 47
interpolating
a variable into output
why&how2learn — SeaGL 2017 — @genehack 48
o/
yay!why&how2learn — SeaGL 2017 — @genehack 49
next:
two input files
why&how2learn — SeaGL 2017 — @genehack 50
as well:
templates!
why&how2learn — SeaGL 2017 — @genehack 51
which means:
figuring out
packages
why&how2learn — SeaGL 2017 — @genehack 52
note:
probably don’t
write your own template engine
why&how2learn — SeaGL 2017 — @genehack 53
also:
loops & conditional logic
oh my
why&how2learn — SeaGL 2017 — @genehack 54
after
that…why&how2learn — SeaGL 2017 — @genehack 55
the sky’s
the limitwhy&how2learn — SeaGL 2017 — @genehack 56
add a
weblogwhy&how2learn — SeaGL 2017 — @genehack 57
add other
processors
why&how2learn — SeaGL 2017 — @genehack 58
add a subcmd-style
appwhy&how2learn — SeaGL 2017 — @genehack 59
and then you can get
fancy…
why&how2learn — SeaGL 2017 — @genehack 60
HTTP
serverwhy&how2learn — SeaGL 2017 — @genehack 61
automatically rebuild output when input is
modified
why&how2learn — SeaGL 2017 — @genehack 62
only rebuild output when
necessary
why&how2learn — SeaGL 2017 — @genehack 63
finallywhen you think you’re “done”…
why&how2learn — SeaGL 2017 — @genehack 64
go back & take another
look
why&how2learn — SeaGL 2017 — @genehack 65
don’twrite your $oldlang in your
$newlang
why&how2learn — SeaGL 2017 — @genehack 66
so, to
sum up:
why&how2learn — SeaGL 2017 — @genehack 67
continuing to learn
is vital!why&how2learn — SeaGL 2017 — @genehack 68
figure out
how to make that happen
why&how2learn — SeaGL 2017 — @genehack 69
both in terms of
“maintain interest in it”
why&how2learn — SeaGL 2017 — @genehack 70
and in terms of
“be good at it”
why&how2learn — SeaGL 2017 — @genehack 71
disclaimer:
this talk is based on
my opinions and experiences
why&how2learn — SeaGL 2017 — @genehack 72
your mileage
will vary
why&how2learn — SeaGL 2017 — @genehack 73
thanks!
why&how2learn — SeaGL 2017 — @genehack 74
special thanks
@qedunham
why&how2learn — SeaGL 2017 — @genehack 75
special thanks
@vmbrasseur
@garethgreenaway
why&how2learn — SeaGL 2017 — @genehack 76
seagl
organizers
why&how2learn — SeaGL 2017 — @genehack 77
you!
why&how2learn — SeaGL 2017 — @genehack 78
why&how2learn — SeaGL 2017 — @genehack 79
questions?
why&how2learn — SeaGL 2017 — @genehack 80

More Related Content

PPTX
Knk sample
PDF
A static site generator should be your next language learning project
PDF
Logs Are Magic: Why Git Workflows and Commit Structure Should Matter To You
PDF
Logs Are Magic: Why Git Workflows and Commit Structure Should Matter To You
PDF
A static site generator should be your next language learning project
PDF
What is quality code? From cruft to craft
PDF
🤵-Friendly, Data Science Stack With 🏕️ envd.pdf
PDF
Logs Are Magic: Why Git Workflows and Commit Structure Should Matter To You
Knk sample
A static site generator should be your next language learning project
Logs Are Magic: Why Git Workflows and Commit Structure Should Matter To You
Logs Are Magic: Why Git Workflows and Commit Structure Should Matter To You
A static site generator should be your next language learning project
What is quality code? From cruft to craft
🤵-Friendly, Data Science Stack With 🏕️ envd.pdf
Logs Are Magic: Why Git Workflows and Commit Structure Should Matter To You

Similar to A static site generator should be your next language learning project (20)

PDF
Coochbehar Govt. Engineering College (1).pdf
PDF
Logs Are Magic! Why git workflows & commit structure should matter to you
PDF
Road to NODES - Blazing Fast Ingest with Apache Arrow
PDF
Coochbehar Govt. Engineering College (3).pdf
PDF
Where does CSS come from?
PPTX
Controlling Content Migrations
PPTX
DevOps is Scaling Agile too
PPTX
GDSC Info Session.pptx
PDF
Docker, your best ally to migrate & upgrading your Drupal - Drupal Dev Days S...
PPTX
Get Set Ready Hassan.pptx
PPTX
Gdsc kick off
PDF
MAKING the Most out of Your Content: ICE 16
PDF
Logs are-magic-devfestweekend2018
PDF
The right tool - choosing a technical tool for your project
PDF
Logs Are Magic: Why Git Workflows and Commit Structure Should Matter To You
PDF
QA on Drupal projects - Drupal Dev Days Seville 2017
PPTX
How To Win a Hackaton - My thoughts on the WebGeek Devcup
PDF
GDSC SDIET INFO SESSION
PDF
Why Delivery Must be Part of Your Content Strategy With Charles Cooper
PDF
Refactoring developer habits
Coochbehar Govt. Engineering College (1).pdf
Logs Are Magic! Why git workflows & commit structure should matter to you
Road to NODES - Blazing Fast Ingest with Apache Arrow
Coochbehar Govt. Engineering College (3).pdf
Where does CSS come from?
Controlling Content Migrations
DevOps is Scaling Agile too
GDSC Info Session.pptx
Docker, your best ally to migrate & upgrading your Drupal - Drupal Dev Days S...
Get Set Ready Hassan.pptx
Gdsc kick off
MAKING the Most out of Your Content: ICE 16
Logs are-magic-devfestweekend2018
The right tool - choosing a technical tool for your project
Logs Are Magic: Why Git Workflows and Commit Structure Should Matter To You
QA on Drupal projects - Drupal Dev Days Seville 2017
How To Win a Hackaton - My thoughts on the WebGeek Devcup
GDSC SDIET INFO SESSION
Why Delivery Must be Part of Your Content Strategy With Charles Cooper
Refactoring developer habits
Ad

More from John Anderson (20)

PDF
#speakerlife
PDF
Introduction to Git (even for non-developers)
PDF
Do you want to be right or do you want to WIN?
PDF
An Introduction to Git (even for non-developers)
PDF
You got chocolate in my peanut butter! .NET on Mac & Linux
PDF
Old Dogs & New Tricks: What's New with Perl5 This Century
PDF
Introduction to Git (even for non-developers!)
PDF
Introduction to Git for Non-Developers
PDF
A Modest Introduction To Swift
PDF
JSON Web Tokens Will Improve Your Life
PDF
Old Dogs & New Tricks: What's New With Perl5 This Century
PDF
A Modest Introduction to Swift
PDF
Friends Don't Let Friends Browse Unencrypted: Running a VPN for friends and f...
PDF
A Modest Introduction To Swift
PDF
#speakerlife
PDF
JSON Web Tokens Will Improve Your Life
PDF
JSON Web Tokens Will Improve Your Life
PDF
JSON Web Tokens Will Improve Your Life
PDF
Automate Yo'self -- SeaGL
PDF
JWT! JWT! Let it all out!
#speakerlife
Introduction to Git (even for non-developers)
Do you want to be right or do you want to WIN?
An Introduction to Git (even for non-developers)
You got chocolate in my peanut butter! .NET on Mac & Linux
Old Dogs & New Tricks: What's New with Perl5 This Century
Introduction to Git (even for non-developers!)
Introduction to Git for Non-Developers
A Modest Introduction To Swift
JSON Web Tokens Will Improve Your Life
Old Dogs & New Tricks: What's New With Perl5 This Century
A Modest Introduction to Swift
Friends Don't Let Friends Browse Unencrypted: Running a VPN for friends and f...
A Modest Introduction To Swift
#speakerlife
JSON Web Tokens Will Improve Your Life
JSON Web Tokens Will Improve Your Life
JSON Web Tokens Will Improve Your Life
Automate Yo'self -- SeaGL
JWT! JWT! Let it all out!
Ad

Recently uploaded (20)

PDF
Softaken Excel to vCard Converter Software.pdf
PPTX
Agentic AI Use Case- Contract Lifecycle Management (CLM).pptx
PDF
Understanding Forklifts - TECH EHS Solution
PPTX
Introduction to Artificial Intelligence
PDF
T3DD25 TYPO3 Content Blocks - Deep Dive by André Kraus
PDF
Odoo Companies in India – Driving Business Transformation.pdf
PDF
System and Network Administraation Chapter 3
PDF
PTS Company Brochure 2025 (1).pdf.......
PDF
Digital Strategies for Manufacturing Companies
PPTX
history of c programming in notes for students .pptx
PDF
Nekopoi APK 2025 free lastest update
PPTX
VVF-Customer-Presentation2025-Ver1.9.pptx
PDF
Internet Downloader Manager (IDM) Crack 6.42 Build 41
PDF
top salesforce developer skills in 2025.pdf
PPTX
ai tools demonstartion for schools and inter college
PDF
EN-Survey-Report-SAP-LeanIX-EA-Insights-2025.pdf
PDF
System and Network Administration Chapter 2
PDF
Claude Code: Everyone is a 10x Developer - A Comprehensive AI-Powered CLI Tool
PPTX
Lecture 3: Operating Systems Introduction to Computer Hardware Systems
PPTX
Oracle E-Business Suite: A Comprehensive Guide for Modern Enterprises
Softaken Excel to vCard Converter Software.pdf
Agentic AI Use Case- Contract Lifecycle Management (CLM).pptx
Understanding Forklifts - TECH EHS Solution
Introduction to Artificial Intelligence
T3DD25 TYPO3 Content Blocks - Deep Dive by André Kraus
Odoo Companies in India – Driving Business Transformation.pdf
System and Network Administraation Chapter 3
PTS Company Brochure 2025 (1).pdf.......
Digital Strategies for Manufacturing Companies
history of c programming in notes for students .pptx
Nekopoi APK 2025 free lastest update
VVF-Customer-Presentation2025-Ver1.9.pptx
Internet Downloader Manager (IDM) Crack 6.42 Build 41
top salesforce developer skills in 2025.pdf
ai tools demonstartion for schools and inter college
EN-Survey-Report-SAP-LeanIX-EA-Insights-2025.pdf
System and Network Administration Chapter 2
Claude Code: Everyone is a 10x Developer - A Comprehensive AI-Powered CLI Tool
Lecture 3: Operating Systems Introduction to Computer Hardware Systems
Oracle E-Business Suite: A Comprehensive Guide for Modern Enterprises

A static site generator should be your next language learning project