37

Gdzie programista szuka pomocy?

Szukając odpowiedzi na różne pytania odwołujemy się do swojej wiedzy i doświadczenia, pytamy innych lub szukamy informacji w encyklopediach i internecie. Jeśli programujecie, z pewnością nie raz wpadliście na problem, którego mimo prób nie byliście w stanie sami rozwiązać i potrzebna była pomoc z zewnątrz. Przejdziemy dziś przez kilka miejsc, które służą nie tylko wymianie […]

Szukając odpowiedzi na różne pytania odwołujemy się do swojej wiedzy i doświadczenia, pytamy innych lub szukamy informacji w encyklopediach i internecie. Jeśli programujecie, z pewnością nie raz wpadliście na problem, którego mimo prób nie byliście w stanie sami rozwiązać i potrzebna była pomoc z zewnątrz. Przejdziemy dziś przez kilka miejsc, które służą nie tylko wymianie wiedzy do rozwiązania jakiegoś problemu, ale także do zdobywania jej i rozwijania się.

Autorem tekstu jest Marcin Tchórzewski.

Względnie łatwo jest przy błędach w logice aplikacji – te, zarówno jak problemy wynikające z tak zwanych corner case’ów (sytuacjami „szczególnymi” w pracy programu zazwyczaj występującymi przy granicznych wartościach danych), powinny być wyłapane przez nasze testy. W takich przypadkach wystarczy prze-debugować kod krok po kroku i zazwyczaj udaje się znaleźć błąd.

Schody zaczynają się w chwili, kiedy nie wiecie, jak użyć jakiegoś frameworku albo biblioteki (albo kiedy zachowują się w sposób przez Was nieoczekiwany) lub kiedy dostajecie błąd kompilatora, którego nie rozumiecie lub nie wiecie, jak uzyskać pożądany efekt w danym języku. Czasami zdarzają się też sytuacje (szczególnie przy pierwszych przygodach z programowaniem), w których wiecie, jaki ma być efekt końcowy, ale nie macie za to pojęcia, gdzie zacząć, żeby go uzyskać. Co robić w takich sytuacjach?

Problem? Zajrzyj do książki

