Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save wilmeragsgh/fb37bd050b77d8a4f92fc525ecd6889d to your computer and use it in GitHub Desktop.
Save wilmeragsgh/fb37bd050b77d8a4f92fc525ecd6889d to your computer and use it in GitHub Desktop.
Software for data scientists: Adapted list of general-purpose software i use for data science activities.

General Purpose software for data scientists

Adapted version from Software for scientists

Some things takes much less time and stress once you know the right tool. Below, there is my adaptation to a list of software for scientists for data scientists and when to use them.

Text editors

Although, having a single editor for every project could be perfectly fine, there might be some situations where you can explode language specific features from the IDE, in that sense:

PyCharm:

  • When? The project your working lives on python
  • Why? It will include all configurations you require for developing your python project, even using the community version.

RStudio:

  • When? The project your working lives on R

Visual Studio Code:

  • When? You are just testing ideas that may involve several languages.
  • Why? It will be easy to syntax highlight every language and it's easy to interact with on desktop, also a lot of plugin could make a great experience to code (even more).

Vim:

  • When? You are already interacting with the server where the code lives.
  • Why? You'll need to learn some commands, practices and configurations, yes, but you'll be suited for interacting with every text file afterwards in a way that you are going to -almost- forget you are not on an IDE.

Note-taking

Boostnote:

  • When? You want to keep snippets of code and theoretical notes for work at hand.

TiddlyWiki:

  • When? You want to keep a personal private server with the situation above and you might encounter yourself tweaking javascript code for improving your experience right on the tool

Notion:

  • When? (Always, it's amazing!)All-in-one workspace in the cloud for notes with powerful and flexible file structures

As a general thing, Markdown format may be convenient. It can be read on any system, and it is easy to cenvert it to HTML, PDF of DOC using Pandoc.

Collaborative writing

Some discusion here

Non-LaTeX

GoogleDrive:

  • Why? Usually much nicer than sending back and forth docs.

LaTeX ?

Overleaf:

  • Why? "easy to use, online, collaborative LaTeX editor", Agreed.

MathB:

  • Why? For sharing short math notes.

Version control

Git

  • Why? Standard de facto for Version Control and good starting point.

GitHub

  • Why? Standard de facto for public repositories.

gist

  • Why? for posting short codes or notes on anything

Website tools

For personal homepages, lab notebooks and conference websites.

Jekyll

  • Why?
    • For writing blogs in Markdown and easily putting them on GitHub

GitHub Pages

  • Why? Static websites with Git

Reference managers

Some discussions

Mendeley

  • Why?
    • With PDF, notes, arXiv field, BibTeX support, metadata extraction
    • Free with large storage limit; owned by Elsevier

Zotero

  • Why?
    • Strong browser integration - click a button in the URL bar to save a reference
    • Syncs references between computers
    • Open source

Sharing and repositories

Figshare

  • Why?
    • For sharing negative data, plots, posters, etc; gives you a DOI.

News aggregator

Pocket

  • Why? Easy readable on mobile devices

Feedly

  • Why? Aggregating different news sources and RSS

Hacker News

  • Why? Interesting comments from experts about recent news

Reddit

  • Why? Interesting comments from experts about recent news

arxiv

  • Why? Recent news articles about the field

Question and Answer sites

Data Science Stack Exchange

  • Why? AI Problem specific QnA

Stackoverflow

  • Why? Code specific QnA

General-purpose programming

Python

  • Why? Most extensive community backed packages for the field.

JavaScript

  • When?:

R

  • When?:
    • Great for quick data preparation and visualization of experimentations

Plots and diagrams

Matplotlib

  • For Python

Seaborn

  • For Python

ggplot

  • For R

D3.js

  • For Javascript

Gephi

  • Standalone app

Drawing diagrams

TikZ library

  • For LaTex

Inkscape

  • Standalone app

Presentations

LaTeX/Beamer

  • For Latex

knitr combine R and markdown and export your report to pdf/doc/odt

  • For R

Slidify

  • For R

Sharing slides

speakerdeck

  • When? You want people to view online and download pdfs (no registration or adverts, as of now)

Figshare

  • When? Sharing artifacts of experimentation or papers.

Posters

Inkscape

  • General purpose visual editions

LaTeX Templates - Conference Posters

Math calculations

Mathematica

  • When?
    • Symbolic calculations specific

Wolfram Alpha

  • When?
    • for online simple plots, units changing, integrals etc. a "demo version" of Mathematica

MATLAB

  • When?
    • for numerical calculations, supports scripting

Octave

  • When?
    • open source, GNU licence
    • almost the same as MATLAB (sometimes incompatible), without graphical interface - only text
    • may use Gnuplot for plots

Sage

  • When?
    • open source, licensed under the GPL
    • mathematics software system (alternative to Magma, Maple, Mathematica and Matlab.) . It combines the power of many existing open-source packages into a common Python-based interface.

R

  • When?
    • for any kind of statistics

Productivity misc

Tick Tick

  • Why? Todo list with easy synchronization

Google Keep

  • Why? Simple notes across mobile devices

Feel invited to collaborate.


By


YOU ARE INVITED TO EDIT! :)

DO:

  • Add programs you use and recommend
  • Fix mistakes and omissions by others. :)

DON'T:

  • Throw a pile of random programs (it is not a complete list of software for X - it is a recommendation list)

Additional pluses for:

  • [name](link)
  • comments on status (e.g. open source)
  • one sentence of description what's that and what's that good for
  • adding categories, their short intros or general links
  • marking explitly if it only works under some OS
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment