Główna – Dev Foundry http://devfoundry.pl programowanie • java • spring • kursy Thu, 13 May 2021 15:17:56 +0000 pl-PL hourly 1 https://wordpress.org/?v=5.0.16 http://devfoundry.pl/wp-content/uploads/2018/05/cropped-DEVfoundry_SYMBOL_512x512-32x32.png Główna – Dev Foundry http://devfoundry.pl 32 32 Heap, Stack i String Pool w Javie http://devfoundry.pl/heap-stack-i-string-pool-w-javie/ http://devfoundry.pl/heap-stack-i-string-pool-w-javie/#respond Fri, 30 Apr 2021 16:59:59 +0000 http://devfoundry.pl/?p=1249 System zarządzania pamięcią w Javie opiera się na dwóch konceptach: Stacku czyli Stosie oraz Heap, a więc Kopcu. Przyjrzyjmy się tym dwóm strukturom danych nieco bliżej. Stack i wątki W ramach działania aplikacji Javowej, począwszy od metody main, na Stacku (Stosie) pojawiają się jedna na drugiej ramki zawierające zmienne metod. Przestrzegają przy tym zasady LIFO (Last In, First Out). Gdy dana dana metoda zakończy swoje działanie, to jest automatycznie wypychana ze Stacka. Każdy wątek ma swój Thread Stack, na którym przechowywane ...

Czytaj dalej...Heap, Stack i String Pool w Javie

The post Heap, Stack i String Pool w Javie appeared first on Dev Foundry.

]]>
System zarządzania pamięcią w Javie opiera się na dwóch konceptach: Stacku czyli Stosie oraz Heap, a więc Kopcu. Przyjrzyjmy się tym dwóm strukturom danych nieco bliżej.

Stack i wątki

W ramach działania aplikacji Javowej, począwszy od metody main, na Stacku (Stosie) pojawiają się jedna na drugiej ramki zawierające zmienne metod. Przestrzegają przy tym zasady LIFO (Last In, First Out). Gdy dana dana metoda zakończy swoje działanie, to jest automatycznie wypychana ze Stacka.

Każdy wątek ma swój Thread Stack, na którym przechowywane są zmienne lokalne, ale jeśli są to zmienne referencyjne, to – uwaga – same obiekty do których odnoszą się te zmienne, znajdują się na Kopcu.

Załóżmy dla przykładu, że dana klasa implementująca interfejs Runnable ma jakieś pole value typu Integer. Wtedy jeśli z tej klasy zostaną utworzone np. 2 wątki, to każdy z tych wątków będzie korzystał z tego samego obiektu do którego odnosi się zmienna value. Dzieje się tak właśnie dlatego, że ten obiekt znajduje się na Heap, a nie lokalnych stackach tych wątków.

Ale jeśli dodatkowo ta sama klasa ma jakąś metodę, która będzie miała parametr int i, to kopię tego samego parametru i będą miały obydwa wątki, każdy na swoim lokalnym Stacku.

Kopiec

Jak już wspominałem wyżej – wszystkie obiekty w Javie znajdują się na Kopcu.

W cyklu działania danej aplikacji, obiekty mogą należeć do różnych tzw. Generations. Wyróżnia się kilka Generations obiektów i to determinuje ich miejsce w Kopcu.

Young Generation:
Eden Space – tu trafiają nowo utworzone obiekty.
Survivor Space – tu trafiają obiekty, które przetrwają cykl Garbage Collection w Eden Space.

Old Generation:
Tenured Space – tu trafiają obiekty, które przetrwały jakiś czas w Survivor Space.

Permanent Generation/Metaspace:
Miejsce w pamięci, które zawiera różne metadane a także static metody oraz zmienne.

UWAGA: Od Javy 8 to miejsce nazywa się Metaspace i różni się tym of Permanent Generation, że dynamicznie zmienia swój rozmiar w runtime aplikacji, czego Permanent Generation nie potrafiło.

Jak widać obiekty i ich miejsce w Kopcu jest też ściśle związane z Garbage Collectorem, ale o tym w innym wpisie 🙂

Różnica między Stosem i Kopcem

Pomijając oczywiste różnice i informacje, które opisałem powyżej, Stack i Heap różnią się od siebie jeszcze pod kilkoma innymi względami:

  • zmienne w Stacku mają długość życia przypisaną do trwania metody, a obiekty w Kopcu zależą od Garbage Collectora i ew. mogą żyć przez całą długość życia aplikacji,*
  • dostęp do zmiennych w Stacku jest o wiele szybszy niż do obiektów w Kopcu,
  • Heap nie jest Thread Safe i trzeba odpowiednio zarządzać dostępem do obiektów.

*To samo teoretycznie może dotyczyć jakiejś zmiennej znajdującej się na końcu metody main, ale… zakładam że to dość rzadki przypadek 🙂

String Pool

String Pool przed Javą 7 był częścią Permanent Generation. Od Javy 7 String Pool jest częścią Heap space.

Stringi w Javie są immutable, to znaczy, że jeśli napiszemy:

String s1 = "Test";
String s2 = "Test";

To Java nie przydzieli dodatkowego miejsca w String Pool dla stringa, na którego wskazuje zmienna “s2”. Tylko “s1” i “s2” będą wskazywały na to samo miejsce w pamięci.

UWAGA: Wyjątkiem jest sytuacja, kiedy stworzymy nowego Stringa za pomocą słowa kluczowego “new”, np.:

String s1 = "Test";
String s2 = new String("Test");

Wtedy nawet jeśli taki literał już istnieje w String Pool, to Java utworzy nowy obiekt typu String i umieści go na Heap.

Zaletą String Poola w Heap Space jest to, że Stringi które nie są z niczym powiązane (unreferenced Strings) podlegają usunięciu przez Garbage Collector. A w przypadku Permanent Generation przed Javą 7 nie były usuwane, bo.. były częścią Permanent Generation, której nie tykał się Garbage Collector. A jako że Permanent Generation było obszarem o stałym rozmiarze, to można było dość łatwo osiągnąć Out of Memory Error przez tworzenie zbyt dużej ilości nowych obiektów typu Stringów.

The post Heap, Stack i String Pool w Javie appeared first on Dev Foundry.

]]>
http://devfoundry.pl/heap-stack-i-string-pool-w-javie/feed/ 0
Słowo kluczowe Static w Javie http://devfoundry.pl/slowo-kluczowe-static-w-javie/ http://devfoundry.pl/slowo-kluczowe-static-w-javie/#respond Sun, 10 Jan 2021 11:48:21 +0000 http://devfoundry.pl/?p=1239 Pola oraz metody typu static należą do klasy, a nie do jej danej instancji, czyli obiektu. Dane z nich zapisywane są do specjalnego miejsca w pamięci, a dokładnie do Permanent Generation (od Javy 8 jest to tzw. Metaspace) poprzez Class Loadera, który… wczytuje daną klasę. Dlatego też pierwszy kod, który wykonuje się w Javie pochodzi z bloków static. Najpierw klasa wczytywana jest do Class Loadera, a dopiero później jakiekolwiek obiekty tej klasy mogą zostać utworzone. I dopiero wtedy wykonywany jest ...

Czytaj dalej...Słowo kluczowe Static w Javie

The post Słowo kluczowe Static w Javie appeared first on Dev Foundry.

]]>
Pola oraz metody typu static należą do klasy, a nie do jej danej instancji, czyli obiektu. Dane z nich zapisywane są do specjalnego miejsca w pamięci, a dokładnie do Permanent Generation (od Javy 8 jest to tzw. Metaspace) poprzez Class Loadera, który… wczytuje daną klasę.

Dlatego też pierwszy kod, który wykonuje się w Javie pochodzi z bloków static. Najpierw klasa wczytywana jest do Class Loadera, a dopiero później jakiekolwiek obiekty tej klasy mogą zostać utworzone. I dopiero wtedy wykonywany jest kod, który znajduje się w konstruktorze danej klasy.

Pola static

Słowo kluczowe static sprawia, że dane pole będzie przypisane do klasy, a nie do danej instancji tej klasy, a więc do obiektu tej klasy.

Może to być przydatne na przykład w sytuacji, gdy wiemy i chcemy zrobić tak, żeby wszystkie obiekty danej klasy miały jakąś część wspólną. Taką częścią może być właśnie jakaś wartość pola statycznego.

Zmienną statyczną wywołujemy pisząc przed nią nazwę klasy:

Bicycle.numberOfBicycles

Aczkolwiek można się do niej odnieść również poprzez zmienną referencyjną, chociaż jest to odradzane, bo wtedy nie widać na pierwszy rzut oka, że wywoływana metoda jest typu static:

myBike.numberOfBicycles

Wartość zmiennej statycznej można ustawić ręcznie przy deklaracji, w bloku static, ale również w konstruktorze. Wtedy przy każdorazowym tworzeniu instancji danej klasy, będzie ustawiana/inkrementowana wartość takiej zmiennej. Można w ten sposób na przykład zaimplementować licznik instancji danej klasy (w konstruktorze inkrementuje się wartość zmiennej statycznej).

Metody statyczne

Bardzo podobnie do zmiennych, statyczne metody należą do klasy, a nie do jej instancji.

Można się do nich odnosić przez nazwę klasy lub zmienną referencyjną (co ponownie – nie jest zalecane).

Można z nich normalnie korzystać z jedną uwagą.

UWAGA: W obrębie danej klasy, ze środka metod static NIE MOŻNA bezpośrednio wywoływać zwykłych zmiennych lub metod, bo należą one do danej instancji klasy, a nie do klasy jako takiej (więc kod w metodzie statycznej nie wiedziałby do jakiej instancji ma się zastosować). Dotyczy to również słowa kluczowego “this”, bo metoda statyczna nie zna żadnej instancji, do której może odnosić się “this”. Oczywiście ze środka metod static nadal można odnosić się do zwykłych zmiennych i metod, jeśli odbywa się to za pomocą zmiennej referencyjnej danego obiektu.

