TechLife devBlog

Kwiecień 2009

Studia - podsumowanie

Inne 24 kwietnia 2009 22:55

Dzisiejszego ranka udało mi się przedwcześnie obronić swoją pracę magisterską i tym samy zakończyć 5-letni proces studiowania na Politechnice Opolskiej. W tym wpisie postaram się zawrzeć moje krótkie przemyślenia na temat studiów, z którego wyłoni się krótkie HOWTO studiowania na kierunkach informatycznych ;-)

Wybierz uczelnię

Pierwsze pytanie brzmi: idę na studia żeby się czegoś nauczyć czy pożyć życiem studenckim? Jeżeli chcesz się zabawić wyjedź gdzieś do dużego miasta typu Wrocław, Kraków czy Poznań, gdzie o każdej porze znajdzie się jakiś otwarty klub i ludzie chętni na imprezę. Jeżeli natomiast chcesz się czegoś nauczyć idź tam gdzie jest Ci najbliżej aby oszczędzić sobie uroków życia w akademiku czy na stancji. Nie trzeba będzie zastanawiać się co jutro zjesz na kolację, za co opłacisz akademik czy skąd weźmiesz czystą bieliznę ;-) Dzięki temu zdobędziesz mnóstwo czasu do zagospodarowania pomiędzy studia i swoje zainteresowania (a do klubu też można zawsze wyskoczyć).

Nie ucz się

Nie ucz się wszystkiego co Ci każą. W większości są to oderwane od rzeczywistości bzdury, rzeczy mniej lub bardziej przedawnione lub informacje, które po prostu leżą poza twoim kręgiem zainteresować. Najlepiej już na początku studiów wytyczyć sobie kierunek w jakim chcemy się rozwijać i drążyć go do końca. Trzeba powiedzieć sobie chcę być grafikiem, programistą C++, webmasterem czy specjalistą od sztucznej inteligencji. Studia potraktować trzeba jako 5-letni przegląd rzeczy, którymi zajmuję się informatyka. Uczenie się wszystkiego nie ma sensu, specjalistą od wszystkiego nie będziesz. Ważne jest natomiast poznanie wszystkich obszarów informatyki razem z narzędziami jakimi się posługują, aby w razie czego wiedzieć, w którym kierunku po wiedzę sięgnąć i co z czym się je. Po ukierunkowaniu się na daną dziedzinę wystarczy jedynie z tego 5-letniego przeglądu informatyki wyłapywać narzędzia i techniki powiązane z obszarem naszych zainteresować i przyjrzeć się im z bliska.

Nikt Cię niczego nie nauczy

Nie można zakładać, że ktoś na studiach nas czegoś nauczy. Studia w tej chwili są tak powszechne jak komunikacja miejska. Uczenie mas to uczenie wszystkich czyli nikogo. Jeżeli sam się czegoś nie nauczysz to nikt za ciebie tego nie zrobi. Nie chodzi mi jedynie o uczenie się rzeczy objętych programem nauczania. Większości rzeczy tak naprawdę przydatnych w pracy nikt nam na studiach nie pokaże. Nie liczcie na to, że ktoś wam opowie jak dobrze skonfigurować Linuksa, zbudować stronę używając Django czy nauczy używać narzędzi kontroli wersji. Dlatego ważne jest olanie mniej ważnych rzeczy aby mieć czas zagłębić się w inne, czyli te rzeczywiście przydatne.

Zakręć się

Zakręć się w jakimś informatycznym kole naukowym czy innym LUG-u. Nawet jeżeli nie będzie to coś bardzo interesującego to zdobędziesz nowe kontakty, które prędzej czy później zaowocują jakimś zleceniem, fajną praktyką czy może nawet ofertą pracy. Dodatkowo na pewno znajdziesz tam osoby, od których będziesz mógł się nauczyć wielu ciekawych rzeczy.

Nie zbieraj ocen, pracuj

