Programátor ještě úplně nejsem, ale z dosavadních zkušeností na školních projektech můžu popsat aspoň něco (věřím, že nás na FITu vedou správným směrem). V první řadě je potřeba provést dekompozici problému, tj. rozdělit problém na podproblémy a zhruba si ujasnit, jak se budou řešit. Dalším krokem je algoritmizace - promyslet si, jaký algoritmus se použije na konkrétní podproblém. Pokud pracuje na projektu víc lidí, tak se musí domluvit, co kdo bude dělat - rozdělit projekt na několik modulů, ujasnit si rozhraní, knihovny apod. Zdá se to možná jednoduché, ale třeba práce v pěti lidech vyžaduje určitou koordinaci - git repozitář, časté schůzky apod. Potom se může začít tvořit. Je to různé, ale mě třeba vyhovuje začít od úplného základu (k tomu dojdu dekompozicí). Jak je hotová první funkční část, tak ji vyzkoušet a pokračovat na další úroveň. A taky je potřeba pořádně otestovat výsledný program - napsat si vlastní testy, nebo použít nějaké jiné. Program musí správně reagovat na nejrůznější vstupy, situace apod. Neměl by spadnout, ani se zacyklit, když mu dá uživatel nesmyslné vstupy.