Jakie są najlepsze zasoby, aby zostać dobrym inżynierem oprogramowania samoukiem?

Najlepsza odpowiedź

Prawdziwa odpowiedź brzmi: „To zależy!”. Zależy to od tego, który wycinek Cię bardziej interesuje – front-end, full-stack, backend, data-science itp. Podstawy do tego wszystkiego można wyodrębnić jak poniżej:

  • Wybierz swój ulubiony język programowania. I naucz się każdej koncepcji tego języka, ćwicząc używanie go w takim czy innym problemie z kodem. To da dobre podstawy do nauki innego języka programowania, nawet jeśli jego paradygmat jest zupełnie inny. Aby docenić A, powinieneś mieć upodobanie do B, ponieważ w pewnym sensie wszystko jest względne. Zaczniesz porównywać języki na podstawie tego, jak rozwiązuje to niektóre problemy.
  • Wykonaj Code Katas. Spróbuj rozwiązać ten sam problem na różne sposoby. Przemyśl różne podejścia, które wypróbowałeś. Zrób to dla każdego innego kata kodu, który wykonujesz. To pomaga!
  • Zrób mini projekt, aby rozwiązać jakiś problem. Wróć do niego za jakiś czas i zobacz, czy możesz dodać funkcje. Najprawdopodobniej powinieneś maltretować siebie za kiepską pracę, którą wykonałeś. To dobra realizacja. Przemyśl swoje błędy, zastanów się, jaka jest lepsza droga, którą wybrałeś. Ucz się na swoich błędach. To jest prawdziwe doświadczenie. Doświadczenie to nie liczba, ale to, czego się uczysz, pracując nad rzeczami.
  • Wybierz jakiś mini-projekt lub kod biblioteki z Github i przeczytaj kod, aby zobaczyć, jak rozwiązano jakiś problem. Czytanie i przemyślanie kodu innych pomaga.
  • Czytaj książki, blogi itp.
  • Zacznij pisać swoje myśli za pośrednictwem blogów. Z pewnością pomaga w nauce.
  • Bierz udział w spotkaniach i konferencjach, aby dowiedzieć się, co się dzieje wokół. Może to skłonić cię do nauki. W końcu wszyscy potrzebujemy dawki motywacji i poczucia celu, które pojawiają się od czasu do czasu.
  • Spróbuj podzielić się swoją wiedzą na spotkaniach i konferencjach. Działa na ciebie magicznie – poważnie.

Specjalna wskazówka: czy wspomniałem, że po drodze prawdopodobnie natkniesz się na wielu żartownisiów, którzy będą tracić energię i czas, zniechęcając cię do co robisz. Uczenie się odróżniania krytyków od żartownisiów to ogromna szansa na uratowanie życia.

Robiłem to od początku mojej kariery i nadal to robię nawet dzisiaj.

Odpowiedź

To zależy od tego, co masz na myśli mówiąc o inżynierze oprogramowania. Najlepszym źródłem informacji o inżynierii oprogramowania, jakie znalazłem, jest doświadczenie. Wytrzymaj ze mną chwilę. Większość odpowiedzi wydaje się dotyczyć programowania i rzeczywiście istnieje wiele doskonałych zasobów dotyczących programowania (z wieloma dobrymi przykładami w odpowiedziach tutaj). Zawsze czułem, że problem dzieli się na trzy kategorie:

  • Programowanie. Wybierz rozsądny język dla rodzaju problemów, którymi chcesz się dzisiaj zająć. Naucz się tego dobrze. Dużo praktyki. Dużo czytania kodu innych szanowanych ekspertów. Napisz więcej. Dodaj język w razie potrzeby lub zainteresowania.
  • Algorytmy, struktury danych, języki porównawcze i zbiór wiedzy ogólnie nazywany informatyką. To właśnie podnosi grę od rozwiązywania małych problemów do rozwiązywania dużych problemów, rozwiązywania ich efektywnie (nie tylko wydajnie) i zrozumienia ograniczeń rozwiązań, abyś mógł je wyjaśnić.
  • „Inżynieria oprogramowania ”To dla mnie inna sprawa niż powyższe dwa pomysły. Jest to proces dostarczania oprogramowania do „klientów”. Jest to konsekwentne, powtarzalne i niezawodne dostarczanie rozwiązania. Rozumie się, że graficzny interfejs użytkownika jest dobry do budowania wstępnego sprawdzania koncepcji / prototypowych rozwiązań na komputerze, ale niewystarczający do dostarczania do „produkcji”. To zrozumienie potoku realizacji na każdym etapie i tego, dlaczego każdy krok jest wykonywany. To wszystko automatyzacja i dyscyplina. Bez dyscypliny oprogramowanie nie skaluje się. Nie widziałem jeszcze kursu na ten temat, ponieważ przeważnie jest to szkolenie w miejscu pracy. W wielu miejscach jest to źle. Błędy są kosztowne.

Może najlepszą metaforą, jaką mogę ci dać, jest gotowanie. Dość szybko możesz nauczyć się gotować dla siebie. Możesz nauczyć się kilku przepisów, a praktyka sprawia, że ​​szybko. Zacznij od ugotowania wymyślnego posiłku dla przyjaciół i rodziny, a wyjdziesz trochę ze swojej strefy komfortu, być może potrzebujesz nowych umiejętności, nowych narzędzi, nowych przepisów. Weź udział w jednej lub dwóch zajęciach, a możesz znacznie poprawić swoją grę, a zajęcia obejmują wszystko, od wieczornych zajęć w miejscowym collegeu po Le Cordon Bleu. Następnie jest krok do „restauracji”, która zmienia wszystko. Teraz chodzi o niezawodne i powtarzalne dostarczanie żywności osobom z oczekiwaniami. W inny sposób pozyskujesz, partycjonujesz, przygotowujesz, przygotowujesz i narzędziujesz. „Uprzemysłowienie” procesu to „inżynieria”. Jesteś teraz częścią zespołu. Jest klient. Nie ma znaczenia, czy jesteś stoiskiem z taco, czy restauracją nagrodzoną gwiazdką Michelin, jest inaczej. Żadna ilość pracy w klasie nie przygotowuje Cię w pełni do nauki w miejscu pracy.

I możesz zacząć uczyć się wszystkich trzech naraz. Po prostu zrozum, nad którym z trzech zestawów umiejętności pracujesz, i nie zapomnij o pozostałych dwóch. Pierwsze dwa zwykle wiążą się z praktyką, ale drugie wiąże się z doświadczeniem.

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *