Jak zadawać pytania, jeśli jesteś początkującym IT

Cześć!

Przez ostatnie kilka lat pracowałem z wieloma osobami, które dopiero zaczynają swoją karierę w IT. Ponieważ zarówno pytania, jak i sposób, w jaki je zadają, są podobne u wielu ludzi, postanowiłem zebrać swoje doświadczenia i rekomendacje w jednym miejscu.

Dawno temu przeczytałem artykuł książkę z 2004 roku autorstwa Erica S. Raymond'a i zawsze w mojej karierze niezmiennie ją stosowałem. Jest dość obszerna i bardziej skierowana do administratorów systemów. Ja zaś muszę pomagać ludziom, często całkowicie bez doświadczenia w programowaniu, stać się juniorami i rozpocząć swoją karierę.

Dla tych, którzy już zostali lub dopiero marzą o zostaniu początkującym programistą, mogę dać następujące rekomendacje:

  • Uczcie się problemu samodzielnie
  • Najpierw przedstawcie cel, a potem mówcie o problemie
  • Piszcie poprawnie i rzeczowo
  • Zadajcie pytania na temat i dzielcie się rozwiązaniami
  • Szanźcie cudzy czas
  • Spójrzcie szerzej

A teraz szczegóły.

Uczcie się problemu samodzielnie

Uczycie się jakiegoś języka programowania z książki lub kursu. Wzięliście przykład kodu, uruchomiliście go, ale zakończył się on nieznanym dla was błędem. Jeśli wierzyć książce — to powinno działać. Ale wierzycie własnym oczom — nie działa. Jakie są możliwości?

  • Zdecydować, że nigdy nie zostaniecie programistą, ponieważ cały świat jest przeciwko wam, a nawet działające przykłady nie działają. Porzucić naukę;
  • Zdecydować, że nigdy nie zostaniecie programistą, ponieważ jesteście za głupi lub nie macie do tego talentu. Porzucić naukę;
  • Zacząć pytać wszystkich znajomych, którzy w jakikolwiek sposób są związani z IT, domagać się, aby dowiedzieli się, dlaczego u was to nie działa. Dowiedzieć się wiele nowego o sobie, poczuć się obrażonym. Porzucić naukę;

Która opcja jest właściwa? Oto ona:

Zrozumieć, że nie jesteście wyjątkowi (co by mówiła mama czy babcia), a świat IT nie jest tak prosty, jak się go przedstawia, gdy zapraszają na kursy i webinaria.

Zrozumienie, że nie jesteście wyjątkowi, prowadzi do uświadomienia sobie, że wasz problem z pewnością już napotkało dziesiątki, setki, a nawet tysiące ludzi. Jeśli jesteście początkującymi programistami, to mogliście coś przeoczyć, nie zainstalować lub nie skonfigurować. Oto lista kontrolna, którą proponuję przejść, zanim zrozumiecie, że nie możecie samodzielnie rozwiązać problemu i potrzebujecie pomocy:

  • Upewnijcie się, że pytanie jest unikalne i nie ma na nie odpowiedzi w internecie
  • Dokładnie zbadajcie przyczynę problemu, a nie skutek
  • Oceń możliwe rozwiązania problemu, ich zalety i wady
  • Zastanów się nad alternatywnymi sposobami osiągnięcia celu
  • Pomyśl, o co mogą cię zapytać i przygotuj odpowiedzi z wyprzedzeniem

Z pierwszym punkt jest dość prosty: jeśli tekst błędu jest dla ciebie zupełnie niejasny — skopiuj go do Google i dokładnie przeczytaj tekst w linkach.

Drugi: na przykład, jeśli twój kod zakończył się błędem „Nie mogę połączyć się z zewnętrzną biblioteką”, to nie jest problemem twój kod. Chodzi o to, że nie zainstalowałeś jakiejś biblioteki, której chcesz używać. Więc musisz znaleźć, jak ją zainstalować, a nie jak naprawić swój kod.