Poza tym dowolna kombinacja zmiennych i metod oraz ich wywołań jest dozwolona.

Stałe – Constants

Słowo kluczowe static w kombinacji z final, daje nam coś na kształt stałej, ponieważ jest jedna jej instancja oraz po przypisaniu jej jakiejś wartości, nie można jej zmienić. Zatem jeśli od razu przy deklaracji mamy też inicjalizację takiej zmiennej, to faktycznie jest ona stałą:

private static final double PI = 3.141592653589793;

Blok static

Kod z bloków static jest wykonywany w momencie wczytywania tej klasy przez Class Loadera (co dzieje się gdy JVM po raz pierwszy natknie się na tę klasę w kodzie), podobnie jak w przypadku metod oraz zmiennych typu static. Taką inicjalizację można też wymusić gdzieś w kodzie, który wiemy, że będzie się wykonywał jako pierwszy lub jeden z pierwszych, pisząc:

StaticClass.init()

lub:

Class.forName(StaticClass)

Dana klasa może mieć więcej niż jeden blok static.

Alternatywą dla bloku static jest wykorzystanie prywatnej, statycznej metody przy inicjalizacji pola static:

class ExampleClass {
    public static String stringVariable = initializeClassVariable();
        
    private static String initializeClassVariable() {

        //kod inicjalizacyjny
    }
}

The post Słowo kluczowe Static w Javie appeared first on Dev Foundry.

]]>
http://devfoundry.pl/slowo-kluczowe-static-w-javie/feed/ 0
Santa Cloud – więcej niż meetup IT! http://devfoundry.pl/santa-cloud-wiecej-niz-meetup-it/ http://devfoundry.pl/santa-cloud-wiecej-niz-meetup-it/#respond Thu, 05 Dec 2019 08:59:40 +0000 http://devfoundry.pl/?p=1221 Jest nam bardzo miło poinformować, że jesteśmy partnerami katowickiego meetupu IT – Santa Cloud! Ale Santa Cloud to coś więcej niż zwykły meetup IT! Po raz piąty spotykamy się, aby wysłuchać inspirujących prelekcji i pomóc zwierzętom! W tym roku widzimy się 10 grudnia o 18:00 w Restauracji Królestwo w Katowicach. W programie blok prezentacji, występ magika, aukcja charytatywna i networking! Czekają na Was: Piotr Łój – Czy VR może wyrównywać szanse dla grup wykluczonych?” Gosia Bekas – “A gdyby Twój pies ...

Czytaj dalej...Santa Cloud – więcej niż meetup IT!

The post Santa Cloud – więcej niż meetup IT! appeared first on Dev Foundry.

]]>
Jest nam bardzo miło poinformować, że jesteśmy partnerami katowickiego meetupu IT – Santa Cloud!

santa cloud meetup it
santa cloud meetup it

Ale Santa Cloud to coś więcej niż zwykły meetup IT! Po raz piąty spotykamy się, aby wysłuchać inspirujących prelekcji i pomóc zwierzętom! W tym roku widzimy się 10 grudnia o 18:00 w
Restauracji Królestwo w Katowicach.

W programie blok prezentacji, występ magika, aukcja charytatywna i networking! Czekają na Was:

  • Piotr Łój – Czy VR może wyrównywać szanse dla grup wykluczonych?”
  • Gosia Bekas – “A gdyby Twój pies sam mógł umówić się do weta”

Oraz trzeci tajemniczy prelegent, który zostanie ogłoszony niebawem 🙂

To wszystko? Skąd! W przerwie czeka na Was występ magika, a po prezentacjach – niczym wisienka na torcie – aukcja charytatywna “Giełda marzeń”, podczas której wylicytujecie “fanty”, które wzbogacą Wasze życie zawodowe (np. voucher na kurs programowania, konsultacja jak pozyskiwać fundusze od VC, biznesowa sesja zdjęciowa…) — i prywatne (np. nauka bachaty, czy warsztaty z improwizacji)!

A od Dev Foundry na aukcję trafią zestawy voucherów na darmowy dostęp do wszystkich naszych kursów!

Do zobaczenia na Santa Cloud!

Więcej informacji: https://www.facebook.com/events/674375663054513

The post Santa Cloud – więcej niż meetup IT! appeared first on Dev Foundry.

]]>
http://devfoundry.pl/santa-cloud-wiecej-niz-meetup-it/feed/ 0
Krakowskie Wykop Party 2019 http://devfoundry.pl/krakowskie-wykop-party-2019/ http://devfoundry.pl/krakowskie-wykop-party-2019/#respond Tue, 12 Feb 2019 08:40:54 +0000 http://devfoundry.pl/?p=927 Jest nam bardzo miło poinformować, że jesteśmy partnerami oraz sponsorami nagród na tegorocznej edycji Krakowskiego Wykop Party! ( ͡°( ͡° ͜ʖ( ͡° ͜ʖ ͡°)ʖ ͡°) ͡°) Impreza zaczyna się 23. lutego o godzinie 18:00 w krakowskim BarON przy ulicy Stefana Batorego 1. W imieniu organizatorów Krakowskiego Wykop Party 2019 – serdecznie zapraszamy, a wszystkim Mirkom i Mirabelkom życzymy udanej zabawy ( ͡° ͜ʖ ͡°) Na podanej stronie można znaleźć więcej szczegółów dotyczących imprezy: https://krakow2019.wykoparty.pl A tak prezentują się nagrody, a ...

