M93.pl

Strona o amatorskim
programowaniu

www.m93.pl to strona o hobby jakim jest informatyka.
Znajdziesz tu programy użytkowe, aplikacje na telefon,
a nawet gry napisane w wielu językach programowania!

Opisy stworzonych przeze mnie projektów dostępne są
dla kilku różnych języków programowania:

 

Czym jest programowanie?



W największym skrócie, programowanie jest to tworzenie programu komputerowego. Programy tworzy się zapisując kod źródłowy w odpowiednim języku. Stanowi on instrukcję wykonywania szeregu działań, na które składa się cały program.

 

Wyrazy zapisane w kodzie binarnym

Każde urządzenie posiadające procesor rozumie jedynie kod maszynowy, a jego podstawę stanowi kod binarny. Są to tylko dwa symbole, najczęściej reprezentowane przez: 0 oraz 1. Kod źródłowy stanowią więc ciągi zer i jedynek.

 

Przykładowy kod w języku Python

Aby kod ten był zrozumiały dla człowieka, powstały pierwsze języki programowania. Każdy język to zbiór zasad i metod za pomocą których programista tworzy i modyfikuje kod, a zarazem program. Bez tej pośredniej formy komunikacji z danym urządzeniem, sterowanie jego funkcjonalnością było by bardzo trudne, a w wielu przypadkach niemożliwe.

 

Każdy program po napisaniu w wybranym języku jest tłumaczony przez inny program (zwany kompilatorem) do postaci kodu maszynowego, czyli finalnie naszych "zer" i "jedynek". To co dzieje się z kodem w międzyczasie jest uzależnione od rodzaju wykorzystywanego języka. Programy są wykonywane bezpośrednio przez nasz procesor, bądź pośrednio - za pomocą innych programów, tak zwanych interpreterów.

 

Ikony programów do pisania kodu

Finalnie otrzymujemy gotowy program. Programy są pisane w rozmaity sposób, z wykorzystaniem różniących się od siebie języków. Każdy język programowania ma swoje określone zasady, składnię, wyrażenia. Nie ma jednego uniwersalnego języka. Niektóre z nich wykorzystuje są wykorzystywane bardziej powszechnie od innych. Niektóre są natomiast "wyspecjalizowane" w określonych zadaniach.

 


To podobna sytuacja co w przypadku języków używanych przez nas. Język angielski jest używany na całym świecie, ale większa populacja posługuje się językiem chińskim. Język arabski przez stulecia był językiem handlowym którym posługiwali się kupcy, na codzień porozumiewający się w swoich lokalnych dialektach. Podobnie języki programowania mają często swoje specjalizacje, a czasem możliwości ograniczone do określonego zadania.

 


Spośród kilkudziesięciu używanych powszechnie języków programowania, niewiele jest takich które mają uniwersalne przeznaczenie. Przykładowo Python jest obecnie najpopularniejszym językiem programowania na świecie. Jest językiem ogólnego zastosowania. Można za jego pomocą programować maszyny fabryczne, tworzyć interfejs użytkownika czy frontendowe aplikacje internetowe. Najczęściej jednak wykorzystywany jest do przetwarzania dużych baz danych i tworzenia modeli językowych (AI). Java oraz Kotlin to języki wykorzystywane do pisania aplikacji na urządzenia mobilne. Za pomocą Java pisze się także oprogramowanie w takich branżach jak motoryzacja, bankowość, mała elektronika użytkowa czy inteligentne domy. W C++ i C pisane są systemy operacyjne, a także gry komputerowe. C# to popularny język używany głównie w środowisku systemu Microsoft Windows. JavaScript oraz TypeScript są natomiast wyspecjalizowanymi językami wykorzystywanymi do tworzenia interaktywnych stron internetowych. Wykorzystując różne języki możemy osiągnąć ten sam zamierzony efekt, jednak bardzo ważną w programowaniu jest umiejętność doboru odpowiednich narzędzi do wyznaczonego zadania.

 

Logo strony internetowej

Na mojej stronie znajdziecie programy napisane w językach: Python, C#, Java, Kotlin, JavaScript (wykorzystującym HTML i CSS) oraz językach charakterystycznych dla silników graficznych: GDScript i GML Code. W przyszłości pojawią się tu także aplikacje w C++, C oraz TypeScript.

 


 

Jak to wygląda "od podszewki"?

 

Każdy program może być napisany w jednym, bądź wykorzystywać kilka języków programowania jednocześnie.

 


