Vir

Takie zwykłe blogowanie.

Kod

Jak ja piszę kod programów? No umówmy się, na początku programowanie to czarna magia, ale po wielu latach programowania można już wysnuć pewne wnioski. Ja bym na początek polecał takim początkującym programistom język Java. Jest on bardzo prosty, popularny, oczywiście prosty jak na języki programowania. Jest to język fajny do edukacji, do faktycznych aplikacji, do bardzo rozbudowanych aplikacji. C++ też jest fajny, ale już jest nieco trudniejszy. C# też jest spoko, ale no środowisko trudno zainstalować. C jest bardzo okrojony. Asembler nie jest taki prosty w nauce już. A reszta to już inna bajka. Jest jeszcze takie coś jak Laravel, ale to już jest całkiem coś innego po prostu. Można się tego uczyć, ale jak kto lubi, a tak to bardziej może polecam tamte wcześniejsze języki.

No dobra to tak. Mamy różne rzeczy, zmienne, które przechowują różne wartości. Można im zmieniać te wartości albo zrobić, że nie można ich zmieniać. Tablice lub tablicopodobne twory, które przechowują dane. Każda tablica zaczyna się od 0. Czyli 1 indeks tablicy to indeks 0, 2 to 1, itd. Są klasy czyli to jak ma coś wyglądać, te obiekty które są w programowaniu, nasze obiekty, metody czyli jak mamy ich używać. No i jest metoda główna w której piszemy sobie kod i go uruchamiamy. Ona ma najczęściej nazwę main(). Języki programowania posiadają swoje własne wbudowane rzeczy, ale czasem jest ich za mało i trzeba pisać swoje własne rzeczy. No dobra, to co taki kod może robić? Różne rzeczy. Można stworzyć dwie zmienne liczbowe, przypisać im jakieś wartości liczbowe, następnie dodać te zmienne do siebie i wyświetlić wynik. I już mamy program, który dodaje zmienne. Czyli tak naprawdę wykonuje działanie dodawania. Uruchamiamy sobie ten program i mamy wynik dodawania. Uruchomienie trwa parę sekund maks.

Jak zmienimy sobie wartości tych zmiennych to otrzymamy inny wynik. Możemy też zrobić tak, że po uruchomieniu program mówi żebyśmy podali wartość pierwszej zmiennej i wartość drugiej zmiennej, a on za nas wykona operację dodawania. Program sobie doda zmienne, zobaczymy wynik i klikamy sobie, a program się sam wyłącza. Szybko, łatwo i przyjemnie. To fakt. No dobra tylko teraz tak, język programowania daje nam możliwość wykonywania operacji dodawania. Ale to my mamy napisać program, który takie dodawanie wykonuje. Jak stworzymy sobie prosty kalkulator, czyli dodawanie, odejmowanie, mnożenie, dzielenie, to my zaprogramujemy tak ten program, a nie język programowania. On nam tylko daje możliwość dodawania. Język programowania daje nam możliwość pobrania danych od użytkownika, ale co my z tymi danymi zrobimy to już zależy tylko i wyłącznie od nas. Możemy stworzyć generator stron internetowych albo po prostu zapiszemy sobie parę rzeczy i tylko uruchomimy program żeby nam je wyświetlił. I to tyle.

Tak wygląda programowanie. W pseudokodzie można to zapisać tak: int a = 5, b = 10; => int wynik = a + b; => printf(wynik);. Podobnie to wygląda ogólnie w językach programowania, ale tam robi się entery, wcięcia i tego typu rzeczy. Jak ktoś nie wie jak to wygląda to może sobie poprzeglądać przykładowy kod. A tam środowisko programistyczne, pobierasz Intellij i piszesz. Pokonfigurujesz go sobie z tydzień czy dwa na początku, polatasz po necie żeby zobaczyć co i jak. Poinstalujesz wszystkie składniki i piszesz. Jeszcze se zobaczysz jak uruchomić taki program, a to jest dziecinnie proste, bo jest od tego jeden przycisk i tyle. Albo jakaś kombinacja klawiszy. Bardziej chodzi już o coś innego. W profesjonalnym programowaniu chodzi o to żeby pokazać ten program tak. I tego się dziś już nie uczy. Wiadomo nawet bardzo zaawansowani programiści piszą kod, a potem okazuje się, że cały program nie działa tak jak powinien.

