Co robię źle w mojej nauce?

0

Witam serdecznie kolegów i koleżanki Studiuję na informatyce i o ile nie mam większych trudności to w praktyce wygląda to tak, że jestem stereotypową dziewczyną na polibudzie czyli bardziej odważni koledzy pomagają. Ja oczywiście zgodnie z sumieniem i rodzicami nigdy nie wykorzystuję innych osób i zawsze sama robię swoje prace, programy, sprawozdania, nie ściągam jak co poniektórzy i z całych sił staram się jak mogę. Za chwilę rozpoczynam 7 semestr i jakbym miała podsumować wiedzę z programowania wychodzi, że mam braki w podstawach i sama nie wiem czego chcę. Wydaje mi się że piszę wszystko na intuicję i pamięć a nie ze zrozumieniem np ostatnio kolega wyprowadził mnie z błędu bo na definicję funkcji mówiłam deklaracja. W dodatku zaczynają mieszać mi się języki, gdyż musiałam robić projekty i programy w różnych językach np c, c++, java, python, html, css, javascript, php, c#, asembler, sql... Trochę dużo jak dla mnie, bo w praktyce z semestru na semestr żonglowałam językami programowania i część zapomniałam ( ͡° ʖ̯ ͡°)

Najgorsze w tym wszystkim jest, że jak się dobrze zastanowić to chyba brakuje mi pełnego zrozumienia. Dzisiaj otworzyłam stary projekt napisany w c++ i załamałam się, ponieważ nie pamiętam dlaczego zrobiłam coś w ten a nie inny sposób :( Jakbym miała jeszcze raz napisać ten sam program to nie dałabym rady. Nie chodzi o zaawansowane zagadnienia tylko o proste. W praktyce obecnie nie wiem na czym się skupić, bo jako temat pracy wzięłam aplikację internetową a nie dość że zapomniałam trochę jak pisało się w html i css to nie znam dobrze javascript ani innych języków. Coś co jeszcze rzuciło mi się w oczy to fakt, że szybko zapominam jak coś zrobiłam. Np rok temu sporo uczyłam się html i css i kodowałam szablony psd. Dzisiaj już nie pamiętam jak zakodować np nawigację z linkami albo jakiś charakterystyczny fragment strony. Nie zrozumcie mnie źle nie robiłam kopiuj wklej tylko z palca pisałam wszystkie znaczniki, nie korzystałam z bootstrapa itd bo chciałam aby weszło mi to w pamięć długotrwałą. Widocznie coś źle robię albo nie potrafię się uczyć ( ͡° ʖ̯ ͡°)

0

Niczego nie robisz źle. Po prostu Cię to nie interesuje. Dlatego nie poświęcasz na to zbyt dużo czasu, a jak już poświęcisz, to robisz to z musu. Dlatego nie przyswajasz szybko wiedzy. Poza tym ucząc się, zawsze się zapomina niektóre rzeczy. Powinnaś znać te mechanizmy, jeśli ukończyłaś szkołę gimnazjalną/8. klasę. Jest w ogóle cokolwiek na studiach, co Ci się nie miesza i co lubisz, np. sieci?

0
Pyxis napisał(a):

Niczego nie robisz źle. Po prostu Cię to nie interesuje. Dlatego nie poświęcasz na to zbyt dużo czasu, a jak już poświęcisz, to robisz to z musu. Dlatego nie przyswajasz szybko wiedzy. Poza tym ucząc się, zawsze się zapomina niektóre rzeczy. Powinnaś znać te mechanizmy, jeśli ukończyłaś szkołę gimnazjalną/8. klasę. Jest w ogóle cokolwiek na studiach, co Ci się nie miesza i co lubisz, np. sieci?

Nie wmawiaj dziewczynie, bo jeszcze niechcący Ci uwierzy. Równie dobrze może być dokładnie odwrotnie, tzn. nie wypracowała dobrej metody nauki i optymalnego nastawienia, przez to nie widzi współmiernych efektów swojej pracy i dlatego nie ma satysfakcji. A jak się nie ma satysfakcji, to można chcieć rąbnąć czymś w kąt nawet, jak na początku się tym interesowało.

Do autorki: może Twoim problemem jest to, że Ty chciałabyś mieć wszystko w głowie i wkurza Cię, że po przerwie w używaniu jakiejś konkretnej technologii nie potrafisz w stu procentach "z łebka" wypisać poprawnego kodu? Mnie wydaje się, że to jest OK i że to jest normalne - ważne, żebyś wiedziała JAK zrobić to, co chcesz zrobić, i umiała szybko wyszukać w internecie wzór użycia np. danej pętli w danym języku. Ja uczę się teraz Javy i regularnie sprawdzam w dokumentacji, kiedy przy jakiejś konstrukcji wyskakuje mi błąd (bo to dokumentacja wyskakuje mi dosyć wysoko w googlu, kiedy szukam np. "for each loop java", a sam kod jest tam przejrzysty i godny zaufania).

Poza tym - po co, u licha, przejmować się w tej chwili takimi pierdołami, jak to, czy poprawnie nazywasz elementy definicja/deklaracja itp.? Oczywiście, będzie to dla Ciebie przydatne w przyszłości do sprawnej komunikacji z innymi programistami, więc możesz pomału wpajać sobie te poprawne formy, ale na pewno się tym nie zadręczaj.

Generalnie skup się na tym, nad czym aktualnie pracujesz, bez biczowania się, ilu to jeszcze rzeczy nie kumasz i nie masz w pamięci. To chyba trochę tak, jak z językami obcymi - masz otworzyć się na mówienie i porozumiewać się skutecznie, a nie oglądać się na to, że nie rozumiesz dzieł Goethego/Szekspira/Rousseau w oryginale. (Znam mnóstwo ludzi, którzy świetnie poruszają się w obcojęzycznej literaturze sprzed kilkuset lat, a mówią jak potłuczeni :D I równie wielu takich, którzy z wyżej wymienionych dzieł nie zrozumieliby jednego zdania, a prowadzą skuteczne negocjacje w trzech językach.) Myślę, że jak będziesz codziennie programować, rozwiązywać kolejne problemy, i wyłączyć blokadę w głowie, to prędzej czy później się "wyrobisz". Studia są generalnie upierdliwe. Ja na moim kierunku też wielokrotnie tonęłam w nadmiarze informacji - a potem okazało się, że w życiu i w pracy muszę i mogę nauczyć się on the job wąskiego skrawka czegoś zupełnie innego, co jednak na ogół dawało się zupełnie bez problemu ogarnąć.

Dla przykładu, ja schrzaniłam swoje dwa pierwsze podejścia do nauki programowania nie dlatego, że "po prostu mnie to nie interesowało", tylko dlatego, że:

  1. za pierwszym razem miałam 8 lat, był 2000 rok i nie było wtedy takich fajowych materiałów do nauki programowania dla dzieci, jak teraz, więc po okresie entuzjastycznego pisania programów do obliczania pola trójkąta itp. zniechęciłam się tym, że nie rozumiałam języka książek, które były pisane dla dorosłych (a forumowicze internetowi, nie wiedząc, że jestem dzieckiem, odsyłali mnie wiecznie na google.com, gdzie znajdowałam tylko nowy bełkot do rozszyfrowania);
  2. za drugim razem miałam 16 lat, trafiłam do mat-infu w "prestyżowej" szkole, gdzie wszyscy byli po tamtejszym mat-infie gimnazjalnym, robili olimpiady i lekcja wyglądała tak, że nauczyciel rzucał zadania bez słowa wyjaśnienia. (A ja jeszcze w tamtym okresie zmagałam się z anoreksją i nie byłam w stanie przysiąść nad nauką po szkole, bo trzeba było przebiec z psem 20 kilometrów, żeby spalić obiad.) Dopiero dzisiaj, będąc po studiach (nietechnicznych, ale i tak wymuszających na mnie nauczenie się w trybie ekspresowym wyszukiwania rozwiązań), zrozumiałam wreszcie, na czym tamte zadania w ogóle polegały i że tam trzeba użyć algorytmów. Potrzeba było czasu, większej dojrzałości intelektualnej (podobno mózg osiąga ją, kiedy jego właściciel kończy 25 lat) i lepszego momentu w życiu.
3

Bo generalnie bez praktyki pewne rzeczy uciekaja. Jeśli robisz tylko to co ci zadają na studiach, bez własnej pracy w domu, to taki właśnie będzie efekt - że będziesz zapominać o co chodziło. Studia to nie szkoła podstawowa -> sama musisz się zdecydować co cię interesuje i w czym chcesz się specjalizować.

2

Kochana, na pamięć to znałam wszystkie polecenia języka i ich składnię w czasach, jak to był BASIC na 8-bitowce, a internet nie dostarczał natychmiastowych odpowiedzi na każde pytanie. Nie musisz mieć w głowie wszystkiego. Potrzebujesz mieć pojęcie o możliwościach dostarczanych przez daną technologię, a w głowie jej podstawowe elementy, które wykorzystujesz przez 9x% czasu pracy z nią.

Też miewam tak, że zaglądając do kodu sprzed kilku miesięcy albo kilku lat z początku nie kumam o co tu chodzi. Gorzej, bywa tak, że siadam z zamiarem dopisania do jakiegoś swojego starego projektu nowej, pomocnej funkcjonalności, po czym ze zdumieniem odkrywam, że już ją kiedyś napisałam :) Się zapomina się. Bardzo pomaga ciągłe komentowanie wszystkiego i wyjaśnianie każdego mniej oczywistego rozwiązania.

