Poproszę o zadanie do nauki

0

Tak jak w temacie: Poprosiłbym kogoś o jakiś pomysł na zadanie programistyczne, które pozwoliłoby mi podszkolić się w tym, co stanowi lukę w moich kompetencjach.

Dlaczego zadanie? Wydaje mi się z doświadczenia, że najlepiej uczę się, robiąc coś. Czytanie dokumentacji / podręczników / oglądanie konferencji / itp - pewnie wszystko to jest ważne, ale jeśli nie spróbuję zastosować sam w praktyce, to niewiele mi z tego w głowie zostanie.

Dlaczego proszę o zadanie, nie mogę sam sobie wymyślić? Mogę, ale są dwa "ale"...

  • Ale #1: Czy na pewno wiem, w czym najbardziej powinienem się podszkolić? Mogę zgadywać (testy? wzorce, ale jakie najważniejsze? devops? inne?), ale pewnie ktoś bardziej doświadczony powie lepiej...
  • Ale #2, chyba ważniejsze: Mam dużo pomysłów na projekty, które chciałbym robić... Wszystkie jednak są na tyle treściwe, na tyle trudne koncepcyjnie, że wydaje mi się, że słabo nadają się do nauki wzorców / narzędzi / metodologii / ..., które powinienem znać. Zrobienie ich zajmie mi dużo więcej czasu, niż jest potrzebne, by nauczyć się tego, czego pilnie powinienem się nauczyć. Do nauki lepszy byłby chyba projekt, który jest dość łatwy koncepcyjnie (choć nie trywialny), by można było skupić się bardziej na sposobie robienia projektu, niż na samym projekcie. A na takie projekty mam już mniej pomysłów.

O mnie: Licencjat z informatyki na MiM. Dwie prace, jedna w Pythonie, obecnie w C#, zawsze max pół etatu. Razem to będzie z półtora roku. Rzecz w tym, że obecna C#-owa praca przypomina nieco Januszex: tzw. "dobrych praktyk" nie tylko nie wymagają, ale wręcz przeciwnie, uważają za udziwnienia utrudniające życie. Dość powiedzieć, że ich (i mój) kod nie ma żadnych testów automatycznych, gdyż jest wręcz prikaz, by ich nie pisać. Poprzednia Pythonowa praca też nie miała zbyt wyśróbowanych wymogów odnośnie jakości kodu, ale nie aż tak, jak tu.

Niestety, u mnie okres studiów pokrywał się z "okresem buntu" - o wzorcach projektowych, czystym kodzie itp nie wiem praktycznie nic, albowiem za punkt honoru postawiłem sobie tego się nie uczyć, chyba, że ktoś z batem nade mną stał. Inni chwalili i byli ewangelistami i właśnie dlatego to odrzucałem. W szczególności testów napisałem w życiu tyle, co kot napłakał.

Niewiele też wiem na temat mikroserwisów, K8, devops itp, tym razem dlatego, że się nie spotkałem z tym w praktyce ani nie było mi potrzebne do projektów osobistych.

Spośród osobistych projektów najdłużej spędziłem nad próbą zrobienia pokemonopodobnej gry wieloosobowej. Backend w C#/Asp.NetCore, frontend w JS (czystym, bez frameworków). Było to dużo trudniejsze, niż bym przypuszczał, nie tylko pod względem implementacyjnym, ale także projektowym. Prawdopodobnie ugryzłem więcej, niż byłem w stanie przeżuć: utrudniłem sobie zadanie tym, że nie wykorzystałem żadnych frameworków ani bibliotek zrobionych pod tego rodzaju gry oraz próbowałem wprowadzić kilka niesztampowych pomysłów na design i balans gry. Kod raz przepisałem niemal od zera, gdyż zakopałem się tak, że sam nie mogłem z nim pracować; obecnie kod pewnie dalej urąga "najlepszym praktykom", ale stanowi postęp, gdyż sam umiem z nim pracować. Chciałbym go kiedyś ukończyć, niestety na razie leży (od dłuższego czasu: półtora roku czy nawet dwa) odłogiem z racji problemów z czasem.

Najlepiej znam C#/.NET i JS (ale bez frameworków), w drugiej kolejności pewnie Python i C lub C++, chociaż to ostatnie tylko do C++17; cośtam znam z Haskella, ale nie na tyle, by coś mądrego napisać.

Again: Nie chodzi mi o to, czego chciałbym się uczyć dla siebie, bo to wiem: najchętniej poświęciłbym czas na ukończenie powyższego projektu przy moim obecnym stanie umiejętności (niech się uczę na porażkach), potem zacząłbym szukać, jak takie właśnie rzeczy robi się "porządnie" i spróbował przepisać ten projekt "porządnie". Potem zastanowił się, co dalej: iść w tym kierunku wyznaczonym przez ten projekt, czy zabrać się za coś zupełnie innego? Ale trzeba zarabiać jakoś na życie, a taki program zapewne nie za bardzo odpowiada temu, co powinienem teraz robić, by zadowolić rekruterów. Dlatego mam prośbę o zadanie raczej pod rozwój zawodowy.

Nie proszę, byście mnie czegoś tam uczyli - sam powinienem się tym zająć - proszę tylko osoby bardziej doświadczone o temat i przykładowe zadanie, jakie może posłużyć to zgłębienia tego tematu. Ewentualnie jak skończę, to wrzucę do działu Oceny i recenzje :)

3

Dawanie Ci zadań jest totalnie bez sensu i nic nie wniesie. Cała zabawa polega na tym, żebyś sam znalazł problem i spróbował go rozwiązać. To najlepsza forma nauki.

4

Ja bym dokończył projekt gry, a raczej stworzył od nowa, posiadając doświadczenie z pierwszego podejścia. Programowanie to proces iteracyjny, więc nie ma w tym nic dziwnego. Nie pisz czegoś, żeby zadowolić rekruterów, a po to, żeby stać się lepszym programistą. Sukces zawodowy będzie tego wypadkową.

0

Napisz grę w kółko i krzyżyk z ui w konsoli i z testami. Masz 7 dni.

0

Zrob kalkulator :)

2
masterc napisał(a):

Zrob kalkulator :)

a dokładnie to kalkulator wyliczający pozycje asteroid za 45 lat :-)

0

Wyznacz pi wykorzystując generator liczb pseudo losowych.

0

Zrób albicle tylko bez md5(md5(password))

2

Ukończ swoją pokemonopodobną grę wieloosobową. Skoro jej nie ukończyłeś bo nie miałeś czasu, to teraz chyba masz? Długo nad nią pracowałeś, prawdopodobnie zbyt długo i samo myślenie o niej cię męczy. Zdefiniuj swoje cele gry, kroki implementacyjne, i pisz nie martwiąc się za bardzo jakością kodu, po prostu zakończ ten projekt

1 użytkowników online, w tym zalogowanych: 0, gości: 1