Czytaj dalej...Krakowskie Wykop Party 2019

The post Krakowskie Wykop Party 2019 appeared first on Dev Foundry.

]]>
Jest nam bardzo miło poinformować, że jesteśmy partnerami oraz sponsorami nagród na tegorocznej edycji Krakowskiego Wykop Party! ( ͡°( ͡° ͜ʖ( ͡° ͜ʖ ͡°)ʖ ͡°) ͡°)

wykop party dev foundry blog programowanie java spring kursy

Impreza zaczyna się 23. lutego o godzinie 18:00 w krakowskim BarON przy ulicy Stefana Batorego 1.

W imieniu organizatorów Krakowskiego Wykop Party 2019 – serdecznie zapraszamy, a wszystkim Mirkom i Mirabelkom życzymy udanej zabawy ( ͡° ͜ʖ ͡°)

Na podanej stronie można znaleźć więcej szczegółów dotyczących imprezy: https://krakow2019.wykoparty.pl

A tak prezentują się nagrody, a więc customowe zestawy z kuponami do naszych kursów, które trafią w ręce szczęśliwych Mirków i Mirabelek 🙂

wykop party dev foundry  nagrody blog programowanie java spring kursy

The post Krakowskie Wykop Party 2019 appeared first on Dev Foundry.

]]>
http://devfoundry.pl/krakowskie-wykop-party-2019/feed/ 0
Praca zdalna – wady i zalety http://devfoundry.pl/praca-zdalna-wady-i-zalety/ http://devfoundry.pl/praca-zdalna-wady-i-zalety/#comments Wed, 16 Jan 2019 11:28:57 +0000 http://devfoundry.pl/?p=880 Pracodawcy coraz częściej oferują możliwość pracy zdalnej, warto więc przyjrzeć się jej nieco bliżej. Od razu możemy wyjaśnić sobie jedną rzecz – jeśli nie jesteś gigantem skupienia, zapomnij o ikonicznych obrazkach z pracą na plaży. Aby efektywnie pracować jako programista potrzebujesz koncentracji, a żeby mózg mógł tego dokonać musimy minimalizować zewnętrzne bodźce . Woda po horyzont, szum morza, skrzek mew i spacerowicze – wszystko to będzie nam przeszkadzać. Jeśli chcesz prześledzić zmiany krok po kroku w formie wideo, to zapraszamy ...

Czytaj dalej...Praca zdalna – wady i zalety

The post Praca zdalna – wady i zalety appeared first on Dev Foundry.

]]>
praca zdalna dev foundry blog programowanie java spring kursy

Pracodawcy coraz częściej oferują możliwość pracy zdalnej, warto więc przyjrzeć się jej nieco bliżej.

Od razu możemy wyjaśnić sobie jedną rzecz – jeśli nie jesteś gigantem skupienia, zapomnij o ikonicznych obrazkach z pracą na plaży.

Aby efektywnie pracować jako programista potrzebujesz koncentracji, a żeby mózg mógł tego dokonać musimy minimalizować zewnętrzne bodźce . Woda po horyzont, szum morza, skrzek mew i spacerowicze – wszystko to będzie nam przeszkadzać.


Jeśli chcesz prześledzić zmiany krok po kroku w formie wideo, to zapraszamy na nasz kanał na YouTube.


Na plaży czy w szafie?

praca zdalna dev foundry blog programowanie java spring kursy

Nasz mózg całkiem sprawnie radzi sobie z przypisywaniem zadań do miejsc – wchodząc do biura samoistnie przestawiamy się w tryb roboczy. Gdy zaczynamy pracować zdalnie, nasz mózg będzie w trybie domowym bądź kawiarnianym i potrzebujemy czasu nim nauczymy go, że jesteśmy w domu, a jednak pracujemy. Zresztą podobnie ma się sprawa z dzieciakami… skoro tata jest w domu to można się z nim bawić.

Gdy już decydujemy się na pracę zdalną, to najlepiej mieć do tego osobny gabinecik, nawet jeśli miałby być wielkości szafy, albo przynajmniej pracować zawsze w jednym miejscu, żeby mózg zaczął je kojarzyć z pracą.

Uwaga na rozpraszacze

praca zdalna dev foundry blog programowanie java spring kursy

Tak więc pierwszym problemem jest miejsce pracy. Drugim problemem jesteśmy my sami – pamiętasz stan przed egzaminami kiedy to wszystko, łącznie z prasowaniem i zmywaniem, zdaje się być ciekawsze i ważniejsze niż nauka? Tak wyglądają też początki pracy z domu, dlatego na początku warto minimalizować wszelkiego rodzaju pokusy oraz ćwiczyć swój poziom skupienia. Warto korzystać na przykład z techniki pomodoro – czyli 25 minut totalnego skupienia i 5 minut przerwy.

