Většina programátorů desktop aplikací píše kódy pro obchodní společnosti, takže vám může značně ušetřit čas, když si zjistítě něco o společnostech a jejich organizačních a finančních strkturách. Může být vhodný úvodní kurz na design digitálních obvodů a v počítačové architektuře. Někteří lidé si však myslí, že je to pro začátečníky příliš náročné, takže není na škodu si přečíst dva nebo tři návody (jako je tento a tento). Posléze, jak se naučíte první programovací jazyk, se můžete k tomuto kroku vrátít. Nestyďte se jej naučit jen proto, že už nejste děti. Například vyzkoušejte programovací jazyk Scratch. Tyto programovací jazyky vám mohou výrazně ulehčit učení se vašeho prvního programovacího jazyka. Nejedná se však o povinný krok. Také jej můžete podniknout již před předchozím krokem.  Procedurální programování budete potřebovat při práci s jakýmkoliv programovacím jazykem. Navíc, procedurální programování je podle většiny programátorů nejjednodušší výchozí bod, z kterého můžete získat dobrou představu o programování jako takovém.  Můžete využít běžná malá cvičení v knihách o programovacích jazycích. Vyberte si nástroj pro psaní programů ve vašem vybraném programovacím jazyce. Před posunem k následujícímu kroku se ujistěte, že dobře chápete následující koncepty a dokážete je lehce aplikovat:  Inputting a outputting (vkládání vstupů a výstupů) informací pro uživatele v programu. Logický tok a tok řízení programů v procedurálních jazycích. Oznámení, přiřazování a porovnávání proměnných. Rozvětvující se programovací konstrukty, jako jsou příkazy "if-then(-else)" a příkazy "select/switch..case”. Iterace (opakované volání funkce) jako jsou “while..do”, “do..while/until” nebo “for..next" Syntaxe programovacího jazyka pro tvorbu a práci s procedurami a funkcemi. Typy dat a jak je manipulovat. Uživatelské datové typy (informace (records), struktury (structs), jednotky (units)) a jejich použití. Pokud váš jazyk podporuje přetížení funkce, snažte se tomu porozumět. Metody přístupu do paměti (memory access), které vámi vybraný jazyk používá (ukazatele, funkce peek, atd.) Pokud váš jazyk podporuje přetížení operátoru, snažte se tomu porozumět. Pokud váš jazyk podporuje delegáty a funkční ukazatele, snažte se jim porozumět. Objektově orientovaná paradigmata. Je doporučováno naučit se jeden programovací jazyk pro každé paradigma. Většina pokročilých programátorů to tak dělá. Obvykle je však třeba začít s jedním jazykem a snažit se procvičovat své znalosti a začít s dalším jazykem až získáte opravdovou zkušenost v programování. Vyzkoušejte jednu z následujících jazykových oblastí:  Logická programovací paradigmata. Funkcionální programovací paradigmata. Zhodnoťte jejich silné a slabé stránky. Obvykle to můžete udělat takto:  Vezměte jednoduché ukázky vaší předchozí práce v prvním programovacím jazyku a přepište je za použití druhého programovacího jazyka. Vytvořte nový projekt a zkuste do něj implementovat oba jazyky. Někdy se však může stát, že díky vaší volbě projektu a jazyků nebudete moci použít jeden z vybraných jazyků. Napište si tahák nebo shrnující tabulku, v které porovnáte podobné a odlišné prvky obou jazyků. Snažte se najít způsoby, jak napodobit prvky či vlastnosti, které jsou jedinečné pro jeden z jazyků, v druhém jazyku. Skoro všechny programovací jazyky mají verze/knihovny, které podporují vizuální programování a také podporují konzole nebo jiné podobné programování. Toho může být dosáhnuto těmito způsoby:   Naučte se základy událostmi řízeného programování. Většina vizuálního programování závisí v určité rovině na událostech a jejich řízení (pomocí vámi vybraného programovacího jazyka). Pořádně si vyzkoušejte desktopový software a snažte se mu porozumět. Většina společností zabývajících se vývojem softwaru nabízí beta verze svých produktů, které si tak můžete vyzkoušet. Mějte přehled o novinkách v uživatelském rozhraní. Čtetě články nebo návody o grafickém uživatelském rozhraní. Snažte se použít vaše znalosti v programování na problémy, se kterými se potýkáte ve vašem všedním životě. Například, napište program, který hromadně přejmenovává soubory, vizuálně porovnává textové soubory, hromadně kopíruje jména souborů do paměťového/textového soubor a podobně. Pro začátek pracujte na jednoduchých projektech. Dokončete jej a aplikujte v něm všechny techniky vizuálního programování, které jste se zatím naučili. Také se pomocí stránek na internetu naučte nejrůznější tipy a triky určené pro váš framework.  Bude se vám to hodit, pokud chcete psát přitažlivé prvky pro uživatelské rozhraní. Programování her je většinou považováno za programování desktop aplikací. Pokud se chcete stát herní programátor, tak poté, co dokončíte tyto kroky, se budete muset naučit více o programování her. Také by váš druhý programací jazyk, který jste se měli již naučit, měl být logický/funkcionální programovací jazyk (nejlépe Prolog nebo Lisp).
Zjistěte si, do čeho jdete. Naučte se o různých počítačových hardwarových architekturách. Naučte se nějaký jednoduchý (dětský) programovací jazyk. Seznamte se s procedurálním programováním, objektově orientovaným programováním a funkcionálním programováním a programovacími paradigmaty. Absolvujte úvodní kurz v procedurálních programovacích jazycích. Naučte se alespoň jednu pokročilou techniku modelování, jako je UML nebo ORM. Začněte psát nějaké malé konzole nebo konzolové aplikace. Udělejte si pokročilejší kurz ve vybraném programovacím jazyku. Použijte pokročilé techniky, které jste se naučili. Udělejte si úvodní kurz alespoň v jednom dalším programovacím jazyku v jiném programovacím paradigmatu. Porovnejte ty dva programovací jazyky, které jste se zatím naučili. Naučte se koncepty vizuálního programování za použití jazyka, který jste se naučili. Začněte aplikovat své znalosti na vlastních malých softwarových projektech. Vytvořte svůj virtuální “maturitní projekt”. Rozšiřte své znalosti vizuálních frameworků/knihoven/balíčků, které jste se naučili, absolvováním pokročilých kurzů a věnováním zvláštní pozornosti detailům. Vyhledejte další balíčky/knihovny vizuálních elementů pro váš programovací jazyk a naučte se je. Udělejte si kurz v počítačové grafice (ne grafickém designu). Staňte se herním programátorem (nepovinný).
Zjistěte si, do čeho jdete. Naučte se o různých počítačových hardwarových architekturách. Naučte se nějaký jednoduchý (dětský) programovací jazyk. Seznamte se s procedurálním programováním, objektově orientovaným programováním a funkcionálním programováním a programovacími paradigmaty. Absolvujte úvodní kurz v procedurálních programovacích jazycích. Naučte se alespoň jednu pokročilou techniku modelování, jako je UML nebo ORM. Začněte psát nějaké malé konzole nebo konzolové aplikace. Udělejte si pokročilejší kurz ve vybraném programovacím jazyku. Použijte pokročilé techniky, které jste se naučili. Udělejte si úvodní kurz alespoň v jednom dalším programovacím jazyku v jiném programovacím paradigmatu. Porovnejte ty dva programovací jazyky, které jste se zatím naučili. Naučte se koncepty vizuálního programování za použití jazyka, který jste se naučili. Začněte aplikovat své znalosti na vlastních malých softwarových projektech. Vytvořte svůj virtuální “maturitní projekt”. Rozšiřte své znalosti vizuálních frameworků/knihoven/balíčků, které jste se naučili, absolvováním pokročilých kurzů a věnováním zvláštní pozornosti detailům. Vyhledejte další balíčky/knihovny vizuálních elementů pro váš programovací jazyk a naučte se je. Udělejte si kurz v počítačové grafice (ne grafickém designu). Staňte se herním programátorem (nepovinný).