Programista tworząc program, pisze jego kod w edytorze. Istnieje wiele programów które można wykorzystać aby ułatwić sobie pisanie kodu. SublimeText, Visual Studio, Vidusal Studio Code, Android Studio czy Notepad++ to tylko część z ogromnego wyboru dostępnych edytorów. Mogą one zawierać także elementy niezbedne do poprawnego uruchomienia programu, takie jak interpreter bądź kompilator. Rozpoczęcie pracy z kodem wymaga także stworzenie odpowiedniego środowiska programistycznego. Większość edytorów używanych do programowania, zawiera w sobie autoinstalatory z wyborem języka którego będziemy używać. Niektóre z języków wymagają ręcznej instalacji na używanym przez nas systemie. Poza bazowym oprogramowaniem, używamy także różnych bibliotek oraz frameworków zwiększających nasze możliwości, bądź ułatwiających programowanie. Przykładowo pisząc program w języku Python, instalujemy dodatkowe biblioteki, zawierające w sobie rozmaite funkcje i rozwiązania, a więc gotowe linijki kodu.


 

Przykładowy kod programowania

Umożliwia to tworzenie bardziej zaawansowanych programów, bez konieczności ciągłego budowania softu "od zera". W tym kontekście programowanie przypomina budowanie z klocków. Możemy sami decydować jak wygląda kazdy klocek, jaki ma kształt i zastosowanie, możemy używać gotowych, złożonych zestawów, możemy również dowolnie modyfikować, powielać i zmieniać już istniejące budowle. Ogranicza nas jedynie nasza własna wyobraźnia i kreatywność.

