SlideShare a Scribd company logo
Happy Hacking Day
6 reasons everybody
should learn JavaScript
Otto Kekäläinen
Helsinki 2.5.2013
Hello, I'm Otto and I work for Seravo, a company
specialised in open source. Our customers are
companies and public sector organisations that
want to use open source software as much as
possible. We enable them to do that by selecting,
installing and administering the software and in
general by taking the responsibility that everything
runs smoothly.
We also enhance and develop software according to
our customer needs and nowadays most of that is
done using HTML5 technologies and a lot of JS
both on the client and server side.
Personally I like the JS ecosystem a lot and today I
am here to present you 6 compelling reasons why
you should learn JS, or learn more JS if you
already know some.
1. JavaScript is
easy
If you are about to learn something new, you'll be
grateful if it is easy, right? You're time learning it will
feel useful as you'll quickly reach a skill level where
you actually can do some real world things.
Compared to other programming languages
JavaScript is easy. You don't need any specific
integrated development environment and you'll be
able to immediately run it without any compiling.
The syntax is straight-forward and there is no need
for complex variable definitions or any other up-
front work. You can just immediately start coding
features you want your software to do.
JavaScript is so easy, that I even recommend it to
people who have no programming skills at all and
who just want to learn some programming to
understand a little bit about how computers work
and develop their so called computational thinking
skills.
JavaScript vs C#
var x = 7, y = 5;
console.log('x+y:' + (x+y));
console.log('x-y:' + (x-y));
console.log('x*y:' + (x*y));
console.log('x/y:' + (x/y));
.
.
.
.
..
.
.
.
using System;
class Program {
public static void Main() {
int x, y, result;
float floatresult;
x = 7;
y = 5;
result = x+y;
Console.WriteLine("x+y: {0}", result);
result = x-y;
Console.WriteLine("x-y: {0}", result);
result = x*y;
Console.WriteLine("x*y: {0}", result);
floatresult = (float)x/(float)y;
Console.WriteLine("x/y: {0}", floatresult);
}
}
Here is JavaScript compared to C++.
You can immediately see how JavaScript is simpler.
And in this case the simplicity does not mean it
would have less features. No, it is just that natty-
gritty details are handled automatically in
JavaScript so you don't have to.
JavaScript is designed to be a high-level language
which makes the coder very productive and able to
achieve a lot in a little time.
And if you ever need to learn some other
programming language like Java, C++ or PHP,
those will feel familiar to you when you master
JavaScript, since there are many similarities in
these languages. So, it is not just that JavaScript is
easy in itself, but later it will also make other
languages easier to learn!
2. JavaScript is
versatile
Even if JavaScript is easy, it is not oversimplified nor
is it restricted to one single programming style or
paradigm. You can use JavaScript in many ways.
With JavaScript you can do traditional procedural
programming or you can do event based
programming.
Your code can be flat or you can do it object oriented.
You can even use it to do functional programming.
JavaScript is versatile because it does not force a
style on you. However if you don't already have
favourite style, with JavaScript you will be inclined
to to follow an object-oriented and event based
way, which certainly is a good style which will take
you far and fast.
3. JavaScript is
open source
Reason number two was versatile because JS gives
you technical freedom. But that is not enough, you
also want freedom in legal terms, and in every
other way too, so that you can build solid
businesses using the technology.
JavaScript itself is made as an open standard called
ECMAScript and anybody can implement the
specification without restrictions. The best and most
popular JavaScript engines are open source and all
related development tools are open source.
There is also an ever growing mass of libraries. That
is really important, as it enables you to concentrate
on making new cool things instead of reinventing
the wheel.
4. JavaScript is
universal
The concept of universal code has been a dream for
for a long time. Write once, run everywhere.
JavaScript might actually make this reality. Write
once, run everywhere.
If in some case the code cannot run flawlessly
somewhere, JavaScript is at least an universal
language which you can use everywhere. Learn
once, use everywhere
✓any web browser
✓in many user interface components
in NoSQL queries✓
✓independently with Node.js
✓shell scripts with #!/usr/bin/env node
Everybody knows that JavaScript is the native
language in browsers and you can use JavaScript
to do website user interfaces that will work on any
browser without any plug-ins.
With Node.js you can also use JavaScript to write the
website back-end or any kind of server or actually
any kind of application, even apps that have
nothing to do with browsers.
If a system has Node.js, you can also as a system
administrator choose to write your shell scripts in
JavaScript.
Today JavaScript can be found built-in in many
places outside web browsers. For example Gnome,
the most popular Linux desktop environment, has a
lot of JavaScript in its UI. Another example are
NoSQL databases, as most of them have
JavaScript built-in into their query procedures.
5. JavaScript is
in demand
It's not just only that JavaScript can be used
everywhere. It is also that it is used everywhere.
And because of that fact, there is a huge demand for
programmers with JavaScript skills. We looked at
30 job announcements for programmers and SW
developers at mol.fi this morning and 21 of them
mentioned as a requirement either JavaScript
directly or some JavaScript library like jQuery or
Angular.js.
To all students in the IT field here today I'd like to
make this very clear: if you don't have JavaScript
skills by the time you graduate, you will not be
ready for the job market.
Hands up, how many of you seek a career as a
programmer? Who of you are fluent in JavaScript?
Who has now decided to develop their JavaScript
skills? The last reason to learn JS on my list is..
6. Because you'll
have to anyway
If you don't learn JavaScript now, you'll have to learn
it at some point in the future anyway.
We already live in a connected world where the
Internet plays a central role in both business,
science, entertainment and politics. In a form or
another, everything has or will very soon have a
web presence, and the web means the browser,
and the browser means running JavaScript.
Today Antti from Intel talked about HTML5. It may
very well be that in the future everything is HTML5,
which means JavaScript. There might still be left
some other technologies too, but we can be
absolutely sure that there will be no job positions
for programmers that would not have anything with
JavaScript to do.
So, eventually you'll have to learn JavaScript anyway.
Learn it now so you can master it in the future.
Learn JavaScript because it's
1. easy
2. versatile
3. open source
4. universal
5. in demand
6. because you'll
have to anyway
So to conclude... (read out loud)
Start today!
Learn and practice:
codecademy.com
Read online:
eloquentjavascript.net
Go to codeacademy.com and sign up for their
interactive online courses on JavaScript. Or if you
like to learn by reading, check out the excellent
book Eloquent JavaScript by Marijn Haverbeke
which is also available online.
Six reasons to learn JavaScript
Ad

