Zastanawiam się, poza tymi bardzo prostymi aplikacjami hello world, jakie inne programy powinienem opracować do nauki. wchodzę na uni w przyszłym roku i zastanawiam się, jakie programy będą rozwijane w tym środowisku.
tak naprawdę nie jest to rzecz specyficzna dla języka, ale jeśli chcesz wiedzieć, z czego obecnie korzystam
- windows: C # / WPF - studiowałem java / vb itp. w poli, ale myślę, że C # to droga, może nawet F #
- web: PHP / MySQL, Zend Framework / Doctrine, + HTML / CSS / JS (jQuery) oczywiście. próbuję wypróbować silnik aplikacji Google z Pythonem.
na razie myślę o tym
- listy rzeczy do zrobienia
- aplikacje integrujące się z interfejsem API, np. twitter / tumblr, którego używam
edytor tekstowy - obecnie próbuję opracować edytor tekstowy, który wykorzystuje markdown i generuje pliki HTML do przeglądania (link do wpisu na blogu). niezbyt praktyczne po tym, jak zacząłem go rozwijać. ponieważ podczas edycji nie ma formatowania, aw formacie HTML nie mogę edytować bezpośrednio
oprogramowanie blogów (dla Internetu)
źródło
Obecnie piszę regex parsera / dopasowywania i jej nauczanie mi ogromną ilość o parsowania i automat skończony i samych wyrażeń regularnych, między innymi. Szczególnie uważam, że parser wyrażeń regularnych jest przydatny, ponieważ język wyrażeń regularnych jest mały i ma dość ograniczone możliwości.
Inną rzeczą, którą zrobiłem, było napisanie tłumacza dla Ooka! , co jest prostym zadaniem, ale jeszcze raz uczy cię tony.
źródło
CodePlex.com wymienia wiele projektów open source, które zostały wykonane przy użyciu C #. Możesz zajrzeć na stronę, aby uzyskać pomysły.
źródło
Możesz także spojrzeć na TopCoder . Ta strona ma świetne algorytmy do nauki i od czasu do czasu prowadzą konkurencję. Ważną zaletą tej witryny jest to, że możesz zobaczyć kod źródłowy innych problemów i dowiedzieć się więcej.
I nawet na stronach SE musisz spojrzeć na CodeGolf .
źródło
(Jest to głównie odpowiedź mat, a nie lista projektów).
Zastanów się, dlaczego piszesz program: Czy będzie on przydatny sam w sobie, czy może będzie to wyłącznie nauka jednego z narzędzi / interfejsu API / języka?
W tym drugim przypadku korzyścią jest to, że wynikowy program jest tak krótki, jak to możliwe, a następnie przechowywany w celach informacyjnych.
W pierwszym przypadku dlaczego nie rozszerzyć nauki na dobre praktyki pod każdym względem: załóż, że będziesz musiał ją utrzymać i rozszerzyć. Dlatego używaj kontroli źródła, śledzenia problemów, refaktoryzacji, testowania jednostkowego ... ponieważ wszystkie te rzeczy są co najmniej tak samo ważne dla programisty, jak znajomość innego API.
A co z integratorem kanałów:
(Chodzi o to, aby skupić się na integracji różnych implementacji tego samego paradygmatu: zaplanowane pobranie HTTP kanału RSS vs. Twitter API vs.… wszystkie z nich są pod strumieniem wpisów ze znacznikiem czasu, źródłem i treścią.
źródło
Dużo się nauczyłem, pracując nad tego rodzaju moimi projektami hobby:
Nie wspominając - tego rodzaju projekty są niesamowicie przyjemne w pracy :-).
źródło
Zaprogramuj małą grę: jest fajna i dużo się uczysz.
Jakieś pomysły:
A kiedy już to zrobisz, dlaczego nie wdrożyć witryny z najlepszymi wynikami ...
źródło
Opracuj aplikację książki kucharskiej .
źródło
Spyrograf. Określ wymiary zewnętrznego pierścienia, dysku wewnętrznego i pióra wzdłuż jego średnicy. Narysuj ścieżkę pióra, gdy wewnętrzny dysk toczy się po wewnętrznej stronie zewnętrznego pierścienia.
Zmień Maker. Koszt wejściowy i kwota przekazana kasjerowi. Oblicz optymalne dla bankomatu do wprowadzenia zmian. Istnieje wolny i szybki sposób na rozwiązanie tego problemu. Znajdź szybki sposób.
Symulacja OO-Life. Wyszukaj Algorytm życia. Stwórz losowy stan początkowy i wypisz kolejne kroki, używając projektu OO do oddzielenia logiki od prezentacji. Podaj dane wyjściowe tekstu i grafiki.
Missionary / Cannibals Solver, spójrz na tę słynną łamigłówkę. Napisz program, aby go rozwiązać za pomocą drzew wyszukiwania. Porównaj BFS z DFS.
źródło