Trochę mnie już męczy - tym bardziej, że często siedzę w dziale np. Edukacja czy wątkach bardziej entry level - że ludzie, którzy m.in.
- uczą się podstaw programowania
- mają jakieś podstawy i chcą zrobić krok dalej np. zacząć budować aplikacje webowe
- mają pomysł na aplikację ale nie wiedzą, od której strony się za to zabrać
- nauczyli się jakichś narzędzi, a teraz nie wiedzą, do czego je wykorzystać
Powtarzają jak mantrę jedno i to samo pytanie, zadawane pod różnymi postaciami, w mniej lub bardziej zawoalowany sposób, jednak zawsze sprowadzające się do tego samego dylematu:
Czy wolno mi wykorzystać framework X do zrobienia Y? Czy mogę napisać aplikację, która robi A w języku B?
Więc chyba najwyższa pora, by raz, wyraźnie i definitywnie odpowiedzieć na to pytanie nurtujące pokolenia:
TL;DR tak, wolno.
Nikt Ci nie może zabronić eksperymentowania i sprawdzania co działa, a co nie. Bycie programistą nie polega na tym, że robisz wszystko w jedyny sposób, dzierżąc dumnie w dłoni młotek i wbijając nim wszystko, co choć z grubsza przypomina gwoździa. Znaczy - tacy też są, ale chyba nie cieszą się zbyt wielkim poważaniem. Są też ludzie, dla których jedynym słusznym podejściem jest ich własne, niezależnie od faktów - które nie zawsze działają na ich korzyść. Czasami mogą być przekonywujący w swoich wywodach, a czasami sprzeciw lub wątpliwości wywołują u nich furię.
Jest jeszcze jedna grupa programistów, która na pytanie czy X nadaje się do Y?
prawdopodobnie odpowie to zależy
. I to jest zwykle najlepsza odpowiedź, bo istnieją tysiące czynników wpływających na odpowiedź na tego typu pytania. Dopiero z biegiem czasu uczysz się dostrzegać te czynniki i na ich podstawie dokonywać osądu... ale by móc dokonać trafnego osądu, musisz jak najlepiej znać kontekst - a takie ogólne pytania są go zwyczajnie pozbawione.
Szczękanie zębami w strachu, że wykorzystasz język/bibliotekę do celu, do którego nie została przewidziana donikąd Cię nie zaprowadzi. Niczego się w ten sposób nie nauczysz. Natomiast jeśli zamiast się zamartwiać, czy wolno Ci pisać coś w czymś po prostu spróbujesz, możesz się nauczyć kilku rzeczy:
- że w ogóle nie da się tego zrobić
- że da się zrobić, ale szkoda zachodu
- że da się zrobić, ale kiepsko to działa i warto by poszukać innego rozwiązania
- że da się zrobić i nawet szczególnie to nie boli
- eureka, bibilioteka A w połączeniu z B doskonale nadaje się do robienia C!
Przy czym pewnie mnóstwo ludzi już to przed Tobą odkryło, jedni metodą prób i błędów, inni czytając książki, jeszcze inni prowadząc teoretyczne rozważania (i po drodze udowodnili pewnie coś ważnego, z czym wypadałoby się zapoznać). Ale Ty nie siedzisz w ich głowach, i jeśli nie zdążyłeś się czegoś dowiedzieć z książek, publikacji, wykładu na studiach albo czyjejś prelekcji na konferencji, to równie dobrze możesz spróbować na własnej skórze.
Czego więc nie wolno robić w programowaniu?
- rzeczy niezgodnych z prawem
- rzeczy łamiących licencje i inne takie
- zakładać, że jest się najlepszym programistą na świecie
- zakładać, że nie da się czegoś zrobić lepiej
- nie robić nic ze strachu, że będzie zrobione "nieodpowiednio"