Gdzie takiej pomocy najlepiej szukać? W książkach i w internecie. Tak, również w książkach. Wielu z Was z pewnością nie raz korzystało z podręczników do nauki poszczególnych języków. Zawierają one odpowiedzi na wiele pytań. Jest jednak jedno „ale” – podręczniki się dezaktualizują. Technologie rozwijają się w zawrotnym tempie, a wraz z nimi także języki programowania. Trzeba w związku z tym pilnować, aby źródła, z których korzystamy były aktualne. Im „niższy” język (np. C/C++, Java, C#), tym wolniej zachodzą w nim zmiany i są mniej dramatyczne. Dużo szybciej „starzeją się” książki do technologii mobilnych i webowych. Tu zmiany zachodzą znacznie częściej. Warto mieć to na uwadze, sięgając po to źródło wiedzy.

Jeśli nie książki to co?

Internet, a raczej jego użytkownicy, są nieocenieni, jeśli szukamy porady. W sieci znajdziemy różnego rodzaju portale i fora dyskusyjne, na których bardziej i mniej doświadczeni programiści wymieniają się wiedzą i pomagają w rozwiązywaniu różnego rodzaju problemów.

Stack Overflow – biblia programisty

Zacznijmy od podstawy, jaką jest Stack Overflow. To w tej chwili największy i najbardziej rozpoznawalny portal wymiany wiedzy. Według najnowszych danych, jakie otrzymaliśmy od Stack Overflow, we wrześniu portal zanotował ponad 40 milionów wizyt i ponad 26 milionów zarejestrowanych użytkowników. Polski udział w tym wyniku to 310 tysięcy wizyt, a główny ruch pochodził w Warszawy, Krakowa i Wrocławia. Można nazwać go serwisem społecznościowym, w którym programiści zadają pytania programistom. Powstał w 2008 roku z inicjatywy Jeffa Atwooda i Joela Spolsky’ego, a nazwę nadali w wyniku głosowania czytelnicy bloga Coding Horror.

Pomysł jest prosty: masz problem, którego sam nie możesz rozwiązać? Zadajesz pytanie, a społeczność zgromadzona wokół portalu odpowiada i pomaga się z nim zmierzyć. Wszystkie wypowiedzi mogą być poddawane ocenie, dzięki czemu dużo łatwiej wyłuskać z nich te najlepsze. Pytania i odpowiedzi można tagować, aby ułatwić ich odnajdywanie, a użytkownicy otrzymują etykiety – przyznawane m.in. na podstawie liczby zdobytych punktów za odpowiedzi i zadane pytania. O tym, jak popularny i pomocny jest ten portal, świadczyć mogą komentarze użytkowników pod dowolnym tekstem na temat Stack Overflow – portal uratował już niejeden projekt.

Bardzo ważnym aspektem portalu jest nie tylko możliwość uzyskania szybkiej pomocy. Jest on również pomocny w trakcie nauki oraz do znalezienia pracy. Portal jest częścią Stack Exchange, który skupia w sobie kilkadziesiąt mniejszych portali typu pytanie-odpowiedź. Istotnym elementem jest Stack Overflow Careers, na którym znajdziecie ogłoszenia o pracę dla osób z różnym doświadczeniem zawodowym. Według przeprowadzonego przez Stack Overflow w 2013 roku badania aż 75% firm uznało, że zidentyfikowanie dobrych kandydatów na programistów jest trudne. Wspomniany już wcześniej system ocen pozwala nie tylko znaleźć najlepsze i najbardziej pomocne odpowiedzi, ale także nową pracę. Firmy informatyczne mogą obserwować tu, w jaki sposób programiści radzą sobie z rozwiązywaniem problemów i „wyławiać” tych najlepszych, który mogą zaoferować pracę.

Jakiś czas temu powstał polski odpowiednik Stack Overflow – DevPytania.pl. Portal działa na tej samej zasadzie, ma nawet bardzo podobny wygląd. Podstawową różnicą jest oczywiście język w jakim zadawane są pytania i udzielane odpowiedzi. Użytkownicy portalu zbierają punkty reputacji, które umożliwiają odblokowywanie bardziej zaawansowanych funkcjonalności serwisu. Bardziej doświadczeni użytkownicy, z odpowiednią ilością punktów uzyskują możliwość edytowania treści dodanej przez innych użytkowników, podobnie jak na Wikipedii. Korzystać z serwisu można na dwa sposoby – anonimowo lub jako zarejestrowany użytkownik. Zarejestrowani użytkownicy podobnie jak na Stack Overflow zbierają nie tylko punkty reputacji, ale także głosy innych użytkowników, tagi i odznaki.

Forum dla programistów i nie tylko

Kolejnym takim miejscem w sieci jest forum 4programmers.net. Przeznaczony jest nie tylko dla programistów, ale także webmasterów, administratorów i osób związanych z branżą IT. Podstawą są tu, tak jak w przypadku Stack Overflow, pytania i odpowiedzi, które również mogą być oceniane przez użytkowników. Użytkownicy mają możliwość założenia własnego profilu programisty, na którym zbierają się wszystkie zadane przez nich pytania i udzielone odpowiedzi, etykiety określające umiejętności oraz tzw. reputacja, czyli punkty uzyskane od innych użytkowników forum. Podobnie jak w przypadku Stack Overflow Careers jest to świetne źródło informacji dla potencjalnych pracodawców. Ciekawą funkcją są tu mikroblogi. Twórcy 4programmers udostępniają użytkownikom platformę, na której mogą dzielić się swoimi przemyśleniami czy ciekawymi projektami.

Specjalistyczne fora

Wspomnieliśmy już wcześniej o Stack Exchange, na który składa się kilkadziesiąt portali typu Q&A. Społeczności skupione są wokół portali podzielonych według kilku kategorii. I tak jak Stack Overflow jest ogólnoprogramistyczny, tak w dziale Technology znajdziemy kilkanaście mniejszych, specjalistycznych portali. Jeśli jesteś webmasterem, zadawaj pytania i szukaj rozwiązań na Pro Webmasters; jeśli tworzysz gry, Twoim sprzymierzeńcem będzie Game Development. Na liście znaleźć można także m.in. Super User, przeznaczony dla entuzjastów i zaawansowanych użytkowników komputerów, czy strony dla użytkowników Androida, Windowsa czy Linuxa. Dzięki takiemu podziałowi łatwiej odnaleźć potrzebne nam informacje.

Jednym z większych polskich forów dla webdeveloperów jest webhelp.pl. To klasyczne forum poświęcone tematyce tworzenia stron internetowych, wzbogacone o wskazówki warsztatowe, blog czy listę przydatnych linków dla webmasterów. Tu także nie zabrakło działu Praca, w którym publikowane są ogłoszenia dla programistów.

Jeśli tworzycie gry lub chcecie je tworzyć, z pewnością przyda Wam się znajomość GameDev.net i Warsztatu. To prawdziwe kopalnie wiedzy. Pytania na forum podzielone są na szczegółowe kategorie, takie jak zagadnienia techniczne, wizualne, czy prawne. Atutem takich portali jest możliwość współtworzenia projektów – dzielenia się swoimi osiągnięciami i zbieranie ocen od pozostałych użytkowników, które mają na celu dalszą pracę nad grą i ulepszanie jej.

Korzystacie z któregoś wyżej wymienionych portali? Gdzie jeszcze zaglądacie w celu znalezienia rozwiązania Waszego problemu?

Foto Program code on a monitor via Shutterstock.