2

Wybierz sobie weapon of choice. Tak jak Rita Vrataski, He-man albo Czarna Mamba.

To co opisałaś to nie jest wina Twoja, tylko programu nauczania Twojej szkoły.
Wybierz sobie jakiś język i w nim rób większość zadań. Najlepiej jakiś mało wydumany - Java/Kotlin/C#/Python.
No i niestety żeby zostać programistką trzeba programować. Więc nie otwierasz IDE od projektu do projektu tylko stale coś robisz sama.

1
vpiotr napisał(a):

No i niestety żeby zostać programistką trzeba programować.

chyba mamy przełom, teraz może już być tylko lepiej :)

2
Anetka napisał(a):

Wydaje mi się że piszę wszystko na intuicję i pamięć a nie ze zrozumieniem np ostatnio kolega wyprowadził mnie z błędu bo na definicję funkcji mówiłam deklaracja.

Ja na połowę rzeczy mówię "pier...olnik"/"dupnik"/"to g...wno"/"tegownik" itd, bo za Chiny ludowe nie mogę sobie przypomnieć nazwy czegoś, a jakoś żyję :P Na jakąś bibliotekę, na klasę, na krzesło, na spodnie, na obiad. Ale umiem zjeść obiad, nawet jak na śmierć zapomnę jak się to coś nazywało.

