Programming Guides#
Languages#
Bash and Python are among the most commonly used programming languages in data science. To run your pipelines and analyze data effectively, you'll likely need to learn or enhance your skills in these languages. Markdown is another language commonly used in science to present results and create documentation. The links provided here offer comprehensive guides tailored for both beginners learning the basics and advanced users seeking specific topics and practical how-tos.
Bash guide: This guide covers a broad range of topics, from fundamental concepts like file manipulation, arithmetic operations, iteration, condition testing, and working with arrays to more advanced topics such as using databases, managing permissions, and working with remote or cluster resources.
Python guide: This guide provides everything you need to know to become a Python programmer capable of analyzing, manipulating, and visualizing large datasets. Key topics widely used in data science are covered, including modules such as NumPy, pandas, SciPy, Django, and the Matplotlib library. You'll also find information on machine learning, working with databases, and much more.
Markdown guide: This is a comprehensive guide that covers everything from how does it work and its most common applications to explanations of basic and extended syntax and some useful hacks.
HTML guide: In this tutorial you will find anything you need about html. It is targeted to programmers with any level of experience as it covers a very wide range of topics.
Tools#
IDEs#
An IDE, or Integrated Development Environment, is an application for software development. It provides an interface with a code editor, a compiler, debugger and other tools that help streamline the coding process.
Jupyter Guide: In this guide we explain you how to start using Jupyter in OnDemand, how to use languages other than python within your notebook, visualize documents, images and videos, export variables, and a couple other tips and tricks that will be very useful for beginners and more advanced users.
Visual Studio Code: This tutorial provides all the necessary information to get you started with VS Code. You'll learn how to use and customize the user interface, write code with some editing features they provide, running and debugging code, and installing language extensions for different programming languages. To open VSCode in OnDemand, go to Interactive Apps, then click in Code Server and launch the application. Code Server is the web-based version of VS Code.
RStudio: This is a very good starting point for someone new to R. You will find information from how to install and use RStudio, to installing and using packages, writing and running scripts, accessing build-in datasets, using R Markdown to do reports and much more. RStudio Server, which is the web-based version of RStudio, can also be found in the Interactive Apps in OnDemand.
Version Control Tools#
The most commonly used version control tools by software developers are Git and GitHub. They can be used in research to organize and share scripts, recover from accidental loss of data, create excellent documentation on your projects, showcase your work, and keep track of changes in your code. It is important to note that Git and GitHub are different things even though they work hand by hand. On one hand, Git is a version control tool that can be used outside Github and allows you to track changes in files. On the other hand, GitHub is a web-based platform that hosts repositories and uses Git.
Our Beginners Git and GitHub Guide: This guide will take you through the steps on how to configure git, create a new repository and host it on GitHub. It is a good place to start if you have no experience with git.
Our Advanced Git and GitHub Guide: This guide covers how to create a GitHub page, use branches to edit your documentation and collaborate with others, and how to resolve merge conflicts and other issues.
Time Management Tools#
When doing research you often have multiple projects going on, you share data with collaborators, and you have different deadlines for ech of these projects. Keeping track of everything can become difficult and stressful. It is specially hard to prioritize tasks and allocate time effectively in order to meet those deadlines. Time management tools will help you organize your day and your work, making you more productive and reducing stress. There are many available tools that provide the same or similar services for this purpose. However, it is important that you choose one that you feel comfortable with and that fits your way of thinking and organizing your day. Here we mention a few common ones that we suggest you try out.
Trello: This tool allows you to organize and track projects or tasks both in your personal and professional life. It's organized in boards, lists and cards. In each card you can add to-do lists, tables, documents, images and much more. You can collaborate with other people, integrate with other tools and automate tasks and workflows. It is available to use in the web as well as through mobile apps.
ClickUp: This is a highly customizable, all-in-one platform that includes to-do lists, documents, wikis, spreadsheets, chat, whiteboards, calendar, forms, etc. Moreover, ClickUp integrates with GitHub and offers relational database functionalities, making it a great tool for software development. It has a higher learning curve than others, but can replace most time management tools. It can also integrate with other tools and is available in the web and through a mobile app. You can make your ClickUp wikis public to others by sharing a public link or inviting specific people with view-only permissions.
Nuclino: This tool has the user-friendly characteristics of Trello, but is also a multi-purpose tool like ClickUp. It aims to merge the best things of those two platforms. Here you can visualize organize your work in nested lists, boards, tables, or graphs in an intuitive and easy way. You can integrate Nuclino with Google drive, Microsoft and other tools. It is available in the web and through mobile apps and allows you to share your wikis or workspaces with others.
Obsidian: This is a platform for taking notes and creating your personal wikis using Markdown syntax. With the Obsidian Canvas, you can visualize all your notes in one place. It also allows you to connect different pages and visualize these relationships through graphs. With the Excalidraw plugin you can also draw and take manual notes using your apple pen if you have an ipad.