Jak to wygląda w praktyce. Idziesz do klienta, rozmawiasz z nim, piszesz kod, po tygodniu rozmawiasz znowu, dalej piszesz kod i tak w kółko. Jak w ogóle napiszesz coś sensownego to jest to już ogromny sukces. Ile świetnych programów popadało. Są zespoły programistyczne składające się z milionów profesjonalnych programistów, którzy nic innego nie robią tylko programują. Po roku mają jakąś aplikację do uruchamiania kurwa kibla. I okazuje się po roku, że cała ich praca idzie na marne, bo nikt za takie szambo nie chce zapłacić. Tak sobie wszystko poustawiali. Inna sprawa to po co komu aplikacja do uruchamiania kibla. Jak to się kojarzy w ogóle. A co już testowali? I co działa? Oby no nie. Przecież to jest jazda nie z tej ziemi. Kiedyś pewien gościu poszedł na emeryturę, stwierdził że bardzo go zainteresowała tematyka programowania i napisał sam swój program, do otwierania klapki w kiblu. No kurwa kibel, który się sam otwiera, może to było jego marzenie, ja nie wiem. Wiem natomiast, że to co robiło miliony programistów ten typek zrobił sam. Klik i kibel otwarty. A jak go teraz kurwa zamknąć. Pewnie to przewidział.

Ludzie robią różne rzeczy i fajnie by było jakby przewidzieli właśnie pewne rzeczy. Masz klienta, dogadujesz się z nim o wszystko i co chwila pytasz czy coś dodać czy nie. Inaczej oddasz po roku aplikację a on się zapyta a jaka aplikacja, przecież ona miała być po 2 tygodniach oddana, a nie po roku. No toś my się dogadali no nie. To jest zupełna norma i nie ma co się tu przejmować za bardzo no ale trzeba się zmieniać. Masz aplikację, robisz ją rok, to bardzo długo. Dąży się do tego żeby w ogóle mieć aplikację w moment. A dziś gdzie mamy jakieś sensowne aplikacje. No dobra, ale mamy kod. Język programowania daje nam możliwość pobierania tekstu z pliku, ale my mamy napisać program, który to robi. Czyli jeden moduł tworzy plik, drugi tworzy zmienną do przechowania tekstu z pliku, trzeci kurwa stoi i się patrzy, żartuję oczywiście. Trzeci służy do wgrywania tych danych do zmiennej w pętli, a czwarty zwraca pobrany tekst z pliku. Tak to mniej więcej wygląda. Jak chcesz zobaczyć co to są za moduły to sobie wejdź na neta i zobacz przykład kodu do pobierania danych z pliku w twoim języku programowania o ile taki przykład będzie. W Javie są takie przykłady na spokojnie.

No i dobra, masz metodę do pobierania danych z pliku, to sobie jeszcze stwórz do zapisu danych, do dopisywania, do tworzenia plików, folderów, zczytywania listy plików, do kurwa dodawania, odejmowania, itd. Trzeba to sobie wszystko tworzyć samemu inaczej pierdolniesz a będziesz to za każdym razem pisać od nowa. Lepiej już to mieć sobie przygotowane. No to teraz pytanie to czemu języki programowania od razu nie dają możliwości od tak w jednej linii np. odczytać pliku? No bo to się okazało nieopłacalne. Lepiej stworzyć fork, który to robi za ciebie niż dodać to w języku programowania. Więc tworzysz taki fork i sobie nim rządzisz tak. Problem w tym, że co ty z nim kurwa zrobisz, dasz dla dzieci z domu dziecka? No nie. Firmy rządają przeróżnych technologii, twojej akurat mogą nie chcieć. Ale wszystkie firmy zgodnie mówią, że chcą typowych technologii online. I tu pojawia się mały problem, większość języków programowania może pracować online, ale żeby znaleźć dla nich hosting to trzeba chyba Rutkowskiego zatrudnić. W Javie więc zrobisz dużo fajnych rzeczy, ale niestety na dłuższą metę ten język nic ci nie da. Możesz sobie w Javie stworzyć edytor, a w nim pisać strony internetowe. I to wtedy ma sens. Przyszłość to aplikacje online. A widzisz, strona internetowa jest już w całkiem innej technologii, to HTML no i CSS dla wyglądu.

