Big project

Niedziela, 30.10.2011

Pierwszy raz w życiu zdarza się… jeden raz.

Do tej pory maksymalna ilość osób z którymi pracowałem na danym zadaniem programistycznym ograniczała się do 2 lub 3, ale to max. Zazwyczaj zadania, na których się opierałem wykonywałem sam i byłem za nie odpowiedzialny osobiście. Same zadania, także w poprzedniej pracy nie ograniczały się do jednego klienta, jednego systemu, itp. itd.

Team work - praca zespołowa

Team work - praca zespołowa

Teraz jest zupełnie inaczej. Jestem jednym z elementów dość dużego zespołu programistów. Sama już nasza ilość (w tym momencie, a jest niedziela 21:20, na Skype widać siedmiu, którzy pracują), a ogólnie jest nas kilkunastu, co robi na mnie spore wrażenie. Czasem jest to powodem drobnych nieporozumień, czasem utrudniamy sobie pracę nawzajem. Aby tego wszystkiego było mało, ten projekt, jest w sumie outsourcingiem, czyli jest jeszcze jeden klient pod klientem głównym.

Jak już wspomniałem, to jest coś innego:

  • jest jeden projekt, jedna aplikacja, jeden klient
  • jest jeden język (PHP) i jedna baza (Mysql)
  • jest wielu ludzi, dość mocno skupionych na swoich zadaniach, jednak którym w pewnym stopniu przyświeca myśl, że mamy wspólny cel i starają się sobie pomóc nawazajem
  • są ściśle wyznaczone terminy i etapy
  • używamy systemu umożliwiających pracę zbiorową (SVN, Redmine, Skype)

To dość ciekawe doświadczenie. Jestem jednym, z tych mniej doświadczonych programistów. Jedno co łączy to doświadczenie z poprzednim jest ogólne zwątpienie (”ja się nie nadaję!”, “co ja tutaj robię”, “jestem za wolny!”), kiedy zadania, które wykonuje się 5 razy wolniej od reszty załogi, przeplatane z ekstazą jak wiąże się z tworzeniem, jakąś bystrą modyfikacją, czy możliwością pomocy programistycznej koledze.

Czasem czuję się jak kopciuszek programistyczny. Moje kodowanie jest rzadko wymyślne, zmyślne czy tym bardziej powabnym, choć chciałbym oczywiście aby było inaczej. Często stosuję metodę KISS i asekurację w modyfikacji tego co działa, szczególnie jeśli w grę wchodzą transakcje i pieniądze.

Największy stres oczywiście jest kiedy zrobi się commita i nagle pojawiają się błędy, coś nie działa, a jakaś podstrona na serwerze na którym działamy wywala błędami. Wtedy człowiekowi wstyd, że czegoś nie dopilnował, gdzieś popełnił błąd, zapomniał dodać tabeli do bazy na serwerze głównym, a to przecież nie powinno się zdarzyć. Ehhh, ten brak koncentracji i dyletanctwo.

Jednak największym problem jaki mam, to szacowanie czasu potrzebnego na wykonanie zadań. Trudno mi oszacować, nietrudno mi przekroczyć dany czas. Dlatego cieszę się, kiedy nie muszę tego robić. Intensywnie pracuje nad powierzonym zadaniami, nie musi mnie nawet nikt z tego rozliczać co do godziny, żebym czuł presję.

Nie mniej jednak uczę się tego i mam z tyłu głowy fakt, że ja też muszę być ważny dla siebie w tej układance. Za niedługo projekt w PHP (jedyny w tej firmie dla tego języka) może się skończyć, tak samo jak moja umowa i nie wiadomo jaka może okazać się przyszłość. Możliwe, że dostanę szansę przebranżowienia, ale może != na pewno.

Szanuj swoje zdrowie

Poniedziałek, 22.08.2011

Jako że bardzo mocno opierałem się przed innym typem umowy, niż umowa o pracę, taką też miałem okazję podpisać z moim nowym pracodawcą. Ta forma umowy ma różne plusy i minusy. Minusem jest chociażby dość duży dysonans przy wypłatach na linii umowa o pracę - umowy cywilnoprawne, ale coś za coś. Dużym plusem są wielorakie funkcje zabezpieczające takiej umowy, a także różne prawa i obowiązki.

