Masz 18 lub mniej lat i kodujesz? Pozostał jeszcze tydzień aby zgłosić się do europejskiego konkursu programistycznego HackN0w organizowanego przez niemiecki fundusz HackFwd. Do wygrania kasa (do 2000 EUR), miejsce na serwerach Amazona i przede wszystkim – rozpoznawalność w środowisku.
HackN0w to nie kolejny konkurs na najlepszy algorytm. To konkurs na najlepszy produkt, stworzony przez licealistę. Jak czytamy w zasadach konkursu wygra ten najbardziej innowacyjny, a jednocześnie użyteczny i bez spaghetti kodu.
Tak do wzięcia udziału w HackN0w zachęca Luis Iván Cuende, zwycięzca pierwszej edycji:
Ja dodam od siebie, że jestem jednym z „refererów” w konkursie HackN0w i gorąco zachęcam do udziału, szczególnie jeśli pracujecie nad produktem, który zmieni świat 🙂 a przynajmniej jakąś jego część. HackN0w to szansa na rozgłos, rozpoznawalność w branży i dobry start do współpracy z HackFwd, jednym z najciekawszych inwestorów w innowacyjne pomysły internetowe w Europie.
W razie pytań, zachęcam do komentowania bądź kontaktowania się ze mną bezpośrednio (borys@musielak.eu).


"HackN0w to nie kolejny konkurs na najlepszy algorytm. To konkurs na najlepszy produkt"
No jak to, nie kolejny konkurs na znajomość książki i wykładów profesora Krzysztofa D? Konkurs na coś, co ma działać i być używane? Przez u-żyt-kow-ni-ków? Nie może być! 😉
"HackN0w to nie kolejny konkurs na najlepszy algorytm. To konkurs na najlepszy produkt"
I kończy się jak świetna powłoka do pewnego otwartoźródłowego produktu (nie będę kompromitował produktu, bo to chyba jedyny program do tego), w którym wszystko jest świetnie opracowane, ale listing kilkudziesięciu tysięcy rekordów sortowany jest bubblesortem. Amen.
czekaj, czekaj:
1. otwartoźródłowy
2. sortowanie bubblesortem
gdzie w takim razie problem?
"kilkudziesięciu tysięcy rekordów sortowany jest bubblesortem"
Naiwnie myślałem, że kodowanie algorytmu sortowania to w sam raz na konkurs profesora Krzysztofa a normalni ludzie używają do tego funkcji bibliotecznych.
Sam tak myślałem. Większość programistów użyłaby gotowej funkcji… ale ten oczywiście dokonał przejawu "inwencji twórczej", i to jeszcze gorszej niż własna implementacja bubble sort.
Zajrzałem do źródeł… Cóż, program był tylko w wersji do skompilowania (uruchomienia make'a) więc stwierdziłem, że jak już na komputerze mam narzędzia, to poprawię.
Ja niechlujnie programuję. Przyznaję się do tego. Jednak mi by na myśl nie przyszło tak "porozbijać" kod. Będę używał terminu "funkcja", bo to nie miało za wiele wspólnego z kodem obiektowym.
Znalazłem funkcję w odpowiednim pliku cpp, przy czym była w nim tylko ta funkcja. Generalnie konwencja: jeden cpp-jedna funkcja. Plików cpp więcej niż funkcji. Chyba zmienne w nich trzymał, nie patrzyłem. Jeden plik cpp z dwoma publicznymi funkcjami. Obie zwracają double'a, przyjmują inta. Były to funkcje do wyciągania 0,5 i 0,6 z inta.
Zastanawiałem się, czy przypadkiem pacjent nie przyszedł z Matlaba, ale wtedy nie użyłby funkcji zwracających iloczyn.
Najlepsza obfuskacja kodu: posadzić takiego programistę.
Kiepscy programiści są wszędzie. Opensource ma przynajmniej tę zaletę, że ktoś taki kod zobaczy i poprawi.
albo przerazi się i ucieknie
Przynajmniej nie wyrzuci pieniędzy w błoto, tak jakby się stało, gdyby kupił tego bubblesorta w kodzie zamkniętym.
W przypadku kodu zamkniętego jest nawet większe prawdopodobieństwo, że będzie tam bubblesort albo inny WTF, bo przeciętnie programiści pracujący wyłącznie dla korporacji są znacznie słabsi i gorzej zmotywowani od tych co się udzielają dodatkowo w projektach otwartoźródłowych. Ot, taka moja obserwacja, choć nie mam na poparcie żadnej statystyki.
Korporacyjni programiści są lepiej zmotywowani bo dostają za to pieniądze, pracują w określonym wymiarze godzin i są za to rozliczani, niż programiści którzy robią coś " z doskoku". Ot, taka moja obserwacja, choć nie mam na poparcie żadnej statystyki. 🙂
Widać, że mało czytasz. Różne badania wykazują, że dla programistów większą motywacją jest ciekawy, wartościowy projekt, niż pieniądze. Są wtedy bardziej twórczy i wykazują więcej inicjatywy. Pieniądze w firmie służą tylko do przyciągnięcia pracownika, ale żeby mieć programistę a nie klepacza kodu trzeba umieć zmotywować go inaczej. Projekty otwartoźródłowe wielu programistów pvotrafią lepiej wciągnąć i zainteresować.
[[Różne badania wykazują, że dla programistów większą motywacją jest ciekawy, wartościowy projekt, niż pieniądze]] to zalinkuj te różne badania.
Zacznij od poczytania o klasycznym doświadczeniu Karla Dunckera z świecą, pineskami i zapałkami (na pewno łatwo znajdziesz w internecie).
Google pozwala swoim programistom na to aby 20% procent czasu poświęcili na własne projekty, chyba nie dlatego, że szefostwo Googla ma dobre serce. 🙂
Metoda kija i marchewki (czy nawet samej marchewki) nie sprawdza się w twórczym działaniu.
Poza tym chodzi też o to że większość ludzi woli zbudować coś co będzie trwałe i piękne, niż odwalać byle jaką robotę za nawet dobre pieniądze. Oczywiście na poziomie świadomości każdy by powiedział, że woli dobry zarobek niż satysfakcję z pracy, ale w praktyce okazuje się że same pieniądze nie wystarczają. Tak już jesteśmy skonstruowani.
Wszyscy programiści jakich znam działający serio w projektach otwartoźródłowych, na codzień pracują w firmach przy kodzie (częściowo) zamkniętym i zarabiają tam znacznie lepiej niż programiści zmotywowani tylko kasą. Część z nich jest nawet inicjatorami projektów otwartoźródłowych, które odniosły sukces.
Z tego powodu firmy takie jak Google czy Facebook przy rekrutacji bardziej sobie cenią programistów, którzy mieli jakiś udział w OSS, zwłaszcza projektach top-level (np. Mozilla, kernel Linuksa, projekty ASF, GNU itp), niż tych, dla których jedyną motywacją są pieniądze, a ambicją zostanie "kierownikiem projektu" (żeby nie musieć programować, a zarabiać więcej).
Ja znam kilku programistów i żaden z nich nie pracuje przy OS. Mamy więc różne doświadczenia