SlideShare une entreprise Scribd logo
1  sur  80
Télécharger pour lire hors ligne
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

Contenu connexe

Similaire à A static site generator should be your next language learning project

Similaire à A static site generator should be your next language learning project (20)

Coochbehar Govt. Engineering College (1).pdf
Coochbehar Govt. Engineering College (1).pdfCoochbehar Govt. Engineering College (1).pdf
Coochbehar Govt. Engineering College (1).pdf
 
Logs Are Magic! Why git workflows & commit structure should matter to you
Logs Are Magic! Why git workflows & commit structure should matter to youLogs Are Magic! Why git workflows & commit structure should matter to you
Logs Are Magic! Why git workflows & commit structure should matter to you
 
Road to NODES - Blazing Fast Ingest with Apache Arrow
Road to NODES - Blazing Fast Ingest with Apache ArrowRoad to NODES - Blazing Fast Ingest with Apache Arrow
Road to NODES - Blazing Fast Ingest with Apache Arrow
 
Coochbehar Govt. Engineering College (3).pdf
Coochbehar Govt. Engineering College (3).pdfCoochbehar Govt. Engineering College (3).pdf
Coochbehar Govt. Engineering College (3).pdf
 
Where does CSS come from?
Where does CSS come from?Where does CSS come from?
Where does CSS come from?
 
Controlling Content Migrations
Controlling Content MigrationsControlling Content Migrations
Controlling Content Migrations
 
DevOps is Scaling Agile too
DevOps is Scaling Agile tooDevOps is Scaling Agile too
DevOps is Scaling Agile too
 
GDSC Info Session.pptx
GDSC Info Session.pptxGDSC Info Session.pptx
GDSC Info Session.pptx
 
Docker, your best ally to migrate & upgrading your Drupal - Drupal Dev Days S...
Docker, your best ally to migrate & upgrading your Drupal - Drupal Dev Days S...Docker, your best ally to migrate & upgrading your Drupal - Drupal Dev Days S...
Docker, your best ally to migrate & upgrading your Drupal - Drupal Dev Days S...
 
Get Set Ready Hassan.pptx
Get Set Ready Hassan.pptxGet Set Ready Hassan.pptx
Get Set Ready Hassan.pptx
 
Gdsc kick off
Gdsc kick offGdsc kick off
Gdsc kick off
 
MAKING the Most out of Your Content: ICE 16
MAKING the Most out of Your Content: ICE 16MAKING the Most out of Your Content: ICE 16
MAKING the Most out of Your Content: ICE 16
 
Logs are-magic-devfestweekend2018
Logs are-magic-devfestweekend2018Logs are-magic-devfestweekend2018
Logs are-magic-devfestweekend2018
 
The right tool - choosing a technical tool for your project
 The right tool - choosing a technical tool for your project The right tool - choosing a technical tool for your project
The right tool - choosing a technical tool for your 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 YouLogs 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
 
QA on Drupal projects - Drupal Dev Days Seville 2017
QA on Drupal projects - Drupal Dev Days Seville 2017QA on Drupal projects - Drupal Dev Days Seville 2017
QA on Drupal projects - Drupal Dev Days Seville 2017
 
How To Win a Hackaton - My thoughts on the WebGeek Devcup
How To Win a Hackaton - My thoughts on the WebGeek DevcupHow To Win a Hackaton - My thoughts on the WebGeek Devcup
How To Win a Hackaton - My thoughts on the WebGeek Devcup
 
GDSC SDIET INFO SESSION
GDSC SDIET INFO SESSIONGDSC SDIET INFO SESSION
GDSC SDIET INFO SESSION
 
Why Delivery Must be Part of Your Content Strategy With Charles Cooper
Why Delivery Must be Part of Your Content Strategy With Charles CooperWhy Delivery Must be Part of Your Content Strategy With Charles Cooper
Why Delivery Must be Part of Your Content Strategy With Charles Cooper
 
Refactoring developer habits
Refactoring developer habitsRefactoring developer habits
Refactoring developer habits
 

Plus de John Anderson

A Modest Introduction To Swift
A Modest Introduction To SwiftA Modest Introduction To Swift
A Modest Introduction To Swift
John Anderson
 
JSON Web Tokens Will Improve Your Life
JSON Web Tokens Will Improve Your LifeJSON Web Tokens Will Improve Your Life
JSON Web Tokens Will Improve Your Life
John Anderson
 
Old Dogs & New Tricks: What's New With Perl5 This Century
Old Dogs & New Tricks: What's New With Perl5 This CenturyOld Dogs & New Tricks: What's New With Perl5 This Century
Old Dogs & New Tricks: What's New With Perl5 This Century
John Anderson
 
A Modest Introduction to Swift
A Modest Introduction to SwiftA Modest Introduction to Swift
A Modest Introduction to Swift
John Anderson
 
Friends Don't Let Friends Browse Unencrypted: Running a VPN for friends and f...
Friends Don't Let Friends Browse Unencrypted: Running a VPN for friends and f...Friends Don't Let Friends Browse Unencrypted: Running a VPN for friends and f...
Friends Don't Let Friends Browse Unencrypted: Running a VPN for friends and f...
John Anderson
 

Plus de John Anderson (20)

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

Dernier

CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICECHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
9953056974 Low Rate Call Girls In Saket, Delhi NCR
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service provider
mohitmore19
 

Dernier (20)

Introducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) SolutionIntroducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) Solution
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Models
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.com
 
How to Choose the Right Laravel Development Partner in New York City_compress...
How to Choose the Right Laravel Development Partner in New York City_compress...How to Choose the Right Laravel Development Partner in New York City_compress...
How to Choose the Right Laravel Development Partner in New York City_compress...
 
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTV
 
How To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsHow To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.js
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
 
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICECHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service provider
 
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
Direct Style Effect Systems -The Print[A] Example- A Comprehension AidDirect Style Effect Systems -The Print[A] Example- A Comprehension Aid
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
 
Define the academic and professional writing..pdf
Define the academic and professional writing..pdfDefine the academic and professional writing..pdf
Define the academic and professional writing..pdf
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
 
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
 
Microsoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdfMicrosoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdf
 
VTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learnVTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learn
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
 

A static site generator should be your next language learning project