Cześć, uczę się samodzielnie programowania, piszę też na ten temat bloga. Stworzyłem sobie listę zagadnień i narzędzi, które, jak mi się wydaje, powinienem poznać, chcąc pracować w przyszłości jako back-end web developer, programujący w języku Python. Proszę o wszelkie uwagi co do listy, o czym zapomniałem, co nie jest tam potrzebne, bardzo chętnie przeczytam też o konkretnych frameworkach etc. dla danego zagadnienia (np. jak najlepiej ugryźć temat serwerów pod web aplikacje?). Wiem, że tematów dotyczących samodzielnego programowania jest od groma ale nie znalazłem takiego, który podsumowywał by niezbędny zakres wiedzy.

Podstawy podstaw:

  • składnia i semantyka języka
  • działania na zmiennych, typy danych
  • flow control
  • funkcje
  • podstawy korzystania z biblioteki wewnętrznej i bibliotek zewnętrznych

Dalsze zagadnienia:

  • programowanie zorientowane obiektowo
  • GIT/kontrola wersji
  • frameworki (Django lub Flask)
  • obsługa baz danych (ale których?)
  • serwery
  • podstawy HTML/CSS/XML, JavaScript
  • wzorce projektowe
  • algorytmy
  • tworzenie testów (testy jednostkowe, TDD)
  • dobre praktyki projektowe, Python Style Guide
  • znajomość zasad metodyki AGILE/SCRUM

Zagadnienia, co do których mam wątpliwości:

  • praca w środowisku Linux
  • UML

Jak widać, wątpliwości mam szczególnie w dwóch kwestiach – na ile praca w środowisku Linuxa jest popularna czy wręcz wymagana w pracy jako Python web developer? Czy znajomość UML jest w praktyce przydatna, i jak bardzo zaawansowane modele UML stosuje się w codziennej praktyce programistycznej? Proszę jednak o uwagi a propos każdego z zagadnień, o którym chcielibyście się wypowiedzieć. Z góry dziękuję za wszystkie konstruktywne uwagi.