• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

czy każdy jest w stanie nauczyć się pisać działające algorytmy ?

Object Storage Arubacloud
–2 głosów
2,198 wizyt
pytanie zadane 24 lutego 2017 w C i C++ przez Jakub 0 Pasjonat (23,120 p.)
edycja 24 lutego 2017 przez Jakub 0
hej ,witajcie (: . Napisałem ten post bo nurtuje mnie pewne pytanie , czy według was każdy jest w stanie nauczyć się profesjonalnego programowania ? Chodzi o to że mam problem z rozumowaniem i nauką algorytmów (mam problem z przelaniu pomysłu na kod) Właściwie to rzadko kiedy zdarza się żeby mi się udało samodzielnie bez zerkania do internetu wymyślić, opracować i przerzucić na kod jakiś program rozwiązujący np problem matematyczny , (z matmy to w ogóle nie jestem mistrzem) bardzo kocham programować ale zastanawiam się czy są ludzie którzy po prostu nie są wstanie dobrze się tego nauczyć ? uczę się C++ już ok 1 rok , niby znam dobrze jego składnie i w jakimś stopniu programowanie obiektowe ale mimo to wielkie problemy sprawiają mi niby takie banalne algorytmy jak sortowanie liczb , dokonywanie konwersji między systemami liczbowymi czy też znajdowanie licz pierwszych , wówczas moja nauka programowania sprowadza się do uczenia algorytmów na pamięć . czy są jakieś dobre sposoby by zacząć dobrze orientować się w kodzie ? Jakie wy znacie ? Wiem że wpis jest dość długi ale czasami czuję się zagubiony bo nie chcę porzucać mojego zainteresowania IT a zarazem nie czuje się w tym dobry ): . Dziękuje komuś komu chciało się przeczytać ten długi i nudny post i jestem wdzięczny za wszelką pomoc .

8 odpowiedzi

+5 głosów
odpowiedź 24 lutego 2017 przez Kornelia Kobiela Nałogowiec (33,340 p.)
wybrane 25 lutego 2017 przez Jakub 0
 
Najlepsza
Moim zdaniem każdy pod warunkiem, że będzie miał odpowiednio duże samozaparcie. Algorytmy to jest dziedzina ciekawa i wiem, że nie każdy ma takie intuicyjne wyczucie w tym. Pamiętaj jednak, że to jest nauka. Co prawda lepiej to zrozumieć, ale mimo wszystko trzeba zapamiętać zasady działania. Trzeba tak po ludzku wiedzieć, co tam się dzieje w środku jeszcze zanim się usiądzie do kodu.

Moja metoda nauki, to próba wytłumaczenia danego algorytmu lub struktury danych dziecku, albo osobie nietechnicznej. Trzeba używać na tyle prostego słownictwa i przykładów, żeby ktoś cię zrozumiał. Mój tata lubił słuchać, jak mu tłumaczyłam o sortowaniu.

Albo może w twoim przypadku sprawdzi się jakaś dobra książka do algorytmów. Tytułów jest sporo, tak samo jak artykułów w sieci. Nie wiem, co więcej mogę ci polecić.
+3 głosów
odpowiedź 25 lutego 2017 przez Zero Dyskutant (8,210 p.)
Wydaje mi się, że masz błedne pojęcie o pracy programisty. To nie wygląda tak, że ktoś siada do klawiatury i pisze z palca kolejne klasy i metody rozwiązujące zadany problem. To jest całkowicie normalne, że posiłkujesz się żródłami w sieci, że czytasz dokumentacje i przykłady.

Nawet Senior Developerzy co chwila napotykaja problemy, błędy w kodzie które trzeba znależć i poprawić. Rok siedzenia przy C++ to ledwie początek, nie możesz spodziewać się, że po kilku miesiącach będziesz płynnie posługiwał się tak trudnym językiem.
+2 głosów
odpowiedź 25 lutego 2017 przez hoktaur Pasjonat (22,250 p.)

A ja nie zgodzę się z kolegą manjaro,

Nie, nie każdy.
Tak samo jak nie każdy może zostać piosenkarzem, nie każdy może pisać wiersze itd...
Do wszystkiego trzeba mieć powołanie

każdy talent może być zmarnowany i każdy wysiłek nagrodzony. Prawda jest taka że talent pomaga, a nikt nie wymaga od ciebie byś był najlepszy tylko staraj się robić to co lubisz i to codziennie a nim się zorientujesz to sam się zdziwisz co już potrafisz. Oczywiście z początku będą problemy i nie znajdziesz w pierwszym momencie na nie odpowiedz ani nawet w drugim czy trzecim, ale myśl o tym, czytaj, słuchaj, rozwiązuj inne sprawy aż pewnego dnia obudzisz się, zrobisz to i powiesz 'że ja wcześniej na to nie wpadłem to takie proste...'

Co do sposobu nauki proponuje korzystać z różnych źródeł i nauczyć różnego podejścia do tematu. Nie słuchaj tekstów w stylu ta strona jest boska, a tamta książka to podstawka pod monitor itd. W każdym materiale zawarta jest cenna informacja a twoim zadaniem jest podjąć decyzję i móc powiedzieć:

'to rozwiązanie bardziej mi pasuje ponieważ...'

nawet jak inni będą krytykowali.

Najlepiej proponuje obejrzeć film dokładnie pokaże ci o co pytasz a jest nim:

Gattaca - Szok przyszłości

Nawet jak by się tam doszukiwać to znajdziesz podejście tak promowane przez p. Zelenta, a jest nim Slight Edge.

komentarz 25 lutego 2017 przez Jakub 0 Pasjonat (23,120 p.)
Nie chodzi o to że znam wszystkie aspekty C++ , mam na myśli znajomość potrzebnych umiejętności (pętle ,rekurencja ,struktury danych) do pisania programów rozwiązujących różnorakie problemy matematyczne itp . No bo napewno nie znam całej składni i wszystkich możliwości C++ (; ale to fakt ze łatwiej mi nauczyć się korzystania z jakiś bibliotek czy składni języka niż wymyślać samodzielnie Algorytmy

*nie chodzi o to że nie ogarniam algorytmów bo potrafię je zrozumieć (np teraz już z napisaniem algorytmu sortujacego nie mam problemu) tyle że nie potrafię przelać WŁASNEGO pomysłu na kod (:
komentarz 25 lutego 2017 przez Jakub 0 Pasjonat (23,120 p.)

dzięki za fajne linki laugh

1
komentarz 25 lutego 2017 przez niezalogowany
>tyle że nie potrafię przelać WŁASNEGO pomysłu na kod (:

To zależy jaki pomysł. Wiadomo, że w zakresie skomplikowanych algorytmów bazuje się na wiedzy a nie wymyśla samemu. Dlatego warto znać różne i ew. dobierać rozwiązania. Poza tym, mówiąc algorytmy, często myślimy klasycznymi matematycznymi, które wręcz nazwiska mają od matematyków i wiadomo, że samo matematyczne opracowanie to już wyczyn.

Więc możemy mówić o tym, że padasz na banałach albo że niepotrzebnie się stresujesz, bo mało kto to ogarnie. Wszystko zależy.

>Nie chodzi o to że znam wszystkie aspekty C++ , mam na myśli znajomość potrzebnych umiejętności (pętle ,rekurencja ,struktury danych)

To jeszcze nie C++ :) Choć to nie powód do wstydu ;) Znany polski haker, Gynvael Coldwind, też pisuje swoje programy w miksie C/C++ i mówi, że to też jest w standardzie C++ i żeby go puryści C++ cmoknęli w dzyndzel ze swoimi krytykami, że Tak Się Już Od Wersji C++11 nie Pisze :)

>mi też wcale nie zależy tak bardzo na kasie , bo nawet gdybym był mistrzem w tym co robię to i tak jest mała szansa że znajdę prace w swoim fachu biorąc po uwagę dzisiejsze bezrobocie

 