Jednym z minusów jest to, że trzeba zaliczyć szkolenie BHP . Jako że centrala mojej nowej firmy jest w Gliwicach udałem się tam potulnie (na szczęście dzięki dobrej pogodzie na motorze). Szkolenie jak to szkolenie, nic co mogło zaskoczyć. No może poza tym, że szkoleniowiec był także motocyklistą, wystąpiło więc wiele wątków pobocznych ;).  Nie jedno już przeżyłem w swoim życiu szkolenie BHP, tak na oko to już 5 czy 6. Tak naprawdę szkoleniowiec musi obskoczyć wiele zagadnień i sprężyć się przy tym, żeby jak najmniej osób zasnęło. Zawsze się znajdzie jakiś nowy element, ale zazwyczaj człowiek już większość rzeczy wiedział wcześniej, czy to ze szkoleń, czy choćby z doświadczenia.

Ja sam siebie postrzegam jako osoba odpowiedzialna i widząca w pewnej perspektywie, można powiedzieć nawet, że ostrożna. Do jakiejkolwiek pracy nie pójdziemy, musimy być świadomi jednego, nie ma takiej pracy, która nie powoduje takiego czy innego uszczerbku na zdrowiu. Musimy także sobie uświadomić jak wiele życia poświęcamy lub zabiera nam praca.

Do pracy należy podejść z odpowiedzialnością. Zarówno w stosunku do obowiązków jak i do siebie samego, i swojego zdrowia. Każdy sam, na podstawie wiedzy, doświadczenia i opinii, powinien wypracować sobie jakiś model funkcjonowania w pracy (np. mini relaksacje, ćwiczenia, programy wspomagające). Każdy powinien odpowiedzialnie gospodarować swoim zdrowiem (fizycznym i psychicznym), bo nikt tak naprawdę mu nie nakreśli wszystkich zagrożeń (nawet na tygodniowym szkoleniu BHP), nikt nie będzie za nim chodził i pokazywał mu jak ma prawidłowo siedzieć i kiedy robić przerwy, a już na pewno nikt nie każe mu kategorycznie dbać o swoje zdrowie, bo to już nie czasy szkolne.

To każdy z nas powinien się dokształcać w tym wszystkim o czym m.in. mówią szkolenia BHP, np. :

  • prawo pracy
  • obowiązki i prawa zarówno pracownika jak i pracodawcy
  • pierwsza pomoc
  • przepisy BHP
  • ergonomia
  • funkcjonowanie organizmu
  • zapobieganie chorobom, dysfunkcjom i urazom
  • relaksacja, odreagowywanie i zapobieganie nadmiernemu stresowi

bo:

  1. nigdy nie wiesz czy pewne zagadnienia nie będą dotyczyć ciebie (np. spór z szefostwem)
  2. może na starość będziesz chciał poczytać wnukom czy ponosić ich “na barana”
  3. łatwiej jest zapobiegać niż leczyć
  4. gdy pojawi się coś niepokojącego, możliwe że twoja reakcja będzie szybsza

To takie ogólnikowe przemyślenia. Ja przez wiele lat dokształcałem się i zdobywałem doświadczenie w tych wszystkich zagadnieniach. Robię to nadal. W pracy daje z siebie wszystko (takie mam “głupie” zasady), jednocześnie dla swojego zdrowia staram się zrobić w tym czasie to co w mojej mocy. Bo nie mam zamiaru, za parę lat, nosić takich okularów jak Stępień z serialu 13 Posterunek.  Przemyślcie to jak traktujecie swoje zdrowie w pracy.

Bezrobocie

Piątek, 18.03.2011

Nadszedł czas posuchy i braku pracy programistycznej. Szczerość czasem ma swoje dobre i złe strony. Jakby nie było pod górkę jest ciężej, ale za to większa satysfakcja (przynajmniej dla mnie).

Oczywiście mieszkam w Bielsku-Białej, gdzie jakaś oferta pojawia się co parę dni i zazwyczaj do tego głównie w .NET albo dla pro w JAVA, a jak już pojawia się coś w PHP czy ewentualnie Pythonie (ależ go ostatnio polubiłem! :) ) to trzeba mieć oczywiście dużo doświadczenia i dużo więcej przeróżnych umiejętności, których ja niestety do tej pory nie nabyłem.

Cóż było zrobić? Dotarłem w końcu do Urzędu Pracy. Zarejestrowałem się. Będę mieć przynajmniej na waciki, bo przysługuje mi 80%. Paradoksalnie za miesiąc przysługiwałoby mi 0%, ale szef postanowił się pożegnać ze mną właśnie teraz ;). Oczywiście nie liczę na pomoc Urzędu, no chyba że jakieś szkolenia, ale oni też trudno. Otwarcie czegoś swojego, nawet budki z hot-dogami (czemu by nie? ) przy dofinansowaniu UE nie wchodzi w grę bo UP nie ma przydziału.