Programistyczne walkie-talkie

praca zdalna dev foundry blog programowanie java spring kursy

Trzecim problemem jest komunikacja, na przykład przyswajanie wiedzy od lepszych od nas członków zespołu. W warunkach biurowych pewne rzeczy odbywają się naturalnie – a to wychwycimy jakieś informacje o systemie z zasłyszanej rozmowy, dowiemy się czegoś nowego podczas spontanicznej rozmowy przy kawie czy poprosimy „ad hoc” o pomoc kolegę, który akurat przechodził obok naszego biurka. Podczas pracy z domu żadne z tych warunków nie zachodzi. Zespoły rekompensują te braki używając narzędzia Slack, Microsoft Teams czy tym podobnych komunikatorów grupowych, jednak nie jest to tak efektywne. Oczywiście wciąż uczymy się podczas normalnych rozmów czy code review, jednak jest to proces wolniejszy.

Również komunikacja między personalna jest trudniejsza w tym przypadku – ponieważ komunikujemy się tylko tekstowo, więc odpada nam kontakt twarzą-w-twarz i cały szereg wskazówek niewerbalnych, dlatego czasem ciężko wyczuć emocje drugiej osoby.

Co dobrego?

praca zdalna dev foundry blog programowanie java spring kursy

Tyle na temat minusów. Może i zabrzmiały one dość mocno jednak taki rodzaj pracy ma oczywiście gigantyczne plusy. Odzyskujemy godziny, oraz pieniądze, które do tej pory poświęcaliśmy na dotarcie do pracy, zyskujemy elastyczność jeśli chodzi o jej czas oraz wykonujemy ją w naszej własnej, domowej atmosferze i w takich warunkach jakie nam odpowiadają. A finalnie – gdy już będziemy w stanie skupić się na pracy – zdecydowanie wzrośnie nam wydajność, bo nie będą pojawiały się typowe dla biur rozpraszacze.

Praktyka czyni mistrza

praca zdalna dev foundry blog programowanie java spring kursy

Dodatkowo dwa pierwsze minusy – czyli kwestia przestawienia się na tryb roboczy oraz skupienia są jak najbardziej rozwiązywalne poprzez wyrobienia w sobie nawyku, więc pozostaje tylko kwestia nauki – a tu również przy odrobinie samozaparcia możemy poprawić stan rzeczy i samemu zadawać dużo pytań odnośnie rzeczy, których nie wiemy.

Warto spróbować

praca zdalna dev foundry blog programowanie java spring kursy

Reasumując – dla osób zaczynających dopiero swoją przygodę z branżą i pracą zdalną najlepszym rozwiązaniem jest dostanie się do firmy gdzie zdecydowana większość zespołu pracuje zdalnie. Tam są już wyrobione dobre praktyki i kultura pracy zdalnej, które zostaną Tobie przekazane.

Należy unikać sytuacji, w których tylko niewielka część osób pracuję zdalnie – wówczas istnieje bardzo duże ryzyko, że zostaniemy wyobcowani.

Na pewno zdecydowanie warto szukać pracodawcy, który oferuje dzień lub dwa pracy zdalnej w tygodniu. Wtedy można stopniowo wdrażać się w ten model pracy.

The post Praca zdalna – wady i zalety appeared first on Dev Foundry.

]]>
http://devfoundry.pl/praca-zdalna-wady-i-zalety/feed/ 1
Rekrutacja na stanowisko programisty – nowy kurs! http://devfoundry.pl/rekrutacja-na-stanowisko-programisty-nasz-nowy-kurs/ http://devfoundry.pl/rekrutacja-na-stanowisko-programisty-nasz-nowy-kurs/#respond Mon, 07 Jan 2019 11:40:33 +0000 http://devfoundry.pl/?p=849 Właśnie opublikowaliśmy nasz drugi kurs na platformie Udemy: Rekrutacja na stanowisko programisty Jest on dedykowany wszystkim, którzy właśnie szukają pracy w zawodzie programisty! 🙂  W kursie dowiesz się między innymi: jak wygląda cały proces rekrutacji na stanowisko programisty, jak stać się atrakcyjnym kandydatem na rynku pracy, jak stworzyć profesjonalne CV, jak negocjować stawkę wynagrodzenia z pracodawcą, jakie są zalety i wady pracy zdalnej, jak zaplanować naukę do rozmowy kwalifikacyjnej, jak podejść do rozwiązywania zadań technicznych, na co zwrócić uwagę ...

Czytaj dalej...Rekrutacja na stanowisko programisty – nowy kurs!

The post Rekrutacja na stanowisko programisty – nowy kurs! appeared first on Dev Foundry.

]]>
Właśnie opublikowaliśmy nasz drugi kurs na platformie Udemy:

Rekrutacja na stanowisko programisty

