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

Czy w językach programowania trzeba znać to wszystko?

Object Storage Arubacloud
+4 głosów
1,008 wizyt
pytanie zadane 7 sierpnia 2016 w Inne języki przez programer Obywatel (1,190 p.)
Mam jedno krótkie pytanie, na które nie umiałem znaleźć odpowiedzi.

Czy trzeba uczyć się języków programowania  tak że np.

aby zapisać plik należy dodać dodać bibliotekę (...)  i napisać (...)

i tak w wielu językach...

i te wszystkie nazwy? Czy nie wystarczy tylko znać zasady i reguły a jak to należy napisać

przepisywać z czegoś. A jak wy się uczycie programowania?

 

Jeśli ktoś już zadał to pytanie to proszę o link i z góry dzięki za odpowiedź.

4 odpowiedzi

+12 głosów
odpowiedź 7 sierpnia 2016 przez Sebastian Fojcik Nałogowiec (43,040 p.)
wybrane 7 sierpnia 2016 przez programer
 
Najlepsza

Popularna etyka programistyczna mówi, że bibliotek nie należy się uczyć na pamięć. Od tego są te wszystkie dokumentacje. W imię tej zasady nie musisz znać na pamięć wszystkich nazw, np. trybów otwarcia: std::ios::app.
Wraz z ilością zrealizowanych projektów i korzystania z biblioteki nazwy same będą wchodzić do głowy.

Należy też zaznaczyć, że korzystanie z bibliotek, np. pisanie aplikacji w C#, w technologii .NET i korzystanie z Windows Forms to nadal tylko programowanie w C#. Nauka o tym jak stworzyć okienko windowsowe z progress barem nie ma nic wspólnego z nauką języka programowania.
Nauka bibliotek to całkowicie inna bajka. Dużo ciężej jest opanować w pełni jakąś bibliotekę niż poznać i zrozumieć składnię jakiegoś języka programowania. Głównie dlatego, że wszystkie języki programowania mają cechy wspólne. Pętla for w C++ to pętla for w Pythonie.

Z bibliotekami nie jest już tak łatwo. W bibliotece Qt masz "jakieś" sloty i sygnały do obsługi wydarzeń. Pisząc w C#, w Windows Forms czy WPF korzystasz z delegatów. W bibliotece SFML są już całkowicie inne funkcje do odbierania takich wydarzeń W skrócie: napisanie pętli for w 2 innych językach to kwestia jednokrotnego spojrzenia na składnię i już umiesz. Natomiast obsłużenie kliknięcia myszy w innych bibliotekach, to już musisz się zaczytać w dokumentację i zrozumieć jak obsługiwać wydarzenia.

Ogólnie jeśli umiesz bardzo dobrze C++, to możesz już teraz pisać w C# czy w Javie z pomocą Google. Teraz może Ci się wydawać to nieprawdopodobne, ale można najpierw wybrać bibliotekę / silnik w którym chce się programować, a dopiero do niego "douczyć" się języka. Tak było w moim przypadku z Unity, do którego skrypty pisze się w C# oraz animacje Flash, które oskryptowuje się w JavaScripcie.

Dochodzimy tutaj do bardzo ważnej kwestii. Znajomość samego języka jest bezużyteczna z praktycznego punktu widzenia. Co komu po znajomości składni? Twoim zadaniem jako programisty jest wydawanie poleceń komputerowi. Biblioteki graficzne DirectX, OpenGL czy API Windowsa zostały stworzone, aby pośredniczyć w wydawaniu tych poleceń. Dlatego biblioteki trzeba znać i będziesz się ich uczył całe życie :-)

Bibliotek jest multum, niektórzy chcą tylko liznąć po trochę każdej, a inni masterują jedną ulubioną technologię. Sposobem na naukę jest oczywiście tworzenie własnych projektów. Umiejętność pracy z dokumentacją jest tutaj wskazana.

Czy trzeba się uczyć języków programowania tak że np. aby zapisać plik należy dodać bibliotekę (...) i napisać (...)

Jeśli umiesz dobrze C++, to wystarczy, że zaglądniesz na stronę dokumentacji jakiejś biblioteki: przykład
i tam jest wyraźnie zaznaczone, że klasa obsługująca zapis / odczyt z pliku znajduje się w #include <QFileDialog>. Niżej jest lista wszystkich funkcji do obsługi wraz z opisami i przykładami użycia. Zapytasz: a skąd mam znać tę nazwę QFileDialog? No ja 5 minut temu jej też nie pamiętałem. W Google wpisałem: "Qt save file" i już mam na tacy. Tak właśnie wygląda uczenie się nowych bibliotek :-)

Tym samym odpowiadam na ostatnie Twoje pytanie. Ja się właśnie tak uczę programowania. Dokumentacje to kopalnia wiedzy, ale żeby było jasne: nie zawsze wystarczające. To nie oznacza, że książki i podręczniki traktujące o obsłudze jakiejś biblioteki są bezużyteczne. Książki wyjaśniają temat bardziej szczegółowo, przystępniej z praktycznymi przykładami i niekiedy opisują możliwe do napotkania problemy. Najlepiej jak wyuczysz się C++ do perfekcji. Wtedy obiektowe języki pokroju C# / Java nie będą żadnym wyzwaniem. Powiesz sobie, że chcesz napisać program okienkowy w bibliotece WPF i wtedy "przy okazji, po drodze" nauczysz się C#. Ja tak zrobiłem i co prawda nie znam pewnie nawet w połowie możliwości oferowanych przez ten język, ale jestem w stanie w nim programować z różnymi bibliotekami.

Pozdrawiam.

komentarz 7 sierpnia 2016 przez Comandeer Guru (601,590 p.)

Pętla for w C++ to pętla for w Pythonie.

Chyba wybrałeś najgorszy możliwy przykład… ;)

int i;
for (i = 0; i < 2; i++){
    cout << i;
}

vs

for x in range(0, 3):
    print "We're on time %d" % (x)

 

komentarz 7 sierpnia 2016 przez ZakosiliMiNeta Nałogowiec (30,870 p.)

Chciałem to napisać :) Lecz jest Python 3.5 już, a tutaj wzmianka o 2.X jest. Jest lepszy przykład 

for ( i, x ) in zip ( lista1, lista2 ): 
   print ( i, " ", x )

 

komentarz 7 sierpnia 2016 przez jpacanowski VIP (101,940 p.)
for (int i = 0; i < 2; i++)
    cout << i;

:D

komentarz 7 sierpnia 2016 przez ZakosiliMiNeta Nałogowiec (30,870 p.)
ha błąd kompilacji inti :) nie ma czegoś takiego
1
komentarz 7 sierpnia 2016 przez Sebastian Fojcik Nałogowiec (43,040 p.)

Masz mnie, nie znam Pythona, ale nie wiem po co skomplikowałeś pętlę w C++. Porównanie powinno być takie:

for( int i = 0; i < 3; i++ )
     cout << i;

vs

for x in range(0, 3):
     print i

Bez problemu można dopatrzeć się cech wspólnych. Obydwie pętle będą iterowały 0, 1, 2 i wykonają się 3 razy.

Przyznam jednak, że przykład mogłem podać lepszy ;-)

1
komentarz 7 sierpnia 2016 przez ZakosiliMiNeta Nałogowiec (30,870 p.)

Sebastian Fojcik Oke lecz for w pythonie ma bardzo dużo innych cech nie związanych z pętlą for w C++ np.: ten zip czyli iteruje po liście przechowując po elemencie z 1 i 2 listy. Tak na przyszłość 

komentarz 7 sierpnia 2016 przez Comandeer Guru (601,590 p.)
Czy ja wiem, czy takie porównanie być powinno? Omijanie opcjonalnych klamerek chyba w każdym możliwym języku uznawane jest za grzech ciężki ;)
komentarz 7 sierpnia 2016 przez Sebastian Fojcik Nałogowiec (43,040 p.)
edycja 7 sierpnia 2016 przez Sebastian Fojcik

Jednak takie kombinacje nie są niezbędne do programowania w Python. Największy problem mogą mieć programiści Pythona szukający odpowiedników w C++, a nie na odwrót. Nie ma co ukrywać, że Python bardzo dużo robi "pod maską". Zresztą te języki mają więcej różnic niż cech wspólnych.

Jakby się uprzeć, to w C++ też przeiterujesz listę za pomocą pętli for:

list< int > lista;
// ... uzupełnienie listy

for( auto i : lista )
     cout << i << endl;

Ale ani to niezbędne, ani jakoś specjalnie nie sprawia, że kod jest czytelniejszy. Biblioteki standardowe Pythona są oczywiście nie do zastąpienia, sam język pozwala na zrobienie więcej, pisząc mniej, ale działa wolniej :-(

@Comandeer 
Ale wizualnie wygląda bardziej podobnie ^^
Jak używam argumentu do swoich słów, to chcę go przedstawić tak aby był poprawny i jak najbardziej pasował. Nie bądźmy tacy małostkowi. Sam na pewno nie raz opuściłeś te opcjonalne klamerki ;-)

+5 głosów
odpowiedź 7 sierpnia 2016 przez adas94 Nałogowiec (29,200 p.)
Dokumentacja, amen.
0 głosów
odpowiedź 7 sierpnia 2016 przez DragonCoder Nałogowiec (36,500 p.)
A wiec, 1. Nie napiszesz biblioteki podstawowej lub innych a użyjesz z nich funkcji to finito, program się nie uruchomi. 2. Jak się uczyć to się uczyć jednego języka a dopiero brać się za drugi 3. Biblioteki podstawowe to jak paciez, w głowie masz i używasz.
0 głosów
odpowiedź 7 sierpnia 2016 przez jegor377 Stary wyjadacz (13,230 p.)
Nie, Musisz jedynie nauczyć się korzystać z google i dokumentacji i trochę podstaw języka. Reszta to pikuś.

Podobne pytania

0 głosów
6 odpowiedzi 738 wizyt
0 głosów
11 odpowiedzi 980 wizyt
pytanie zadane 29 września 2016 w C i C++ przez CortezjuszPospolity Obywatel (1,130 p.)
0 głosów
1 odpowiedź 380 wizyt

92,579 zapytań

141,432 odpowiedzi

319,664 komentarzy

61,964 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!

...