No cóż. Rozglądając się po ofertach pracy musiałem nakreślić sobie jakiś plan rozwoju. Oczywiście nakreśliłem go w tym co umiem i co dlatego będę udoskonalał. Rynek pracy w Bielsku-Białej jest trudny dla programisty. Wystarczy powiedzieć, że w Poznaniu wyszukiwarka praca.trovit.pl znajduje 377, w Bielsku aż 16, nie wspominając już o 582 we Wrocławiu. Oczywiście jedynie część tych ofert pracy dotyczy programisty PHP lub Python-a.

Trzeba było nakreślić sobie jakiś plan działania. Bo jeśli lubi się programować i woli się to robić za minimum krajowe, niż iść np. do fabryki z możliwością dostania od razu pod 2 kafle na rączkę, to trzeba zacząć działać. No na razie mam ochotę się sprawdzić w tym co robię. Polubiłem tworzenie czegoś z niczego. Polubiłem zarówno małe skrypty, jak i rozbudowane aplikacje z bazami danych 500 mega w początkowej fazie rozwoju.

Frameworki

No cóż, pracodawcy wymagają i trzeba wybrać. Oczywiście jeśli chodzi o Pythona-a to nie ma wielkiego problemu - Diango i po sprawie. Jeśli chodzi o PHP nie jest już tak prosto i jednoznacznie. Korci CakePHP, który jest zachwalana choćby za szybko i prostotę. Zend za, którego postanowiłem się zabrać, może jest trochę krowowaty i skomplikowany, ale pożądany przez pracodawców. Na uwagę także zasługuje Kohana i poleceny przez mojego kolegę Yii, którego charakterystyka w tabeli porównawczej frameworków jest naprawdę imponująca.

Design / Layout

Muszę przyznać, że chyba nie jestem pod tym względem super uzdolniony, ale też muszę przyznać, że to nie było nigdy u mnie na pierwszym planie. Teraz jednak, myśląc po części o tworzeniu swoich rozwiązań, muszę to wszystko podnieść na wyższy level. Także GIMP i Inkscape w dłoń ;).

Javascript

No niestety pokutuje niski poziom. Omijaniem tego tematu dopadło mnie dopiero w pracy, gdzie musiał tworzyć i modyfikować rozwiązania JavaScript. Z jQuery jest gorzej, bo w pracy akurat można było zebrać za niego opierdol. No cóż. Niektórzy muszę mieć jQuery bo inaczej ich życie traci sens :D, a niektórzy widzą, że nie zawsze jQuery jest konieczny i wogóle celowy. Znajomość jQuery - jeszcze gorzej.

AJAX

Zagadnienie AJAX to coś co zacząłem, ale nieoczekiwane zdobycie pracy, która wymagała dużo nauki odciągnęła mnie od tego tematu. Gdzieś tutaj muszę się w niego wgryźć.

Flash

I tutaj jest bolączka. Od paru lat korzystam jedynie z darmowego oprogramowania. Widzę, że część developerów bardzo przyjemnie sobie zarabia robią względnie dość proste strony na bazie Flash-a. Oczywiście dostrzegam, że wiele takich projektów, głupotą jest robić za pomocą Flash-a. W zasadzie z pozycji kogoś kto zna się na pozycjonowaniu, nawet mogę powiedzieć debilizmem jest tworzenie stron Flash-owych, które w zasadzie nie korzystają z dobrodziejstw Flash-a :D, a wszystkie efekty są co najmniej do powtórzenia za pomocą JavaScript, a czasem w ogóle nic pozytywnego nie wnoszą do projektu. No cóz… sam wszedłbym we Flash-a, ale wiem ile kosztuje i nie mogę sobie na niego pozwolić (jest SWiSH, ale nie wiem czy jest sens się rozdrabniać). Jak mawia mój “mentor” ;) Jaruś Kaczyński ;), “Zasady zobowiązują”. A mnie zobowiązują do OpenSource i darmowego oprogramowania jaknarazie. Także Flash odpada narazie…

Języki obce

No cóż angielski wystarcza by dokumentację poczytać, ale chyba trzeba się trochę podszkolić. Niby po krótkie przygodzie z Irlandią teraz już wiem, że za granicę to jedynie na max max max 6 miesięcy, nie mniej jednak myślę o takiej przygodzie i sprawdzeniu się. Oczywiście nie z bieżącymi umiejętnościami, ale z JAVĄ w butonierce, myślę o Berlinie ;). Ale to melodia przyszłości. Nie mniej jednak niemiecki można trochę podszkolić, a angielski to i tak trzeba mieć perfect, żeby sobie móc spokoju podróżowanie (nie zarobkowo) po Europie na ukochanym moto… aż się rozmarzyłem w tym momencie ;).