Jest on dedykowany wszystkim, którzy właśnie szukają pracy w zawodzie programisty! 🙂



W kursie dowiesz się między innymi:

  • jak wygląda cały proces rekrutacji na stanowisko programisty,
  • jak stać się atrakcyjnym kandydatem na rynku pracy,
  • jak stworzyć profesjonalne CV,
  • jak negocjować stawkę wynagrodzenia z pracodawcą,
  • jakie są zalety i wady pracy zdalnej,
  • jak zaplanować naukę do rozmowy kwalifikacyjnej,
  • jak podejść do rozwiązywania zadań technicznych,
  • na co zwrócić uwagę przy wyborze pracodawcy…

… i dużo więcej! 🙂

Więc nieważne czy jest to Twoja pierwsza praca w życiu, zmiana branży lub po prostu zmiana firmy. W naszym kursie znajdziesz odpowiedzi na wszystkie nurtujące Cię pytania!

Poniżej znajdziecie link z kodem zniżkowym do kursu:

https://www.udemy.com/rekrutacja-na-stanowisko-programisty/?couponCode=REKRUTACJA_DEV_BLOG

Zapraszamy! 🙂

The post Rekrutacja na stanowisko programisty – nowy kurs! appeared first on Dev Foundry.

]]>
http://devfoundry.pl/rekrutacja-na-stanowisko-programisty-nasz-nowy-kurs/feed/ 0
Jaki język programowania wybrać? http://devfoundry.pl/jaki-jezyk-programowania-wybrac/ http://devfoundry.pl/jaki-jezyk-programowania-wybrac/#comments Wed, 17 Oct 2018 07:05:46 +0000 http://devfoundry.pl/?p=779 Jaki język programowania wybrać na początek? Od czego zacząć? Te pytania zadaje sobie każdy, kto chce wstąpić na ścieżkę programistyczną – niezależnie, czy jest to ktoś dopiero zaczynający swoją karierę na rynku pracy lub ktoś, kto chce się przebranżowić. Oczywiście takie pytania są zasadne, bo nikt nie chce tracić czasu na naukę czegoś, co ostatecznie okaże się niepotrzebne w docelowej pracy. Jeśli więc jesteś w jednej albo drugiej grupie osób, to nie martw się – w tym wpisie postaramy się ...

Czytaj dalej...Jaki język programowania wybrać?

The post Jaki język programowania wybrać? appeared first on Dev Foundry.

]]>
Jaki język programowania wybrać na początek? Od czego zacząć? Te pytania zadaje sobie każdy, kto chce wstąpić na ścieżkę programistyczną – niezależnie, czy jest to ktoś dopiero zaczynający swoją karierę na rynku pracy lub ktoś, kto chce się przebranżowić. Oczywiście takie pytania są zasadne, bo nikt nie chce tracić czasu na naukę czegoś, co ostatecznie okaże się niepotrzebne w docelowej pracy. Jeśli więc jesteś w jednej albo drugiej grupie osób, to nie martw się – w tym wpisie postaramy się znaleźć coś właśnie dla Ciebie.

Wybór według popularności

Jest wiele różnych sposobów na wybranie języka programowania. Jeśli interesuje Cię tylko i wyłącznie to, jaki język jest popularny, to istnieje wiele tak zwanych indeksów popularności. Przykładem jest TIOBE: https://www.tiobe.com/tiobe-index/ – indeks aktualizowany miesięcznie, który jest tworzony na podstawie liczby zatrudnionych programistów, wyników wyszukiwań w popularnych przeglądarkach internetowych, serwisach takich jak Wikipedia i YouTube, ilości kursów online, i tak dalej. Oczywiście takie wskaźniki nie pokazują jaki język jest najpopularniejszy w miejscu, w którym aktualnie mieszkasz lub chcesz zamieszkać. Aby się tego dowiedzieć, należałoby przejrzeć konkretne ogłoszenia o pracę.


Jeśli chcesz prześledzić zmiany krok po kroku w formie wideo, to zapraszamy na nasz kanał na YouTube.


Znany i stabilny czy nowy i modny?

Jednak popularność to nie wszystko. Jeśli jakiś język albo framework jest nowy, daje to potencjalnie większą szansę na znalezienie pracy, bo mało osób go zna, ale z drugiej strony może się okazać, że szybko zostanie wyparty przez kolejną nową technologię.

Z kolei znane języki i frameworki mają to do siebie, że są stabilne. I to nie tylko w swoim działaniu, ale też z punktu widzenia danej firmy. Wiadomo, że w sieci znajduje się pełna dokumentacja takiego języka i fora internetowe są pełne pytań i odpowiedzi na różne problemy. Są też wszelkie kursy, filmy i tutoriale. W tym przypadku konkurencja na rynku pracy jest duża, ale jest również dużo ofert pracy i można mieć pewność, że zapotrzebowanie na programistów tego języka nie zniknie ot tak.

Język + framework

Często wraz z językiem programowania powiązana jest jakaś inna technologia: framework (czyli zbiór gotowych rozwiązań programistycznych dla danego języka programowania), biblioteka lub platforma. Na pewno warto je poznać po nauczeniu się podstaw danego języka i z pewnością ułatwi to późniejsze poszukiwania pracy.

