niedziela, 28 lutego 2021

Nowy rodział – semestr 2

 Wczoraj dostałem informację o tym, że z poprawki Javy mam czwórkę, także mogę się pochwalić zaliczeniem wszystkich przedmiotów i wejściem na czysto w nowy semestr. Gdzieś na grupie studenckiej pojawiła się informacja, że na 313 uczęszczających na wykłady z PPJ (podstaw programowania w Javie) aż 171 osób było z ITN-ami, czyli powtarzało ten przedmiot. Trochę szokująca ta liczba, ale w sumie wiarygodna, bo nasz wykładowca pokazał, że jak chce to potrafi uwalić niemal każdego.

Co u mnie – studia rozpoczynam za dwa tygodnie, także jest chwila oddechu. Powoli wracam do naszego projektu algorytmu genetycznego – jesteśmy już na jedenastym "sprincie" i jednocześnie bardzo blisko działającej aplikacji.

Zapisałem się na kurs https://javaready.pl/ od Bartka Kalki i powoli zapoznaję się z materiałem. W końcu mam chwilę czasu, aby się na tym skupić. Co prawda kurs przewidziany jest dla osób starających się znaleźć pierwszą pracę jako developer, co... na razie mi nie grozi, no ale liczę na to, że zapoznam się trochę z samą praktyką programowania, narzędziami no i że w końcu uda mi się wydevelopować pierwszy działający kod w Javie do netu.

Projekt javowo-warhammerowy chyba ucichł, przypomnę się im z ofertą pomocy (czy może współpracy/nauki, bo kod mają bardziej rozwinięty niż moje dotychczasowe skille).

Jak na złość pojawiła się także fajna oferta pracy w supporcie technicznym jednego z adserwerów, do czego miałbym spore predyspozycje a i wiedzę branżową (ze strony użytkownika). Żałuję, że nie było takich ogłoszeń jak szukałem.

wtorek, 16 lutego 2021

Zadanie z analizy kodu

 Na dzisiaj mam krótką zagadkę związaną z poniższym kodem. Co się wyświetli?

public class Exploit {
public static void main(String[] args) {
Elementary elementary = new Elementary(1);
}
}

class Elementary {
double value;

public Elementary(int seed) {
this(seed == 1 ? (float) seed : (double) seed);
}

public Elementary(float floatSeed) {
this.value = floatSeed;
System.out.println("You passed");
}

public Elementary(double doubleSeed) {
this.value = doubleSeed;
System.out.println("You failed");
}
}


No właśnie, w metodzie main wołamy nasz obiekt Elementary i jego konstruktor. W konstruktorze dokonuję banalnego testu, którego wynikiem będzie true, po to, aby castować wartość seed na float i wywołać floatowy konstruktor.
Niestety nic z tego. Zgodnie z bardzo rozbudowaną sekcją specyfikacji Javy (15.25) ternary operator zachowuje się tutaj dość niespodziewanie: jeżeli jedna z opcji jest typu double, to druga też będzie tak castowana. Działa to także dla innych typów, ale szczerze mówiąc na razie jest to dla mnie dość hermetyczne.
Kto zna speckę Javy na pamięć, ten zdał ;)

sobota, 13 lutego 2021

Po pierwszym egzaminie z Javy

 Pierwszy egzamin z podstaw programowania był naprawdę trudny, pełny zadań związanych z analizą kodu i rozwiązywania wyrażeń typu 'a' & 2 == 'c'. Ciekawe jak mi poszło. Zastanawiam się też jak sobie poradzą osoby, dla których to była pierwsza styczność z programowaniem. Wyniki za parę dni.

wtorek, 2 lutego 2021

Czasu brak

 Wchodzimy w okres egzaminacyjny, w którym bardzo dużo tematów jest na raz, aż nie wiem za co chwycić się na początku. W tygodniu praca i raczej urlopu nie wezmę, zresztą dopiero co zacząłem pracować. Po godzinach zaś trzeba się uczyć. Deadline projektu kontenerowego w Javie za 2 dni a ja mam wielkie nic - trzeba będzie zrobić coś prostego i ograniczyć się do minimum, aby złapać jakiekolwiek punkty za to. Projekt algorytmu genetycznego powoli się rozwija, ale... tempo iście żółwie. Do tego intensywna nauka matematyki i (nie wiem kiedy) architektury komputerów.
W pracy, gdzieś między zadaniami, pojawił się projekt w Pythonie, więc będę mógł poznać nowy język. Tylko jak to ogarnąć? :)

Server socket all over place

 Kilka godzin tutoriali YT później i różnych prób, w końcu udało się zachęcić Server do współpracy :) Nie mogę powiedzieć, że to przełom, bo...