Dodając do tego administrację serwerami UNIX I SVN-a mamy pokaźną wiedzę do zdobycia.  Trzeba mieć plan, aby można było do niego dążyć i siebie samego z niego rozliczyć. Programowanie jest podróżą…

Cytat musi być!

“Ja bardzo dużo czytam, odświeżam umysł i kur… będę jak brzytwa.” :D

Koncepcje po byku…

Czwartek, 10.02.2011

Siedzę siedzę sobie spokojnie w domku … i pracuję, bo do pracy po wypadnięciu dysku nie dałem rady się doturlać. Akurat zmieniałem dla szefa szablon newslettera i w zasadzie kończyłem pracę, kiedy dostałem OPR, że ktoś puścił newsletter i nie dość że wadliwego to jeszcze kilkadziesiąt . Oczywiście, od razu na mnie (bo kiedyś cron-a źle ustawiłem ;) ), a że wziąłem to do siebie, to szukałem swojego błędu. Na logikę szablon nie powinien wpłynąć na takie kuriozalne błędy, ale dziarsko zabrałem się do sprawdzania tagów HTML. W międzyczasie okazało się, że … strona z której został wysłany newsletter nie działa!!! Czy można sobie wyobrazić coś bardziej kuriozalnego? Jak najszybciej wyłączyłem cron-y. Kolega wyłączył newslettera i strona znowu się pojawiła, a ja zrobiłem sobie fajrant z pół godzinnym poślizgiem ;).

Kilka dni później dostałem zadanie poprawy i włączenia już poprawionej wersji do defaul-towej wersji naszego CMS-a. W trakcie studiowania plików, które zostały wyłączone z cron-a okazało się, że … nie są one odpowiedzialne za newsletter-a. Fajnie -  pomyślałem. Ciekawe jak do jasnej cholery to działa?

W trakcie dalszego research-u wyjaśniło się dlaczego cała strona umarła po włączeniu newsletter-a. Przy każdym włączeniu strony, dokonywała się wysyłka newsletter-a. W tym wypadku występował akurat błąd i oczywiście strona padała.

Znalazłem dobrze działającą wersję skryptu. Zrobiłem try{} catch{} na fragmencie odpowiedzialnym za wysyłkę i dodatkowe filtrowanie adresu email przed wysłaniem. Przy wysyłce jednak okazało się, że doszły 2-3 emaili do każdego z użytkowników.

Okazało się, że w dziesiątkach CMS-ów wysyłka jest podłączona w taki sposób metoda pobiera całą listę zapytaniem “SELECT * FROM wysylka” subskrybentów dla danego newsletter i potem idzie pętlą wysyłając i usuwając wpis w bazie danych.

A jaki z tego morał ?:

  • Jeśli ty modyfikowałeś kod po raz ostatni to ty dostaniesz w dupę za to, że ktoś nie pomyślał
  • Nigdy to, ale nigdy nie myśl, że coś jest super przemyślane bo działa od jakiegoś czasu i nikt nie zauważył błędu
  • Jeśli coś poprawiasz albo napiszesz, zawsze staraj się to.. spieprzyć, bo wtedy “zwiększasz sumę swojego ubezpieczenia”
  • Nikt, ale to nikt nie robi samych mądrych i przemyślanych rzeczy

“Co cię nie zabije, to cię … w idiotyczny sposób zestresuje.” :D

Python vs PHP

Piątek, 24.12.2010

No cóż, muszę się przyznać, że wkurza mnie podejście moich starszych stażem kolegów programistów odnośnie języka PHP.

Ja lubię PHP. Znam ten język na tyle dobrze, by w miarę płynnie się poruszać po wszystkim co z nim związane. Denerwujące jest to, że kiedy tylko coś pójdzie nie tak, coś nie chce działać, coś zachowuje się nieprzewidziany sposób, to wszystko od razu wrzuca się do worka z napisem “PHP to język śmieciowy”.

Dramatycznie się z tym nie zgadzam.

W tym momencie w mojej firmie królują 3 języki programowania. PHP, JavaScript i Python.

- PHP, to jest mój konik.

- JS-a zawsze do tej pory unikałem (trochę tego żałuje…)

- Python, który ponoć jest o niebo lepszym językiem niż PHP