Trzeci i czwarty są bardzo podobne: Co jeśli problem leży w tej bibliotece i po prostu muszę poszukać innej? Co jeśli w ogóle nie będę używać zewnętrznej biblioteki, a napiszę własny kod, korzystając z standardowych narzędzi?

Piąty punkt prowadzi nas do następnej części: pomyśl, co może zapytać cię osoba, do której się zwrócisz, i miej gotowe odpowiedzi.

Najpierw przedstawcie cel, a potem mówcie o problemie

Cel to to, co chciałeś zrobić. Na przykład, napisać kod, który łączy się z internetem i zapisuje 10 obrazków ze śmiesznymi kotami. Problem to to, dlaczego widzisz błąd w konsoli, ale nie widzisz 10 śmiesznych kotów. Nie zaczynaj swojego pytania od problemu. Zacznij od celu, kończąc problemem. Jeśli osoba, do której się zwracasz o pomoc, jest doświadczonym programistą i wie dużo, to na pewno będzie w stanie zaproponować ci prostsze i bardziej eleganckie rozwiązanie problemu. Jeśli już wybrałeś najprostsze i najbardziej eleganckie — on dokładnie zrozumie, co i dlaczego chcesz robić, co przyspieszy uzyskanie odpowiedzi.

Dobry pytanie:

Chcę codziennie zapisywać 10 śmiesznych kotów, żeby się śmiać i przedłużać sobie życie. W tym celu napisałem taki kod: […] Oczekuję, że połączy się z FTP serwera i pobierze stamtąd nowe obrazki. Jednak gdy go uruchomiłem, zobaczyłem taki błąd: […] Chociaż przez przeglądarkę mogę wejść na ten serwer.

Szybka odpowiedź:

Zbyt pochopnie wybrałeś tę bibliotekę, nikt już jej nie wspiera ani nie rozwija. Lepiej weź tę — sam z niej pobieram obrazki z kotami!

Złe pytanie:

Cześć, mój kod wygenerował taki błąd […], nie wiesz, co może być nie tak?

Oczywista odpowiedź:

Cześć. Nie, nie wiem.

Piszcie poprawnie i rzeczowo

Nie należy zalewać człowieka strumieniem myśli. Osoba, do której się zgłosiłeś w celu rozwiązania problemu, jest zajęta swoimi sprawami. Upewnij się, że szybko zrozumie, jaki masz problem i czego od niego oczekujesz. Jeśli masz problemy z gramatyką — skorzystaj z internetowych serwisów sprawdzających pisownię i interpunkcję. Możesz również oczyścić wiadomość z niepotrzebnych treści bez użycia tych serwisów. Nie przeciągaj, nie zaczynaj od dalekich wątków. Pisz krótko, zwięźle i na temat. Podaj przykłady.

Źle:

