---
author: ~cmccabe
published: true
title: teaching and learning on tilde.team
description: 
category: 
    - main
---

# teaching and learning on tilde.team

**tl;dr** bring project ideas. bring your skills. learn by doing. help others who are trying to learn. share what you're working on.


## 1. start learning, start teaching!

an important goal of tilde.team is to help you learn linux, programming, and general computing skills through the command line interface.  we think it is important that this happens in a fun social environment.  for this reason we encourage users to meet each other, to collaborate, to ask questions when you're stuck on something, and to offer help to others who are learning.

stuck for ideas? or looking for a bigger challenge? tilde.team also maintains a [list of internship opportunities and code challenge websites](https://tilde.team/wiki/?page=learning-opportunities).  this list is a new feature of the site, so please contribute by letting us know (by email, IRC or pull request) of any other opportunities you know of.

## 2. learning resources

tilde.team's IRC server is the social hub around which a lot of learning occurs. [log on](https://tilde.team/wiki/?page=irc) and get to know some people.  

we have numerous compilers and interpreters installed in the shell, including g++, python, ruby, perl and many others.  if you need something that is not currently installed, just ask ~ben or any admin on IRC.

in addition to the specific programming utilities, remember that *NIX itself is a platform designed for communal programming. if you are working with others, you have several tools at your disposal. you can, of course, share files with each other. and you can communicate through private messages on IRC, through email, or using the shell-based 'talk' or 'write' utilities.

## 3. resource limits and performance profiling

good code is efficient code, and part of learning to be a good programmer is learning how to develop elegant solutions that use the minimum system resources necessary.  this is hard! but it is even more important on a multi-user system like tilde.team.

some resource limits are established through /etc/security/limits.conf  --you can read this file yourself to see what they are.

beyond those limits, we simply ask that you monitor your code and be considerate of others on the system.

as we develop more learning resources on the tilde.team wiki, we will provide some guidance about how to profile your code.  of course, a quick web search for "code profiling [your language]" will give you a lot of help as well.

## 4. learning how to build a learning environment

the number one thing we know about learning is that being able to socialize with other learners and teachers is useful.  but beyond this, we are working all the time to build and improve the other supporting resources on tilde.team.

you can help!  if you have suggestions about other resources or ways to help people practice programming or other linux skills, pop in to IRC and talk about it.  many of the ideas that have already helped make this place better came from people like you.  everybody is learning here; including the admins!