Powiem szczerze. Nie polubiliśmy się z Pythonem na wejściu. Początki były dość trudne, wszystko sprawiało problem. Po dość krótki obcowaniu z językiem muszę powiedzieć, że jest on… po prostu zwykłym językiem programowania. Bez fajerwerków, tudzież z bagażem często bardzo wkurzających dolegliwości.

Python i PHP

Python (1991)jest starszym językiem niż PHP (1995), mimo to jest uważany za poważniejszy i dojrzalszy język programowania.  To prawda, że od samego początku twórcy i programiści starają się utrzymywać pewne określone wzory i niepisane zasady konstrukcji. Sprawia to, że język jest dość uporządkowany, a programowanie odbywa się w określonym stylu.

Python w odróżnieniu od PHP, jest w pełni obiektowy, w takim znaczeniu, że wszystko w tym języku jest obiektem. Inaczej mówiąc nie da się w tym języku programować, nie znając koncepcji takiegoż programowania.

Python oczywiście nie jest doskonały. Często aż irytuje dziwnymi dla mnie, programisty PHP, zagraniami i wymaganiami, które w PHP są oczywiste, proste i nie powodujące zakłopotania.

Różna jest koncepcji celu jakiemu ma służyć PHP względem języka Python. PHP został stworzony jako proste narzędzie do tworzenia witryn internetowych. Taki właśnie jest cel istnienia tego języka. Nie napiszemy w tym języku wielu rzeczy, choćby najprostszego dektopowego kalkulatorka. Jest to język stworzony dla prostego i bezbolesnego tworzenia stron internetowych. Nie mniej jednak PHP, także za sprawą jego popularności, ciągle się rozwijał. Wystarczy porównać obiektowość PHP 4 i PHP 5. Piąta wersja języka sprawiła, że w końcu PHP stał się dojrzałym językiem, który choć ciągle sprawia, że robienie witryn internetowych jest proste, ale także wprowadza mechanizmy i rozwiązania dużo bardziej ambitniejsze i dające dużo większe pole manewru.

Wracając do Pythona

Najbardziej wkurzającym elementem języka jest przymus odpowiedniego operowania wcięciami i brak nawiasów. Naprawdę trudno się przestawić na początku. A co powiedzieć o takim kodzie? Dla mnie jest co najmniej średnio czytelny, kiedy mam do czynienia z większym fragmentem kodu. Lubię te piękne “curly brackets” i swoje własne formatowanie fragmentów kodu, ale to jest też kwestia przyzwyczajenia oczywiście.

Podsumowanie

Choć, nie wybrałbym tego języka do nauki, cieszę się, że moja praca wymaga nauczenia się i programowania w języku, który nie jest dla mnie uosobieniem cnót wszelakich. Programista powinien umieć się odnaleźć w każdym języku i umieć w nim znaleźć masę pozytywów.

Trudne początki

Piątek, 05.11.2010

Minął miesiąc i parę dni. Był to okres wytężonej pracy, porażek i sukcesów.

Codziennie trzeba było przyjąć taką wiedzę, że trudno sobie wyobrażać czasem jak człowiek może rozszerzyć swoje możliwości pochłaniania informacji i analizowania ich w locie. Czasem mózg się przegrzewał.

Weekendy okazywały się najgorsze. Samodzielna praca, jest dużo trudniejsza kiedy pewne rzeczy nie przychodzą prosto, a wręcz uparcie oddalają się odpowiedzi na wydawało się proste pytania. Wgłębianie się zupełnie obcy system, czasem po prostu milimetr po milimetrze okazywał się często tak szorstkim i dołującym doznaniem, że siły do “walki” wracały dopiero z nastaniem drugiej części niedzieli. Czasem jeszcze weekend okraszony był próbami zapoznania się z Pythonem, którego to języka szefo oczekiwał, że dość szybko się nauczę.

Ostatni, długi weekend,  z takich czy innych powodów okazał się owocny głównie w świdrujące myśli:

“Ja się do tego nie nadaję. Jestem za wolny. Za wolno kojarzę. Popełniam za dużo głupich błędów. ”

Pikowanie w dół 1 listopada zostało zakończone następnego dnia rano. To był przykry poranek. Nie byłem w stanie nic wziąć do ust, wiedziałem że muszę jeszcze przed pracą zakomunikować swoje postanowienie szefowi. Myśli o porażce miażdżyły także moje ogólne poczucie własnej wartości, a nie tylko wartości jako programista.

Wszedłem do biura. Szef zapytał się co się stało i z czym przyszedłem. Ja przez chwilkę stałem, nie wiedząc jak zacząć. Po chwil odezwałem się łamiącym się głosem:

“Ja się do tego nie nadaję… Pracuję za wolno… Szkoda na mnie czasu… Głupio mi brać pieniądze, kiedy nie widać efektów mojej pracy”

Wiem, że wyglądałem wtedy żałośnie. Gdzieś w oku kręciła się łza. Czułem porażkę, czułem, że zaraz wyjdę i już pewnie nie wrócę do programowania, a stanie się to jedynie moim hobby.

Nie wnikając w szczegóły dalszej części tej rozmowy powiem, że wyszedłem z pracy dopiero o 16. Zresztą tak jak każdego dnia :).

Dalej staram, się rozwiązywać problemy programistyczne, czasem nawet na siłę, we własnym zakresie. Po tej rozmowie jednak nie przekraczam pewnych granic w tym względzie, bo czasem nawet podzielenie się problemem sprawia, że nad głową zaświeca się kreskówkowa żaróweczka. Teraz jedynym programistą jest dość ciekawy gość z 30-letnim stażem (kolega który mnie prowadził przez miesiąc przeprowadził się do Bydgoszczy), trochę bardziej się interesuje tym co robię (zacząłem raportować pod koniec dnia pracy na email), ale już się nie wychylę do komputera obok się z zapytaniem “masz chwilkę”, bo on akurat raczej większość pracy programuje poza firmą.

Cieszę się, że programuje. Nie liczy się rodzaj umowy i kasa, ważne że człowiek podejmuje wyzwania każdego dnia.

Jedno co bym chciał zmienić to podejście do większych czy też bardziej skomplikowanych problemów programistycznych z podejścia

“To mnie przerasta ;(…”,

na

“Ale będzie jazda! ;)”

A słowo problemy przechrzcić na puzzle.

Nowe rozdanie

Środa, 29.09.2010

Od pierwszego października nastąpi nowe rozdanie. Zwalniając się z pracy na stacji benzynowej nie myślałem, że na tak trudnym dla programisty rynku, jak ten w Bielsku-Białej, tak szybko dostanę pracę. W trakcie poszukiwań, udało mi się nawet przeżyć profesjonalną rozmowę kwalifikacyjną w Gliwicach (dużo się nauczyłem o sobie samym).

Przypadkowo, przychodząc na rozmowę w sprawie pracy przy zapleczu pozycjonerskim, dostałem możliwość wypróbowania swoich sił jako programista. Dostałem dość proste zadanie wyłuskania określonych danych ze strony HTML. W Obiektowym PHP zajęło mi to trochę więcej czasu niż chciałem, ale wyszło nieźle.

Programista Jacek stwierdził jednak, że większość ich roboty teraz jest w Pythonie, dodał też, że to bardzo podobne do siebie języki. Także późnym popołudniem zabrałem się za poznawanie nowego języka, a następnie postanowiłem napisać na podstawie skryptu PHP skrypt w Pythonie.

Pythona wcześniej nie widziałem nawet na oczy, a jeśli to bardzo krótko. Co za tym idzie było to ciekawe wyzwanie. Kilka godzin eksperymentów i efekt prawie żaden. Wybiła godzina 3:00 i trzeba było się poddać, gdyż na 7:00 do pracy. To był piątek. W pracy nastąpiła wymiana e-maili z Programistą Jackiem za pomocą komórki. Werdykt: w PHP nieźle. Podał mi też nazwę parser-a, który w łatwy sposób rozprawi się z problemem.

Postanowiłem na poniedziałek przygotować skrypt w Pythonie. Udało się. Skrypt spełniał podstawowe cele zadania. Werdykt: w Pythonie średnio.

Miesiąc próby

Od pojutrza nastąpi miesiąc próby. Dostanę konkretny projekt i będę miał szansę się wykazać.  Z tego co wiem będzie to projekt związany z CMS i językiem PHP, także jestem dobrej myśli. Nie mniej jednak jestem przygotowany na codzienne parenaście godzin pracy by sprostać wymaganiom.

Tak mnie to cieszy, że nawet to za ile w końcu będę pracował i jaka będzie forma umowy, schodzi na dalszy plan. Mam jedną tylko nadzieję, że nie znienawidzę programowania pod presją ;) .

Informatyka dnia codziennego, czyli multum możliwości

Piątek, 05.03.2010

Zasadniczo wpis ten nie dotyczy tylko informatyki, ale wszystkiego co nas otacza, co może sprawić nam jakiekolwiek trudności.

