Czego jeszcze warto się nauczyć?

0

Witam. Uczę się programowania od 7 miesięcy, chcę zostać web devem, jeszcze 5 miesięcy i kończę studia, chciałbym wtedy startować na junior php dev. Moje pytanie, co jeszcze warto byłoby wiedzieć?
Na chwilę obecną poznałem i wykorzystałem
-PHP 5.6, 7.
-Laravel
-Wzrorce MVC, Strategy, Singleton(nie używam),
-OOP (instancje, polimorfizm, klasy abstrakcyjnem interfejsy, traity, DI itp) - ciągle szlifuję w miarę chęci i możliwości.
-MySql( poziom średni, indeksy, INNER JOIN, normalizacja i denormalizacja danych).
-Allegro API.
Wykonalem kilka projektów (2 sklepy internetowe z panelem admina, jeden w czystym PHP, a drugi w Laraverze z wykorzystaniem laravelowych możliwości, czyli kolejki do wysyłania faktur itp), jedno podstawowe forum- laravel, zaplecze SEO-laravel.

0
  1. Testy jednostkowe
  2. Serwery WWW (nginx)
5

Bezpieczeństwo aplikacji
Co to jest, jak zaatakowac i jak się obronić przed: SQL Injection, XSS, CSRF, session hijacking, session fixation.

Testy

  • Rodzaje testów
  • Co to jest TDD

Protokół HTTP

  • Jak zbudowany jest request message
  • Co to są headery
  • Jakie są metody (GET, POST, PUT, DELETE itd.) i ogólnie o co chodzi z REST
  • Z grubsza HTTPS/SSL

SQL

  • Transakcje
  • Kiedy zakładać indeksy/kiedy nie i dlaczego
  • Optymalizacja zapytań, plan wykonania zapytania (query execution plan)

Ekstra

  • Systemy kolejek - RabbitMQ
  • Caching i NoSql - Redis
  • CQRS i Event Sourcing
  • SOLID i KISS

Jeżeli chcesz zaplusować to możesz też się nauczyć Symfony, bo większość poważnych firm jednak jego używa.

0

Jeśli laravel to broadcasting z wykorzystaniem node.js i ogólnie komunikacja laravel<->front po websocketach

1

W PHP bym się już nie pchał, lepiej Elixir i Phoenix.

0

Można się nauczyć, że nie zaczyna się wiadomości od 'Witam' :)

A serio, zrób listę firm, w których chciałbyś pracować i zobacz, czego wymagają.

1

uniwersalne:
Git
Bash
linux/unix
multithreading?

Stwierdzić, że rzeczy które wymieniłeś to tak naprawde nie umiesz i przysiąść jeszcze raz porządnie.

0
Czarny Kucharz napisał(a):

uniwersalne:
Git
Bash
linux/unix
multithreading?

Stwierdzić, że rzeczy które wymieniłeś to tak naprawde nie umiesz i przysiąść jeszcze raz porządnie.

Ostatnie zdanie ma mówić że autor tak na prawdę nie zna tego co wypisał?

2
Wesoły Ogrodnik napisał(a):

Ostatnie zdanie ma mówić że autor tak na prawdę nie zna tego co wypisał?

Niekoniecznie. Ale lepiej wylać na siebie wiadro zimnej wody wcześniej, niż zostać zalanym jak wodospad później.

Patrząc po sobie, też wiele razy zdawało mi się, że coś znam by później dostać od tego po dupie.

0

Można się też poduczyć jak takie aplikacje deployować - czyli na przykład jakieś proste CI/CD pod to podpiąć, może odpalać vmki/kontenery Vagrantem, monitoring usług/serwerów, configuration management (np Ansible), korzystanie z CDN albo jakiegoś lokalnego cache (np Varnish), WAF. Nie są to może jakieś podstawowe informacje, ale są zawsze na plus (do tego przydają się do własnych projektów).

0

Uczę się programowania od 7 miesięcy, chcę zostać web devem, jeszcze 5 miesięcy i kończę studia,
chciałbym wtedy startować na junior php dev. Moje pytanie, co jeszcze warto byłoby wiedzieć?

Wydaje mi się, że aż za dużo wiesz, w tym sensie, że jak na 7 miesięcy to być może aż za szybko poszedłeś z tematem. Nie chciałbym osądzać, bo każdy się inaczej uczy i niektórzy mogą faktycznie być zdolni i łykać wszystko w ekspresowym tempie (może należysz do takich osób), ale na pierwszy rzut oka to mi się nasuwa to co Czarny Kucharz napisał - że być może nauczyłeś się tego po łebkach.

-OOP (instancje, polimorfizm, klasy abstrakcyjnem interfejsy, traity, DI itp) - ciągle szlifuję w miarę chęci i możliwości.

wg mnie najpierw człowiek powinien się nauczyć programować w prosty sposób (na zwykłych funkcjach), a potem brnąć w zaawansowaną obiektówkę typu klasy abstrakcyjne, traity, DI nie wiadomo co).

-Wzrorce MVC, Strategy, Singleton(nie używam),

We wzorce projektowe też moim zdaniem na początku nie warto brnąć. Chociaż MVC się przydaje jeszcze.

Wykonalem kilka projektów (2 sklepy internetowe z panelem admina, jeden w czystym PHP, a drugi w Laraverze
z wykorzystaniem laravelowych możliwości, czyli kolejki do wysyłania faktur itp), jedno podstawowe forum- laravel, zaplecze SEO-laravel.

To bym bardziej rozwinął. Ponieważ swoje pierwsze projekty przeważnie człowiek pisze dość słabo, mógłbyś wrócić się do tych projektów i zobaczyć co można zmienić, np. albo rozszerzyć funkcjonalność, albo coś usunąć w kodzie (czasem się pisze różne rzeczy w kodzie, które potem nie mają za wiele sensu).

I spróbować przetestować dany projekt w warunkach bojowych (czy te sklepy internetowe są przez kogoś używane? Jeśli nie, to trochę programowanie na sucho. Czyli - jak zrobiłeś sklep internetowy to stawiasz kogoś przed projektem i każesz mu coś zrobić. Wtedy widzisz, na ile to co zrobiłeś jest intuicyjne i nie ma bugów - np. okej, kolejka do wysyłania faktur - ale czy jakaś firma naprawdę z tego korzysta?). No i kwestia zabezpieczeń - co jeśli ktoś spróbuje się włamać na ten sklep? Czy są zrobione stosowne zabezpieczenia?

Czyli zweryfikować i udoskonalić to, co już zrobiłeś.

Albo spróbuj zrobić coś innego od tego, co robiłeś do tej pory (np. prostą grę przeglądarkową). To cię nauczy rozwiązywania różnego rodzaju problemów.

Czyli generalnie nie szedłbym w naukę technologii, wzorców, czy nie wiadomo czego, ale w naukę tworzenia oprogramowania (masz kucharza, gdzie technologie czy wzorce to przyprawy, a oprogramowanie to gotowa potrawa. Nie chodzi o to, żeby jak najwięcej przypraw poznać, a to, żeby umieć się nimi posługiwać i robić dobre jedzenie).

Chociaż jeśli o same technologie to dodałbym Git do nauki, bo nie wymieniłeś, a to porządne narzędzie, które pozwala panować nad historią zmian w projekcie.

1 użytkowników online, w tym zalogowanych: 0, gości: 1