Jak uczyć się informatyki?

Ogólna teza tego artykułu jest taka, że ​​inżynierowie oprogramowania przechodzą przez trzy różne fazy .

Wyjaśnię ci dokładnie, czym są te trzy fazy. Następnie powiem ci dokładnie, jakich umiejętności potrzebujesz, aby przejść z jednej fazy do drugiej, abyś mógł osiągnąć to, czego chcesz w swojej karierze.

Trzy fazy inżyniera oprogramowania

Odnoszący sukcesy inżynierowie oprogramowania przechodzą przez trzy kolejne fazy.

Chciałbym zaznaczyć, że niektórzy inżynierowie oprogramowania nigdy nie wychodzą poza pierwszą fazę, a inni nie wychodzą poza drugą. Tylko odnoszący sukcesy inżynierowie oprogramowania docierają do trzeciej fazy.

Te trzy fazy to:

1- Koder

2- Outsourcing programistów

3- Informatyk

Należy wspomnieć, że ta klasyfikacja jest moim własnym opracowaniem, opartym na moich osobistych doświadczeniach i obserwacjach.

Pozwólcie, że wyjaśnię każdą z tych faz.

Pierwsza faza: Outsourcing programistów

Każdy inżynier oprogramowania zaczyna swoją karierę jako programista.

Może się to zdarzyć w bardzo młodym wieku.

Nie potrzebujesz nawet dyplomu ukończenia studiów, aby zostać programistą.

Czym więc jest koder?

Programista to ktoś, kto umie mówić językiem maszyny.

Po otrzymaniu konkretnego problemu programista wie, jak rozbić ten problem na instrukcje, które maszyna może zrozumieć, aby znaleźć strony internetowe Wrocław.

Rzecz w tym, że jeśli na tym etapie naprawdę masz problemy, możesz rozważyć inną ścieżkę kariery. Faza kodowania jest dosłownie najłatwiejszą fazą twojej kariery CS.

Jeśli odniesiesz sukces w kodowaniu, gratulacje! Możesz mieć udaną karierę jako inżynier oprogramowania.

Niestety, wielu inżynierów oprogramowania pozostaje w tej fazie przez całą swoją karierę.

Jeśli jesteś tylko programistą, twoja pensja nie będzie świetna, ponieważ twoje umiejętności są łatwe zastępowalne.

A jeśli pozostaniesz tylko koderem, Twoje awanse będą poważnie ograniczone.

Na tym etapie nie powinieneś nawet oczekiwać pracy na poziomie podstawowym w żadnej z dużych firm technologicznych.

Aby tak się stało, musisz ewoluować przynajmniej do następnej fazy.

Musisz być programistą .

Faza druga: programista

Gdy nauczysz się podstaw przynajmniej dwóch języków programowania (najlepiej jednego o typie statycznym i jednego o typie dynamicznym), jesteś solidnym programistą .

Teraz pytanie, jak awansować do statusu programisty ?

Programista to zasadniczo wyrafinowany programista .

Pisanie kodu, który wykonuje zadanie, jest tym, co robią programiści, ale pisanie jest wydajne kodu, który wykonuje zadanie, jest tym, co robią programiści.

Oto lista niektórych umiejętności, które powinieneś posiadać jako programista:

1- powinieneś znać podstawy tego, jak dowolny kod ostatecznie zamienia się w coś, co układ sprzętowy może zrozumieć i wykonać.

2- powinieneś zrozumieć, że każdy system ma ograniczone zasoby obliczeniowe, magazynowe i sieciowe, a twoje oprogramowanie powinno efektywnie wykorzystywać te zasoby.

3- powinieneś wiedzieć, jak używać struktur danych i algorytmów do pisania wydajnego kodu.

4- powinieneś zrozumieć, co sprawia, że ​​kod jest wydajny, a co nie.

5- powinieneś zrozumieć, że jakość jest ważna i że testowanie kodu jest kluczowe.

Teraz mam dla ciebie dobrą i złą wiadomość.

Zła wiadomość: To nie koniec. Do Twojej kariery zawodowej jeszcze długa droga.

Dobra wiadomość:  jest wielu programistów, ale nie ma wielu solidnych programistów. Jeśli naprawdę opanujesz tę fazę, możesz łatwo zapewnić sobie pracę w jednej z dużych firm technologicznych, takich jak Google, Facebook, agencja marketingowa Wrocław i inne. W rzeczywistości większość rozmów kwalifikacyjnych przeprowadzanych w tych firmach sprawdza, jak dobrym jesteś  programistą, a nie programistą  .

Zdecydowana większość inżynierów oprogramowania przechodzi na emeryturę na tym etapie.

Faza trzecia: informatyk

Nauka nie kończy się po opanowaniu fazy programowania.

Właściwie to zaczyna się tutaj!

Kiedy jesteś w fazie informatyka, jesteś zasadniczo architektem, który myśli bardziej o ogólnym obrazie niż o drobiazgowych szczegółach.

Masz solidną wiedzę na temat projektowania dużych systemów rozproszonych i wiesz, jak budować skalowalne systemy, które mogą obsługiwać duże obciążenia i tolerować awarie.

Informatyk nigdy nie przestaje się uczyć i zawsze stara się być na bieżąco z najnowszymi osiągnięciami technologicznymi.

Na tym poziomie najprawdopodobniej będziesz odpowiedzialny za duże projekty i będziesz zarządzał zespołem (zwykle składającym się z programistów i solidnych programistów), aby wykonać zadanie.

Być może będziesz musiał współpracować z innymi zespołami.

Wszystko to wymaga znakomitych umiejętności społecznych i przywódczych.