Najlepszy programista F# w Polsce

Zgaduję, że jeszcze nikt w Polsce nie tytułuje się najlepszym programistą F#. Moje noworoczne postanowienie: nauczyć się języka F# od absolutnych podstaw oraz doprowadzić swoją wiedzę i praktyczne doświadczenie do stanu uzasadniającego posługiwanie się powyższym tytułem. Aha, zapomniałbym o czymś ważnym: prowadzić najbardziej poczytny i obsypany największą liczbą nagród blog na temat programowania w F#.

Oczywiście żartuję, ale tylko trochę.

Dlaczego akurat F#?

Na pewno w jednym z nadchodzących postów napiszę coś na temat zalet programowania w językach funkcyjnych, ale w chwili obecnej czuję, że liczba dokumentów na ten temat w zupełności zaspokaja potrzeby naszej planety w tym zakresie. Czuję się jednak zobowiązany uzasadnić, dlaczego chcę się nauczyć właśnie języka F# i dlaczego uważam, że będzie to pożyteczne dla mojej dalszej kariery i umiejętności.

F# jest językiem programowania, który łączy kilka paradygmatów: programowanie funkcyjne, imperatywne oraz obiektowe. Bardzo podoba mi się podejście, gdzie programista ma dużą swobodę w wyborze metody rozwiązania danego problemu. Kolejne zalety F#, według marketingowej broszury, to pełna integracja z CLR (czyli my wołamy klasy z .NET Framework lub spadkowy kod napisany w C# i vice versa) i Visual Studio (gdzie mamy do swojej dospozycji znany i lubiany mechanizm IntelliSense). Do nauki z pewnością przyda się interaktywne środowisko, w którym można wpisywać kod i natychmiast go wykonywać (REPL, czyli Read Eval Print Loop): uwalnia nas to od potrzeby uruchamiania kompilatora tylko po to, żeby przetestować jednowierszowy fragment kodu. F# to ciekawa propozycja ze strony Microsoftu: w pełni wspierany przez korporację praktyczny język programowania spoza głównego nurtu (za który uważam C#, Javę, Visual Basic, C++ a także w coraz większym stopniu Pythona i Rubiego).

Oprócz nieskończonych zalet samego języka, F# wydaje się mieć także praktyczne zastosowania. Sam Microsoft przyznaje się do stosowania F# a w Internecie można znaleźć zeznania osób, które stosowały F# do wizualizacji, obliczeń numerycznych, weryfikacji układów scalonych i programów, eksploracji danych oraz wyceny instrumentów finansowych (zostawiłem na koniec, bo to mój mały konik).

Starzy, mądrzy programiści (to Ci piszący już tylko książki...) twierdzą, że uczenie się nowych języków programowania, zwłaszcza bardzo różniących się od tych, których używaliśmy do tej pory, jest dobrym i sprawdzonym domowym sposobem na podniesienie swoich umiejętności. Postanowiłem zweryfikować, czy jest w tym chociaż trochę prawdy.

Jak zamierzam się uczyć?

Naukę F# zamierzam prowadzić na trzech płaszczyznach. Mam zamiar czytać  o F# wszystko, co wpadnie mi w ręce, pisać w F# mniejsze i większe programy oraz opisywać na tym blogu wszystko, czego nauczę się po drodze. Tę ostatnią czynność uważam za kluczową w całym procesie uczenia się. Próba wyłożenia osobie trzeciej (zwłaszcza nieznanej) zdobytej wiedzy zmusi mnie do głębszego przemyślenia tego, czego się nauczyłem, powiązania tego z posiadaną już wiedzą i do jasnego sformułowania nowo nabytej wiedzy. Mam nadzieję, że blog wraz z upływem czasu będzie miał coraz więcej czytelników, którzy będą krytycznie oceniać moje kolejne wystąpienia i bezlitośnie demaskować wszystkie błędy i przekłamania, które mi się przytrafią (podejrzewam, że trochę ich będzie, zwłaszcza na początku).

Ważnym elementem nauki są przykłady. Postaram się, żeby przykłady, które będę wykorzystwał do nauki były ciekawe i w miarę oryginalne. Gdyby przykłady były zbyt hermetyczne i niezrozumiałe, tupcie i krzyczcie głośno!

Kim ja w ogóle jestem?

Wiem, że powinienem się przedstawić na początku. Miałem jednak poczucie, że gdybym tak zrobił, bardzo dużo osób zbyt szybko zaczęło kojarzyć moje nazwisko z tytułem najlepszego programisty F# w Polsce :).

Do rzeczy: nazywam się Marcin Hoppe i na codzień jestem inżynierem oprogramowania w polskim oddziale największej północnoirlandzkiej firmy software'owej Kainos Software Ltd. Na codzień pracuję z technologiami ze stajni Microsoftu, ostatnio głównie z systemem SharePoint. Od niedawna jestem również magistrem inżynierem informatyki (skończyłem Politechnikę Gdańską).

Na końcu chciałbym podziękować Michałowi za energię, którą wkłada w ten portal oraz za to, że zaprosił mnie do uczestnictwa w przedsięwzięciu pod nazwą zine.net.

Opublikowane 17 stycznia 08 03:45 przez Marcin Hoppe
Filed under:

Komentarze:

# nuwanda said on stycznia 17, 2008 16:11:

Ach ten Michał! Wszystkim nam potrafi przekazać swoją nieustającą pozytywnie wibrującą optymistyczną energię :)

Już masz pierwszego stałego czytelnika. Z przyjemnością poczytam o czymś co odstaje od moich codziennych przyzwyczajeń. Powodzenia!

# brejk said on stycznia 17, 2008 23:02:

Ignorant i laik w tematyce aktualnych nurtów programistycznych też będzie się pojawiał na Twoim blogu, Michale :-)

# Marcin Hoppe said on stycznia 18, 2008 09:19:

Marcinie :). Zgonię pomyłkę na to, że się mało znamy. Mam nadzieję, że to się szybko zmieni :).

# mgrzeg said on stycznia 18, 2008 11:51:

Marcin, super, ze do nas dolaczyles! Od dawna przygladasz sie zinowi i pomagasz mi przy niektorych tekstach - w koncu Twoje nazwisko pojawia sie w kodzie zrodlowym niektorych narzedzi o ktorych piszemy - ale od dzis jestes pelnoprawnym autorem zina! :)

Wiem, ze uaktywniles sie w grupie trojmiejskiej - to bardzo dobra wiadomosc! Michal potrzebuje pomocy, a Ty jestes najodpowiedniejsza do tego osoba :)

Co do pomylki Pawla - hmm.... Pawel kladzie sie spac i mysli 'Michal'. Wstaje - mysli 'Michal'. Mysli 'zine', mowi 'Michal' :D :D Tak to jest, jak ktos spedza za duzo czasu w bezposrednich kontaktach ze mna ;)

A troche bardziej serio - fajnie, ze jestescie tu wszyscy! Bez was ten serwis po prostu by nie istnial...

# brejk said on stycznia 18, 2008 15:33:

Ja po prostu poleciałem po poście poprzednika. Sorki, Marcin ;-) A co do tego, czy 'Michał' mi się śni, zapewniam wszystkich, że jedyny Michał, jaki pojawia się w moich snach to mój synek ;-) Z MGrzegiem tak silne emocje mnie nie łączą :-D

Komentarze anonimowe wyłączone