Ale zacznijmy od informatyki. Informatyka jest niczym innym jak zaprzęgnięciem maszyn operujących na abstrakcyjnych dla człowieka ciągach zer i jedynek do rozwiązywania “problemów trywialnych” i na ich podstawie rozwiązywać część lub całość problemów. Szczególnie ma to znaczenie w przypadku czynności powtarzalnych, czy też trudnych obliczeniowo.

Pozytywne i negatywne skutki komputeryzacji

    Oczywiście ma to swoje pozytywne i negatywne skutki, choćby:

  • pogarszający się styl pisma odręcznego, bo po co się martwić jeśli wszystkie oficjalne pisma teraz oddaje się w formie wydruku
  • pogarszający się poziom ortografii, bo po co jeśli procesor tekstu poprawi błędy
  • nieumiejętność liczenia w pamięci kiedy jeden z naszych nowych narządów (tel. komórkowy), ma wbudowany kalkulator

Ale tak naprawdę komputer powinien być dla nas ułatwieniem, a w połączeniu z internetem bardzo podnosi komfort naszego życia . I nie jest istotne, że w jakimś stopniu komputer upośledza pewne nasze cechy i zdolności.

Niewykorzystywane ułatwienia

Przerabiając właśnie jeden z najprostszych możliwych programów, w którym jak się zdawało Kanclerzowi naszej uczelni można zrobić każdy chyba rodzaj oprogramowania ;), czyli arkusz kalkulacyjny, musiałem się zmierzyć z myślą bardzo przykrą. Ludzie nie potrafią używać oprogramowania choćby w ułamku ich możliwości.

Jako początkujący programista staram się by każdy mój kod, dzień pod dniu stawał się mądrzejszy. Aby nie powtarzać kodu, przekazywać obiekty i argumenty, dziedziczyć, itp. itd. Pracując na arkuszu kalkulacyjnym w którym nie ma żadnej formuły, a powinno być choćby kilka najprostszych uczułem jakieś takie dziwne ukłucie. Uczucie, że miliardy roboczo-godzin jest marnowanych na całym świecie, pomimo że ludzie posiadają narzędzia ułatwiające (często darmowe), ale nie potrafią wykorzystywać ich możliwości.

Dobrze skonstruowany arkusz kalkulacyjny (jak i każde inne oprogramowanie) może oszczędzić czas, który będzie tracony w sposób wykładniczy bez dobrego arkusza, na bezsensowne modyfikacje wartości, które powinny być wyliczalne za pomocą oprogramowania, a nie przy pomocy kartki i kalkulatora. Tak jest bardziej mądrze, ekologiczne, logicznie, elastycznie, ekonomicznie i ogólnie lepiej, a często nie wymaga wielkiej wiedzy.

Optymalizacja ma wiele zalety, oczywiście jeśli nie wymaga większej pracy niż korzyści. Czasem przecież zasada KISS (Keep It Simple Stupid), znaczy po prostu nie ulepszać (nie komplikować) niepotrzebnie, nie robić tzw. “sztuki dla sztuki”. Wiele lat temu poświęciłem parę dobrych godziny jako praktykant by dojść jak masowo wydrukować koperty na podstawie jakiejś bazy danych osobowych, po paru godzinach z kolegami zrezygnowaliśmy z eksperymentów i wydrukowaliśmy jakieś 200-250 kopert, sztuka po sztuce, z każdym razem zamieniając dane. Gdyby nam się udało do tego dojść ułatwilibyśmy pracę księgowości na wiele miesięcy i lat do przodu, ale możliwe że nie udałoby nam się zdążyć z wykonaniem zadania na czas.

Także po to mamy szare komórki by wybrać co jest lepsze w damy czasie, zważając na wszelkie aspekty, by się nie potrzebnie nie “zakiwać”.

Niewykorzystywane ułatwienia nie związane informatyką

Takie same sposoby powinny być stosowane w innych aspektach życia. Ale oczywiście często nie są. Ludzie w większym czy mniejszym stopniu dążą do optymalizacji, ale nie mniej większość ludzi nie zdaje sobie sprawy z zalet optymalizacji swoich działań. Ma to związek z nieprzyszłościowego podejścia do zagadnień, a czasem zwykłym oczekiwaniem, że ktoś inny rozwiąże nasze problemy (co jest jakimś rozwiązaniem). Czasem małe czynności na początku miesiąca, mogą się przyczynić do dużych oszczędności nerwów i czasu pod koniec miesiąca.

Podsumowanie

W życiu (o ile nie mamy takiej ideologii) powinniśmy jak najbardziej ułatwiać sobie (i innym)  życie, uczyć się jak zrobić więcej, pracując mniej i mając przy tym więcej przyjemności, satysfakcji, a często pieniędzy.