W dodatku zaczynają mieszać mi się języki, gdyż musiałam robić projekty i programy w różnych językach np c, c++, java, python, html, css, javascript, php, c#, asembler, sql... Trochę dużo jak dla mnie, bo w praktyce z semestru na semestr żonglowałam językami programowania i część zapomniałam ( ͡° ʖ̯ ͡°)

  1. C
  2. C++
  3. Java
  4. Python
  5. HTML + CSS (potraktuję je tu zbiorczo)
  6. JS
  7. PHP
  8. C#
  9. Assembler
  10. SQL

Mówią, że w życiu trzeba spróbować wszystkiego, ale wpychanie na siłę 10 technologii, nawet spokrewnionych, w 6 semestrów nauki (z czego 1 tak naprawdę idzie na naukę podstaw, a potem jeszcze dokłada się stopniowo kolejne cegiełki jak OOP, bazy danych, webdev, programowanie równoległe/rozproszone itd) musi się skończyć gulaszem w głowie. Jak znasz na średniozaawansowanym poziomie jeden język/technologie i przenosisz się na inny, mniej lub bardziej spokrewniony, to można zacząć pisać niemal z marszu i stosunkowo szybko nadrobić różnice (Java -> C#, Java -> Kotlin etc). Ale jak uczysz się czegoś chwilkę, potem Cię odrywają od tego, wrzucają do czego innego, za chwilę znowu do czego innego, to robi się niefajnie.

Najgorsze w tym wszystkim jest, że jak się dobrze zastanowić to chyba brakuje mi pełnego zrozumienia. Dzisiaj otworzyłam stary projekt napisany w c++ i załamałam się, ponieważ nie pamiętam dlaczego zrobiłam coś w ten a nie inny sposób :( Jakbym miała jeszcze raz napisać ten sam program to nie dałabym rady. Nie chodzi o zaawansowane zagadnienia tylko o proste.

Jakbym otworzył np. mój stary projekt napisany na drugim roku w Javie, to najpierw załamałbym się, bo słodki Jezu, co to badziewie robi??? a potem drugi raz, bo WTF, co ja tu od.....ałem???!!! :) Dlatego wisi sobie ku przestrodze i dumnie prezentuje wszystkie możliwe anty-patterny oraz skutki zbytniego komplikowania sobie życia.

W praktyce obecnie nie wiem na czym się skupić, bo jako temat pracy wzięłam aplikację internetową a nie dość że zapomniałam trochę jak pisało się w html i css to nie znam dobrze javascript ani innych języków.

A czy jako "aplikacja internetowa" masz sprecyzowane że ma być to przeglądarkowa aplikacja webowa? Może ujdzie Ci na sucho np. aplikacja mobilna + serwer z którym się połączy przez jakieś API? Wtedy od biedy mogłabyś wszystko machnąć nawet w jednym języku i wymigać się od CSS.

Coś co jeszcze rzuciło mi się w oczy to fakt, że szybko zapominam jak coś zrobiłam. Np rok temu sporo uczyłam się html i css i kodowałam szablony psd. Dzisiaj już nie pamiętam jak zakodować np nawigację z linkami albo jakiś charakterystyczny fragment strony. Nie zrozumcie mnie źle nie robiłam kopiuj wklej tylko z palca pisałam wszystkie znaczniki, nie korzystałam z bootstrapa itd bo chciałam aby weszło mi to w pamięć długotrwałą. Widocznie coś źle robię albo nie potrafię się uczyć ( ͡° ʖ̯ ͡°)

W maju robiłem sobie intensywny kurs Golanga bez zbędnej teorii w 3 tygodnie, bo ktoś się obudził tuż przed sesją, że mieliśmy jeszcze trzasnąć sobie jakiś prosty systemik rozproszony na projekt. Napisać napisałem, ale teraz bez dokumentacji lub IDE z podpowiadaniem napisałbym co najwyżej prostego hello worlda, bo zapomniałem niemal wszystkiego.

1

Ogólnie nie musisz się tym martwić. Prawdziwe programowanie zaczyna się dopiero po studiach. Nie musisz wymiatać ze wszystkiego. Jeżeli coś będzie Ci potrzebne to możesz szybko uzupełnić wiedzę. Nie spotkałem się jeszcze w pracy z programem w którym musiałbym użyć asynchroniczności czy w ogóle wielowątkowości a przeszedłem już przez kilka firm. To co klepię obecnie to trochę bardziej skomplikowane CRUD'y. Od czasu do czasu jakieś API. Żadna rocket science, ale i tak to lubię. Bardziej martwiłbym się wypaleniem zawodowym niż tym, że przez rok o czymś zapomniałem, a co w dzień lub dwa mogę sobie odświeżyć.

0

Wymyśl sobie jakiś własny projekt, najpierw mały póżniej coraz większy np taki żeby wymagał serwer/klient i bazy danych.
Tworząc projekt usystematyzujesz wiedzę i zaczniesz się uczyć metodą prób i błędów. Nie ma lepszej metody nauki programowania niż pisanie kodu, który zweryfikuje czy dobrze wszystko zrozumiesz, jak sie okaże że kod nie działa to zmusi cię do pogłębienia wiedzy dlaczego.

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