STC 2016 Programming Language Storytime

Transcription

STC 2016 Programming Language Storytime
Programming Language
Storytime
Sarah Kiniry
cPanel, Inc.
About Me
@SarahKiniry
#STC16
Sarah Kiniry (me!)
Technical Writer, former Stage
Manager and Box Office Manager,
needs-an-intervention level
Trekkie.
technicolorwriter.com
@SarahKiniry
Jason (hubby!)
Backend Perl developer,
extremely patient about being
my in-home tutor, taught me a
whole lot of The Things.
If you can learn to read,
you can learn to read code.
Just read the story!
1
What does the application do?
2
What text will the user see?
3
Which files or settings?
@SarahKiniry
#STC16
How do I find the story?
Code Clues
@SarahKiniry
#STC16
Function Names
Code Comments
1
What does the application do?
Code comments, function names,
setting names, and file locations.
2
What text will the user see?
Display methods, like print, and
other output functions.
Directories
Variable (Setting) Names
Variables
Print Functions
File Locations
Files
3
Which files or settings?
File names, file paths, and other
variables.
Comments
Text in code that the computer doesn’t try to run.
Instead, it’s there for the developer’s reference.
Sometimes, it’s also used to temporarily “turn off”
code without deleting it.
Comments
@SarahKiniry
#STC16
Single-line comments…
// Single-line comments
// require a comment
// for each line.
do(thing); // comment
Multi-line comments…
•
Comment character at the beginning and
end of the comment.
•
Generally, these exist on separate lines
from the code.
•
Comment character at the beginning of the
comment only.
•
A line break ends the comment.
•
Can be used on the same line as code (a
trailing comment).
/* Multi-line
comments use beginning
and end characters for
multiple lines. */
Single Line
@SarahKiniry
#STC16
//
Java, JavaScript, C, C#, PHP
#
PHP, Perl, Ruby, Python
Multi Line
@SarahKiniry
#STC16
/* Comment */
Java, JavaScript, C, C#, PHP
// Comment \
Comment
C
=pod
=cut
Perl
=begin
=end
Ruby
""" """
Python
Functions
Reusable code that performs one or more actions.
Sometimes, the code that you’re looking at is a
function, while sometimes it uses existing functions.
* This is a lazy use of the term. These actions can be
subroutines, methods, procedures, etc.
Functions
sub do_something {
my $value = @_;
if $value {
return "Yay!";
}
…
Function use…
•
Could be a custom-written function, or one
that’s built into the programming language.
•
Often, custom functions are defined in
other code, not in the same file.
@SarahKiniry
#STC16
Function definition…
•
Creating a function that’s used elsewhere.
•
Sets the function name.
•
Includes all of the code that will run
anytime the function is used.
do_something($value);
Using Functions
function($value)
function "$value"
@SarahKiniry
#STC16
Creating Functions
@SarahKiniry
#STC16
// This is the format to define a function.
class type functionname(parameters) {
code
}
*Java uses a “class” structure, so when you see this in code it’s going to be nested in a class.
Java*, C#
Creating Functions
@SarahKiniry
#STC16
// This is the format to define a function.
class type functionname(parameters) {
code
}
// This example defines a function.
public static void printyay() {
System.out.println ("Yay!");
}
*Java uses a “class” structure, so when you see this in code it’s going to be nested in a class.
Java*, C#
Creating Functions
@SarahKiniry
#STC16
// This is the format to define a function.
class type functionname(parameters) {
code
}
// This example defines a function.
public static void printyay() {
System.out.println ("Yay!");
}
// This uses the defined function.
printyay();
*Java uses a “class” structure, so when you see this in code it’s going to be nested in a class.
Java*, C#
Creating Functions
@SarahKiniry
#STC16
// This is the format to define a function.
class type functionname(parameters) {
code
}
// This example defines a function.
public static void printyay() {
System.out.println ("Yay!");
}
// This uses the defined function.
printyay();
*Java uses a “class” structure, so when you see this in code it’s going to be nested in a class.
Java*, C#
Yay!
Creating Functions
// This is the format to define a function.
type functionname(parameters) {
code
}
C
@SarahKiniry
#STC16
Creating Functions
// This is the format to define a function.
type functionname(parameters) {
code
}
// This example defines a function.
int printyay() {
printf("Yay!");
}
C
@SarahKiniry
#STC16
Creating Functions
// This is the format to define a function.
type functionname(parameters) {
code
}
// This example defines a function.
int printyay() {
printf("Yay!");
}
// This uses the defined function.
printyay();
C
@SarahKiniry
#STC16
Creating Functions
@SarahKiniry
#STC16
// This is the format to define a function.
type functionname(parameters) {
code
}
// This example defines a function.
int printyay() {
printf("Yay!");
}
// This uses the defined function.
printyay();
C
Yay!
Creating Functions
// This is the format to define a function.
function functionname(parameters) {
code
}
JavaScript, PHP
@SarahKiniry
#STC16
Creating Functions
// This is the format to define a function.
function functionname(parameters) {
code
}
// This example defines a function.
function multiply(a,b) {
return a * b;
}
JavaScript, PHP
@SarahKiniry
#STC16
Creating Functions
// This is the format to define a function.
function functionname(parameters) {
code
}
// This example defines a function.
function multiply(a,b) {
return a * b;
}
// This uses the defined function.
multiply(3,2);
JavaScript, PHP
@SarahKiniry
#STC16
Creating Functions
@SarahKiniry
#STC16
// This is the format to define a function.
function functionname(parameters) {
code
}
// This example defines a function.
function multiply(a,b) {
return a * b;
}
// This uses the defined function.
multiply(3,2);
JavaScript, PHP
6
Creating Functions
# This is the format to define a function.
sub functionname {
code
}
Perl
@SarahKiniry
#STC16
Creating Functions
# This is the format to define a function.
sub functionname {
code
}
# This example defines a function.
sub my_fn {
$variables = @_;
do_something($variables);
return $variables;
}
Perl
@SarahKiniry
#STC16
Creating Functions
# This is the format to define a function.
sub functionname {
code
}
# This example defines a function.
sub dothingstovars {
$variables = @_;
do_something($variables);
return $variables;
}
# This uses the defined function.
dothingstovars(“red”);
Perl
@SarahKiniry
#STC16
Creating Functions
@SarahKiniry
#STC16
# This is the format to define a function.
sub functionname {
code
}
# This example defines a function.
sub dothingstovars {
$variables = @_;
do_something($variables);
return $variables;
}
# This uses the defined function.
dothingstovars(“red”);
Perl
blue
Creating Functions
# This is the format to define a function.
def functionname(parameters)
code
end
Ruby
@SarahKiniry
#STC16
Creating Functions
# This is the format to define a function.
def functionname(parameters)
code
end
# This example defines a function.
def Texas(name)
var = "Howdy, " + name
return var
end
Ruby
@SarahKiniry
#STC16
Creating Functions
# This is the format to define a function.
def functionname(parameters)
code
end
# This example defines a function.
def Texas(name)
var = "Howdy, " + name
return var
end
# This uses the defined function.
Texas(Bob)
Ruby
@SarahKiniry
#STC16
Creating Functions
@SarahKiniry
#STC16
# This is the format to define a function.
def functionname(parameters)
code
end
# This example defines a function.
def Texas(name)
var = "Howdy, " + name
return var
end
# This uses the defined function.
Texas(Bob)
Ruby
Howdy,
Bob
Creating Functions
# This is the format to define a function.
def functionname(parameters):
code
return[value]
Python
@SarahKiniry
#STC16
Creating Functions
# This is the format to define a function.
def functionname(parameters):
code
return[value]
# This example defines a function.
def print_return(my_words)
print my_words
return[]
Python
@SarahKiniry
#STC16
Creating Functions
# This is the format to define a function.
def functionname(parameters):
code
return[value]
# This example defines a function.
def print_return(my_words)
print my_words
return[]
# This uses the defined function.
print_return(“Hey everybody!")
Python
@SarahKiniry
#STC16
Creating Functions
@SarahKiniry
#STC16
# This is the format to define a function.
def functionname(parameters):
code
return[value]
# This example defines a function.
def print_return(my_words)
print my_words
return[]
# This uses the defined function.
print_return(“Hey everybody!")
Python
Hey
everybody!
Variables
The names of stored values that code uses to
perform actions. This can mean strings (text),
numbers, or boolean values (true/false).
There are also methods of storing groups of values,
such as arrays or hashes.
Variables
(and arrays
and hashes)
@SarahKiniry
#STC16
variable_name
Java, JavaScript, C, C#, Python
$variable_name
PHP, Perl, Ruby
@variable_name
Perl, Ruby
%variable_name
Perl
Important Value Types
@SarahKiniry
#STC16
Files
example.txt, example.jpg, example.php
Directories
Linux: /example/directory or example/directory/
Windows: C:\example\directory or
..\example\directory\
Settings
managed, unmanaged; blue, green, red; 0, 1
Variables
my $file = example.txt;
$color = blue;
$do_something = 1;
@SarahKiniry
#STC16
Hello World!
The Hello World Story
1
What does the application do?
2
What text will the user see?
3
Which files or settings?
@SarahKiniry
#STC16
The Hello World Story
1
What does the application do?
This application displays a message to the user.
2
What text will the user see?
3
Which files or settings?
@SarahKiniry
#STC16
The Hello World Story
1
What does the application do?
This application displays a message to the user.
2
What text will the user see?
The user will see the text “Hello World.”
3
Which files or settings?
@SarahKiniry
#STC16
The Hello World Story
1
What does the application do?
This application displays a message to the user.
2
What text will the user see?
The user will see the text “Hello World.”
3
Which files or settings?
No other files or settings are involved.
@SarahKiniry
#STC16
Hello, Java!
/* This is a Hello World script. */
class HelloWorldApp {
public static void main(String[] args)
{
// Display the string.
System.out.println("Hello World!");
}
}
@SarahKiniry
#STC16
Hello, Java!
/* This is a Hello World script. */
class HelloWorldApp {
public static void main(String[] args)
{
// Display the string.
System.out.println("Hello World!");
}
}
@SarahKiniry
#STC16
Hello, Java!
/* This is a Hello World script. */
class HelloWorldApp {
public static void main(String[] args)
{
// Display the string.
System.out.println("Hello World!");
}
}
@SarahKiniry
#STC16
Hello, JavaScript!
<script language=“Javascript">
// Write to browser window.
document.write("Hello World!");
</script>
@SarahKiniry
#STC16
Hello, JavaScript!
<script language=“Javascript">
// Write to browser window.
document.write("Hello World!");
</script>
@SarahKiniry
#STC16
Hello, JavaScript!
<script language=“Javascript">
// Write to browser window.
document.write("Hello World!");
</script>
@SarahKiniry
#STC16
Hello, C!
/* Hello World */
void main()
{
printf("Hello World!");
}
@SarahKiniry
#STC16
Hello, C!
/* Hello World */
void main()
{
printf("Hello World!");
}
Hello, C!
/* Hello World */
void main()
{
printf("Hello World!");
}
Hello, C#!
/// Let’s say Hello.
using System;
namespace HelloWorld
{
class Hello
{
static void Main()
{
Console.WriteLine("Hello World!");
}
}
}
@SarahKiniry
#STC16
Hello, C#!
/// Let’s say Hello.
using System;
namespace HelloWorld
{
class Hello
{
static void Main()
{
Console.WriteLine("Hello World!");
}
}
}
Hello, C#!
/// Let’s say Hello.
using System;
namespace HelloWorld
{
class Hello
{
static void Main()
{
Console.WriteLine("Hello World!");
}
}
}
Hello, PHP!
// Tell them hello in PHP.
<?php
echo "Hello World!";
?>
@SarahKiniry
#STC16
Hello, PHP!
// Tell them hello in PHP.
<?php
echo "Hello World!";
?>
Hello, PHP!
// Tell them hello in PHP.
<?php
echo "Hello World!";
?>
Hello, Perl!
#!/usr/bin/perl
# We’ll call this a Perl of wisdom.
print "Hello World!";
@SarahKiniry
#STC16
Hello, Perl!
#!/usr/bin/perl
# We’ll call this a Perl of wisdom.
print "Hello World!";
Hello, Perl!
#!/usr/bin/perl
# We’ll call this a Perl of wisdom.
print "Hello World!";
Hello, Ruby!
#!/usr/bin/ruby -w
# First Perl, now Ruby? Shiny.
puts "Hello, world!"
=begin
Really though, who knew there were two
programming languages named after
gemstones, even if one is kind of
misspelled?
=end
@SarahKiniry
#STC16
Hello, Ruby!
#!/usr/bin/ruby -w
# First Perl, now Ruby? Shiny.
puts "Hello, world!"
=begin
Really though, who knew there were two
programming languages named after
gemstones, even if one is kind of
misspelled?
=end
Hello, Ruby!
#!/usr/bin/ruby -w
# First Perl, now Ruby? Shiny.
puts "Hello, world!"
=begin
Really though, who knew there were two
programming languages named after
gemstones, even if one is kind of
misspelled?
=end
Hello, Python!
# A lot of programming languages use
# hashes for their comment character.
print("Hello, World!")
""" But they tend to diverge when it comes
to multiline comments. """
@SarahKiniry
#STC16
Hello, Python!
# A lot of programming languages use
# hashes for their comment character.
print("Hello, World!")
""" But they tend to diverge when it comes
to multiline comments. """
Hello, Python!
# A lot of programming languages use
# hashes for their comment character.
print("Hello, World!")
""" But they tend to diverge when it comes
to multiline comments. """
The Harder Stuff
More JavaScript
<h1>JavaScript Can Change Images</h1>
<img id="myImage" onclick="changeImage()"
src="pic_bulboff.gif" width="100" height="180">
<script>
function changeImage() {
var image = document.getElementById('myImage');
if (image.src.match("bulbon")) {
image.src = "pic_bulboff.gif";
} else {
image.src = "pic_bulbon.gif";
}
}
</script>
JavaScript code example from w3schools.com
@SarahKiniry
#STC16
More JavaScript
<h1>JavaScript Can Change Images</h1>
<img id="myImage" onclick="changeImage()"
src="pic_bulboff.gif" width="100" height="180">
<script>
function changeImage() {
var image = document.getElementById('myImage');
if (image.src.match("bulbon")) {
image.src = "pic_bulboff.gif";
} else {
image.src = "pic_bulbon.gif";
}
}
</script>
JavaScript code example from w3schools.com
@SarahKiniry
#STC16
More JavaScript
<h1>JavaScript Can Change Images</h1>
<img id="myImage" onclick="changeImage()"
src="pic_bulboff.gif" width="100" height="180">
<script>
function changeImage() {
var image = document.getElementById('myImage');
if (image.src.match("bulbon")) {
image.src = "pic_bulboff.gif";
} else {
image.src = "pic_bulbon.gif";
}
}
</script>
JavaScript code example from w3schools.com
@SarahKiniry
#STC16
More JavaScript
<h1>JavaScript Can Change Images</h1>
<img id="myImage" onclick="changeImage()"
src="pic_bulboff.gif" width="100" height="180">
<script>
function changeImage() {
var image = document.getElementById('myImage');
if (image.src.match("bulbon")) {
image.src = "pic_bulboff.gif";
} else {
image.src = "pic_bulbon.gif";
}
}
</script>
JavaScript code example from w3schools.com
@SarahKiniry
#STC16
More JavaScript
<h1>JavaScript Can Change Images</h1>
<img id="myImage" onclick="changeImage()"
src="pic_bulboff.gif" width="100" height="180">
<script>
function changeImage() {
var image = document.getElementById('myImage');
if (image.src.match("bulbon")) {
image.src = "pic_bulboff.gif";
} else {
image.src = "pic_bulbon.gif";
}
}
</script>
JavaScript code example from w3schools.com
@SarahKiniry
#STC16
More JavaScript
<h1>JavaScript Can Change Images</h1>
<img id="myImage" onclick="changeImage()"
src="pic_bulboff.gif" width="100" height="180">
<script>
function changeImage() {
var image = document.getElementById('myImage');
if (image.src.match("bulbon")) {
image.src = "pic_bulboff.gif";
} else {
image.src = "pic_bulbon.gif";
}
}
</script>
JavaScript code example from w3schools.com
@SarahKiniry
#STC16
More JavaScript
<h1>JavaScript Can Change Images</h1>
<img id="myImage" onclick="changeImage()"
src="pic_bulboff.gif" width="100" height="180">
<script>
function changeImage() {
var image = document.getElementById('myImage');
if (image.src.match("bulbon")) {
image.src = "pic_bulboff.gif";
} else {
image.src = "pic_bulbon.gif";
}
}
</script>
JavaScript code example from w3schools.com
@SarahKiniry
#STC16
What’s The Story?
1
What does the application do?
2
What text will the user see?
3
Which files or settings?
@SarahKiniry
#STC16
What’s The Story?
1
What does the application do?
This application switches between two images.
2
What text will the user see?
3
Which files or settings?
@SarahKiniry
#STC16
What’s The Story?
1
What does the application do?
This application switches between two images.
2
What text will the user see?
“Javascript Can Change Images”
3
Which files or settings?
@SarahKiniry
#STC16
What’s The Story?
1
What does the application do?
This application switches between two images.
2
What text will the user see?
“Javascript Can Change Images”
3
Which files or settings?
pic_bulbon.gif and pic_bulboff.gif, width=100,
height=180
@SarahKiniry
#STC16
More JavaScript
JavaScript code example from w3schools.com
@SarahKiniry
#STC16
More JavaScript
JavaScript code example from w3schools.com
@SarahKiniry
#STC16
@SarahKiniry
#STC16
Questions?