Kiedy można powiedzieć, że nauczyło się programować ?

0

Witam
Jestem już po przerobieniu tematu z drzewami. Piszę o tym dlatego, że kiedyś usłyszałem, że programowanie drzewek to jakby "postawienie kropi nad i" w programowaniu.
Pozdrawiam

1

To jakiś troll, żart czy co?

0

kiedyś usłyszałem, że programowanie drzewek to jakby "postawienie kropi nad i" w programowaniu.

Jeszcze dłuuuuga droga przed Tobą; klasyka: https://pl.wikipedia.org/wiki/Efekt_Dunninga-Krugera :-)

1

Zadam pytanie inaczej. A co dla Ciebie znaczy że "umiesz programować" ? ;-)

5

Kiedy można powiedzieć, że nauczyło się programować ?

W chwili kiedy przestajesz zadawać sobie takie pytanie. ;)

9

Moim zdaniem taką granicą jest uzyskanie samodzielności. W chwili, w której będziesz w stanie samodzielnie wykonywać zlecenia, pisać aplikacje (ciut bardziej złożone od tego, co pokazałeś w pierwszym poście) i ogólnie dasz sobie radę bez kogoś, kto Cię nadzoruje i trzyma za rączkę, będziesz mógł powiedzieć, że już się nauczyłeś.

I nie chodzi o to, żeby wszystko umieć, tylko o zdolność szukania rozwiązań. Bo tak naprawdę to nikt z nas nie ma wszystkiego w głowie. Ale ważne jest to, że umiemy w razie potrzeby poszukać w necie, pobrać sobie jakiś gotowy kod i go przeanalizować czy w inny sposób sobie poradzić z napotkanym problemem. Istotne jest posiadanie ogólnej wiedzy w danym zakresie, która to wiedza ułatwi poszukiwania konkretów. Bo szukać też trzeba umieć.

Tylko ważna uwaga (zresztą dotyczy to wszystkich branż, nie tylko programowania) - umiejętności nie zdobywasz raz na całe życie, to jest ciągły proces. Człowiek się rozwija, poznaje nowe technologie albo sposoby podejścia do tematu. Nie myśl, że teraz posiedzisz sobie kilka tygodni/miesięcy, nauczysz się i już do śmierci będziesz mega hakerem. To tak nie działa :P

3

Ja słyszałem, że umie się programować dopiero jak umie się skompilować program napisany na kartce.

7

Umiejętność zaimplementowania drzewka binarnego ma się do umiejętności programowania ogólnie tak, jak zaliczenie łuku w WORD ma się do przejechania rajdu Dakar ;)

Nie wiem, skąd usłyszałeś, że to postawienie kropki nad "i" w programowaniu - może i owszem, ale jest to "i" w pierwszym zdaniu Trylogii Sienkiewicza :]

3

Kiedy można powiedzieć, że nauczyło się programować ?

Nigdy, bo nigdy nie umiesz na tyle dużo żeby wiedzieć wszystko :]

3

Kiedy można powiedzieć, że nauczyłeś się angielskiego? Jak wejdziesz na poziom B2? Jak umiesz spokojnie utrzymać konwersację z obcokrajowcem? Jak jesteś w stanie napisać powieść? Nigdy, bo zawsze jest coś nowego do opanowania? Nie ma jasnej definicji. Z programowaniem jest tak samo.

1

To tematu załączam kod :).

1

Nie uważasz, że podany kod to trochę mało? Poza tym szału nie ma, jeśli chodzi o jego jakość.
Dwie rzeczy, które mi się od razy rzuciły w oczy: kiepskie nazwy zmiennych i funkcji oraz totalnie niepotrzebne komentarze. Kod powinien być tak napisany, żeby dało się go zrozumieć bez czytania komentarzy wyjaśniających jego sposób działania.

Ale i tak moim zdaniem da się dostrzec postęp w stosunku do Twojego pierwszego wpisu na forum - Pierwszy program w portfolio

2

parafrazując pewną polską piosenkę:
Kodzić to nie znaczy zawsze to samo.
Można kodzić tak lekko, albo kodzić koszmarnie.

wiele osób umie programować, ale niektórzy będą to robili lepiej, rozwiązywali problemy w bardziej elegancki sposób, a niektórzy będą programować byle jak.

Tak samo jedni będą mieć większą wiedzę i umiejetności, a niektórzy będą po prostu wielu rzeczy nie umieć - i to niekoniecznie jest powód do wstydu - na pewno warto wiedzieć dużo, i warto aktywnie się dokształcać, ale zawsze będą jakieś obszary, których nie będziemy umieć robić (np. skomplikowane algorytmy). Wtedy można się często poratować gotową biblioteką (chociaż biblioteki też trzeba umieć obsługiwać + oceniać, czy w ogóle warto z nich korzystać w danej sytuacji)

