Fand Zastosowania Linuksa: Chcesz zostać programistą Linux-owym?
Powstaje pytanie: z czego żyć do momentu gdy wypracujemy sobie stałe dochody z programowania w Linux-ie? Odpowiem pytaniem: z czego żyjesz poszukując pracy? Poszukiwanie pracy zajmie nam około 4 – 5 godzin dziennie. Resztę czasu musimy poświęcić na „tworzenie swojej przyszłości”. Jeżeli wybraliśmy zawód „programista” musimy stale doskonalić swoje kwalifikacje i związać się z konkretną drogą zawodową.
W tym roku ukończę 42 lata – niech Was to nie zmyli, choroba wyrwała z mojego życia zawodowego około 20 lat. W dniu 2009-01-28 (gdy piszę te słowa) pod koniec urlopu, który sobie wyznaczyłem doszedłem do wniosku, że mimo iż mówiłem o sobie „programista” w rzeczywistości byłem „informatykiem hobbystą”. Nie ma nic złego w słowach „informatyk hobbysta”, ale wiem, że jeżeli chcę zrealizować wdrożenie „Portalu Transportowego Fand” muszę napisać profesjonalnie dobrą aplikację używając nowoczesnych metod i nauczyć się programować, po to aby nie zaskoczyła mnie w przyszłości konieczność doskonalenia tego programu w celu utrzymania jego rynkowych zalet.
Dużo myślałem o szansach mojego odnowienia kwalifikacji nabytych w Technikum Elektrycznym (wtedy mógł bym pozostać hobbystą), ale w tworzenie „Portalu Transportowego Fand” zaangażowany jestem nie tylko intelektualnie, lecz też emocjonalnie (nie jestem kalkulatorem tylko człowiekiem...).
Moje przemyślenia, które snułem przez ostatnich kilka miesięcy doprowadzają do mojej definicji „programisty” i jest ta definicja zgodna z programem nauczania na informatycznych studiach pierwszego stopnia realizowanym przez Uniwersytet Gdański (z tym programem jestem zaznajomiony). Według mnie „współczesny programista” umie:
posługiwać się językiem strukturalnym (np. C)
posługuje się językiem obiektowym (w moim przypadku są to: Java i nauczę się PHP 5)
potrafi posługiwać się (projektować) językiem UML (tu brakuje mi kontaktu z wykładem akademickim, ale z praktyki wiem, że jeżeli wejdę na salę wykładową nawet nie będąc studentem i nie będę przeszkadzał swoim zachowaniem – nikt nie wyrzuci mnie z wykładu, oprócz tego uzupełnię swoją wiedzę lekturą książek o UML)
zna sposoby administracji bazami danych (tu pomocna mi jest wcześniejsza nauka w Szkole Policealnej (CKU w Spocie – Technik Informatyk), oraz dwuletnia praktyka zawodowa)
Tyle o kwalifikacjach merytorycznych.
Teraz zaplecze techniczne:
Aby stworzyć aplikacje internetowe, wystarczy i świetnie spełni swoje zadanie system Linux (polecam dystrybucję Slackware). Zacząłem od systemu operacyjnego, ponieważ determinuje on nam wymagania sprzętowe.
Dla Slackware minimalnym sensownym sprzętem będzie komputer typu PC z procesorem Pentium IV. Ja jestem w trochę lepszej sytuacji: posiadam notebook Fujitsu-Siemens AmiloPro (ale przy nowym zakupie polecam firmę Toshiba (moim marzeniem jest notebook z ekranem 17'' i klawiaturą numeryczną – należy ciągle jeszcze sprawdzać zgodność sprzętu z wybraną przez nas dystrybucją Linux-a)).
Co mi zaoferował Linux:
natywny serwer www = Apache (wraz z różnorodnymi modułami)
edytor tekstu z przełączalnym kodowaniem znaków (ja używam „UTF8”)
robocze projekty grafik stworzymy w GIMPie
łącze internetowe z nowoczesną przeglądarką (Firefox) – tu nie unikniemy zapytań do sieci w celu uzupełnienia niedostatków naszej wiedzy
ja osobiście korzystam ze środowiska KDE
Linux umożliwia też programowanie w innych językach niż PHP. Ja tworzę też aplikację w języku Java ale taka biblioteka jak GTK+ umożliwia (według moich być może nieprecyzyjnych informacji) programowanie profesjonalnych aplikacji w języku C++, przy pomocy dostępnych w Linux-ie narzędzi programistycznych m.in. KDevelop. Mamy w ten sposób całkowicie bezpłatne narzędzia i zakup systemu Windows wystarczy nam do testowania (uruchamiania aplikacji) w tym systemie. (aby tworzyć profesjonalna programy dla Windows musimy jeszcze zakupić licencję na użytkowanie profesjonalne jednego z programów antywirusowych). Oprócz tego czytałem kiedyś o planach firmy Microsoft, udostępnienia Framework-u windowsowego .NET w wersji Linuksowej, ale nie sprawdzałem nigdy stanu realizacji tego projektu. Podobnie jak Java, język Ruby możemy wykorzystać (chyba) we wszystkich istniejących systemach operacyjnych. Nie umiem wyliczyć wszystkich języków i bibliotek dostępnych we wszystkich „os-ach”, dodam tylko nazwę Python.
W ten sposób mamy wszystko co potrzebujemy i wiedzę którą wykorzystamy aby programować zawodowo. Jako twórcy oprogramowania aplikacje dedykowane możemy tworzyć na zasadzie umowy o dzieło, ale to nie wszystko ponieważ mamy też prawo swoje aplikacje sprzedawać m.in na aukcjach Allegro i w niektórych portalach udostępniających nam możliwość opublikowania demo.
Dlaczego ja wybrałem środowisko Linux? Możecie zaprzeczyć, ale nie jestem „dziwakiem”. W czasie gdy poważnie myślałem o programowaniu, Linux był jedynym systemem udostępniającym bezpłatne środowiska programistyczne. Nie było mnie stać na Windows (kosztował wtedy około 1000 PLN), a tym bardziej na komercyjne środowiska dla niego (wtedy około 10000 PLN). Teraz można wskazać Visual Studio Expres Edition jako środowisko do nauczenia się programowania, ale co dalej? Nauczysz się programować i kupisz Visual Studio (nie znam aktualnej ceny)? Pozostaje wtedy poszukiwanie pracy w firmach tworzących oprogramowanie... I muszę Wam przyznać łatwo znajdziecie tą pracę. Mój wybór jest inny. Wyżej zamieszczam argumenty (zalety) – wadą mojego wyboru są ciągle trudne warunki rynkowe, konkurencja i nawyki użytkowników.
Tekst jest zgodny z moją aktualną wiedzą i nie zawiera niedomówień odnośnie znanej mi drogi zdobywania kwalifikacji „programisty Linux-owego”.
W swojej realizacji „Portalu Transportowego Fand” posłużę się następującymi książkami:
Programowanie obiektowe w PHP 5 Cena: 37.00 zł |
UML 2.1. Ćwiczenia Cena: 24.00 zł |
Poprawiony (piątek, 21 maja 2010 17:54)




