Znajomość składni języka programowania to dopiero początek. Programista w swojej codziennej pracy wykorzystuje szereg narzędzi, które pomagają mu w pracy. Na tej stronie zebrałem artykuły, które związane są z narzędziami i dobrymi praktykami, które warto stosować na co dzień.

Narzędzia

Dodatkowo koniecznie musisz znać system kontroli wersji. Proponuję Ci zacząć od Git’a, który jest standardem w branży. Kurs Gita dostępny na Samouczku powinien Ci pomóc go poznać.

Dobre praktyki

Bez tego się nie obejdzie. Jeśli chcesz tworzyć kod, który będzie łatwy w utrzymaniu, możliwy do rozszerzenia i testowania stosuj dobre praktyki opracowane przez bardziej doświadczonych programistów. Ta lista zawiera artykuły, które opisują takie praktyki.

W niektórych sytuacjach rysunki pokazujące system/rozwiązanie problemu. Właśnie wtedy może Ci się przydać znajomość podstaw UML.

Testowanie kodu

Testowanie kodu to temat rzeka. Na początek polecam Ci artykuły, które opisują tematykę testów jednostkowych i bibliotekę JUnit:

Jak poznasz już bibliotekę pomagającą w pisaniu testów jednostkowych koniecznie musisz poznać podejście Test Driven Development. W artykule tym na przykładzie pokazuję jak TDD wygląda w praktyce. Część zadań z rozmów kwalifikacyjnych, które dostałem od Czytelników także rozwiązałem używając TDD:

Wzorce projektowe

Nie bez znaczenia są także wzorce projektowe. Na blogu opisałem kilka z nich. Do zrozumienia diagramów użytych w artykułach dotyczących wzorców musisz poznać podstawy notacji UML. Artykuły poniżej zawierają dokładny opis, przykłady zastosowania i implementację poszczególnych wzorców projektowych:

Co dalej?

Skoro udało Ci się już poznać kilka użytecznych narzędzi i dobrych praktyk warto je wykorzystać. Proponuję Ci rozpoczęcie swojego projektu lub przećwiczenie ich w trakcie rozwiązywania zadań. Oba te tematy poruszam na blogu. Znajdziesz tu projekty realizowane od początku do końca jak i zadania dla programistów z przykładowymi rozwiązaniami.

Kolejnym krokiem może być także poszerzenie swojej wiedzy związaną z teorią informatyki.