TeamQuest Blog

Pomysły na projekty

Pomysły na projekty

Marcin Sarna , 22.12.2020 r.

Szukasz tematu do ożywienia portfolio? Cierpisz na nadmiar czasu? Zmierz się z tymi projektami.

Co by tu napisać?

Zazwyczaj to nad czym akurat programista głowi się w swoim ulubionym IDE zależy od tego do czego się zobowiązał wobec pracodawcy czy zleceniodawcy. Ale są też takie (krótkie i rzadkie) momenty w życiu gdy mamy ochotę napisać coś według własnego wyboru. Za co się zabrać? Tracycyjne propozycje to edytor tekstu, Space Invaders, kolejny klon Sudoku, prosty kompilator, RESTowa aplikacja inteligentnego domu czy emulator czegokolwiek. Ale może spróbować czegoś bardziej „na czasie”? Dobry projekt może też otworzyć się drzwi do pracy w branży IT.

Śledzenie promieni

Tak, raytracing! Czy jest coś bardziej trendy w świecie grafiki komputerowej? Tu trzeba mieć jednak solidne podstawy teoretyczne. Nie martw się, jeśli od razu nie zrozumiesz całej matematyki lub żargonu, po prostu próbuj robić drobne postępy. Istnieje wiele darmowych, publicznie dostępnych zasobów dotyczących raytracingu, pod tym względem ta dziedzina nie różni się niczym od tego co próbowałeś w IT do tej pory.

Raytracing może się udać nawet z zaledwie 300 liniami kodu. To nie tylko analiza różnego rodzaju odbić, świateł czy materiałów. Gdy zdasz sobie sprawę, że renderowanie pojedynczego obrazu może zająć kilka minut, zaczniesz to optymalizować. Ani się nie obejrzysz i wejdziesz w zagadnienia stricte programistyczne.

Na początku warto celowo obniżyć rozdzielczość, aby móc tworzyć animacje w czasie rzeczywistym. GIF wirującego torusa ze spadającymi cząsteczkami to naprawdę dobry pomysł na początek. Pamiętaj, że gry indie to głównie unikalny, artystyczny styl. Tutaj raytracing działa cuda i umożliwia stworzenie 8-bitowych retro gier wideo w zupełnie nowych odsłonach.

Internetowy magazyn kluczy i wartości – jako API

Składnica par klucz-wartość to tak naprawdę tylko słownik. Dajesz klucz, dostajesz wartość. Możesz dodawać nowe klucze, usuwać klucze lub aktualizować wartości. I ani się nie obejrzysz jak utworzysz bazę danych NoSQL. Ale nie musisz na tym poprzestać - możesz pójść o krok dalej i zaoferować ją jako internetowy interfejs API, aby wszystkie przyszłe aplikacje internetowe mogły korzystać z usługi bazy danych.

Sprawdź oferty pracy na TeamQuest

Czyli zaczynasz od użycia struktury danych słownika, która jest dostarczana z dowolnym językiem programowania, którego używasz, a potem nakładasz na nią internetowy interfejs API. Następnie można dodać o wiele więcej: optymalizacje pod kątem wysokiej wydajności czy bezpieczeństwa, obsługę wielu użytkowników, niepodzielne transakcje, typy danych, trwałość, odzyskiwanie po awarii i możliwość uruchamiania na wielu serwerach. Czyżbyś tworzył właśnie nowy Redis lub Amazon DynamoDB?

Przeglądarka internetowa

Co się stanie, gdy wpiszesz teamquest.pl w przeglądarce internetowej i naciśniesz Enter? Fajnie jest wiedzieć jak to wszystko naprawdę działa. Najbardziej interesującą częścią może się okazać na przykład to, jak przeglądarka zamienia HTML i CSS w renderowaną stronę internetową.

Jasne, tu nie chodzi o zaprojektowanie jakiegoś kosmicznego interfejsu użytkownika, który zmiażdży Chrome’a lub Brave. Załóżmy jednak, że sięgniesz po gotową bibliotekę HTTP i parser HTML, ale zaimplementujesz już własny renderer. Dalej ciężko? Może zaczniemy od stworzenia przeglądarki tekstowej? Zignoruj wszystkie JavaScript i CSS. Wykonujesz HTTP GET z podanym adresem URL a potem analizujesz kod HTML, aby znaleźć tekst, który powinien zostać wyświetlony, wyświetlasz i już.

Gdy otrzymasz nawet tylko taki zwykły tekst, nie brakuje funkcji, które możesz następnie napisać. Możesz dodawać karty, historię, przyciski Wstecz i Dalej, itp. Ale w pewnym momencie możesz chcieć czegoś więcej niż tekst. Jeśli wrócisz myślami do renderowania wizualnych elementów stron internetowych to zacznij to robić krok po kroku, koncentrując się na jednym tagu i atrybucie HTML.

Najnowsze oferty pracy:

Polecane wpisy na blogu IT:

Szukasz pracownika IT?

Dostarczymy Ci najlepszych specjalistów z branży IT. Wyślij zapytanie

Wyrażam zgodę TeamQuest Sp. z o.o. na przetwarzanie moich danych osobowych w celu marketingu produktów i usług własnych TeamQuest, w tym na kontaktowanie się ze mną w formie połączenia telefonicznego lub środkami elektronicznymi.
Administratorem podanych przez Ciebie danych osobowych jest TeamQuest Sp. z o.o., z siedzibą w Warszawie (00-814), ul. Miedziana 3a/21, zwana dalej „Administratorem".
Jeśli masz jakiekolwiek pytania odnośnie przetwarzania przez nas Twoich danych, skontaktuj się z naszym Inspektorem Ochrony Danych (IOD). Do Twojej dyspozycji jest pod adresem e-mail: office@teamquest.pl.
W jakim celu i na jakiej podstawie będziemy wykorzystywać Twoje dane? Dowiedz się więcej