Olej wszelkie średnie. Nie szykuj się na stypendium. Dobra średnia wymaga uczenia się bzdurnych i nieprzydatnych rzeczy a czasami i to nie wystarcza bo akurat egzaminator miał zły dzień. Jeżeli oceny olejesz już na początku studiów zyskasz czas na uczenie się przydatnych rzeczy no i zaoszczędzisz sobie mnóstwo nerwów (a kto wie ile to lat życia dłużej). Ucz się przedmiotów, które leżą w obrębie Twoich zainteresowań. Tu staraj się o jak najlepszą ocenę, ale wyłącznie jako miernik swojego poziomu wiedzy, bo i tutaj może się zdarzyć, że przedmiot prowadzi ktoś kto dość często ma złe dni lub po prostu sam nie zna się na tym co wykłada (prowadzący z łapanki). Czas zaoszczędzony na zaliczeniu po najmniejszej linii oporu nieprzydatnych przedmiotów przeznacz na własne projekty lub komercyjne zlecenia. Wykonuj jak najwięcej takich projektów/zleceń czasami nawet za pół darmo czy wręcz za darmo. Na chwilę obecną nie jest to ważne póki masz co jeść i dach nad głową. Zaprocentuje to jednak po skończeniu studiów bo zamiast chwalić się piątką z inżynierii oprogramowania pochwalisz się projektem X, zleceniem Y, czy pracą w firmie Z. Nikogo wówczas nie będzie obchodziło ile kasy z tego wyciągnąłeś ale wyłącznie ile doświadczenia z tego wyniosłeś. Często będzie też tak że projekt A wykonany za darmo za rok otworzy nam drogę do projektu B wykonanego za małe pieniądze a ten za pół roku da nam wejście do projektu C, za który dostaniemy już dobre wynagrodzenie (dalej już z górki).

To by chyba było na tyle moich złotych myśli. Jak coś jeszcze mi się przypomni to zedytuję. Teraz czas na odpoczynek bo jutro pierwszy dzień reszty mojego życia :-)

Pacnet API czyli gPacnet

Linux, ArchLinux, Projekty, Pacnet 10 kwietnia 2009 17:22

Przerzuciłem właśnie stare API na Django. Nie obyło się bez małych zmian. Zrezygnowałem z wyboru formatów text/json/xml i zostawiłem wyłącznie JSON-a. Z formatami jednak za dużo jest zabawy, bo co prawda Django samo potrafi przerzucić QuerySet do XML-a czy JSON-a jednak robi to strasznie dziwnie, ponieważ do wyjściowego formatu dokłada takie rzeczy jak klucz obiektu czy nazwę modelu z jakiego pochodzi. Nie bardzo wiem komu takie coś jest potrzebne no a wywalić nie ma jak. O czym mówię? Weźmy np. listę kategorii.

def api_categories(request):
data = Category.objects.all().order_by('name')
json = serializers.serialize("json", data)
return HttpResponse(json, mimetype="text/javascript")

Logiczne wydawałoby się, że na wyjściu zobaczymy:

[
{"name": "No"}, 
{"name": "app-accessibility"},
...
]

Ale pojawia się:

[
{"pk": 107, "model": "packages.category", "fields": {"name": "No"}}, 
{"pk": 1, "model": "packages.category", "fields": {"name": "app-accessibility"}},
...
]

I po co to komu?

Wracając do Pacnetu… Przy okazji wdrożenia API odgrzebałem moje nieudolne próby napisania menadżera pakietów (Python+PyGTK) operującego na API Pacnetu.

code.google.com/p/gpacnet/

Podstawowa funkcjonalność, czyli przeglądanie i instalowanie pakietów podzielonych wg. kategorii działa. Więcej na chwilę obecną (np. wyświetlenia screenów) nie potrafię :-P Jednak systemowe GUI pozostają daleko w tyle za łatwością elastycznością HTML-a. Instalacja pakietów odbywa się przez wywołanie Terminala z odpowiednią komendą, więc jeżeli nie macie Terminala trzeba zastąpić go jakimś innym emulatorem konsoli.

Gdyby ktoś chciał napisać coś takiego pod QT lub cokolwiek lepszego dla GTK to serdecznie zapraszam. API stoi otworem.

pacnet.karbownicki.com/api/