Żeby mieć taką aplikację musisz potrafić pisać po prostu duże aplikacje. I żeby nie wywalić takiej aplikacji po prostu. A żeby napisać fajną aplikację to musisz się trzymać pewnych reguł. Na pewno kod powinien być jasny, czytelny, przejrzysty, żeby każdy mógł się w nim odnaleźć nie tylko ty. Do tego takie forki z reguły powinny spełniać zadania forków. Czego ci brakuje? No operacji na plikach, wartości logicznych typu porównania, interfejsu. No to piszesz fork, który posiada takie rzeczy. Następnie piszesz w nim program, który spełnia twoje założenia tak. Przypuśćmy idziesz do klienta i powiesz mu że wiesz, program tworzy instancje bez singletonów więc stacka już nie wywali. Na to on żeby kurwa korków nie wywalił. Klienta nie obchodzi kod, ale program. On ma go uruchomić i sobie go używać. Im mniej błędów tym lepiej, no ale nawet w najlepszych programach błędy się zdarzają. Inna sprawa to wszystkie programy powinny dążyć do tworzenia aplikacji online, a tak przecież nie jest. Program w Javie uruchomisz na komputerze, ale na stronie internetowej już nie. Do tego służą inne technologie, np. Javascript, który można przerobić na własny język skryptowy, ale to już jest dla tak zaawansowanych osób, że dziś właściwie nie ma takich aplikacji.

Czyli klient ci mówi potrzebuję program do połączeń międzynarodowych. A ty kurwa co takiego w myślach, przecież nawet nie mam takiego API, bibliotek ani nic innego. I mówisz tak dla klienta, że z takimi programami jest ogólnie ten problem, bo nie ma dostępnych rozwiązań technologicznych. Może jakaś inna aplikacja? Np. do tworzenia faktur HTML. I na to klient mógłby przystanąć, i nawet podjąć stałą współpracę, tylko ty wpierw musisz wiedzieć po prostu jak wygląda faktura. Jak nie wiesz to patrzysz w necie i pokazujesz dla klienta czy o to w ogóle chodziło, bo dokumentów jest cała moc. Przecież twój klient też nie zna się na wszystkim no nie. I tak po miesiącu już razem nie współpracujecie, bo klient wyjechał za granicę, raptownie zmienił plany i musisz szukać innego klienta, a dziś znaleźć kogokolwiek już nie jest takie łatwe. Tak więc wpierw zbierasz wymagania od klientów, a potem piszesz kod. Ja wiem, że jednym wymaganiem od klientów są różnego rodzaju kalkulatory i to online. To jest takie jedno wspólne wymaganie. Przez lata klienci mówili czego potrzebują, stron internetowych, itd., ale i tak suma sumarum potrzebowali kalkulatora online. Dziś takich kalkulatorów właściwie nie ma, nawet jak wpisałem ostatnio pewną formułę matematyczną w wyszukiwarkę Google to otrzymałem błędny wynik. I Google się myli.

A ludzie pisali różne rzeczy. Kurwa programy do sterowania samochodami przez satelity niebo - ziemia. Akurat wieleset lat temu były takie możliwości. Tak, dokładnie, wieleset lat temu. A dziś niestety takich możliwości nie ma. Możliwości dzisiaj są bardzo okrojone, ale nawet z tego co jest można stworzyć coś sensownego.