More Related Content

What's hot (20)

Shifting Gears
Shifting GearsShifting Gears
Shifting Gears
Christian Heilmann
 
Seven ways to be a happier JavaScript developer - NDC Oslo
Seven ways to be a happier JavaScript developer - NDC OsloSeven ways to be a happier JavaScript developer - NDC Oslo
Seven ways to be a happier JavaScript developer - NDC Oslo
Christian Heilmann
 
Designing nlp-js-extension
Designing nlp-js-extensionDesigning nlp-js-extension
Designing nlp-js-extension
Alain Lompo
 
NoSQL
NoSQLNoSQL
NoSQL
Diego Pacheco
 
Going native with html5 web components
Going native with html5 web componentsGoing native with html5 web components
Going native with html5 web components
James York
 
Thinkful DC - Intro to JavaScript
Thinkful DC - Intro to JavaScriptThinkful DC - Intro to JavaScript
Thinkful DC - Intro to JavaScript
TJ Stalcup
 
Learning to be IDE Free (PrDC 2015)
Learning to be IDE Free (PrDC 2015)Learning to be IDE Free (PrDC 2015)
Learning to be IDE Free (PrDC 2015)
David Wesst
 
Sacrificing the golden calf of "coding"
Sacrificing the golden calf of "coding"Sacrificing the golden calf of "coding"
Sacrificing the golden calf of "coding"
Christian Heilmann
 
Patterns: The new Javascript framweork
Patterns: The new Javascript framweorkPatterns: The new Javascript framweork
Patterns: The new Javascript framweork
Franco Pellegrini
 
Typescript overview
Typescript overviewTypescript overview
Typescript overview
codeblock
 
boots2nerd
boots2nerdboots2nerd
boots2nerd
Kris Gholson
 
HTML5 : How to start learning HTML5 (easy and fast)
HTML5 : How to start learning HTML5 (easy and fast)HTML5 : How to start learning HTML5 (easy and fast)
HTML5 : How to start learning HTML5 (easy and fast)
Bhathiya Nuwan
 
Node.js
Node.jsNode.js
Node.js
Digi Telecommunications
 
Hinting at a better web
Hinting at a better webHinting at a better web
Hinting at a better web
Christian Heilmann
 
CV_2016_en
CV_2016_enCV_2016_en
CV_2016_en
David Hlavati
 
Git Makes Me Angry Inside - DrupalCon Prague
Git Makes Me Angry Inside - DrupalCon PragueGit Makes Me Angry Inside - DrupalCon Prague
Git Makes Me Angry Inside - DrupalCon Prague
Emma Jane Hogbin Westby
 
Riereta Node.js session 3 (with notes)
Riereta Node.js session 3 (with notes)Riereta Node.js session 3 (with notes)
Riereta Node.js session 3 (with notes)
Tekno Paul
 
Building for real standards (includes notes)
Building for real standards (includes notes)Building for real standards (includes notes)
Building for real standards (includes notes)
Christian Heilmann
 
Proglangauage1.10.18
Proglangauage1.10.18Proglangauage1.10.18
Proglangauage1.10.18
Thinkful
 
Real solutions, no tricks
Real solutions, no tricksReal solutions, no tricks
Real solutions, no tricks
Jens Grochtdreis
 
Seven ways to be a happier JavaScript developer - NDC Oslo
Seven ways to be a happier JavaScript developer - NDC OsloSeven ways to be a happier JavaScript developer - NDC Oslo
Seven ways to be a happier JavaScript developer - NDC Oslo
Christian Heilmann
 
Designing nlp-js-extension
Designing nlp-js-extensionDesigning nlp-js-extension
Designing nlp-js-extension
Alain Lompo
 
Going native with html5 web components
Going native with html5 web componentsGoing native with html5 web components
Going native with html5 web components
James York
 
Thinkful DC - Intro to JavaScript
Thinkful DC - Intro to JavaScriptThinkful DC - Intro to JavaScript
Thinkful DC - Intro to JavaScript
TJ Stalcup
 
Learning to be IDE Free (PrDC 2015)
Learning to be IDE Free (PrDC 2015)Learning to be IDE Free (PrDC 2015)
Learning to be IDE Free (PrDC 2015)
David Wesst
 
Sacrificing the golden calf of "coding"
Sacrificing the golden calf of "coding"Sacrificing the golden calf of "coding"
Sacrificing the golden calf of "coding"
Christian Heilmann
 
Patterns: The new Javascript framweork
Patterns: The new Javascript framweorkPatterns: The new Javascript framweork
Patterns: The new Javascript framweork
Franco Pellegrini
 
Typescript overview
Typescript overviewTypescript overview
Typescript overview
codeblock
 
HTML5 : How to start learning HTML5 (easy and fast)
HTML5 : How to start learning HTML5 (easy and fast)HTML5 : How to start learning HTML5 (easy and fast)
HTML5 : How to start learning HTML5 (easy and fast)
Bhathiya Nuwan
 
Git Makes Me Angry Inside - DrupalCon Prague
Git Makes Me Angry Inside - DrupalCon PragueGit Makes Me Angry Inside - DrupalCon Prague
Git Makes Me Angry Inside - DrupalCon Prague
Emma Jane Hogbin Westby
 
Riereta Node.js session 3 (with notes)
Riereta Node.js session 3 (with notes)Riereta Node.js session 3 (with notes)
Riereta Node.js session 3 (with notes)
Tekno Paul
 
Building for real standards (includes notes)
Building for real standards (includes notes)Building for real standards (includes notes)
Building for real standards (includes notes)
Christian Heilmann
 
Proglangauage1.10.18
Proglangauage1.10.18Proglangauage1.10.18
Proglangauage1.10.18
Thinkful
 

Viewers also liked (8)

JavaScript: Introdução e Operadores (aula 1)
JavaScript: Introdução e Operadores (aula 1)JavaScript: Introdução e Operadores (aula 1)
JavaScript: Introdução e Operadores (aula 1)
Gustavo Zimmermann
 
Minicurso de JavaScript (Portuguese)
Minicurso de JavaScript (Portuguese)Minicurso de JavaScript (Portuguese)
Minicurso de JavaScript (Portuguese)
Bruno Grange
 
JavaScript
JavaScriptJavaScript
JavaScript
info_cimol
 
Javascript
JavascriptJavascript
Javascript
guest03a6e6
 