Do wyboru do koloru!

Zanim dokonasz wyboru konkretnego języka, warto najpierw rozważyć możliwe dziedziny, w których możesz się realizować jako programista.

Są to:

  • gry,
  • aplikacje desktopowe,
  • aplikacje mobilne,
  • aplikacje webowe,
  • aplikacje embedded,
  • data science.

Gry

 +  +  + 

W przypadku gier sprawa jest dość prosta. Tutaj króluje C++ i bardzo popularny silnik Unreal Engine. Silnik ten jest napisany właśnie w C++ i jest wieloplatformowy, czyli gry docelowo można wydawać na systemy Windows, Linux, MacOS i na konsole.

Poza tym niektóre zespoły deweloperskie programują również w języku C#, korzystając ze środowiska Unity.

Ostatnią opcją jest wykorzystanie języka Java wraz z biblioteką libgdx. Jest to bardziej niszowy wybór, na który decydują się głównie twórcy gier niezależnych. Dzięki libgdx najczęściej tworzy się gry na urządzenia mobilne albo przeglądarki internetowe.

Aplikacja desktopowe

W przypadku aplikacji desktopowych wszystko zależy od docelowej platformy:

   

  • Dla MacOS polecamy język Swift, bo jest teraz bardzo popularny. Jest też objective-c, ale Swift jest jego następcą i opcją znacznie bardziej przyszłościową.

    + 

  • Następnie mamy system Linux, który daje większą elastyczność, bo programować możemy zarówno w C/C++, Javie lub Pythonie. Jednak jeśli mielibyśmy zawęzić ten wybór, to polecili byśmy Javę wraz z platformą JavaFX lub Pythona.

    +  + 

  • Jeśli zaś wybór padnie na Windowsa, swoją przygodę można zacząć z C# i frameworkiem .NET albo z Javą i platformą JavaFX

Aplikacje mobilne

    , 

Przejdźmy do aplikacji mobilnych: tutaj znowu mamy podział na systemy operacyjne:

W przypadku iOS będziemy programować w Swifcie, a w przypadku Androida – w Javie.

Jest też Kotlin, który jest językiem wieloplatformowym, tzn domyślnie możemy go używać do pisania programów na Androida, natomiast przy wykorzystaniu Kotlin Native, można pisać programy, które będą kompilowane do kodu, który można użyć również na iOS i innych systemach.

Aplikacje webowe

Aplikacje webowe są chyba najbardziej popularne i powszechne, zwłaszcza w środowiskach korporacyjnych i generalnie w zastosowaniach komercyjnych. I tu faktycznie jest prawdziwa bonanza języków i technologii.

Wybierając drogę developera aplikacji webowych, najpierw musisz sobie zadać pytanie czy chcesz programować frontend czy backend:

    +  + 

  • Frontend to wszystko to co dzieje się po stronie klienta, czyli przeglądarki internetowej, a więc to co widać na stronie internetowej: design, tekst, grafika, ustawienie poszczególnych elementów. Programista frontendowy (o ile w zespole nie ma UX/UI designera) odpowiada więc za wystrój strony, a także wysyła lub odbiera dane od części backendowej (serwerowej) aplikacji i wyświetla je w odpowiedniej formie na stronie internetowej. W przypadku frontendu powinno się zacząć przygodę od Javascriptu (lub jego nadzbioru: Typescriptu) oraz frameworka Angular albo biblioteki React. Są one w tej chwili najbardziej powszechne.

    +  +  + ,

  • Backend natomiast to wszystko to, co dzieje się po stronie serwera. Odpowiada on za odbiór danych przesłanych (na przykład z formularza) od części frontendowej, ich walidację (czyli sprawdzenie poprawności), ewentualne przetworzenie i najczęściej zapisanie w bazie danych. I w drugą stronę: na odpowiednie zapytanie frontendowe, backend sięga do bazy danych i wyciąga z niej odpowiednie informacje, które następnie zwraca. Tutaj w środowisku korporacyjnym króluje Java wraz z frameworkiem Spring oraz C# wraz z platformą .NET. Natomiast nieco mniej popularne, ale równie istotne będą: Python z frameworkiem Django, Ruby ze słynnym frameworkiem Ruby on Rails czy PHP z frameworkiem Symfony. Ciekawostką może być to, że pojawia się tutaj również Javascript, który w połączeniu ze środowiskiem Node.js może być równie dobrym językiem backendowym, zwłaszcza jeśli chodzi o mniejsze projekty.

    +  +  + 

Systemy wbudowane

Przechodzimy do systemów wbudowanych. Są to systemy, w których programuje się sterowniki różnego rodzaju urządzeń. Mogą to być czujniki temperatury, prędkości przejazdu danego pojazdu lub bardziej przyziemne rzeczy, jak na przykład bankomat, lodówka albo zmywarka. Do programowania tych systemów wykorzystuje się najczęściej języki niskopoziomowe, czyli takie, których instrukcje i funkcje mogą być łatwo tłumaczone na język maszynowy, zrozumiały dla danego urządzenia.