Optymalizujmy nasze działania i programy, ulepszajmy nas samych, ułatwiajmy nasze życie i życie innych ludzi.

100 pomysłów na sekundę

Czwartek, 18.02.2010

Można w końcu chwilę odsapnąć po morderczym i wycięczającym okresie, także bogatym w wiele zagwostek i problemów programistycznych, ale głównie nasączonym jak gąbka problemami z zakresu studiów, dziwnych zbiegów okoliczności i polityki władz uczelni.

W końcu można powrócić do programowania w językach w jakich lubi się i chce się programować.

Ostatnio było mi dane zaznajomić się z C# wraz z IDE (zintegrowane środowisko programistyczn) “Microsoft Visual C# 2008 Express Edition” , po wcześniejszej Java-ie wraz z IDE “NetBeans”. Zarówno jeden zestaw jak i dróg był ciekawym doświadczeniem, lecz niestety długie przerwy (dzięki kochanej uczelni, pracy dypl. i obowiązkach zawodowych) w korzystaniu z nich uniemożliwiły zaznajomienie się w większym stopniu i zadomowienie się matni tych dwóch podobnych do siebie języków programowania.

Jako że, ostatnie parę dni, były wybitnie wyluzowane i wszechobecny stres (mimo usilnych starań jego zwalczania) zaczął odchodzić w niepamięć, oczywiście (jak to zawsze u mnie) otworzyła się głowa pełna pomysłów (nie tylko programistycznych). 100 pomysłów na sekundę, których na (nie)szczęście nie zapisuje.

Język GoogleGo

Logo Google Go

Jednym z takich pomysłów było, po przeczytaniu artykułu “Ranking Tiobe: Google Go już popularniejszy od ActionScriptu i Pascala” na webhosting.pl i rankingu na jakim się opierał, zaznajomienie się z jednym z nowych języków, który dość szybko pnie się w górę rankingu czyli Google Go.

Na stronie projektu http://golang.org/ bardzo oczywiście bardzo zachwalają nowy twór.
Od razu na stronie głównej wypunktowane są zalety języka GO:

  • prostota
  • szybkość
  • bezpieczeństwo
  • możliwość równoległej pracy na kodzie
  • daje przyjemność tworzenia kodu
  • open source

Dość skrupulatnie obejrzałem godzinną prezentację na YouTube The Go Programming Language i poszperałem trochę w necie i nie wiele wiem.

Ale zapowiada się ciekawie o ile tylko nadaje się nie tylko do pisania serwerów ;P.

Nie cierpię fuszerki

Czwartek, 29.10.2009

Jak to jest, że niektóre firmy informatyczne są w stanie odstawiać takie fuszerki.

No dobra, w tej chwili jestem na ostatniej prostej by skończyć studia informatyczne, nie pracuję w zawodzie, ale na stacji benzynowej.
No ale jestem już po części informatykiem. Jak wiadomo

informatyk = ciekawość

No to się szpera tu i tam, by zobaczyć jak to jest zrobione i w ogóle. Ogólnie kiepawo im to wyszło. Mnie się nasuwają lepsze prace dyplomowe, a nie wytwór jakiegoś firmowego zespołu informatycznego.

Bo jak przez naciśnięcie jednego przycisku, który ma notabene etykietę pokroju btnSprawdzTo, czyli nazwę obiektu button, a nie etykietę jaka faktycznie powinna być do niego przypisana.

Ale to nie koniec zabawy, przyciśnięcie tego przycisku sprawia, że zmienia się znak wartości wyświetlanej w pewnym raporcie czytanym przez Centralę i nagle wychodzi, że marża jest taka sama, tyle, że ze znakiem ujemnym ;). Lekka masakra. Przycisk zmieniający pewną nie znaną wartość, a w zasadzie jej znak, oczywiście jaka to wartość jest niespodzianką dla użytkownika :D. Coś pięknego…

O takich kwiatkach jak częste wieszanie się systemu, różne dziwne błędy i komunikaty,  możliwość zniknięcia benzyny zatankowanej z systemu. Brak też zwykłych ułatwień dla pracownika, część jest trochę mniej toporna niż poprzedni system na poprzedniej stacji benzynowej na jakiej pracowałem, a część toporna tak jak już wspomniane dzieło trochę bardziej niż przeciętnego grona studentów, robiących dla frajdy systemy komputerowe.

Podsumowując powiem jak nasz były Prezydent RP

Przyszli informatycy NIE IDŹCIE TĄ DROGĄ, NIE IDŹCIE TĄ DROGĄ… ;)