JavaScript - An Introduction
JavaScript - An IntroductionJavaScript - An Introduction
JavaScript - An Introduction
Manvendra Singh
 
10 Tips for Making Beautiful Slideshow Presentations by www.visuali.se
10 Tips for Making Beautiful Slideshow Presentations by www.visuali.se10 Tips for Making Beautiful Slideshow Presentations by www.visuali.se
10 Tips for Making Beautiful Slideshow Presentations by www.visuali.se
Edahn Small
 
JakartaJS - How I Learn Javascript From Basic
JakartaJS - How I Learn Javascript From BasicJakartaJS - How I Learn Javascript From Basic
JakartaJS - How I Learn Javascript From Basic
Irfan Maulana
 
8 Tips for an Awesome Powerpoint Presentation
8 Tips for an Awesome Powerpoint Presentation8 Tips for an Awesome Powerpoint Presentation
8 Tips for an Awesome Powerpoint Presentation
Slides | Presentation Design Agency
 
JavaScript: Introdução e Operadores (aula 1)
JavaScript: Introdução e Operadores (aula 1)JavaScript: Introdução e Operadores (aula 1)
JavaScript: Introdução e Operadores (aula 1)
Gustavo Zimmermann
 
Minicurso de JavaScript (Portuguese)
Minicurso de JavaScript (Portuguese)Minicurso de JavaScript (Portuguese)
Minicurso de JavaScript (Portuguese)
Bruno Grange
 
JavaScript - An Introduction
JavaScript - An IntroductionJavaScript - An Introduction
JavaScript - An Introduction
Manvendra Singh
 
10 Tips for Making Beautiful Slideshow Presentations by www.visuali.se
10 Tips for Making Beautiful Slideshow Presentations by www.visuali.se10 Tips for Making Beautiful Slideshow Presentations by www.visuali.se
10 Tips for Making Beautiful Slideshow Presentations by www.visuali.se
Edahn Small
 
JakartaJS - How I Learn Javascript From Basic
JakartaJS - How I Learn Javascript From BasicJakartaJS - How I Learn Javascript From Basic
JakartaJS - How I Learn Javascript From Basic
Irfan Maulana
 
Ad

Similar to Six reasons to learn JavaScript (20)

Quo vadis, JavaScript? Devday.pl keynote
Quo vadis, JavaScript? Devday.pl keynoteQuo vadis, JavaScript? Devday.pl keynote
Quo vadis, JavaScript? Devday.pl keynote
Christian Heilmann
 
[PDF]_Learning_ECMAScript_6.pdf
[PDF]_Learning_ECMAScript_6.pdf[PDF]_Learning_ECMAScript_6.pdf
[PDF]_Learning_ECMAScript_6.pdf
oscargarcia207606
 
Java script hello world
Java script hello worldJava script hello world
Java script hello world
sanket kulkarni
 
Intro javascript build a scraper (3:22)
Intro javascript   build a scraper (3:22)Intro javascript   build a scraper (3:22)
Intro javascript build a scraper (3:22)
Thinkful
 
30 Skills to Master to Become a Senior Software Engineer
30 Skills to Master to Become a Senior Software Engineer30 Skills to Master to Become a Senior Software Engineer
30 Skills to Master to Become a Senior Software Engineer
Sean Coates
 
Node js projects
Node js projectsNode js projects
Node js projects
💾 Radek Fabisiak
 
How to Become a Front-End Developer? Step-by-Step Guide by Careervira
How to Become a Front-End Developer? Step-by-Step Guide by CareerviraHow to Become a Front-End Developer? Step-by-Step Guide by Careervira
How to Become a Front-End Developer? Step-by-Step Guide by Careervira
Careervira
 
Java And Community Support
Java And Community SupportJava And Community Support
Java And Community Support
William Grosso
 
Top 10 web development tools in 2022
Top 10 web development tools in 2022Top 10 web development tools in 2022
Top 10 web development tools in 2022
intouchgroup2
 
Front End Development | Introduction
Front End Development | IntroductionFront End Development | Introduction
Front End Development | Introduction
JohnTaieb
 
Developers survival-guide
Developers survival-guideDevelopers survival-guide
Developers survival-guide
Dinesh Vasudevan
 
JAVASRIPT and PHP (Hypertext Preprocessor)
JAVASRIPT and PHP (Hypertext Preprocessor)JAVASRIPT and PHP (Hypertext Preprocessor)
JAVASRIPT and PHP (Hypertext Preprocessor)
shelakenitinit
 
Alvin gunawan aw_english
Alvin gunawan aw_englishAlvin gunawan aw_english
Alvin gunawan aw_english
AlvinGunawan6
 
10 interesting things about java
10 interesting things about java10 interesting things about java
10 interesting things about java
kanchanmahajan23
 
LATEST_TRENDS_IN_WEBSITE_DEVELOPMENT.pptx
LATEST_TRENDS_IN_WEBSITE_DEVELOPMENT.pptxLATEST_TRENDS_IN_WEBSITE_DEVELOPMENT.pptx
LATEST_TRENDS_IN_WEBSITE_DEVELOPMENT.pptx
chitrachauhan21
 
Top Backend Frameworks for Mobile App Development in 2023
Top Backend Frameworks for Mobile App Development in 2023Top Backend Frameworks for Mobile App Development in 2023
Top Backend Frameworks for Mobile App Development in 2023
ZimbleCodeAustralia
 
Step by Step Guide on Essay Format in APA For Beginners
Step by Step Guide on Essay Format in APA For BeginnersStep by Step Guide on Essay Format in APA For Beginners
Step by Step Guide on Essay Format in APA For Beginners
calltutors
 
Node Js Non-blocking or asynchronous Blocking or synchronous.pdf
Node Js Non-blocking or asynchronous  Blocking or synchronous.pdfNode Js Non-blocking or asynchronous  Blocking or synchronous.pdf
Node Js Non-blocking or asynchronous Blocking or synchronous.pdf
DarshanaMallick
 
The Guide to becoming a full stack developer in 2018
The Guide to becoming a full stack developer in 2018The Guide to becoming a full stack developer in 2018
The Guide to becoming a full stack developer in 2018
Amit Ashwini
 
JavaScript vs Nodejs: The Key Differences That You Must Know
JavaScript vs Nodejs: The Key Differences That You Must KnowJavaScript vs Nodejs: The Key Differences That You Must Know
JavaScript vs Nodejs: The Key Differences That You Must Know
calltutors
 