ktoś kiedyś zrobił tabelkę z różnymi umiejętnościami, jakie można zdobyć jako programista:
https://sijinjoseph.com/programmer-competency-matrix/
można zobaczyć ile się nie wie :)
chociaż niektóre pozycje z tej tabelki trącą myszką - np. teraz zdecentralizowany Git już jest standardem, ale jak to pisali, to panowała scentralizowana kontrola wersji typu SVN. Tak samo niektóre języki, które oni tam proponują są już rzadko używane. I ogólnie jakaś niby nie do końca idealna jest ta lista, miejscami zbyt zopiniowana, ale mimo wszystko inspirująca (swoją drogą zna ktoś jakąś lepsze zestawienie możliwych skillów do ogarnięcia jako programista? Bardziej aktualne?)

2

Moim zdaniem, można powiedzieć, że człowiek umie programować, jak zrobi print i goto 10, a jak jeszcze ogarnie if i pętle to już w ogóle rządzi ;)

A tak serio, IMHO pytanie ma tyle samo sensu, co dociekanie ile ziarenek jest już stosem.

2
Adept123 napisał(a):

Witam
Jestem już po przerobieniu tematu z drzewami. Piszę o tym dlatego, że kiedyś usłyszałem, że programowanie drzewek to jakby "postawienie kropi nad i" w programowaniu.
Pozdrawiam

To trochę jakby powiedzieć, że nauczenie się ułamków to postawienie kropki nad i w matematyce :D

Z drugiej strony dobrze, że uczysz się drzewek, bo niestety jest trend do gardzenia nimi - na Hacker News w watku o rekrutacji kiedyś czytałem komentarze, że po co pytają na rozmowie o drzewa, i ktoś pisał, że ma ileś lat doświadczenia, a nigdy nie zdarzało mu się użyć drzewa binarnego, i że uważał, że to niepotrzebne. A Jak dla mnie to chwalenie się ignorancją. Sam nie jestem mistrzem algorytmów, ale chodzi mi o taką postawę "nie dość, że nie czegoś nie znam, to jeszcze chwalę się naokoło tym, że nie wiem i promuję niewiedzę jako coś pożądanego.

A prawda jest taka, że jak się czegoś nie zna, to po prostu człowiekowi nie przyjdzie do głowy nawet, że może czegoś użyć, że np. jakieś konkretne podejście zmniejszyłoby złożoność algorytmiczną i w rezultacie mogłoby polepszyć wydajność aplikacji. Tylko właśnie, trzeba byc otwartym na wiedzę.

Myślę więc, że z tym postawieniem kropki nad i jest tak, że wielu się wydaje, że już ją postawili, że się wszystkiego co potrzebne nauczyli, a w rzeczywistości nauczyli się podstaw, a często nawet i podstaw nie znają, a po prostu umieją coś zakodować na kolanie.

2

Jak dostaniesz pierwszą pracę, to możesz powiedzieć, że umiesz wystarczająco dobrze, żeby dostać pracę. Pierwsza praca jest bardzo ważna, bo pokazuje jak mało sie wie, pomimo ze wie się dużo.

1

Powiedzieć, że umiesz programować możesz powiedzieć kiedy chcesz. Właściwe pytanie brzmi: kto Ci uwierzy?

2

Jak dostaniesz pierwszą pracę, to możesz powiedzieć, że umiesz wystarczająco dobrze, żeby dostać pracę. Pierwsza praca jest bardzo ważna, bo pokazuje jak mało sie wie, pomimo ze wie się dużo.

Pierwsza może tak, bo człowiek czuje się onieśmielony przez to wszystko + uczy się w przyśpieszonym tempie bardzo wielu rzeczy. I widzi się kod pisany przez innych, który często jest trudny w zrozumieniu (a ktory wydaje się taki mądry)

Ale potem (po jakimś czasie, w kolejnych pracach itp.) następuje otrzeźwienie i się widzi, że nawet ludzie, którzy kodują profesjonalnie, nie do końca to umieją robić.

W pierwszej pracy myślałem, że jestem głupi, że nie rozumiem kodu w projekcie. Potem jednak zrozumiałem, że po prostu spotkałem się na wstępie z overengineeringiem, z przeinżynierowaną kobyłą. A ludzie sobie specjalnie gmatwają, bo się zachwycili wzorcami projektowymi i chcą wpychać je na siłę (też tak czasem robiłem...).

Później pamiętam spotkałem się jeszcze ze spaghetti kodem, i pamiętam szczególnie taki case, w którym ktoś nawet nie znał pętli for,
tylko pisał z palca 20 liczb / 20 ifów / czy jakoś tak (i przerobiłem to jakoś na 3 linijki). To już był ten moment aha, w którym zorientowałem się, że kod komercyjny to w dużej mierze syf i że większość ludzi wcale nie wie zbyt wiele i że ciężko się czegokolwiek nauczyć w sensie pozytywnym, prędzej w negatywnym (jak nie należy pisać).

Pierwsza praca jest bardzo ważna, bo pokazuje jak mało sie wie, pomimo ze wie się dużo.

Więc praca jest też potrzebna, żeby widzieć, jak mało inni programiści wiedzą i żeby nie popaść w kompleksy (przed pierwszą pracą można myśleć, że "jestem słaby", a potem się widzi, że "o, inni też są słabi!") ;)

0

Tak mi się jeszcze przypomniała stara chińska sentencja odnośnie tego, kto jest programistą: Kto jest, ten nie mówi, kto mówi, ten nie jest.

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