— cześć, jak tam weekendy))) próbuję tutaj skompilować projekt, ale coś mi nie działa, pada bez powodu O_0, chociaż wydaje mi się, że zrobiłem wszystko jak trzeba, podejdź proszę)))) tutaj w ogóle w konsoli coś niezrozumiałego u mnie((( już wszystko próbowałem, nic nie działa, aaaa(

Dobrze:

— Cześć, próbuję uruchomić projekt, ale pojawił się problem. Pada od razu po poleceniu docker-compose up, oto log uruchamiania i błąd: […] Czy możesz podpowiedzieć, jak to rozwiązać?

Zadajcie pytania na temat i dzielcie się rozwiązaniami

Nie warto pisać pytania bezpośrednio do konkretnej osoby, chyba że powiedziano Ci, żeby zapytać właśnie ją. Lepiej napisać do grupy ludzi, ponieważ:

  • Każdy jest zajęty rozwiązaniem swoich problemów. Szansa, że ktoś w ogólnym czacie lub na forum poświęci Ci czas — jest większa.
  • Szansa, że ktoś w ogólnym czacie wie, jak Ci pomóc — jest wyższa.
  • Dajesz innym możliwość znalezienia tego samego pytania i odpowiedzi później.

Zobacz na ostatni punkt. Już przecież nauczyłeś się, że problemy należy starać się rozwiązywać samodzielnie? Już skorzystałeś z wyszukiwarki w czacie/forum/grupie, ale nie znalazłeś wzmianki o swoim problemie? Ok, wtedy pytaj.

Z drugiej strony, nie warto niepotrzebnie niepokoić ludzi. Jeśli to możliwe, wyklucz z listy odbiorców wszystkich, którzy nie mogą Ci pomóc. Im więcej wiadomości dociera do osoby, tym mniejsze szanse, że przeczyta je wszystkie. Nie przyzwyczajaj ludzi do wyłączania powiadomień lub po prostu ignorowania wiadomości.

Twoja wiedza może okazać się przydatna dla innych. Oszczędź czas sobie i innym, dzieląc się odpowiedzią lub rozwiązaniem. Kolejny nowicjusz, który wie, o czym rozmawiamy, nie będzie nikogo niepokoić — znajdzie twoje rozwiązanie w wyszukiwarce. Dlaczego mówię, że możesz zaoszczędzić sobie czas? Ponieważ możesz natknąć się na ten problem za rok i nie przypomnisz sobie, jak go rozwiązałeś. Wyszukiwanie znów cię uratuje.

Szanźcie cudzy czas

Uprość życie ludziom, od których prosisz o pomoc.

Upewnij się, że linki, które wysyłasz, działają. Spróbuj otworzyć je w trybie incognito. Jeśli do linku potrzebna jest autoryzacja, zobaczysz błąd dostępu. Na przykład, jeśli przesłałeś kod do prywatnego repozytorium lub wysłałeś link do Google Drive, do którego dostęp masz tylko ty — osoba zobaczy błąd i będzie musiała tracić czas, aby ci o tym powiedzieć, a potem czekać, aż ustawisz dostęp. Tak zrób, żeby osoba od razu zobaczyła, o czym mówisz.

Nie oczekuj, że ktoś zechce przypomnieć sobie, o co pytałeś dwa dni temu. Wyślij informacje jeszcze raz, przypomnij kontekst. Nikt nie chce przeszukiwać rozmowy w poszukiwaniu tego, co masz pod ręką. Jeśli brakuje ci chęci, żeby powtórzyć informacje, aby ludzie nie tracili czasu na szukanie, to znaczy, że nie potrzebujesz pomocy.

Nie wyrywaj z kontekstu. Jeśli przesyłasz log z błędem, oczywiste jest, że powinieneś uwzględnić nie tylko sam błąd, ale także kod, który go spowodował, z przykładem tego, na czym się złamał.
Jeśli istnieje ustalony proces rozwiązania twojego problemu — stosuj się do niego. Nie ma sensu wymyślać koła na nowo, jeśli istnieje artykuł z krok po kroku HowTo.

Nie naciskaj na jedną osobę o odpowiedź przez różne kanały (pisząc na Slacku, Skype, Telegram) jednocześnie — to będzie dla niej nieprzyjemne.

Nie wysyłaj tej samej wiadomości do kilku osób, mając nadzieję, że chociaż jedna z nich ci odpowie. Wszyscy ci ludzie mogą dać ci odpowiedź (prawdopodobnie będzie to ta sama), ale na chwilę odciągną się od swoich spraw. Używaj grupowych czatów.

Spójrzcie szerzej

Wszystko, o czym rozmawialiśmy tutaj, jest również ważne poza branżą IT. Stosuj te zasady w supermarkecie, warsztacie samochodowym, podczas wakacji za granicą, w kontaktach z przyjaciółmi i rodziną. Pokaż ludziom, że cenisz ich czas i nie chcesz ich niepotrzebnie obciążać. Pokaż, że poświęciłeś wysiłek i czas, aby samodzielnie rozwiązać problem, ale nie udało ci się i naprawdę potrzebujesz pomocy. Wdzięczni ludzie z empatią podejdą do twoich problemów i pomogą w ich rozwiązaniu.

Źródło: habr.com

Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS 🔥 Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS | ProHoster