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

**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/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/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!