Zależnie od użytego języka, ten sam kod programu może się od siebie bardzo różnić, a jednocześnie może działać dokładnie tak samo. Pisząc ten sam program w językach z rodziny C (C/C++/C#) oraz w Pythonie zauważymy, że w Pythonie kod będzie znacznie krótszy, będzie zawierał mniej dodatkowych znaków. Różnice te wynikają z różnicy w budowie języków i ich wymagań. Języki z rodziny C, Java oraz Kotlin są przykładami języków silnie typowanych. Python oraz JavaScript są z kolei językami dynamicznie typowanymi. Poza działaniem samego kodu, wpływa to właśnie także na jego zapis. Ten sam program, wykonujący takie samo zadanie może zawierać kilkanaście linijek kodu, a w innym języku już kilkaset.

 

Przykładowy kod programowania

Przykładowo, strona tytułowa tej witryny to ponad 1800 linijek kodu zapisanego w języku HTML oraz CSS. Kod stron internetowych różni się od języków programowania, jednak opiera się na podobnych założeniach. Języki takie jak HTML, czy XML, nazywane są językami znaczników, a przykład u góry to fragment kodu powyższej strony.
 


 

Programowanie w praktyce!

 

Obecnie, niemal każde urządzenie elektroniczne które posiadasz jest w pewnym stopniu zaprogramowane. W wielu przypadkach korzystamy z owoców pracy programistów, nie będąc tego nawet świadomymi.

 

Nawigacja samochodowa

Komputer, telefon, opaska na Twoim ręku, Twój bankomat, telewizor, koparka budowlana, terminal ręczny, kardiograf, a nawet klimatyzacja w Twoim aucie. Praca tych wszystkich urządzeń została opisana i zależy od kilku, do nawet kilkudziesięciu milionów linijek kodu.

 

Monitor komputera w biurze

Na codzień, software napisane przez profesjonalnych programistów pozwala Ci pracować, zarządzać bazami danych, operować kontami klientów. Bez kodu opisującego jego działanie, niemal każde współcześnie wykorzystywane narzędzie pracy stało by się bezużyteczne. W dzisiejszym, cyfrowym świecie, działanie gospodarki opiera się na wykorzystaniu sieci komputerowych i specjalistycznego oprogramowania, ale także programów używanych przez każde z nas w domu, szkole i w pracy.

 

Przykładowa odpowiedź ChatGPT

Wciąż rosnące zapotrzebowanie na moc obliczeniową i jej efektywne wykrozystanie sprawia, że na całym świecie przybywa programistów. Zwiększający się popyt stymuluje dążenie do optymalizacji ich pracy. Współcześnie wielu programistów korzysta z nowoczesnych rozwiązań, takich jak zaawansowane edytory kodu, modele sztucznej inteligencji, a także serwisy pozwalające na magazynowanie i przetwarzanie danych w chmurze. Rozwój technologiczny, zwłaszcza w kontekście SI usprawnia i ułatwia ich pracę. Nie oznacza to jednak że w dającej się przewidzieć przyszłości programistów wyprze sztuczna inteligencja. To programiści używający SI wyprą z rynku tych którzy z niej nie korzystają.

 

Wizualizacja programu Sublime Text

Modele sztucznej inteligencji takie jak ChatGPT, czy GitHub Copilot ułatwiają naukę także początkującym programistom. Dzięki nim nauka jest szybsza i wydajniejsza. Znajomość programowania jest niezbędna do tworzenia własnego software. Ostatnie lata dynamicznych badań nad rozwojem sztucznej inteligencji i jej wpływ na rynek pracy pokazują jednoznacznie że SI nigdy nie zastapi dobrego programisty. Także "kodując" hobbystycznie o wiele lepsze efekty otrzymujemy pracując samodzielnie, jedynie wspomagając się SI w zadaniach które nie wymagają kreatywności. Pozwala ona na oszczędzanie czasu, szybsze znajdowanie błędów, analizę kodu oraz w wielu przypadkach likwiduje bariery technologiczne.

 

Wszystko co widzisz w tym momencie na ekranie, niezależnie od tego czy odwiedzasz tę stronę na telefonie, czy na komputerze jest wynikiem działania milionów linijek kodu napisanego przez tysiące osób, a finalnie, także i autora tego tekstu!

 

 

Od czego zacząć?



Nauka programowania to świetny sposób na rozwijanie siebie. Pisząc kod nauczysz się sumienności, organizacji czasu i miejsca pracy, logicznego myślenia, a także - do pewnego stopnia - potrenujesz matematykę!

 

Edycja strony internetowej

Pierwszą czynnością rozpoczynając porzygodę z programowaniem powinno być ustalenie swoich prorytetów. Przemyśl po co chcesz się uczyć "kodowania" i czy interesujesz się tym hobbystycznie, czy też wiążesz z tym plany zawodowe. Wiedząc to, jesteś w stanie określić swoje priorytety, a przede wszystkim wybrać od czego w ogóle zacząć.

 

Ważny jest wybór pierwszego języka, ale także oprogramowania które będziesz wykorzystywać do nauki.
Kod można pisać nawet w notatniku, czy popularnym "Wordzie". O wiele wygodniej jest jednak od początku wypróbować możliwości dedykowanych programów. Są one w stanie na bierząco "korygować" błędy, ułatwiają zrozumienie składni danego języka, posiadają też funkcje autouzupełniania kodu. Sprawiają także że kod będzie atrakcyjniejszy "wizualnie", dzięki czemu łatwiej go odczytamy. Dowiesz się o nich więcej w kolejnej zakładce.

 

Zacznijmy jednak od języka programowania. W wielkim skrócie wybór można uprościć do klilku prostych pytań: Chcesz tworzyć strony internetowe takie jak ta? Zacznij od JavaScript, PHP, ucz się tworzenia szablonów stron w HTML oraz narzędzi do tworzenia stylu i wyglądu strony takich jak CSS czy React. Marzysz o pisaniu aplikacji lub gier na telefon? To co zechcesz poznać to języki Java i Kotlin. Interesuje Cię "back-end", bazy danych, a może uczenie masyznowe i sztuczna inteligencja? Python, w połączeniu z nauką obsługi baz SQL to coś dla Ciebie. Znasz już podstawy programowania i chcesz stworzyć kompletny, zaawansowany program od A do Z? Rodzina języków "C": C++, C oraz C#, jest dokładnie tym czego szukasz!

 

 

Jakiego oprogramowania potrzebuję?

 

Jeśli wydaje Ci się że do nauki kodowania potrzebujesz drogiego oprogramowania ...to jesteś w błędzie!
Duże korporacje, takie jak Microsoft, JestBrains, Oracle czy OpenAI udostępniają za darmo zaawansowane wersje swoich narzędzi do programowania. Jak to możliwe? To bardzo proste, jest to najtańszy sposób zbudowania ogromnej bazy potencjalnych, wykwalifikowanych pracowników. Istnieje bowiem duża szansa że na dziesięć osób uczących się programowania, conajmniej dwie zajmą się tym zawodowo. Dla dużych firm jest to sposób na kreowanie własnej bazy pracowniczej.
Dla prywatnych potrzeb oraz dla małych przedsiębiorstw czy jednoosobowych firm, darmowe oprogramowanie - oparte na wolnej licencji, będzie w zupełności wystarczające do prowadzenia własnej strony. Wystarczy ono również do stworzenia prostych programów CRM.

 


Najpopularniejsze, a zarazem darmowe programy ułatwiające pisanie kodu to: Visual Studio Code, PyCharm, InteliJ IDEA, Sublime Text, Notepad++ czy PythonIDLE.

 


Programy te w większości posiadają wbudowane interpretery, dzięki czmeu nie musimy martwić się o "wykonanie" napisanego przez nas kodu. Programy te są niezbędne jeśli chcemy oszczędzić czas, bądź zadbać o jak najmniejszą liczbę błędów w kodzie.

 

Niektóre języki programowania wymagają zainstalowania odpowiedniej "bazy" w używanym przez nas systemie. W przypadku systemu Microsoft Windows, bez problemu uruchomimy programy napisane w językach z rodziny C jednak do korzystania z pełni funkcjonalności Javy czy Pythona bezpośrednio z poziomu systemu, musimy zainstalować odpowiednie narzędzia programistyczne.
 


Innym rodzajem oprogramowania jest to z którego możemy korzystać w "chmurze". GitHub, Jenkins, CloudBees to przykłady platform umożliwiających zarządzanie kodem,
analizę progresu, zarządzanie większym zespołem programistów i ich pracą.

Jeszcze innym przykładem wykorzystywania napisanego już wcześniej kodu to tak zwane frameworki. Są one platformą, szkieletem, wokół którego możemy budować nasze własne programy. Przykłady popularnych frameworków to: Angular, Django, Flask, Meteor, React, Laravel, Nest, Phoenix, a także jQuerry. Każdy język programwoania ma własne, dedykowane narzędzia, bardzo przydatne przy tworzeniu dużych projektów. 

 

Skąd czerpać pomysły?

 

Dobrym przykładem będzie HTML i tworzenie stron internetowych. Posiadając umiejętność odczytywania zawartości stron w postaci kodu, jesteśmy w stanie dowiedzieć się jak dana witryna wygląda "pod maską".

 


Każda przeglądarka internetowa posiada możliwość "podglądu" jej kodu. odwiedzając daną stronę www, wystarczy że otworzymy menu kontekstowe, a następnie wybierzemy opcję zbadaj stronę. Pozwala to odczytać stronę w formacie HTML bądź XML.

 


Możemy w ten sposób sprawdziź każdy jej element, a następnie spróbować wykorzystać go na swój własny sposób. Metoda ta pozwala uczyć się nowych rozwiązań. Można dzięki niej sprawdzić również na ile profesjonalnie dana witryna jest napisana i czy kod opisujący jej działanie zapisano w czytelnej formie.

 


Jeśli na jakiejś stronie spodoba się nam dany element, możemy w stosunkowo łatwy sposób spróbować zaadaptować go w naszym projekcie. Istnieje także wiele innych metod czerpania inspiracji do tworzenia stron, czy samego programowania.

 

Niemal każdą witrynę, jak i program użytkowy da się odtworzyć we własnym zakresie. Jedną z metod stosowanych przez profesjonalistów jest inżynieria wsteczna. Polega ona na zbadaniu mechanizmów odpowiadających za działanie oprogramowania, następnie próbie odtworzenia tych mechanizmów. Pamiętaj jednak że najważniejsza jest własna kreatywność i pomysłowość. Z tego właśnie powodu, tworząc stronę M93.pl, napisałem ją od podstaw, nie korzystając przy tym z żadnych szablonów, ani gotowych wzorców!

 

 

Przydatne linki.

 

Jeśli chcesz dowiedzieć się więcej na temat programowania, tworzenia stron internetowych, bądź informatyki jako takiej, internet jest nieskończenie obszerną biblioteką wiedzy w tym zakresie.

 

Logo strony internetowej

Oto przykładowy zbiór użytecznych miejsc z których możesz czerpać wiedzę:

Są to miejsca w których znajdziesz profesjonalne kursy, często nie mniej fachową wiedzę można znaleźć w serwisach takich jak YouTube. Znajdziesz tam tysiące godzin kursów i tutoriali opisujących każdy aspekt programowania.
Poniżej znajdziesz linki do wybranych przeze mnie, najlepszych kursów do znalezienia za darmo w sieci:

Programowanie to świetna zabawa, dająca dużo satysfakcji i mogąca mieć realny wpływ na Twoje życie zawodowe!

 

 



Wybierz obszar który cię interesuje

W sekcji Do Pobrania znajdziesz moje programy w wersji na komputer PC
oraz smartfona z systemem Android.
Możesz o nich przeczytać więcej w zakładce Autorskie Projekty.
Dowiesz się tam również jak je uruchomić.