Ej, jakie bezrobocie? W programowaniu? W informatyce? W tym nie ma bezrobocia, a wręcz jest bezpracownicze. Pracodawcy żebrzą o pracownika.
komentarz 25 lutego 2017 przez Jakub 0 Pasjonat (23,120 p.)
jak wpadnę żeby napisać jakiś prosty program załóżmy znajdujący liczby pierwsze , niby wiem jak to zrobić ale kiedy już pisze kod to zaczynam się gubić ,często zapominam do czego służyła jakaś zmienna ,po co ta pętla itp ,ostatecznie patrze na internet i często aż dziwnie się czuje jakie to było proste (: po prostu czasami nie wiem czy profesjonalny programista umie sam bez problemu napisać jakiś kod czy jednak szuka informacji w internecie . Np gdyby mi pracodawca kazał dokonać sortowania szybkiego przy zastosowaniu takich i takich sposobów ... to nie wiem czy bym potrafił
komentarz 25 lutego 2017 przez niezalogowany
No to jeszcze musisz się dużo uczyć, ale też i zależy co będziesz programować. Bo quicksorta raczej samemu się nie implementuje. Wszystko zależy od tego, co się programuje. Ja lubię oglądać Dana Shiffmana (https://www.youtube.com/user/shiffman) i to, jak on w ciekawy sposób pokazuje algorytmy. Tak praktycznie. Jak coś policzyć, żeby zasymulować to czy tamto.
+1 głos
odpowiedź 24 lutego 2017 przez KamQiX Dyskutant (9,090 p.)
Wszystko zależy od chęci i zaangażowania. Odpowiadając na pytanie: Tak każdy zdrowy człowiek jest w stanie nauczyć się pisać działające algorytmy.
+1 głos
odpowiedź 24 lutego 2017 przez Surykat Stary wyjadacz (14,780 p.)
Zależy co chcesz robić. Do klepania apek biznesowych, nigdy jeszcze mi się nie przydała matematyka bardziej zaawansowana niż mnożenie i dodawanie. Sortowanie i inne rzeczy załatwiają biblioteki. Ja klepie frontend i po prostu polega to na tym, że dostaję projekt od web designera, robię tak samo jak on chce, a o dane do widoków proszę kolegę 3 biurka obok, żeby mi postawił web service który takie dane zwraca. Żadna filozofia, kwestia poznania narzędzi i technologii.

Jeśli chciałbyś się rozwinąć w kierunku poważniejszych zagadnień, to zastanów się, czy potrafisz się porządnie skupić i zastanów się nad swoim trybem życia- mówię serio. U mnie aktywność fizyczna i odstawienie kawy robi mega robotę :)
+1 głos
odpowiedź 25 lutego 2017 przez niezalogowany
Zamiast wkuwać algorytmy poucz się na przykład o wzorcach projektowych. Zamiast pisać programy rozwiązujące problemy matematyczne, jeżeli matma Cię nie kręci, to zrób jakąś małą gierkę albo program użytkowy. Po co się katować. Nauka powinna być przyjemnością. Na algorytmy przyjdzie jeszcze czas jak poczujesz, że są Ci do czegoś potrzebne.
komentarz 25 lutego 2017 przez Jakub 0 Pasjonat (23,120 p.)
edycja 25 lutego 2017 przez Jakub 0
Tyle że ogarnianie i co ważniejsze wymyślanie własnych rozwiązań jest niezbędne , szelakiego rodzaju sterowanie w grach , wymyślenie inteligencji bohaterów to sama algorytmika . (Zwłaszcza na poziomie CMD) A niewiem czy dam sobię radę z bardziej zaawansowanymi aplikacjami okienkowymi bez sprawnego poruszania się w kodzie przy prostych programach :( A nie chce wiecznie tworzyć konsolowych  gier typu Quiz .

 

nawet zrobienie okienkowego kalkulatora który wykonuje działania na większej ilości niż 2 liczbach to ciąg pętli i instrukcji warunkowych . Tyle ze nie jestem człowiekiem typu który szuka gotowego rozwiązania w necie i wkleja kod , lubię w pełni rozumieć kod który piszę i go zapamiętać (może jestem zbyt wymagający względem siebie (;)
+1 głos
odpowiedź 25 lutego 2017 przez krystian904 Mądrala (6,820 p.)

Jestem ciekawy dlaczego ten post został zminusowany , przecież on pokazuje dlaczego algorytmy są ważne.

Algorytmy masz wszędzie:

  • pieczesz placek (książka pełna nich kucharska)

  • instrukcja obsługi

Nie wszędzie są wymagane bardzo złożone algorytmy. Ale każdy programista powinien je mieć. Jest to po prostu rozumienie problemu jaki chcesz rozwiązać. Więc jeśli nie umiesz zrobić algorytmu na jakiś problem to znaczy że nie umiesz go rozwiązać.

0 głosów
odpowiedź 25 lutego 2017 przez manjaro Nałogowiec (37,390 p.)
edycja 25 lutego 2017 przez manjaro
Nie, nie każdy.
Tak samo jak nie każdy może zostać piosenkarzem, nie każdy może pisać wiersze itd...
Do wszystkiego trzeba mieć powołanie
3
komentarz 25 lutego 2017 przez niezalogowany
Powołanie, jak powołanie, po prostu zdolności. Ale to racja, obecna moda na reklamowanie, że każdy może być programistą, jest taka sobie. Każdy powinien się podstaw uczyć, żeby trochę przećwiczyć logikę komputera, ale nie każdy pójdzie dalej.

Podobne pytania

0 głosów
5 odpowiedzi 443 wizyt
0 głosów
1 odpowiedź 644 wizyt
pytanie zadane 13 lipca 2019 w C# przez Hardwell Dyskutant (8,980 p.)
0 głosów
0 odpowiedzi 244 wizyt

92,551 zapytań

141,393 odpowiedzi

319,523 komentarzy

61,936 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...