Най-полезната първа стъпка е да се разбере какво върши всеки в един софтуерен екип. Програмистът превръща изискванията в работещ код. Тестващият търси къде кодът се държи различно от очакваното и описва проблема така, че да бъде поправен. Системният администратор и инженерът по надеждност поддържат средата, в която всичко работи. Аналитикът изяснява какво точно трябва да прави продуктът. Продуктовият мениджър решава кое е важно и в какъв ред. Дизайнерът се грижи човекът да може да го използва.
Има и роли, които не са технически в тесен смисъл, но са в сектора: поддръжка на клиенти, техническа документация, обучения, продажби на софтуер, управление на проекти. Те често са по-достъпни за хора без техническо образование и могат да станат вход към по-технически позиции. Важно е обаче да се знае, че те не са „по-лесни“ — изискват умение да се говори с хора, което не всеки има.
За програмирането въпросът не е кой език да се учи, а какво да се построи. Езикът е инструмент и се сменя. Полезно е да се избере един език, който се използва в реални проекти, и да се правят малки завършени неща: калкулатор, списък със задачи, проста игра, скрипт, който подрежда файлове. Завършеното е важно, защото учи на това как се стига до край, а не само как се започва.