Wpis z mikrobloga

#naukaprogramowania #cpp #programowanie #programista15k
Mam taki problem odnośnie nauki programowania. Za każdym razem kiedy przerabiam jakąś książkę/kurs internetowy w miarę sprawnie rozwiązuje zadania, które są dla zrobienia we własnym zakresie. Większe zadania np podsumowania kilku działów próbuje rozwiązać bez patrzenia na poprzednie rozwiązania. Z reguły zajmuje mi to trochę więcej czasu niż powinno, ale robię to co jest wymagane + tak żebym miał z tego satysfakcję. Mój problem zaczyna się wtedy, kiedy otrzymuje jakieś zadanie na studiach i całkowicie nie mam pomysłu jak się za to zabrać. Próbowałem rozpisywać sobie to na kartce, podzielić na jakieś mniejsze kroki, to też nie pomaga. Najczęściej podpytuje się kogoś innego o jakiś zamysł, żeby jakoś to wszystko zacząć. W ten sposób programowanie przynosi mi coraz mniej satysfakcji i coraz mniej czuję się jakbym miał to robić zawodowo. Codziennie spędzam mniej-więcej 2-3 godzinny, aby porobić coś we własnym zakresie. Powoli tracę chęci nad dalszą nauką programowania. Czuje się trochę jakbym był za głupi, żeby wpaść na własny pomysł. Całkowicie nie przeszkadzało by mi to, jakbym wpadł na jakieś rozwiązanie które może nie byłoby najbardziej wydajne i zajmowało trochę więcej linii kodu, ale byłoby własne. Czy ktoś był w podobnej sytuacji? Jak mogę znaleźć rozwiązanie mojego problemu?
  • 16
  • Odpowiedz
@Lefidor: czy jesteś pewien, że z tych książek/kursów uczysz się programowania, a nie jakiś elementów języka? Co z tego, że umiesz napisać pętlę na 3 sposoby jeśli nie wiesz po co ona istnieje i jak ją wykorzystać
  • Odpowiedz
@Lefidor: Problem masz z wykonaniem zadania czy architekturą/schematem aplikacji? Jeżeli to pierwsze - no to może(!) programowanie nie jest twoją przyszłością. Jeżeli masz problem z tym drugim to nie ma się czym martwić, bo problemem jest brak doświadczenia (i próba przekombinowania rozwiązania) które przecież idzie przecież łatwo zdobyć.
  • Odpowiedz
@Lefidor: im więcej przykładów przerobisz tym więcej doświadczenia zdobędziesz. Moim zdaniem nie ma co się przejmować tym, że na początku potrzebujesz się wzorować jakimś rozwiązaniem. Nikt nie urodził się alfą i omegą. Musisz przestawić trochę sposób myślenia, poćwiczyć algorytmy i będzie dobrze :) nie załamuj się bo pewnie wiesz więcej niż niejeden student a stracisz możliwość robienia tego co sprawia Ci przyjemność przez zbyt szybkie poddanie się.
Przeanalizuj sobie też co
  • Odpowiedz
@powaznyczlowiek: Takie projekty jak proste bazy danych z działaniem na plikach, pojedyncze wskaźniki rozwiązywałem w miarę własnych możliwości. Problemy zaczęły się jak projekty zaczęły zawierać w sobie kilka klas i działanie na podwójnych wskaźnikach. Próbowałem to zrozumieć z przykładami ze stack overflow, ale nie do końca to do mnie nie docierało.
@Pitex: Sam zamysł projektu po przeczytaniu instrukcji kształtuje mi się w głowię. To co w miarę moich możliwości mogę
  • Odpowiedz
Takie projekty jak proste bazy danych z działaniem na plikach, pojedyncze wskaźniki rozwiązywałem w miarę własnych możliwości


@Lefidor: no ale co ci mają dać takie projekty? Zacznij od klasycznego kalkulatora, napisz prostą grę, jakiś program do obliczania zawartości alkoholu w drinkach ( ͡° ͜ʖ ͡°) no słowem cokolwiek, co faktycznie da się użyć jak prawdziwe oprogramowanie - jakaś metoda operująca wskaźnikami, oderwana od kontekstu, nie ma nic
  • Odpowiedz
działanie na podwójnych wskaźnikach


@Lefidor: W nowoczesnym niewymagającym super wydajności C++ tu masz problem - skąd Ci się wzięły podwójne wskaźniki?
  • Odpowiedz
