Skip to content
This repository was archived by the owner on Jan 3, 2018. It is now read-only.

Python motivation #623

Closed
wants to merge 12 commits into from
Binary file added img/slides/ipython-notebook.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
111 changes: 111 additions & 0 deletions slides/python-pitch.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,111 @@
---
layout: slides
title: Why should I use Python?
root: ..
---
<section>
<h1>{{page.title}}</h1>
<aside class="notes">
Hello, and welcome to the Python section of the Software Carpentry bootcamp.
</aside>
</section>

<section>
<h2>Python is...</h2>

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hi! So, having a list like this is great. But, I wonder if a different order or a different breakdown might allow it to read more like a sentence, and therefore make more sense. Something like:

  • a popular,
  • powerful,
  • easy to learn,
  • programming language,
  • that is human readable,
  • whitespace delimited,
  • free,
  • and open source.

It has a number of excellent libraries for

  • plotting,
  • mathematics,
  • and domain sciences.

Something like that maybe?

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Maybe:

It has a number of excellent libraries for

  • mathematics,
  • plotting,
  • and domain sciences.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Good ideas! I incorporated them.

<p class="fragment">
a popular and easy to learn scripting language
</p>
<p class="fragment">
a tool to generate figures
</p>
<p class="fragment">
a readable, whitespace delimited, programming language
</p>
<p class="fragment">
<strong>Free!</strong>
</p>
<aside class="notes">
So for those of you who have never encountered Python before, what is it? Python is a programming language which is used to:

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I know what you're saying here, and it's excellent that you want to be sure that totally new folks feel comfortable.

However, I am always a little bothered by sentences that draw people out for their lack of knowledge ("For those of you who don't know JARGON... " has the ring of "How many of you have never heard of JARGON?")

I wonder if we could achieve the same thing without the "for those of you who have never encountered Python before".

Maybe, simply, "So what is Python anyway? Python is a programming language which is used to:"

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Good point!

- develop analysis pipelines
- process and analyse data
- visualise data, and generate publication quality graphics

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

visualize

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

also, publication-quality needs the hyphen.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I got britishy in my spellings!

- develop new statistical methods
It is also a free open-source project, making it completely free to download and extend.
</aside>
</section>

<section>
<h2>Tasks that Python could help you do:</h2>
<p class="fragment">
Transform your data files from one arbitrary format to another.
</p>
<p class="fragment">
Analyze image files.
</p>
<p class="fragment">
Loop through all the files in a driectory, perform an analysis on them, and plot the results.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

directory

</p>
<p class="fragment">
<strong>Almost anything!</strong>
</p>
<aside class="notes">
</aside>
</section>

<section>
<h1>Packages</h1>
<p>Contain extensions to the language for specific tasks</p>
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The Python Package Index has 46537 packages that includes some for

  • analyzing biological sequence data,
  • numerical analyses,
  • plotting and much more

<ul class="fragment">
<li>46537 in the Python Package Index</li>
<li>Includes packages for analyzing biological sequence data, numerical analyses, plotting and much more </li>
</ul>
</p>
<aside class="notes">
</aside>
</section>

<section>
<h2>Why Python and not ...</h2>
<p class="fragment">
Perl? <br>
It is easier to read and easier to learn. Also, popularity matters! If Python is what your collaborators are using it, may be a good idea for you to learn it too.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Misplaced "it".

If Python is what your collaborators are using, it may be a good idea for you to learn it too.

</p>
<p class="fragment">
Javascript or Ruby? <br>
There are good numerical libraries and people are actively developing other packages and tools.
</p>
<p class="fragment">
MATLAB or SAS? <br>
It's free.
</p>
<p class="fragment">
R? <br>
Depends on the task at hand. R has some advantages in statistics and visualization, Python is better at manipulating text and handling big data.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm not sure about this statement.
First, I would say that Python has vastly more options for visualization than R. It's certainly true that you don't have to work as hard to get a plot out of R, but you can't customize ggplot like you can customize matplotlib, yt, etc.

Also, I didn't realize R wasn't good at big data. Is that really true?

Anyway, Python's main advantage over R is that it does more than one thing. Namely, python can effortlessly glue tons of specialized libraries for math, science, graphics, etc. It's a little harder to link to those things with R... largely because people don't develop big libraries for R... just python.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

  • Javascript or Ruby?
  • There are good numerical libraries and people are actively developing other packages and tools.

And folks are certainly writing packages and tools for JavaScript and
Ruby. I think the difference here is just the depth of numerical
libraries, which is likely due to the difference in the ease of
writing C extensions ;).

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@katyhuff I often run into memory issues in R with the same data that I can handle fine in Python- but that may be ebacuse I'm a better python programmer than an R one! I'll fact-check that and add in your comments.

</p>
<aside class="notes">
</aside>
</section>

<section>
<h1>IPython</h1>
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

"IPython" -> "IPython Notebook"

<p> An interactive shell for using python</p>
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

"python" -> "Python"

<ul class="fragment">
<li>Browser based notebooks to organize and display code </li>
<li>Simplifies data visualization</li>
<li>Makes it easy to share whole analysis pipelines</li>
</ul>
<img src="ipython-notebook.png">
</p>
<aside class="notes">
</aside>
</section>

<section>
<h1>Learn More</h1>
<a href="https://www.python.org/" alt="python.org">https://www.python.org/</a>
<br />
<a href="http://ipython.org/" alt="Link to IPython" class="fragment">http://ipython.org/</a>
<aside class="notes">
</aside>
</section>