##GENERAL
- All Software Carpentry lessons
- Data Carpentry is a new sister organization focused on data management. Its lessons are growing.
- Mozilla Science
- Stack Overflow for all technical questions
##GENERAL
#GIT
###Git in groups
A few of the pre-class surveys mentioned wanting to use git within your teams. I'm slow to recommend expensive tech books, but I believe Git for Teams: A User-Centered Approach to Creating Efficient Workflows in Git by Emma Jane Hogbin Westby is worth a look. Westby describes common ways teams use git, as well as choices to make for project structure.
Chapter 5, "Teams of One", and Chapter 6, "Rollbacks, Reverts, Resets, and Rebasing", cover the hands-on mechanics of committing, pushing, and branching in greater depth.
Chapter 7 onwards focuses on how to collaborate. It walks through the decisions around project setup, how to add other developers, and some example workflows. Part 3 shows an example project in GitHub, BitBucket, and GitLab, including how to set up your own GitLab server if you need to host it internally.
There's additional free material at the Git For Teams site that may be of use for your project.
#Python Resources
##People
PyVideo.Org has links to Python conference videos going back to 2009.
The SciPy and PyData conferences are most focused on scientific topics. PyCons include some scientific computing topics, along with broader Python talks and full length tutorials. You may need to visit the conference's talk page or google for the speaker's git repository to get handouts and sample data files.
These longer tutorials may be of particular interest:
Hands-On Intro to Python for Beginning Programmers - Jessica McKellarvideo
[IPython & Jupyter in depth: high productivity interactive and parallel python - Thomas Kluyver, Kyle Kelley] (https://us.pycon.org/2015/schedule/presentation/316/)[video](http://pyvideo.org/video/3385/ipython-jupyter-in-depth-high-productivity-int
There was a wide range of experience levels at the workshop. Here's a roadmap of skill progression.
The Python Module of the Week is a more descriptive tour of the standard libraries with examples. It's written for Python2, but most of it applies to Python 3.
#How to get back an old version of a file
The SWC git lesson includes an overview of working with versions
Here's a longer walkthrough for specific situations. Read the git status
messages; in all these examples it will suggest a solution.
Let's say I'm working on my_script.py . I've committed a few versions of it. Since my last commit, I've made some changes but want to get rid of them.
More info: git status
shows the current status:
dyn-199-92-166-142:whoi-swc-workshop me$ git status
On branch master
Your branch is up-to-date with 'origin/master'
Changes not staged for commit:
(use "git add <file>..." to update what will be committed)
(use "git checkout -- <file>..." to discard changes in working directory)
modified: my_script.py
Solution: use git checkout my_script.py
or git checkout -- my_script.py
to undo your changes.
git status
shows this:
dyn-199-92-166-142:whoi-swc-workshop me$ git status
On branch master
Your branch is up-to-date with 'origin/master'
Changes to be committed:
(use "git reset HEAD <file>..." to unstage)
modified: my_script.py
Solution: use git reset HEAD my_script.py
to reset it to the last committed version.
Use git reset --hard HEAD