Quo vadis, JavaScript? Devday.pl keynote
Quo vadis, JavaScript? Devday.pl keynoteQuo vadis, JavaScript? Devday.pl keynote
Quo vadis, JavaScript? Devday.pl keynote
Christian Heilmann
 
[PDF]_Learning_ECMAScript_6.pdf
[PDF]_Learning_ECMAScript_6.pdf[PDF]_Learning_ECMAScript_6.pdf
[PDF]_Learning_ECMAScript_6.pdf
oscargarcia207606
 
Intro javascript build a scraper (3:22)
Intro javascript   build a scraper (3:22)Intro javascript   build a scraper (3:22)
Intro javascript build a scraper (3:22)
Thinkful
 
30 Skills to Master to Become a Senior Software Engineer
30 Skills to Master to Become a Senior Software Engineer30 Skills to Master to Become a Senior Software Engineer
30 Skills to Master to Become a Senior Software Engineer
Sean Coates
 
How to Become a Front-End Developer? Step-by-Step Guide by Careervira
How to Become a Front-End Developer? Step-by-Step Guide by CareerviraHow to Become a Front-End Developer? Step-by-Step Guide by Careervira
How to Become a Front-End Developer? Step-by-Step Guide by Careervira
Careervira
 
Java And Community Support
Java And Community SupportJava And Community Support
Java And Community Support
William Grosso
 
Top 10 web development tools in 2022
Top 10 web development tools in 2022Top 10 web development tools in 2022
Top 10 web development tools in 2022
intouchgroup2
 
Front End Development | Introduction
Front End Development | IntroductionFront End Development | Introduction
Front End Development | Introduction
JohnTaieb
 
JAVASRIPT and PHP (Hypertext Preprocessor)
JAVASRIPT and PHP (Hypertext Preprocessor)JAVASRIPT and PHP (Hypertext Preprocessor)
JAVASRIPT and PHP (Hypertext Preprocessor)
shelakenitinit
 
Alvin gunawan aw_english
Alvin gunawan aw_englishAlvin gunawan aw_english
Alvin gunawan aw_english
AlvinGunawan6
 
10 interesting things about java
10 interesting things about java10 interesting things about java
10 interesting things about java
kanchanmahajan23
 
LATEST_TRENDS_IN_WEBSITE_DEVELOPMENT.pptx
LATEST_TRENDS_IN_WEBSITE_DEVELOPMENT.pptxLATEST_TRENDS_IN_WEBSITE_DEVELOPMENT.pptx
LATEST_TRENDS_IN_WEBSITE_DEVELOPMENT.pptx
chitrachauhan21
 
Top Backend Frameworks for Mobile App Development in 2023
Top Backend Frameworks for Mobile App Development in 2023Top Backend Frameworks for Mobile App Development in 2023
Top Backend Frameworks for Mobile App Development in 2023
ZimbleCodeAustralia
 
Step by Step Guide on Essay Format in APA For Beginners
Step by Step Guide on Essay Format in APA For BeginnersStep by Step Guide on Essay Format in APA For Beginners
Step by Step Guide on Essay Format in APA For Beginners
calltutors
 
Node Js Non-blocking or asynchronous Blocking or synchronous.pdf
Node Js Non-blocking or asynchronous  Blocking or synchronous.pdfNode Js Non-blocking or asynchronous  Blocking or synchronous.pdf
Node Js Non-blocking or asynchronous Blocking or synchronous.pdf
DarshanaMallick
 
The Guide to becoming a full stack developer in 2018
The Guide to becoming a full stack developer in 2018The Guide to becoming a full stack developer in 2018
The Guide to becoming a full stack developer in 2018
Amit Ashwini
 
JavaScript vs Nodejs: The Key Differences That You Must Know
JavaScript vs Nodejs: The Key Differences That You Must KnowJavaScript vs Nodejs: The Key Differences That You Must Know
JavaScript vs Nodejs: The Key Differences That You Must Know
calltutors
 
Ad

More from Otto Kekäläinen (20)

FOSDEM2021: MariaDB post-release quality assurance in Debian and Ubuntu
FOSDEM2021: MariaDB post-release quality assurance in Debian and UbuntuFOSDEM2021: MariaDB post-release quality assurance in Debian and Ubuntu
FOSDEM2021: MariaDB post-release quality assurance in Debian and Ubuntu
Otto Kekäläinen
 
Search in WordPress - how it works and howto customize it
Search in WordPress - how it works and howto customize itSearch in WordPress - how it works and howto customize it
Search in WordPress - how it works and howto customize it
Otto Kekäläinen
 
MariaDB quality assurance in Debian and Ubuntu
MariaDB quality assurance in Debian and UbuntuMariaDB quality assurance in Debian and Ubuntu
MariaDB quality assurance in Debian and Ubuntu
Otto Kekäläinen
 
DebConf 2020: What’s New in MariaDB Server 10.5 and Galera 4?
DebConf 2020: What’s New in MariaDB Server 10.5 and Galera 4?DebConf 2020: What’s New in MariaDB Server 10.5 and Galera 4?
DebConf 2020: What’s New in MariaDB Server 10.5 and Galera 4?
Otto Kekäläinen
 
Technical SEO for WordPress - 2019 edition
Technical SEO for WordPress - 2019 editionTechnical SEO for WordPress - 2019 edition
Technical SEO for WordPress - 2019 edition
Otto Kekäläinen
 
The 5 most common reasons for a slow WordPress site and how to fix them – ext...
The 5 most common reasons for a slow WordPress site and how to fix them – ext...The 5 most common reasons for a slow WordPress site and how to fix them – ext...
The 5 most common reasons for a slow WordPress site and how to fix them – ext...
Otto Kekäläinen
 
How MariaDB packaging uses Salsa-CI to ensure smooth upgrades and avoid regre...
How MariaDB packaging uses Salsa-CI to ensure smooth upgrades and avoid regre...How MariaDB packaging uses Salsa-CI to ensure smooth upgrades and avoid regre...
How MariaDB packaging uses Salsa-CI to ensure smooth upgrades and avoid regre...
Otto Kekäläinen
 
DebConf 2019 MariaDB packaging in Debian BoF
DebConf 2019 MariaDB packaging in Debian BoFDebConf 2019 MariaDB packaging in Debian BoF
DebConf 2019 MariaDB packaging in Debian BoF
Otto Kekäläinen
 