@powaznyczlowiek: Też dużo o tym właśnie myślę, jak wyglądają prawdziwe projekty przy których pracują ludzie. Kalkulator już przerobiłem, nawet ten do prostych macierzy. Z gier to zrobiłem proste szachy. Zastanawiałem się żeby znaleźć jakieś praktyki/staż, ale to zależy jak pójdzie mi sesja.
  • Odpowiedz
@Pitex: Takie mamy wymagania w instrukcjach. Nie miałbym aż takiego problemu kiedy mógłbym wykorzystać inne metody do rozwiązania projektów na uczelnie. Mamy też dokładnie wypisanie jak ten program ma wyglądać, jak ma działać. Nawet typ danych do zmiennych.
  • Odpowiedz
@Lefidor: Aha, czyli jazda wg. odgórnych wymagań. Nic tylko przebrnąć przez to, mając na uwadze to, że w normalnej pracy takie restrykcje pojawiają się rzadko, albo na tyle często, że szybko stają się rutyną.
Chcesz poczuć zew programowania, napisz coś swojego bez cudzych restrykcji. Po wykopie przewijaja się często "Programmer Challange vX.X" który warto przejrzeć.
Tak od siebie mogę polecić (sam tak zaczynałem) napisanie prościutkiego serwera HTTP, który po wpisaniu do
  • Odpowiedz
@Pitex: Sprawdzę to co pisałeś. Jakoś na dniach spróbuje napisać taki serwer. Ogółem jak myślałem wcześniej o studiach, to byłem pewien że będzie o wiele więcej swobody jeśli chodzi o pisanie programów i wybieranie rozwiązań. Najgorsze jest to, że oprócz dwóch przedmiotów związanych bezpośrednio z programowaniem mam jeszcze 7 innych , które pożerają dosyć sporo czasu. Jeśli mogę spytać - jesteś po studiach? Jeśli tak to trudno było Ci się odnaleźć
  • Odpowiedz
@Lefidor: Ja niestety zrezygnowałem, też z podobnych powodów (przedmioty z np. elektroniki :D), ale polecam wytrwać. Szczególne na pierwszym roku wpada naprawdę dużo wiedzy o podstawach działania komputera która potem jest nieoceniona w pracy programisty.
A w pracy to zależy gdzie się trafi - albo do utrzymania/rozwoju starych aplikacji (które mogą pamiętać czasy wczesnego DOS-a), albo gdzieś gdzie tworzone jest nowe oprogramowanie, albo trochę tu i tu - nie ma zasady,
  • Odpowiedz
@Pitex: Ogółem jestem po technikum informatycznym i dosyć często grzebałem w elektronice jeśli chodzi o laptopy/telefony. Mnie dobijają przedmioty matematyczne na których jest obowiązkowa obecność a i tak trzeba zrobić to samo z etrapezem ( ͡° ͜ʖ ͡°) Najbardziej się obawiam tego, że będę wiedział jak napisać drzewo AVL, a dostanę jakiś życiowy problem i na tym polegnę ( ͡° ʖ̯ ͡°) W
  • Odpowiedz
@Lefidor:

dosyć często grzebałem w elektronice jeśli chodzi o laptopy/telefony

Naprawa laptopów/smartfonów przy aktualnych cenach sprzętu elektronicznego niestety nie jest opłacalna, i chyba trzeba być np. ekspertem w naprawie elektroniki samochodowej żeby myśleć o realnych pieniądzach. Umiejętność przydatna, ale wbrew pozorom na rynku niekoniecznie cenna w pewnych okolicznościach. Mam tu na myśli to, że jest bardzo dużo ludzi którzy znają się na "wszystkim i niczym" (z elektroniki) i np. relatywnie nisko
  • Odpowiedz
@Lefidor: do tego co już było napisane, dodam, że patrzenie na swoje poprzednie rozwiązania nie jest niczym złym - o ile nie kopiujesz wszystkiego bezmyślnie i starasz się te poprzednie rozwiązania ulepszyć

Generalnie w pewnym momencie będziesz miał taki moment, „że Ci zaskoczy” coś w głowie i takie problemy będą zdecydowanie rzadsze, ale jak z każdą umiejętnością, trzeba po prostu ćwiczyć.
  • Odpowiedz