Menedżer firmy zajmującej się rozwojem rozliczeń ma dwa sposoby na zbudowanie zespołu. Pierwszy to rekrutacja gotowych „seniorów” i ciągłe tworzenie takich warunków pracy, aby maksymalnie wykorzystywali swoje umiejętności i doświadczenie, rozwijali się, a jednocześnie nie wdawali się w bójki. Drugim jest stworzenie zespołu składającego się z mieszanki nowicjuszy, średnich i profesjonalistów, aby mogli się komunikować, wpływać na siebie nawzajem, uczyć się i rozwijać w firmie. Jestem przeciwnikiem błędnego koła typu „brak doświadczenia – brak pracy – brak doświadczenia” i nie widzę problemu w zatrudnieniu początkującego programisty. Forward Telecom od dawna posiada program stażowy, który dla wielu obecnych pracowników stał się odskocznią do kariery.
Teraz opowiem Ci jak widzę ścieżkę rozwoju billing developera i w jakiej kolejności trzeba doskonalić umiejętności zawodowe.
1. Naucz się języka programowania
Na początek każdy. Priorytetem jest Java, Python i JavaScript, ale Ruby, Go, C, C++ nadają się do zdobycia podstawowej wiedzy. Jak uczyć? Korzystaj z płatnych i darmowych kursów, polecam szkolenia u Golanga. Jeśli Twój poziom angielskiego na to pozwala, oglądanie zagranicznych filmów będzie dobrą dodatkową umiejętnością.
2. Zrozum pojęcia dotyczące systemu operacyjnego
Systemy operacyjne opierają się na siedmiu komponentach, które trzeba znać i potrafić wyjaśnić zasadę działania:
- Zarządzanie procesem;
- Wątki i kod wielowątkowy;
- Gniazdo (interfejs oprogramowania);
- Wysyłanie wejść/wyjść;
- Wirtualizacja;
- Składowanie;
- Systemy plików.
Polecam wziąć udział w podstawowym kursie administracji Linuksem. Drugimi systemami operacyjnymi w kolejce są Windows i Unix.
3. Przyzwyczaj się do terminala
Przez analogię do fobii pustej kartki istnieje fobia pustego czarnego ekranu z migającym kursorem. Będziesz musiał to pokonać, aby nauczyć się pisać dobre polecenia w wierszu poleceń.
Musisz wiedzieć:
- Powłoki Bash i KornShell;
- Polecenia find, grep, awk, sed, lsof;
- Polecenia sieciowe nslookup i netstat.
4. Sieć i bezpieczeństwo
Rozliczenia są ściśle powiązane z wymogami dotyczącymi sieci i ochrony danych. Nie da się pisać usług online bez zrozumienia działania sieci, dlatego trzeba poznać podstawowe pojęcia i protokoły: DNS, model OSI, HTTP, HTTPS, FTP, SSL, TLS. Następnie, gdy napotkasz błąd Odmowa połączenia, będziesz wiedział, co robić.
5. Serwery
Po zapoznaniu się z zasadami przesyłania informacji w sieci można przystąpić do podstaw obsługi serwera. Zacznij od serwerów internetowych: IIS, Apache, Nginx, Caddy i Tomcat.
Dalej na liście:
- Odwrotne proxy;
- Anonymous Proxy;
- Buforowanie;
- Równoważenie obciążenia;
- Zapora sieciowa.
6. Ucz się infrastruktury jako kodu
Uważam, że ten etap jest jednym z najważniejszych. Będziesz musiał zrozumieć trzy szerokie tematy:
- Kontenery: Docker i Kubernetes
- Narzędzia do zarządzania konfiguracją: Ansible, Chef, Salt i Puppet
- Kopia zapasowa: Terraforma, chmury.
7. Naucz się CI/CD
Kolejną przydatną umiejętnością programisty rozliczeniowego jest możliwość skonfigurowania potoku ciągłej integracji i dostarczania. W obszarze CI/CD znajdują się narzędzia takie jak Jenkins, TeamCity, Drone, Circle CI i inne. Spoiler: na początku wystarczy poznanie powszechnie używanego Jenkinsa.
8. Kontrola oprogramowania i infrastruktury
Kluczowym celem jest zrozumienie podstaw monitorowania aplikacji. Narzędzia w tym obszarze dzielą się na trzy grupy:
- Monitorowanie infrastruktury: Nagios, Icinga, Datadog, Zabbix, Monit.
- Monitorowanie wydajności aplikacji: AppDynanic, New Relic.
- LMS: ELK Stack, Graylog, Splunk, Papertrail.
9. Usługi w chmurze
W najbliższej przyszłości każda aplikacja lub oprogramowanie będzie miało swój odpowiednik w chmurze. Prędzej czy później programiści zetkną się z chmurą, dlatego zapoznaj się z popularnymi dostawcami usług chmurowych (AWS, Google Cloud i Azure) oraz podstawami tej technologii.
10. Praca z bazą danych
Wszystkie obecne projekty korzystają z baz danych, a doświadczenie z DBMS i SQL ułatwi rozpoczęcie pracy. Naucz się pisać zapytania SQL, korzystaj z objaśnień i dowiedz się, jak działa indeks. Najłatwiej jest zapisać się na kurs. Możesz także poćwiczyć swoje umiejętności tworzenia dokumentacji Postgres i pobawić się replikacją.
11. Popraw swoje umiejętności miękkie
Nieoczekiwanie nietypowy punkt, ale nie mniej ważny. Na początek bądź cierpliwy. Szybko oswajasz się z sytuacjami typu „napraw żelazko, jesteś programistą”, ale musisz być psychicznie przygotowany na terminy uruchamiania nowych projektów. Jeśli programujesz od zera do roku i jesteś uważany za Juniora, przygotuj się na krytykę i naucz się ją akceptować, przegląd kodu przez mentora jest często bolesnym procesem. Ale jednocześnie umiejętnością obowiązkową jest umiejętność obrony swojego punktu widzenia i konstruktywnej argumentacji, czasem prawda rodzi się w kłótni. Programiści nigdy nie przestają się uczyć, w zawodzie praktycznie nie ma pułapu, dlatego umiejętność uczenia się i CHĘĆ uczenia się nowych rzeczy są podstawą Twojego rozwoju.
Często jestem pytany, kiedy początkujący osiąga poziom średni i kiedy można go z dumą nazwać „seniorem”. Uważam, że o momencie przejścia z poziomu na poziom nie decyduje liczba przepracowanych lat, choć kluczowym kryterium są umiejętności praktyczne. To właśnie umiejętności miękkie często decydują o szybkości rozwoju programisty: wyszkolony i pracowity początkujący potrafi napisać wysokiej jakości kod w kilku językach i potrafi pracować w zespole już w kilka miesięcy. Programista z 10-letnim doświadczeniem może nie być w stanie rozwiązywać niestandardowych problemów, zarządzać zespołem i posiadać umiejętności jednostronne.
Tak widzę ścieżkę rozwoju programisty billingowego, tak rozwijamy wykwalifikowanych specjalistów w naszym zespole Forward Telecom. Wydaje się, że niczego nie brakuje, ale zawsze jestem wdzięczny za pomocne uzupełnienia.
Źródło: www.habr.com