The 5 most common reasons for a slow WordPress site and how to fix them
The 5 most common reasons for a slow WordPress site and how to fix themThe 5 most common reasons for a slow WordPress site and how to fix them
The 5 most common reasons for a slow WordPress site and how to fix them
Otto Kekäläinen
 
How to investigate and recover from a security breach in WordPress
How to investigate and recover from a security breach in WordPressHow to investigate and recover from a security breach in WordPress
How to investigate and recover from a security breach in WordPress
Otto Kekäläinen
 
Technical SEO for WordPress
Technical SEO for WordPressTechnical SEO for WordPress
Technical SEO for WordPress
Otto Kekäläinen
 
Automatic testing and quality assurance for WordPress plugins and themes
Automatic testing and quality assurance for WordPress plugins and themesAutomatic testing and quality assurance for WordPress plugins and themes
Automatic testing and quality assurance for WordPress plugins and themes
Otto Kekäläinen
 
10 things every developer should know about their database to run word press ...
10 things every developer should know about their database to run word press ...10 things every developer should know about their database to run word press ...
10 things every developer should know about their database to run word press ...
Otto Kekäläinen
 
Automatic testing and quality assurance for WordPress plugins
Automatic testing and quality assurance for WordPress pluginsAutomatic testing and quality assurance for WordPress plugins
Automatic testing and quality assurance for WordPress plugins
Otto Kekäläinen
 
Improving WordPress performance (xdebug and profiling)
Improving WordPress performance (xdebug and profiling)Improving WordPress performance (xdebug and profiling)
Improving WordPress performance (xdebug and profiling)
Otto Kekäläinen
 
WordPress-tietoturvan perusteet
WordPress-tietoturvan perusteetWordPress-tietoturvan perusteet
WordPress-tietoturvan perusteet
Otto Kekäläinen
 
Technical SEO for WordPress - 2017 edition
Technical SEO for WordPress - 2017 editionTechnical SEO for WordPress - 2017 edition
Technical SEO for WordPress - 2017 edition
Otto Kekäläinen
 
Improving WordPress Performance with Xdebug and PHP Profiling
Improving WordPress Performance with Xdebug and PHP ProfilingImproving WordPress Performance with Xdebug and PHP Profiling
Improving WordPress Performance with Xdebug and PHP Profiling
Otto Kekäläinen
 
MariaDB adoption in Linux distributions and development environments
MariaDB adoption in Linux distributions and development environmentsMariaDB adoption in Linux distributions and development environments
MariaDB adoption in Linux distributions and development environments
Otto Kekäläinen
 
WordPress security 101 - WP Jyväskylä Meetup 21.3.2017
WordPress security 101 - WP Jyväskylä Meetup 21.3.2017WordPress security 101 - WP Jyväskylä Meetup 21.3.2017
WordPress security 101 - WP Jyväskylä Meetup 21.3.2017
Otto Kekäläinen
 
FOSDEM2021: MariaDB post-release quality assurance in Debian and Ubuntu
FOSDEM2021: MariaDB post-release quality assurance in Debian and UbuntuFOSDEM2021: MariaDB post-release quality assurance in Debian and Ubuntu
FOSDEM2021: MariaDB post-release quality assurance in Debian and Ubuntu
Otto Kekäläinen
 
Search in WordPress - how it works and howto customize it
Search in WordPress - how it works and howto customize itSearch in WordPress - how it works and howto customize it
Search in WordPress - how it works and howto customize it
Otto Kekäläinen
 
MariaDB quality assurance in Debian and Ubuntu
MariaDB quality assurance in Debian and UbuntuMariaDB quality assurance in Debian and Ubuntu
MariaDB quality assurance in Debian and Ubuntu
Otto Kekäläinen
 
DebConf 2020: What’s New in MariaDB Server 10.5 and Galera 4?
DebConf 2020: What’s New in MariaDB Server 10.5 and Galera 4?DebConf 2020: What’s New in MariaDB Server 10.5 and Galera 4?
DebConf 2020: What’s New in MariaDB Server 10.5 and Galera 4?
Otto Kekäläinen
 
Technical SEO for WordPress - 2019 edition
Technical SEO for WordPress - 2019 editionTechnical SEO for WordPress - 2019 edition
Technical SEO for WordPress - 2019 edition
Otto Kekäläinen
 
The 5 most common reasons for a slow WordPress site and how to fix them – ext...
The 5 most common reasons for a slow WordPress site and how to fix them – ext...The 5 most common reasons for a slow WordPress site and how to fix them – ext...
The 5 most common reasons for a slow WordPress site and how to fix them – ext...
Otto Kekäläinen
 
How MariaDB packaging uses Salsa-CI to ensure smooth upgrades and avoid regre...
How MariaDB packaging uses Salsa-CI to ensure smooth upgrades and avoid regre...How MariaDB packaging uses Salsa-CI to ensure smooth upgrades and avoid regre...
How MariaDB packaging uses Salsa-CI to ensure smooth upgrades and avoid regre...
Otto Kekäläinen
 
DebConf 2019 MariaDB packaging in Debian BoF
DebConf 2019 MariaDB packaging in Debian BoFDebConf 2019 MariaDB packaging in Debian BoF
DebConf 2019 MariaDB packaging in Debian BoF
Otto Kekäläinen
 
The 5 most common reasons for a slow WordPress site and how to fix them
The 5 most common reasons for a slow WordPress site and how to fix themThe 5 most common reasons for a slow WordPress site and how to fix them
The 5 most common reasons for a slow WordPress site and how to fix them
Otto Kekäläinen
 
How to investigate and recover from a security breach in WordPress
How to investigate and recover from a security breach in WordPressHow to investigate and recover from a security breach in WordPress
How to investigate and recover from a security breach in WordPress
Otto Kekäläinen
 
Automatic testing and quality assurance for WordPress plugins and themes
Automatic testing and quality assurance for WordPress plugins and themesAutomatic testing and quality assurance for WordPress plugins and themes
Automatic testing and quality assurance for WordPress plugins and themes
Otto Kekäläinen
 
10 things every developer should know about their database to run word press ...
10 things every developer should know about their database to run word press ...10 things every developer should know about their database to run word press ...
10 things every developer should know about their database to run word press ...
Otto Kekäläinen
 
Automatic testing and quality assurance for WordPress plugins
Automatic testing and quality assurance for WordPress pluginsAutomatic testing and quality assurance for WordPress plugins
Automatic testing and quality assurance for WordPress plugins
Otto Kekäläinen
 
