Niniejszy temat, w nieco innej formie, znajdował się na starym forum, natomiast brakuje go na obecnym. Trzeba przy tym zauważyć, że na starym forum był on dość mało popularny i chyba nie przedstawiał osobistych doświadczeń żadnej osoby, o co zresztą trudno go winić – mało osób wytrzymuje ze SPOJem dłużej niż kilka(naście) pierwszych zadań.
Oczywiście mój osąd jest wysoce nieobiektywny, ale czyj jest obiektywny? Jeżeli ktoś się ze mną nie zgadza – proszę bardzo i czekam na stosowny koreferat. Jestem święcie przekonany, że jego lektura będzie pomocna wszystkim użytkownikom forum, którzy mają w zwyczaju czytać posty 
W ramach wprowadzenia: na SPOJu działam od około 3 lat. Moje zainteresowania zawsze były dalekie od branży IT, a profil biol-chem w liceum i studia inżynierskie z zakresu technologii chemicznej (Wydział Energetyki i Paliw, AGH) zapewne o czymś świadczą. Oczywiście o sobie mógłbym mówić więcej, ale nie o tym ma być ten post – w każdym razie nie jestem typowym nerdem siedzącym w kodzie od rana do nocy nie licząc przerw na gry komputerowe, a moje zainteresowania – powtórzę - były zawsze dalekie od branży IT. Ba! Im więcej mam do czynienia z komputerami tym chętniej ich unikam na rzecz klasycznych i sprawdzonych metod takich jak kartki i długopisy w miejsce pakietów biurowych albo drukowanie i ręczne wypełnianie PITów w miejsce e-Deklaracji. Komputery traktuję jako (przykrą?) konieczność i (niestety?) przyszłość. Według mnie dużo ciekawsze są m. in. mikroskopy, teleskopy i ogólnie nauki ścisłe atechnologiczne, a zwłaszcza biologia i (ewentualnie) chemia. Nie popadam jednak w fanatyzm i nie zamierzam skończyć jako epigon nauki (czy czegokolwiek innego) w wersji sprzed stulecia – jeżeli komputery to przyszłość i konieczność, a obecnie nikt tego nie ukrywa i prawie każdy ma komputer(y) w domu, czemu by się z tymi ustrojstwami nie zapoznać?
Pod koniec pierwszego semestru zajmowałem się problemem Collatza (zagadnienia teoretyczne zawsze były dla mnie ciekawsze niż praktyczne), gdzie szybkie wykonywanie mnożeń i dzieleń jest bardzo cenne. Mając z tym problem stanąłem przed wyborem: albo użyję arkusza kalkulacyjnego, albo napiszę odpowiedni program komputerowy. Intuicja podpowiadała mi, że drugi wybór jest lepszy więc nie mając wielkiej wiedzy na ten temat wyszukałem w sieci informacje o programowaniu w C++. Trafiłem na kurs Mirosława Zelenta na YT, od którego zacząłem zajmować się programowaniem i ogólnie oswajać z technologią. W jednym odcinku kursu Mirosław Zelent wspomniał o SPOJu… i potem wszystko jakoś samo się potoczyło.
Ponieważ wiele osób ma różne pytania i wątpliwości dotyczące nauki sztuki kodowania i jej znaczenia w życiu, poniżej próbuję na nie odpowiedzieć. Listę pytań utworzyłem na podstawie moich doświadczeń na SPOJu i nie tylko. Moje odpowiedzi są oparte wyłącznie na moich własnych odczuciach i z tego powodu proszę nie traktować ich jako prawd objawionych. Kolejność pytań jest prawie randomowa.
Gdzie, poza światem IT, przydaje się umiejętność programowania?
Wszędzie. Programowanie i związane z tą sztuką umiejętności są bardzo cenne w dowolnej dziedzinie życia i mogą być przydatne w najmniej spodziewanych sytuacjach. Umiejętność programowania przydaje się oczywiście w nauce (Stellarium, PyMOL, GNU Octave, MATLAB, LabVIEW, …), technice i technologii (oprogramowanie typu CAD), zarządzaniu (SAP Business One, ogólnie oprogramowanie ERP tudzież WMS), a nawet w codziennym życiu (pisanie modów, modyfikowanie funkcjonalności gry, szybkie radzenie sobie z zadaniami wymagającymi np. szybkiego klepania tekstu na komputerze, walka z wirusami, …).
Jaki język polecasz na start?
Nie mam zdania w tym temacie. Klasycznym wyborem jest C++, ale jest to język pod bardzo wieloma względami trudny i skomplikowany więc jego wybór może bardzo szybko kogoś zrazić. Mimo to trudno polecić mi cokolwiek innego ze względu na fakt, że materiały dostępne np. na temat Javy albo Pythona są mocno ograniczone.
Jak w kontekście Twoich studiów przydały się SPOJ oraz umiejętność programowania?
Praktycznie wcale. Powiem więcej – umiejętności te stanowiły przeszkodę w uzyskaniu tytułu inżyniera.
Temat jest dość trudny i nie chcę go zbytnio upraszczać. Nie chcę też rozprzestrzeniać jakiejś propagandy. Temat jakości współczesnych studiów był omawiany między innymi przez profesora Bogusława Wolniewicza (np. tu, ale też tu czy tu) albo profesora Jana Hartmana (chyba na swoim blogu profesor Hartman odwoływał się do wypowiedzi Wolniewicza dostępnej poprzez Głos Racjonalny, a ze względu na duże różnice w poglądach obu ludzi na tematy inne niż edukacja chciałem wstawić tu odpowiedni link, natomiast nie mogę znaleźć tej wypowiedzi Hartmana - ograniczę się do przypomnienia o kultowych baranach). Powiem krótko, że stagnacja i marazm kadry dydaktyczno-naukowej mojego wydziału były zatrważające, a liczba błędów merytorycznych popełnianych na zajęciach wołała o pomstę do nieba. Zapewne łatwo można się domyślić, jak kadra podchodziła do pomysłów typu „zróbmy symulację”, „praca w LaTeX” albo „a może jakiś skrypt, który zrobi to za nas?”. Jeżeli jednak ktoś się nie domyśla, podaję poprawne odpowiedzi: symulacje mieliśmy jedynie na poziomie przepisywania gotowców z Worda do ChemCADa na tylko jednym podrzędnym przedmiocie, LaTeX był zabroniony – głównie Word, ale nie brakowało przedmiotów, gdzie zakazane było używanie komputera do tworzenia np. sprawozdań i wszystko miało być ręcznie, włącznie z wykresami na papierze milimetrowym, zaś zamiast tworzyć skrypt do znalezienia optymalnego rozwiązania wklepywaliśmy losowo liczby do Excela, aż trafiliśmy na coś bliskiego oczekiwanemu optimum (o ile mogliśmy używać Excela na danym przedmiocie). Jeżeli ktoś mi nie wierzy – proszę iść i sprawdzić. Jeżeli ktoś to zrobi - proszę się przygotować na wykłady poświęcone pijaństwu pracowników, pytanie studentów na wykładzie przez prowadzącego o poglądy na temat chorych pomysłów partii rządzącej (pracownik tłumaczy, dlaczego PiS to zło, a potem pyta dziewczyny o ich zdanie na temat aborcji) albo inne ciekawe wydarzenia.
Czy polecam studia na AGH? Nie studiowałem wszystkiego, a jedynie technologię chemiczną na konkretnym wydziale. Dostanie się na mój kierunek wymagało mniej punktów z matury niż dostanie się na kulturoznawstwo (progi punktowe). O wydziale trudno powiedzieć coś dobrego, o perspektywach zawodowych po studiach tym bardziej, ale czy jest to rzeczywiście dno względem innych kierunków i wydziałów? Szczerze mówiąc wydaje mi się, że przeciwnie – poziom był wysoce powyżej przeciętnej. Jest to jednak jedynie moja opinia i nie potrafię jej udowodnić. Jeżeli to jakiś argument, co nico o wydarzeniach na innych uczelniach wiem od znajomych.
Należy mieć świadomość, że umiejętność tworzenia cudów-niewidów w technologii X niekoniecznie zostanie doceniona w czasie studiów, a nawet studia często będą przeszkodą w nauce technologii X i vice versa. Choć szczerze przyznam, że mi udało się zrealizować wszystkie plany związane ze stypendiami i nie przeszkodziło mi to szczególnie w nauce we własnym zakresie, a także samoedukacja nie pozbawiła mnie „inż.” przed nazwiskiem więc także nie należy przesadzać z tymi zuymi studiami 
Po prostu live is brutal – nie należy oczekiwać, że na wieść o ogarnianiu podłych urządzeń o nazwie komputery pracodawca bądź promotor rzucą się do kolan.
Jak wygląda kwestia zarobków w branży IT?
Z tego co zaobserwowałem, temat zarobków w IT najbardziej elektryzuje ludzi. Skądinąd zauważyłem, że najbardziej elektryzuje ludzi, którzy kompletnie nie nadają się do pracy z komputerem.
Poprzednią odpowiedź potraktuję jako punkt wyjścia. Proszę zapamiętać, że IT to nie jest jakieś Eldorado. Choć często spotykałem się z takim podejściem, wcale nie jest tak, że osoba mogąca wykorzystać zdobycze technologii na własny użytek dostaje piątki na studiach, doktorat ma w garści, a pracodawcy będą się o nią bili. Nie jest też tak, że osoba pisząca w Javie zarabia 10 000 zł miesięcznie na start, a w C++ - 8 000 zł miesięcznie na start i życie jest piękne. Praca w IT to praca jak każda inna. Też trzeba używać wulgaryzmów aby wyrazić swoją opinię na temat projektu/szefostwa/sensowności pewnych rozwiązań, też trzeba coś w pracy robić i też trzeba tej pracy poszukać. Spróbujcie np. znaleźć ofertę jeżeli specjalizujecie się w przestarzałej technologii, albo jesteście specjalistami od COBOLa. Życzę powodzenia. Podobnie w przypadku znawców BASICa, Pascala czy (tym razem nie staroć, ale coś bardzo specyficznego i niszowego) baz danych programowanych w logice. Wcale nie jest tak, że w każdym miejscu na świecie ludzie biją się o wszelkiej maści programistów. Podobnie jest ze wszystkimi innymi osobami pracującymi w mniej lub bardziej czystej branży IT, np. adminami, testerami itd.
Proszę też nie traktować informatyki jako gwarancji zatrudnienia i stabilnej przyszłości – moja ciotka została po informatyce… przedszkolanką 
Faktem jest jednak, że zarobki w IT są nieporównywalnie duże względem ogółu zawodów. Oczywiście w IT możliwie szeroko rozumianym – umiejętność wykorzystania pakietu biurowego to już często gwarancja zatrudnienia i zarobków przekraczających 2 500 zł miesięcznie, a umiejętność wykorzystania zaawansowanego oprogramowania przeznaczonego dla wąskiej grupy specjalistów (np. oprogramowanie typu ChemCAD, Aspen Plus, programy ANSYS) pozwala wybić się na 5 000 zł. Kwoty podaję dla sprawdzonych przeze mnie ofert w Krakowie i pozwolę sobie zauważyć, że nie jest to stricte IT i na ogół nie mówimy o jakimkolwiek programowaniu przekraczającym podstawy podstaw w np. VBA.
Warto dodać, że “wbudowane” w część programów proste wiersze poleceń są bardzo przydatne w pracy, ale to wciąż dalekie od programowania sensu stricto.
W czystym IT (programowanie, adminowanie itp.) zarobki zależą od bardzo wielu rzeczy, ale faktycznie 5 000 zł po dwóch latach często jest pewne, zaś wielu osiąga do 3 razy więcej mając dwa lata stażu. Generalnie to ile ktoś zarabia zależy od aktualnej wartości rynkowej jego pracy, a ta jest zmienna.
W swoim życiu nieszczególnie zajmowałem się technologią, ukończyłem X ze specjalizacją Y. Od pewnego czasu podobają mi się jednak komputery – umiem już używać Worda, a nawet wyświetliłem Hello World! Czy jest dla mnie nadzieja w branży IT? W jaki sposób mam pokierować moje życie, aby pracować na stanowisku Z?
Na pytanie pierwsze odpowiedź jest prawie zawsze twierdząca. Jeżeli ktoś „czuje” komputer to nie będzie miał problemu ze znalezieniem jakiejkolwiek pracy związanej z jego obsługą. Nie ma jednak żadnej konkretnej recepty dla stanowiska Z. Każdy człowiek ma inne doświadczenia, dysponuje różną ilością czasu i w innym tempie przyswaja wiedzę. Porady o tym jak zacząć (albo jak nie zaczynać by się nie sparzyć) są dostępne w sieci i dalej sam coś o ty napiszę, natomiast znalezienie właściwej ścieżki dla siebie jest czymś, co wykracza poza nauki ścisłe – jedni kończą studia, inni technikum, jeszcze inni kursy, dużo osób kształci się samemu, niektórzy mają dobrze postawionych rodziców, …
Czy na stanowisku X przyda się znajomość obsługi komputera na poziomie wyższym niż Y?
Tu znowu bywa różnie i ciężko udzielić odpowiedzi. Spotkałem się z prawnikami i filozofami, którzy dla ogólnej wiedzy używali LaTeX, choć znajomość pakietu biurowego to prawie wszystko, czego potrzebuje wielu prawników i filozofów. Tylko Ty możesz odpowiedzieć na pytanie, czy np. sekretarka skorzysta na umiejętności używania Ubuntu, a nie tylko Windowsa.
Jakie cechy są niezbędne, aby mieć szansę w IT?
Najogólniej rzecz ujmując technologie informacyjne są to technologie związane z przetwarzaniem informacji. Według mnie, aby tworzyć i wykorzystywać już istniejącą technologię związaną z przetwarzaniem informacji należy:
- wykazywać się wysoką cierpliwością i nie poddawać się nawet po n-tej porażce (na samym SPOJu w jednym zadaniu potrafiłem ich mieć kilkadziesiąt, a to tylko SPOJ)
- umieć jasno definiować cele (np. precyzyjnie opisywać oczekiwane działanie różnych systemów, programów, …) i drogę, która umożliwi ich osiągnięcie
- wykazywać się umiejętnością logicznego myślenia. Temat rozwinę, bo tutaj najczęściej jest pies pogrzebany. Problemy konceptualne mogą dotyczyć wyboru optymalnej topologii sieci / drukarki / języka programowania pod względem finansowym i czasowym albo sposobu tworzenia dokumentacji, aby klient skakał z radości na jej widok. Natomiast NIGDY nie mogą dotyczyć logiki. Jeżeli masz problem z analizą warunków logicznych, np. kultowa zagadka Einsteina jest dla Ciebie nie do przejścia albo zaprzeczenie implikacji to dla Ciebie czarna magia – przykro mi, ale nie masz najmniejszych szans w IT. Powtarzając za jednym z prowadzących z czasów studenckich – nie warto uczyć się matematyki, jeżeli nie jest się w stanie zrozumieć jej na poziomie umożliwiającym modelowanie jakiegoś zjawiska. Osoba mająca problem z przetwarzaniem prostych struktur logicznych najzwyczajniej wyłoży się, gdy będzie trzeba zrobić coś, czego nie da się nauczyć na pamięć. Wyłoży się zatem w każdej sytuacji związanej z programowaniem, administrowaniem itd., w większości związanych z zawodowym zastosowaniem pakietu biurowego i ogólnie będzie z nią krucho. Komputery nie są dla wszystkich i nie należy próbować tworzyć cudów, jeżeli ma się problemy już z podstawami. Analogicznie ma się sytuacja z matematyką – jeżeli dodawanie ułamków zwykłych jest dla kogoś czarną magią, niech nie wybija się jako matematyk, księgowy, statystyk itd. Oczywiście tak jak dodawanie ułamków nie jest niezbędne by wybijać się w handlu tak samo alternatywy i koniunkcje nie są niezbędne, by napisać krótki raport. Należy jednak mieć świadomość swoich ograniczeń.
W tym temacie rzucę kultową wypowiedź znanego fizyka, którą przekopiowałem z książki “Feynman radzi. Feynmana wykłady z fizyki”. Jest to część porady, jaką Feynman udziela (naj)słabszym studentom, dla których przerabiany materiał jest wręcz nie do przejścia. Zacytowany fragment odnosi się do tych studentów, którzy pomimo dużych trudności w nauce nie potrafią się pogodzić z posiadaniem pewnych ograniczeń (mimo tego, że być może w innych dziedzinach są fenomenalni, a także mimo faktu, iż fizyka to nie wszystko) i chcą za wszelką cenę być najlepszymi, najwybitniejszymi, najlepiej wykształconymi, najlepiej zarabiającymi, …
On the other hand you can make a mistake: some people may drive them selves to a point where they insist they have to become Number One, and in spite of everything they want to go to graduate school and they want to become the best Ph.D. in the best school, even though they’re starting out at the bottom of the class here. Well, they are likely to be disappointed and to make themselves miserable for the rest of their lives being always at the bottom of a very first-rate group, because they picked that group. That’s a problem, and that’s up to you - it depends on your personality. (Remember, I’m talking to the guy who came into my office because he’s in the lowest tenth; I’m not talking to the other fellows who are happy because they happen to be in the upper tenth - that’s a minority anyway!
W czasie kopiowania z pdfa natrafiłem na pewne drobne trudności, ale wypowiedź powinna być zrozumiała. Przy okazji stanowi mały test znajomości inglisza. Nie rozumiesz tekstu? Nie myśl póki co o programowaniu i doucz się języka 
Jak bardzo w pracy programisty przydają się SPOJ i konkretne, klasyczne algorytmy?
Według moich doświadczeń… praktycznie wcale. W XXI wieku większość złożonych i prostych algorytmów została już włożona do całej rzeszy bibliotek. Obecnie rynek pracy stawia na znajomość technologii (jak zrobić X w Y), a nie na znajomość algorytmów typu KMP. Widać to zresztą już na etapie rozmów kwalifikacyjnych – najczęściej zadania algorytmiczne dotyczą czegoś trywialnego – napisz kod, który posortuje coś w optymalnym czasie (na ogół takie sortowanie można zrobić w O(n)), napisz kod, który wypisze potęgi liczby 2 od 1024 do 1 itd. W Motoroli kod miałem zapisywać na kartkach (oraz zostałem zapytany, co to w ogóle jest SPOJ
).
Pytania teoretyczne również są całkiem proste i nigdy nie polegają na zapisywaniu kolejnych kroków złożonego algorytmu. Raczej coś typu „quicksort vs bąbelki – co jest lepsze i dlaczego oraz jak to plus minus działa”. Za hardcore uznaję zadanie typu „uzasadnić na rysunku, że wyszukiwanie w drzewie może wykonywać się w czasie O(n) oraz podać cechę drzewa, która związana jest ze skróceniem tego czasu do O(logn), a także podać podstawę tego logarytmu i wyjaśnić, dlaczego nie ma jej w zapisie O(logn)”.
Zdarzają się pytania, które luźno powiązane są z algorytmiką, np. jak w C++ zaimplementować stos na mapie, o ile w ogóle jest to możliwe.
Z algorytmiką na ogół związanych jest kilka pytań na rozmowie kwalifikacyjnej, a cała reszta dotyczy technologii – czy ten kod się skompiluje, jak działa funkcjonalność X, czy można coś zapisać lepiej, jakby Pan zrobił Y, … . Błądząc po rynku pracy odniosłem wrażenie, że łatwiej zostać programistą mając nijakie pojęcie o algorytmach i duże doświadczenie w tworzeniu konkretnych projektów niż będąc mistrzem algorytmów wszelakich, ale bez doświadczenia w kodzeniu czegoś większego. Uwaga ta dotyczy nie tylko programowania, ale całej szeroko pojmowanej branży IT – proszę nie spodziewać się pytań o algorytmy pozwalające analizować reaktor przepływowy, ale już pytanie o sposób przeprowadzenia takiej analizy w jakimś programie komputerowym jest wysoce prawdopodobne. Także wyprowadzenie równań Naviera-Stokesa, a następnie dostosowanie ich do analizy ruchu spalin o danych parametrach pozwalających na dokonanie X uproszczeń nie będzie tematem rozmowy kwalifikacyjnej. Natomiast pytanie o sposób wykonania symulacji ruchu spalin w jakimś programie jak najbardziej może się trafić.
Jak bardzo przydatne są konkursy algorytmiczne?
Abstrahując od samorozwojów wszelakich – są brane pod uwagę w czasie rekrutacji i mogą być cennym atutem. Dotyczy to jednak wyłącznie sytuacji, gdy ktoś zajmuje jakieś sensowne miejsca w tych konkursach. Sukces pod tytułem „wystartowałem i nawet zrobiłem jedno z 20 zadań” nie jest czymś, czym powinno się chwalić chcąc na poważnie robić coś w IT.
Nie spotkałem się z jakimkolwiek zainteresowaniem konkursami algorytmicznymi poza środowiskami programistycznymi. Według moich obserwacji konkursy algorytmiczne nie są istotne dla wszelkiej maści hal fabrycznych i laboratoriów, środowisk mgr inż. itd. Natomiast wśród samych programistów zainteresowanie algorytmiką sprowadza się do pisania programów komputerowych realizujących określone funkcjonalności w rozsądnym czasie – żadnej magii, abstrakcji, teorematów, wysublimowanych metod, rachunków lambda etc. Konkurs algorytmiczny musi zatem dotyczyć implementacji algorytmów (i to we współczesnych językach programowania!), a nie np. dowodzenia własności algorytmów w ramach jakiegoś uczelnianego konkursiku.
Nie zalecam przeceniać wartości olimpiad (read it).
Co bardziej liczy się w IT: teoria czy praktyka?
Praktyka >> teoria.
Jaką wartość w branży IT mają wszelkiej maści certyfikaty i papiery potwierdzające ukończenie kursów / szkoleń / studiów?
Podobną, jak np. w branży biotechnologicznej czy każdej innej
Chyba mogę polecić pewną wypowiedź, a nawet dwie.
Czy i dlaczego (nie) polecasz branży IT?
Każda praca ma swoje cechy, które dla jednych są wadami, a dla innych – zaletami. Zaobserwowałem, że w IT pracują ponadprzeciętnie sensowni ludzie – w biol-chemach wszelakich nie spotkałem osób o tak szerokiej wiedzy czy inteligencji pozwalającej trzaskać problemy, które dla wielu ludzi są nie do pomyślenia. W IT zarobki są także znacznie wyższe niż w innych branżach – nawet składanie i sprzedawanie komputerów jest według moich obserwacji bardziej opłacalne niż składanie i sprzedawanie np. zabawek. Czy to się komuś podoba czy nie, programować trzeba coraz więcej rzeczy – nawet samochody i tostery. Jednocześnie kodowane na coraz wyższym poziomie są np. roboty i inne urządzenia, które sprawiają, że np. analiza gazu wymagająca niegdyś wielu ludzi i mnóstwa pieniędzy, jest obecnie przeprowadzana w parę chwil przez jedną osobę, która nawet nie musi mieć wielkiej wiedzy na temat istoty wykonywanego pomiaru. Zakup sprzętu także szybko się zwraca. Zapotrzebowanie na programistów implikuje zapotrzebowanie na pentesterów, osoby biegłe w obsłudze danych programów komputerowych, adminów, sprzętowców etc. W efekcie IT ma przyszłość w przeciwieństwie do wielu innych branż, np. związanych z górnictwem węgla kamiennego i brunatnego.
Osobiście nie polecam jednak IT ze względu na powyższe kwestie, które jednak mogą być dla kogoś istotne. Polecam IT ze względu na fakt, że branża ta daje mnóstwo rozrywek intelektualnych. Tu coś trzeba zaprogramować, tu odkryć, dlaczego coś nie działa, tu siebie bądź kogoś czegoś douczyć, tu komuś coś pokazać, tu wybrać sensowny sprzęt, tu podpiąć jakieś kable, tu pobawić się w hackera, … . W mojej opinii wyłącznie praca w IT daje tak dużo możliwości, a nawet całych gotowych ścieżek rozwoju intelektualnego. Nie spotkałem się z czymś takim nigdzie indziej, np. w inżynierii bardzo często wszystko kończy się na żmudnym żonglowaniu wzorami czy gotowymi algorytmami, np. istnieją konkretne standaryzowane metody poboru i analizy próbek albo konkretne równania empiryczne pozwalające coś tam policzyć. W IT tego nie ma – są jakieś wzorce, ale ich zastosowanie jest twórcze, a nie odtwórcze – za każdym razem trzeba nad tym myśleć, a nie podstawiać inne wartości do wzorów. Także w pracy naukowej wiele zagadnień ostatecznie kończy się na żmudnym siedzeniu w laboratorium i np. jak to było w moim przypadku – wałkowaniu i przesiewaniu próbek gleby. Dość podobnie jest w medycynie czy naukach humanistycznych.
Za wadę IT uważam wybitny nacisk na specjalizacje, o którym wspominał już Allan Bloom w swojej kultowej książce „Umysł zamknięty”. Specjalizacja, o ile ktoś znajdzie pracę w swoim fachu, gwarantuje dochody o jakich niektórzy ludzie mogą tylko pomarzyć. Problem polega na tym, że jest to – co uzasadnia wspomniany profesor, ja ograniczę się do faktografii – iście diabelski pakt, w ramach którego gwarancję wysokich dochodów i zatrudnienia otrzymuje się w zamian za upośledzenie intelektualne i społeczne widoczne w prawie każdym obszarze życia. W świecie IT można też spotkać dość wiele osób przekonanych o swojej wyższości, ale to chyba wszędzie. Poza tym IT sprzyja tak zwanej nerdyzacji, ale jeżeli ktoś umie unikać takich ludzi, będzie fajnie 
W życiu poświęciłem się realizacji pięknych idei i zapomniałem, że trzeba z czegoś żyć. Czy kapitalistyczne świnie typu Microsoft albo jakakolwiek inna forma intelektualnej prostytucji w branży IT mogą być dla mnie jakimś wyjściem?
O ile godzi się to z Twoją wizją świata i spełniasz inne warunki (część z nich przedstawiłem w tym poście), czemu nie?
Załóżmy, że poświęciłeś się tworzeniu (jedynej prawdziwej i wartej uwagi) książki o matematyce dla dzieci i to właśnie jest Twoja piękna idée fixe. To niewątpliwie cudowne opus vitae tworzyłeś w jakimś edytorze WYSIWYG. Otóż praca w branży IT może Ci pomóc w walce o Twoje ideały! Przykładowo umiejętności, jakie nabędziesz w pracy mogą przyczynić się do poznania przez Ciebie zupełnie nowych technologii, np. nauczysz się pracować z dokumentacją w takim stopniu, że LaTeX będzie dla Ciebie naturalnym wyborem! W efekcie rozwiniesz się intelektualnie, zdobędziesz nowe umiejętności, może nawet zmienisz swoje ideały, a z całą pewnością obniżysz koszty pracy nad książką, czas pracy i poprawisz jej jakość 
Co najbardziej interesuje pracodawców w branży IT?
Truizm: praktyka >> teoria. Poza tym znajomość technologii, chęć nauczenia się nowych rzeczy, chęć rozwoju, odpowiedni poziom intelektualny (np. powinieneś wiedzieć, jaki kąt tworzą wskazówki zegara kwadrans po trzeciej) itd. Dużo by mówić i myślę, że tak na dobrą sprawę nie ma o czym mówić – wszystko dostatecznie nakreśliłem już w tym poście, albo w łatwo dostępnych miejscach nakreślili to inni.
Jaka jest Twoja obecna sytuacja zawodowa?
Założyłem własną działalność gospodarczą. Mam jednego stałego klienta (ok. 9h dziennie), natomiast w najbliższym czasie będę chciał znaleźć kogoś jeszcze. Zajmuję się głównie tworzeniem dokumentacji do firmowych programów, nadzorowaniem działania tych programów (i siłą rzeczy pilnowaniem ludzi, którzy coś w tych programach chrzanią), a także w mniejszym stopniu tworzeniem procedur i algorytmów, programowaniem w Harbour oraz pracą z bazą danych PostgreSQL.
Ponieważ firma klienta nie jest szczególnie duża, z tych 9h dużo czasu mam tak naprawdę dla siebie. Czas ten inwestuję w naukę języków programowania, baz danych, Vima, a od pewnego czasu także sieci. Oczywiście priorytety w tej nauce mam różne, ale to raczej nieistotne w tym poście.
Dużym plusem działalności jest wyższa świadomość polityczno – księgowa, o ile oczywiście ktoś chce (a ja chcę) to ogarnąć i nie ucieka się do płacenia księgowej / używania programów komputerowych robiących większość roboty za niego. Można się dowiedzieć czym różni się ubezpieczenie społeczne od zdrowotnego, czym różni się VAT-7 od VAT-R, co to OOV, co to pomoc de minimis, czym różni się PIT-36 od PIT-36L, co to PUE, co to system rezerw cząstkowych, … . Plusem są też wyższe zarobki na start niż na ogół w branży IT, choć brak pieniędzy za urlopy (a właściwie brak urlopów) to równoważy. Wady chyba są wszystkim znane i często podawane w mediach więc co ja się będę powtarzał 
Jakie źródła wiedzy o programowaniu i ogólnie IT polecasz, a jakich nie?
Zacznij szukać tu. Przeszukaj też forum polskiego SPOJa. Źródła anglojęzyczne są zwykle lepsze niż polskojęzyczne. Jeżeli masz problemy z angielskim i nie rozumiesz co czytasz – zacznij od języka, a potem wróć do myślenia o IT. Zawsze staraj się korzystać z dokumentacji, a nie z samouczków (tutoriali). Jeżeli jesteś jeszcze młody i ogarniasz angielski – polecam zacząć od Khan Academy (koniecznie wersja english!). Rób projekty. Resztę poznasz w praktyce 
A teraz trzy istotne konkrety, z którymi sam się spotkałem.
Dzieła Grębosza dotyczące C++ polecam osobom takim jak ja, tzn. osobom, które muszą przestawić swoje myślenie na IT. Dla osoby zajmującej się czymś dalekim od IT myślenie o wskaźnikach i rekurencjach może być na początku trudne, a Jerzy Grębosz wprowadza ludzi łagodnie w tego rodzaju pojęcia. Jeżeli ktoś chce spróbować tych książek, niech najpierw zapozna się ze stroną autora. Osobom od początku ukierunkowanym na świat programowania albo mającym pojęcie o programowaniu odradzam na rzecz dokumentacji albo bardziej konkretnych pozycji książkowych.
Pasja Informatyki alias Mirosław Zelent to coś, od czego zaczynałem. Dawno temu, gdy istniały tylko pierwsze 3 filmiki o podstawach C++. Na szczęście szybko odkryłem, że autor chyba sam uczy się programowania a potem tworzy tutoriale o tym, czego się nauczył. Dzieła Mirosława Zelenta mogą się opłacić osobom naprawdę zielonym i takim osobom polecam pierwsze odcinki różnych kursów tego autora. Im dalej tym (niestety) gorzej. Więcej info tu. Przy okazji – w końcu chciało mi się znaleźć - pseudonauka czy filozofia Mirosława Zelenta.
No i na koniec SPOJ. Osobiście traktuję SPOJa tak, jak niektórzy ludzie traktują krzyżówki, sudoku albo szachy - super rozrywka intelektualna
Według mnie warto, ale jeżeli ktoś myśli o IT na poważnie - proszę pamiętać, że SPOJ przydaje się tylko w niektórych zawodach, a do tego w małym stopniu - trzeba robić coś poza nim!