Tu najbardziej popularny będzie język C, ewentualnie C++. Na popularności w tej dziedzinie programowania zyskuje również Python.

Data science

Została nam jeszcze sekcja data science. Jest to dział programowania, który polega na analizie bardzo dużych zbiorów danych. W przypadku data science, oprócz samego programowania będzie też potrzebna znajomość innych dziedzin nauki, a konkretnie matematyki i statystyki. Wymagana będzie również znajomość pewnych algorytmów. Programista data science wychwytuje z ogromnego zbioru pozornie ze sobą nie powiązanych danych pewne zależności, które później są wykorzystywane w różnego rodzaju wizualizacjach: raportach lub wykresach.

Data science obejmuje również takie dziedziny jak sztuczna inteligencja i uczenie maszynowe.

W przypadku data science najpopularniejsze języki programowania to R oraz Python.

Czym jeszcze się kierować?

Oprócz samego zastosowania, to co może Tobą kierować przy wyborze danego języka to jego składnia, dlatego przed podjęciem ostatecznej decyzji, warto przejść kilka tutoriali dla początkujących zanim sięgniesz po pierwszy kurs, film lub książkę do nauki.

Materiały pomocnicze

Polecamy również skorzystanie z serwisu: https://jaki-jezyk-programowania.pl/, który w prosty i przejrzysty sposób, krok po kroku pomoże Ci w wyborze odpowiedniego języka.

Mała firma czy duża korporacja?

Warto również pamiętać, że języki które są popularne w wielkich korporacjach, niekoniecznie znajdą zastosowanie w mniejszych firmach. Jeszcze inaczej rzeczy mają się w przypadku startupów. Tam często kusi się programistów obietnicami pracy w zupełnie nowym projekcie z wykorzystaniem najnowszego języka i frameworka. I programiści znudzeni wieloletnią pracą z jakimś projektem mogą na to przystać. Jednak występuje tu ryzyko, że koniec końców taki projekt nie wypali i za jakiś czas trzeba będzie szukać nowej pracy.

Jak się uczyć?

Natomiast co do sposobu nauki, to jest to temat na cały kolejny wpis i jest to sprawa dość indywidualna, ale obecnie bardzo popularna jest nauka z kursów online, których przybywa coraz więcej. Polecamy tutaj platformę Udemy. A poza tym bardzo dobre są również książki. Ważne tylko, żeby były możliwie jak najnowsze, aby nie uczyć się starych wersji danego języka lub frameworka.

Podsumowanie

Mam nadzieję, że ten poradnik nieco rozjaśnił Ci kwestię wyboru języka programowania. Wybór jest naprawdę spory, ale najważniejsze to po prostu dokonać wyboru i zacząć programować. Idealnie pasuje tutaj powiedzenie: „Praktyka czyni mistrza”.

The post Jaki język programowania wybrać? appeared first on Dev Foundry.

]]>
http://devfoundry.pl/jaki-jezyk-programowania-wybrac/feed/ 1
Witamy na naszym blogu! http://devfoundry.pl/witamy-na-naszym-blogu/ http://devfoundry.pl/witamy-na-naszym-blogu/#respond Fri, 04 May 2018 12:22:18 +0000 http://devfoundry.pl/?p=160 Chcielibyśmy, aby było to miejsce, które z chęcią będą odwiedzać zarówno początkujący programiści, jak i tacy, którzy mają za sobą już niejeden ukończony projekt. Przede wszystkim ma być to blog edukacyjny, jednak chcielibyśmy umieszczać na nim również treści dotyczące wszelakich nowinek lub też ciekawostek ze świata programistycznego lub ogólnie pojętej branży IT. Wkrótce pojawi się tutaj nasz pierwszy wpis. Już teraz możemy zdradzić, że będzie dotyczył pewnej funkcjonalności, która została dodana do 8. wydania Javy. Zapraszamy do ponownych odwiedzin za ...

Czytaj dalej...Witamy na naszym blogu!

The post Witamy na naszym blogu! appeared first on Dev Foundry.

]]>
Chcielibyśmy, aby było to miejsce, które z chęcią będą odwiedzać zarówno początkujący programiści, jak i tacy, którzy mają za sobą już niejeden ukończony projekt. Przede wszystkim ma być to blog edukacyjny, jednak chcielibyśmy umieszczać na nim również treści dotyczące wszelakich nowinek lub też ciekawostek ze świata programistycznego lub ogólnie pojętej branży IT.

Wkrótce pojawi się tutaj nasz pierwszy wpis. Już teraz możemy zdradzić, że będzie dotyczył pewnej funkcjonalności, która została dodana do 8. wydania Javy.

Zapraszamy do ponownych odwiedzin za jakiś czas! 🙂

The post Witamy na naszym blogu! appeared first on Dev Foundry.

]]>
http://devfoundry.pl/witamy-na-naszym-blogu/feed/ 0