Improving WordPress performance (xdebug and profiling)
Improving WordPress performance (xdebug and profiling)Improving WordPress performance (xdebug and profiling)
Improving WordPress performance (xdebug and profiling)
Otto Kekäläinen
 
WordPress-tietoturvan perusteet
WordPress-tietoturvan perusteetWordPress-tietoturvan perusteet
WordPress-tietoturvan perusteet
Otto Kekäläinen
 
Technical SEO for WordPress - 2017 edition
Technical SEO for WordPress - 2017 editionTechnical SEO for WordPress - 2017 edition
Technical SEO for WordPress - 2017 edition
Otto Kekäläinen
 
Improving WordPress Performance with Xdebug and PHP Profiling
Improving WordPress Performance with Xdebug and PHP ProfilingImproving WordPress Performance with Xdebug and PHP Profiling
Improving WordPress Performance with Xdebug and PHP Profiling
Otto Kekäläinen
 
MariaDB adoption in Linux distributions and development environments
MariaDB adoption in Linux distributions and development environmentsMariaDB adoption in Linux distributions and development environments
MariaDB adoption in Linux distributions and development environments
Otto Kekäläinen
 
WordPress security 101 - WP Jyväskylä Meetup 21.3.2017
WordPress security 101 - WP Jyväskylä Meetup 21.3.2017WordPress security 101 - WP Jyväskylä Meetup 21.3.2017
WordPress security 101 - WP Jyväskylä Meetup 21.3.2017
Otto Kekäläinen
 

Recently uploaded (20)

Transcript: Canadian book publishing: Insights from the latest salary survey ...
Transcript: Canadian book publishing: Insights from the latest salary survey ...Transcript: Canadian book publishing: Insights from the latest salary survey ...
Transcript: Canadian book publishing: Insights from the latest salary survey ...
BookNet Canada
 
MINDCTI revenue release Quarter 1 2025 PR
MINDCTI revenue release Quarter 1 2025 PRMINDCTI revenue release Quarter 1 2025 PR
MINDCTI revenue release Quarter 1 2025 PR
MIND CTI
 
Cybersecurity Identity and Access Solutions using Azure AD
Cybersecurity Identity and Access Solutions using Azure ADCybersecurity Identity and Access Solutions using Azure AD
Cybersecurity Identity and Access Solutions using Azure AD
VICTOR MAESTRE RAMIREZ
 
Webinar - Top 5 Backup Mistakes MSPs and Businesses Make .pptx
Webinar - Top 5 Backup Mistakes MSPs and Businesses Make   .pptxWebinar - Top 5 Backup Mistakes MSPs and Businesses Make   .pptx
Webinar - Top 5 Backup Mistakes MSPs and Businesses Make .pptx
MSP360
 
AI and Data Privacy in 2025: Global Trends
AI and Data Privacy in 2025: Global TrendsAI and Data Privacy in 2025: Global Trends
AI and Data Privacy in 2025: Global Trends
InData Labs
 
Generative Artificial Intelligence (GenAI) in Business
Generative Artificial Intelligence (GenAI) in BusinessGenerative Artificial Intelligence (GenAI) in Business
Generative Artificial Intelligence (GenAI) in Business
Dr. Tathagat Varma
 
GyrusAI - Broadcasting & Streaming Applications Driven by AI and ML
GyrusAI - Broadcasting & Streaming Applications Driven by AI and MLGyrusAI - Broadcasting & Streaming Applications Driven by AI and ML
GyrusAI - Broadcasting & Streaming Applications Driven by AI and ML
Gyrus AI
 
Challenges in Migrating Imperative Deep Learning Programs to Graph Execution:...
Challenges in Migrating Imperative Deep Learning Programs to Graph Execution:...Challenges in Migrating Imperative Deep Learning Programs to Graph Execution:...
Challenges in Migrating Imperative Deep Learning Programs to Graph Execution:...
Raffi Khatchadourian
 
Play It Safe: Manage Security Risks - Google Certificate
Play It Safe: Manage Security Risks - Google CertificatePlay It Safe: Manage Security Risks - Google Certificate
Play It Safe: Manage Security Risks - Google Certificate
VICTOR MAESTRE RAMIREZ
 
TrsLabs - Fintech Product & Business Consulting
TrsLabs - Fintech Product & Business ConsultingTrsLabs - Fintech Product & Business Consulting
TrsLabs - Fintech Product & Business Consulting
Trs Labs
 
Hybridize Functions: A Tool for Automatically Refactoring Imperative Deep Lea...
Hybridize Functions: A Tool for Automatically Refactoring Imperative Deep Lea...Hybridize Functions: A Tool for Automatically Refactoring Imperative Deep Lea...
Hybridize Functions: A Tool for Automatically Refactoring Imperative Deep Lea...
Raffi Khatchadourian
 
How analogue intelligence complements AI
How analogue intelligence complements AIHow analogue intelligence complements AI
How analogue intelligence complements AI
Paul Rowe
 
Unlocking Generative AI in your Web Apps
Unlocking Generative AI in your Web AppsUnlocking Generative AI in your Web Apps
Unlocking Generative AI in your Web Apps
Maximiliano Firtman
 
AI Agents at Work: UiPath, Maestro & the Future of Documents
AI Agents at Work: UiPath, Maestro & the Future of DocumentsAI Agents at Work: UiPath, Maestro & the Future of Documents
AI Agents at Work: UiPath, Maestro & the Future of Documents
UiPathCommunity
 
Vibe Coding_ Develop a web application using AI (1).pdf
Vibe Coding_ Develop a web application using AI (1).pdfVibe Coding_ Develop a web application using AI (1).pdf
Vibe Coding_ Develop a web application using AI (1).pdf
Baiju Muthukadan
 
The Future of Cisco Cloud Security: Innovations and AI Integration
The Future of Cisco Cloud Security: Innovations and AI IntegrationThe Future of Cisco Cloud Security: Innovations and AI Integration
The Future of Cisco Cloud Security: Innovations and AI Integration
Re-solution Data Ltd
 
UiPath Automation Suite – Cas d'usage d'une NGO internationale basée à Genève
UiPath Automation Suite – Cas d'usage d'une NGO internationale basée à GenèveUiPath Automation Suite – Cas d'usage d'une NGO internationale basée à Genève
UiPath Automation Suite – Cas d'usage d'une NGO internationale basée à Genève
UiPathCommunity
 
Viam product demo_ Deploying and scaling AI with hardware.pdf
Viam product demo_ Deploying and scaling AI with hardware.pdfViam product demo_ Deploying and scaling AI with hardware.pdf
Viam product demo_ Deploying and scaling AI with hardware.pdf
camilalamoratta
 
Enterprise Integration Is Dead! Long Live AI-Driven Integration with Apache C...
Enterprise Integration Is Dead! Long Live AI-Driven Integration with Apache C...Enterprise Integration Is Dead! Long Live AI-Driven Integration with Apache C...
Enterprise Integration Is Dead! Long Live AI-Driven Integration with Apache C...
Markus Eisele
 
Vaibhav Gupta BAML: AI work flows without Hallucinations
Vaibhav Gupta BAML: AI work flows without HallucinationsVaibhav Gupta BAML: AI work flows without Hallucinations
Vaibhav Gupta BAML: AI work flows without Hallucinations
john409870
 
Transcript: Canadian book publishing: Insights from the latest salary survey ...
Transcript: Canadian book publishing: Insights from the latest salary survey ...Transcript: Canadian book publishing: Insights from the latest salary survey ...
Transcript: Canadian book publishing: Insights from the latest salary survey ...
BookNet Canada
 
MINDCTI revenue release Quarter 1 2025 PR
MINDCTI revenue release Quarter 1 2025 PRMINDCTI revenue release Quarter 1 2025 PR
MINDCTI revenue release Quarter 1 2025 PR
MIND CTI
 
Cybersecurity Identity and Access Solutions using Azure AD
Cybersecurity Identity and Access Solutions using Azure ADCybersecurity Identity and Access Solutions using Azure AD
Cybersecurity Identity and Access Solutions using Azure AD
VICTOR MAESTRE RAMIREZ
 
Webinar - Top 5 Backup Mistakes MSPs and Businesses Make .pptx
Webinar - Top 5 Backup Mistakes MSPs and Businesses Make   .pptxWebinar - Top 5 Backup Mistakes MSPs and Businesses Make   .pptx
Webinar - Top 5 Backup Mistakes MSPs and Businesses Make .pptx
MSP360
 
AI and Data Privacy in 2025: Global Trends
AI and Data Privacy in 2025: Global TrendsAI and Data Privacy in 2025: Global Trends
AI and Data Privacy in 2025: Global Trends
InData Labs
 
Generative Artificial Intelligence (GenAI) in Business
Generative Artificial Intelligence (GenAI) in BusinessGenerative Artificial Intelligence (GenAI) in Business
Generative Artificial Intelligence (GenAI) in Business
Dr. Tathagat Varma
 
GyrusAI - Broadcasting & Streaming Applications Driven by AI and ML
GyrusAI - Broadcasting & Streaming Applications Driven by AI and MLGyrusAI - Broadcasting & Streaming Applications Driven by AI and ML
GyrusAI - Broadcasting & Streaming Applications Driven by AI and ML
Gyrus AI
 
Challenges in Migrating Imperative Deep Learning Programs to Graph Execution:...
Challenges in Migrating Imperative Deep Learning Programs to Graph Execution:...Challenges in Migrating Imperative Deep Learning Programs to Graph Execution:...
Challenges in Migrating Imperative Deep Learning Programs to Graph Execution:...
Raffi Khatchadourian
 
Play It Safe: Manage Security Risks - Google Certificate
Play It Safe: Manage Security Risks - Google CertificatePlay It Safe: Manage Security Risks - Google Certificate
Play It Safe: Manage Security Risks - Google Certificate
VICTOR MAESTRE RAMIREZ
 
TrsLabs - Fintech Product & Business Consulting
TrsLabs - Fintech Product & Business ConsultingTrsLabs - Fintech Product & Business Consulting
TrsLabs - Fintech Product & Business Consulting
Trs Labs
 
Hybridize Functions: A Tool for Automatically Refactoring Imperative Deep Lea...
Hybridize Functions: A Tool for Automatically Refactoring Imperative Deep Lea...Hybridize Functions: A Tool for Automatically Refactoring Imperative Deep Lea...
Hybridize Functions: A Tool for Automatically Refactoring Imperative Deep Lea...
Raffi Khatchadourian
 
How analogue intelligence complements AI
How analogue intelligence complements AIHow analogue intelligence complements AI
How analogue intelligence complements AI
Paul Rowe
 
Unlocking Generative AI in your Web Apps
Unlocking Generative AI in your Web AppsUnlocking Generative AI in your Web Apps
Unlocking Generative AI in your Web Apps
Maximiliano Firtman
 
AI Agents at Work: UiPath, Maestro & the Future of Documents
AI Agents at Work: UiPath, Maestro & the Future of DocumentsAI Agents at Work: UiPath, Maestro & the Future of Documents
AI Agents at Work: UiPath, Maestro & the Future of Documents
UiPathCommunity
 
Vibe Coding_ Develop a web application using AI (1).pdf
Vibe Coding_ Develop a web application using AI (1).pdfVibe Coding_ Develop a web application using AI (1).pdf
Vibe Coding_ Develop a web application using AI (1).pdf
Baiju Muthukadan
 
The Future of Cisco Cloud Security: Innovations and AI Integration
The Future of Cisco Cloud Security: Innovations and AI IntegrationThe Future of Cisco Cloud Security: Innovations and AI Integration
The Future of Cisco Cloud Security: Innovations and AI Integration
Re-solution Data Ltd
 
UiPath Automation Suite – Cas d'usage d'une NGO internationale basée à Genève
UiPath Automation Suite – Cas d'usage d'une NGO internationale basée à GenèveUiPath Automation Suite – Cas d'usage d'une NGO internationale basée à Genève
UiPath Automation Suite – Cas d'usage d'une NGO internationale basée à Genève
UiPathCommunity
 
Viam product demo_ Deploying and scaling AI with hardware.pdf
Viam product demo_ Deploying and scaling AI with hardware.pdfViam product demo_ Deploying and scaling AI with hardware.pdf
Viam product demo_ Deploying and scaling AI with hardware.pdf
camilalamoratta
 
Enterprise Integration Is Dead! Long Live AI-Driven Integration with Apache C...
Enterprise Integration Is Dead! Long Live AI-Driven Integration with Apache C...Enterprise Integration Is Dead! Long Live AI-Driven Integration with Apache C...
Enterprise Integration Is Dead! Long Live AI-Driven Integration with Apache C...
Markus Eisele
 
