== Tools

=== Tools >>>> Process

=== !

[%step]
* Repetitive work is boring...
* ...and prone to errors
* Why should I work, when I can make my computer do it for me?

=== !

image::nap.jpg[]

=== Version control systems

[%step]
* Version control is a system that records changes to a file or set of files over time so that you can recall specific versions later.

=== Why?

[%step]
* Revert files back to a previous state
* "Freeze" important versions of a document
* Compare changes over time
* Track progress of a project
* See who modified something, and when

=== Modern version control systems

[%step]
* Remote backup of files
* Powerful tool for collaboration

=== GIT

[%step]
* Currently the most used
* Free and open source
* Distributed
* Powerful and flexible
* Learning curve can be steep

=== Installation
 
https://git-scm.com/download

Package managers are heavily recommended!
anaconda, chocolatey, homebrew...

=== but, what is it?

image::architecture.png[]

=== How to use GIT

[%step]
* register at the remote git server
** https://git.webhosting.rug.nl/
* create repository
* add participants __ssh public keys__
* clone the repository in your machine

=== workflow

image::git_workflow.jpg[]

=== !

IMPORTANT: You **WILL** regret not using version control

// --------------------------------------------------------------------------------------------------------------------

=== Other tools

[%step]
* Integrated Development Environments
* Debuggers
* Libraries
* Reference sites: stack overflow, rosettacode, kaggle...

=== !

image::github-stack-overflow-y-code-my-code-44625886.png[]


=== Scripting languages

=== Do it once, do it right

[.fragment]
(and never do it again)

[.fragment]
image:geeks-and-repetitive-tasks.png[]

=== !

https://automatetheboringstuff.com/

image::Automate_coversmall_0.png[]