Początki z programowanie zawsze bywają trudne. Pisanie „dziwnych” komend po to, aby komputer robił to, co mu każemy wydaje się na początku być rzeczą dosyć abstrakcyjną i sprawiać wrażenie dosyć chaotycznej.
Osoba, dla której programowanie to czarna magia, może myśleć sobie, że to wszystko, co wpisujemy w naszym edytorze programistycznym nie ma prawa działać. Języki, których używa się w programowaniu nie przypominają w ogóle języka, którym posługujemy się na co dzień. W porównaniu z tym, co było kiedyś, gdy używało się kodu maszynowego i tak jest trochę lepiej, jednak nadal zbliżenie do języka naturalnego nie jest tak wysokie, jak chcieliby programiści z całego świata. Problemem jest tutaj to, że języki programowania doszły do pewnej granicy, po której przekroczeniu może okazać się, że nie mogą one spełniać już swojej roli, to znaczy nie nadają się do pisania zaawansowanych aplikacji. Mimo tego, że programowanie przy użyciu języków takich, jak C# lub Ruby jest dużo prostsze, ponieważ nie musimy martwić się na przykład o zarządzanie pamięcią, to jednak nadal kod oglądany przez osobę z zewnątrz sprawia wrażenie czegoś abstrakcyjnego.