Mam do Was wielką prośbę. Otóż wraz z kolegą poszukujemy pomysłu na dobry projekt. Sami jakoś nie możemy nic wymyślić. Dlatego pytanie do Was; jakiego oprogramowania wam brakuje? Co proponujecie na projekt? Będę wdzięczny za wszelkiego rodzaju propozycje.
Nie będę odkrywczy, ale najlepszy projekt to coś, co Tobie się przyda. Kiedy zaczynałem programować, lubiłem bawić się plikami z gier. Moja pierwsza działająca aplikacja to był program wyciągający tekstury z pierwszego Tomb Raidera. Zanim jednak program zaczął działać, musiałem stworzyć kilka mniejszych aplikacji, które pozwalały mi na zabawę danymi w plikach TR (np. program wyciągający fragmenty danych z pliku).
Znajdź sobie jakąś małą aplikację-pchełkę, która by Ci się przydała i zabierz się za pisanie. Na początku nie ma czegoś takiego jak “zbyt banalny program” - każdy kawałek kodu będzie dla Ciebie jak wtaczanie głazu pod górę. Dlatego też nie sil się na imponujące (czyt: przydatne komuś więcej niż tylko Tobie) programy, bo 1) nigdy ich nie skończysz, 2) zniechęcisz się do kodowania.
Pisanie kolejnego notatnika itp. nie ma sensu. Najlepiej przejść się po okolicznych firmach i popytać czego im brakuje. Tym sposobem masz szansę wbić się w jakąś nisze.
@muchozol: rzecz w tym, że nic nie wskazuje na to, że sebastianp88 ma jakieś kosmiczne doświadczenie w kodowaniu. Gdyby tak było - nie pytałby o pomysły na coś do napisania. Miałby więcej pozycji na TODO niż czasu na ich napisanie. W takiej sytuacji chodzenie po okolicznych firmach w celu wybadania rynku jest czasem zmarnowanym - czasem, który można poświęcić na doskonalenie skillsetu.
Ano to, że 250 linii to nie jest dużo i tym samym nie jest to projekt złożony (czyt: jest w sam raz jeśli się do tej pory nie pisało nie wiadomo ile kodu).
Może jakiś wygaszacz ekranu? Wiem, że byłby wtedy bez GUI, ale cóż. Ważne, żeby było proste, a wygaszacze nie wymagają projektowania interakcji z użytkownikiem.
Możesz też napisać faktycznie jakąś mini-grę, byleby z głową. Aha. Zauważyłem, że masz na myśli C++, czyli raczej o coś rozwiązanego na klasach. W przypadku prostej gry klasy można wykorzystać - w przypadku wygaszacza, to pozbawione sensu.
Z jakiejś konkretnej przyczyny czy tylko Ci się tak wydaje? Architektura aplikacji (i wybór języka) zależy od pożądanej charakterystyki tej aplikacji (modułowość, niezawodność, prędkość, itp.) oraz ogólnej złożoności projektu, a nie od tego czy to gra czy wygaszacz. Można sypać setką przykładów, kiedy prosta gra nie zyska na czytelności z powodu OOP i takie, kiedy wygaszacz na klasach zdaje się być “naturalnym” wyborem.
Dokładnie to co napisał Ryan powyżej. Prosty kontrprzykład odnośnie do tego wygaszacza. Czy pracy nie ułatwiłaby klasa bazowa, nazwijmy ją Screensaver, która implementuje komunikację z systemem operacyjnym i definiuje interfejs dla klas potomnych?
A co do tematu, jeśli nie macie pomysłu to może zamiast pisać jakiś program od zera, zajmijcie się ulepszeniem jakiegoś już istniejącego? Często użytkownicy żądają jakieś funkcjonalności w nowej wersji programu – wybierzcie jakąś aplikację i zaimplementujcie jakiś feature. Jeśli dobrze to zrobicie może nawet twórcy programu zgodzą się na włączeniem waszego kodu do oficjalnego wydania?
Tylko się tak wydaje. Miałem na myśli raczej prosty wygaszacz. Jeżeli np. weźmiemy system czątek, to zależy wszystko od jego złożoności, np, cząstki mogą mieć różny rozmiar, wagę i wchodzić w różne interakcje z danymi typami cząstek. Jeżeli natomiast system ma być prosty, to nie ma sensu używać klas.
Jeżeli masz na myśli pisanie własnych no to właściwie się zgadza, można sobie wymyślić program tak prosty że pisanie własnych klas tylko go skomplikuje (np program dodający do siebie dwie liczby). Z tym że nikt nie piszę takich programów, chyba że do celów dydaktycznych (a to nie jest programowanie tylko uczenie się programowaniu).
Natomiast jeżeli chodzi o użycie jakiejkolwiek klasy to nawet najprostszy program (np program dodający do siebie dwie liczby) potrzebuje wczytywania/wypisywania danych na konsole, co z użyciem klasy jest nieco wygodniejsze.