Vaibhav Gupta BAML: AI work flows without Hallucinations
Vaibhav Gupta BAML: AI work flows without HallucinationsVaibhav Gupta BAML: AI work flows without Hallucinations
Vaibhav Gupta BAML: AI work flows without Hallucinations
john409870
 

Six reasons to learn JavaScript

  • 1. Happy Hacking Day 6 reasons everybody should learn JavaScript Otto Kekäläinen Helsinki 2.5.2013 Hello, I'm Otto and I work for Seravo, a company specialised in open source. Our customers are companies and public sector organisations that want to use open source software as much as possible. We enable them to do that by selecting, installing and administering the software and in general by taking the responsibility that everything runs smoothly. We also enhance and develop software according to our customer needs and nowadays most of that is done using HTML5 technologies and a lot of JS both on the client and server side. Personally I like the JS ecosystem a lot and today I am here to present you 6 compelling reasons why you should learn JS, or learn more JS if you already know some.
  • 2. 1. JavaScript is easy If you are about to learn something new, you'll be grateful if it is easy, right? You're time learning it will feel useful as you'll quickly reach a skill level where you actually can do some real world things. Compared to other programming languages JavaScript is easy. You don't need any specific integrated development environment and you'll be able to immediately run it without any compiling. The syntax is straight-forward and there is no need for complex variable definitions or any other up- front work. You can just immediately start coding features you want your software to do. JavaScript is so easy, that I even recommend it to people who have no programming skills at all and who just want to learn some programming to understand a little bit about how computers work and develop their so called computational thinking skills.
  • 3. JavaScript vs C# var x = 7, y = 5; console.log('x+y:' + (x+y)); console.log('x-y:' + (x-y)); console.log('x*y:' + (x*y)); console.log('x/y:' + (x/y)); . . . . .. . . . using System; class Program { public static void Main() { int x, y, result; float floatresult; x = 7; y = 5; result = x+y; Console.WriteLine("x+y: {0}", result); result = x-y; Console.WriteLine("x-y: {0}", result); result = x*y; Console.WriteLine("x*y: {0}", result); floatresult = (float)x/(float)y; Console.WriteLine("x/y: {0}", floatresult); } } Here is JavaScript compared to C++. You can immediately see how JavaScript is simpler. And in this case the simplicity does not mean it would have less features. No, it is just that natty- gritty details are handled automatically in JavaScript so you don't have to. JavaScript is designed to be a high-level language which makes the coder very productive and able to achieve a lot in a little time. And if you ever need to learn some other programming language like Java, C++ or PHP, those will feel familiar to you when you master JavaScript, since there are many similarities in these languages. So, it is not just that JavaScript is easy in itself, but later it will also make other languages easier to learn!
  • 4. 2. JavaScript is versatile Even if JavaScript is easy, it is not oversimplified nor is it restricted to one single programming style or paradigm. You can use JavaScript in many ways. With JavaScript you can do traditional procedural programming or you can do event based programming. Your code can be flat or you can do it object oriented. You can even use it to do functional programming. JavaScript is versatile because it does not force a style on you. However if you don't already have favourite style, with JavaScript you will be inclined to to follow an object-oriented and event based way, which certainly is a good style which will take you far and fast.
  • 5. 3. JavaScript is open source Reason number two was versatile because JS gives you technical freedom. But that is not enough, you also want freedom in legal terms, and in every other way too, so that you can build solid businesses using the technology. JavaScript itself is made as an open standard called ECMAScript and anybody can implement the specification without restrictions. The best and most popular JavaScript engines are open source and all related development tools are open source. There is also an ever growing mass of libraries. That is really important, as it enables you to concentrate on making new cool things instead of reinventing the wheel.
  • 6. 4. JavaScript is universal The concept of universal code has been a dream for for a long time. Write once, run everywhere. JavaScript might actually make this reality. Write once, run everywhere. If in some case the code cannot run flawlessly somewhere, JavaScript is at least an universal language which you can use everywhere. Learn once, use everywhere
  • 7. ✓any web browser ✓in many user interface components in NoSQL queries✓ ✓independently with Node.js ✓shell scripts with #!/usr/bin/env node Everybody knows that JavaScript is the native language in browsers and you can use JavaScript to do website user interfaces that will work on any browser without any plug-ins. With Node.js you can also use JavaScript to write the website back-end or any kind of server or actually any kind of application, even apps that have nothing to do with browsers. If a system has Node.js, you can also as a system administrator choose to write your shell scripts in JavaScript. Today JavaScript can be found built-in in many places outside web browsers. For example Gnome, the most popular Linux desktop environment, has a lot of JavaScript in its UI. Another example are NoSQL databases, as most of them have JavaScript built-in into their query procedures.
  • 8. 5. JavaScript is in demand It's not just only that JavaScript can be used everywhere. It is also that it is used everywhere. And because of that fact, there is a huge demand for programmers with JavaScript skills. We looked at 30 job announcements for programmers and SW developers at mol.fi this morning and 21 of them mentioned as a requirement either JavaScript directly or some JavaScript library like jQuery or Angular.js. To all students in the IT field here today I'd like to make this very clear: if you don't have JavaScript skills by the time you graduate, you will not be ready for the job market. Hands up, how many of you seek a career as a programmer? Who of you are fluent in JavaScript? Who has now decided to develop their JavaScript skills? The last reason to learn JS on my list is..
  • 9. 6. Because you'll have to anyway If you don't learn JavaScript now, you'll have to learn it at some point in the future anyway. We already live in a connected world where the Internet plays a central role in both business, science, entertainment and politics. In a form or another, everything has or will very soon have a web presence, and the web means the browser, and the browser means running JavaScript. Today Antti from Intel talked about HTML5. It may very well be that in the future everything is HTML5, which means JavaScript. There might still be left some other technologies too, but we can be absolutely sure that there will be no job positions for programmers that would not have anything with JavaScript to do. So, eventually you'll have to learn JavaScript anyway. Learn it now so you can master it in the future.
  • 10. Learn JavaScript because it's 1. easy 2. versatile 3. open source 4. universal 5. in demand 6. because you'll have to anyway So to conclude... (read out loud)
  • 11. Start today! Learn and practice: codecademy.com Read online: eloquentjavascript.net Go to codeacademy.com and sign up for their interactive online courses on JavaScript. Or if you like to learn by reading, check out the excellent book Eloquent JavaScript by Marijn Haverbeke which is also available online.