Programowanie od podstaw

Scharner
Użytkownik
Użytkownik
Posty: 3
Rejestracja: 8 mar 2012, o 15:24
Płeć: Mężczyzna
Lokalizacja: Masłowice

Programowanie od podstaw

Post autor: Scharner »

Cześć! Temat wałkowany przez wiele postów, lecz nie znalazłem satysfakcjonującej dla mnie odpowiedzi. Chciałbym nauczyć się wszystkiego o programowaniu, poznać najważniejsze języki, lecz nie wiem od czego zacząć. Kilka lat temu bawiłem się html'em, więc jakieś tam pojęcie mam. Na pewno podstawowym będzie C++. Byłbym wdzięczny na odpowiedzi na poniższe pytania.

1. Wiele osób rozpoczyna przygodę z Pascalem, jednak gdyby zacząć od razu od C++, to w późniejszym czasie nie miałoby się jakichś braków? Czy rozpocząć naukę od Pascala, czy nie marnować czasu i przejść od razu do C++?
2. Czym się różni C, C++ i C#???
3. Znalazłem w domu książkę Czy warto do niej zaglądnąć?
4. Co to takiego ten Turbo Pascal?
5. Jakie są najważniejsze języki programowania w informatyce?
6. (tak z czystej ciekawości) Czy dobry programista mógłby zostać hakerem?

Z góry dzięki za odpowiedzi.
Pozdrawiam,
S.
Gouranga
Użytkownik
Użytkownik
Posty: 1592
Rejestracja: 16 maja 2013, o 17:56
Płeć: Mężczyzna
Lokalizacja: Trójmiasto
Podziękował: 11 razy
Pomógł: 246 razy

Programowanie od podstaw

Post autor: Gouranga »

0. html to nie język programowania, to metajęzyk znacznikowy
1. pascala olej, nikt już w tym nie pisze, to podstawa programowa rozszerzonej infy liceum sprzed ponad 3 lat
2. C - proceduralny, c++ - proceduralny z elementami obiektowości (i subiektywnie obrzydliwa hybryda), C# - w pełni obiektowy
3. Nie warto - pascal
4. nieistotne - pascal
5. zacznij od C (czystego, nie c++), nauczysz się algorytmiki, JAVA jest istotna chociaż ja jej nie polecam, C# jest prosty i fajny ale tylko pod windowsy, przyszłością internetu jest JavaScript (wbrew pozorom nie służy do pisania skryptów na strony ale do pisania pełnych aplikacji webowych włącznie z oprogramowaniem serwera i klienta)
6. Nawet słaby mógłby zostać jak trafi na ofiarę-idiotę
Ser Cubus
Użytkownik
Użytkownik
Posty: 1406
Rejestracja: 6 maja 2012, o 22:46
Płeć: Mężczyzna
Lokalizacja: Polska
Podziękował: 107 razy
Pomógł: 145 razy

Programowanie od podstaw

Post autor: Ser Cubus »

c++ elementy obiektowości? Ten język jest obiektowo orientowalny

zgadzam się z resztą z Gouranga, z tym że ja polecam zacząć od javy
Gouranga
Użytkownik
Użytkownik
Posty: 1592
Rejestracja: 16 maja 2013, o 17:56
Płeć: Mężczyzna
Lokalizacja: Trójmiasto
Podziękował: 11 razy
Pomógł: 246 razy

Programowanie od podstaw

Post autor: Gouranga »

Nie powiedziałbym, że c++ jest stricte zorientowany obiektowo, możesz wciąż pisać w c++ proceduralnie jak w C a nawet mieszać trochę proceduralnie, do tego używać jakichś obiektów, generalnie nie podoba mi się ten język
PabloRal
Użytkownik
Użytkownik
Posty: 34
Rejestracja: 30 wrz 2012, o 13:52
Płeć: Mężczyzna
Lokalizacja: Legnica
Podziękował: 1 raz
Pomógł: 4 razy

Programowanie od podstaw

Post autor: PabloRal »

Tak dla jasności haker to nie osoba, która włamuje się do systemów komputerowych lub np. na konta bankowe innych osób, haker to osoba twórcza, np. Leonardo da Vinci był hakerem. Osoba, która dokonuje przestępstw komputerowych to cracker.
dexter90
Użytkownik
Użytkownik
Posty: 391
Rejestracja: 11 lis 2011, o 09:48
Płeć: Mężczyzna
Pomógł: 32 razy

Programowanie od podstaw

Post autor: dexter90 »

Gouranga, "C# jest prosty"

Bzdury, widać że nie masz doświadczenia w kodzeniu na platformie .Net bo byś tak nie pisał. Raz używałeś Console.WriteLine() i siejesz bajki.

ps. jest wiele wygodnych mechanizmów, ale w żadnym wypadku nie jest prosty.

"zgadzam się z resztą z Gouranga, z tym że ja polecam zacząć od javy"

Można zacząć albo od tego, albo od tego. W każdym z przypadków pomijamy zrozumienie pewnych mechanizmów np. zarządzanie pamięcią.

"Jakie są najważniejsze języki programowania w informatyce?"

Zależy w jakiej dziedzinie.

" Co to takiego Pascal? "

VW

" Co to takiego ten Turbo Pascal? "

VW TDI.
mechatronik300
Użytkownik
Użytkownik
Posty: 320
Rejestracja: 26 sty 2013, o 20:55
Płeć: Mężczyzna
Lokalizacja: Wrocław
Podziękował: 2 razy
Pomógł: 44 razy

Programowanie od podstaw

Post autor: mechatronik300 »

Ja proponuje zacząć od Asemblera i Algorytmiki. To pozwoli łatwiej samodzielnie rozwiązywać problemy w wyższych językach.
dexter90
Użytkownik
Użytkownik
Posty: 391
Rejestracja: 11 lis 2011, o 09:48
Płeć: Mężczyzna
Pomógł: 32 razy

Programowanie od podstaw

Post autor: dexter90 »

Algorytmiki tak, assemblera nie bardzo. Dziś większość firm specjalizujących się w systemach wbudowanych coraz rzadziej używa assemblera - co nie znaczy że odchodzi on do lamusa. Zazwyczaj robi się wstawki do C w assemblerze, ale tak czy siak większa część kodu jest pisana w C.

Na temat assemblera warto poczytać, ale na pewno nie jest to język nad którym autor ma spędzać noce. Poczytać poznać, odłożyć. Wgłębić się lepiej w C++, Java, platforma .Net + bazy danych i obszar BI.
mechatronik300
Użytkownik
Użytkownik
Posty: 320
Rejestracja: 26 sty 2013, o 20:55
Płeć: Mężczyzna
Lokalizacja: Wrocław
Podziękował: 2 razy
Pomógł: 44 razy

Programowanie od podstaw

Post autor: mechatronik300 »

Jasne dlatego zaznaczyłem że znajomość tego języka często rzuca światło na problemy dotychczas nie zrozumiałe. O ile Asembler jest coraz mniej powszechny (nie mało przydatny) o tyle jako pomoc w zrozumieniu, choćby ograniczeń wyższych języków wynikających z ograniczeń procesora, Asembler jest nieoceniony. Jednak faktycznie nie musi być to język "ojczysty".
Awatar użytkownika
gildon
Użytkownik
Użytkownik
Posty: 13
Rejestracja: 14 paź 2012, o 18:38
Płeć: Mężczyzna
Lokalizacja: Trójmiasto

Programowanie od podstaw

Post autor: gildon »

dexter90 pisze:Gouranga, "C# jest prosty"

Bzdury, widać że nie masz doświadczenia w kodzeniu na platformie .Net bo byś tak nie pisał. Raz używałeś Console.WriteLine() i siejesz bajki.

ps. jest wiele wygodnych mechanizmów, ale w żadnym wypadku nie jest prosty.

"zgadzam się z resztą z Gouranga, z tym że ja polecam zacząć od javy"

Można zacząć albo od tego, albo od tego. W każdym z przypadków pomijamy zrozumienie pewnych mechanizmów np. zarządzanie pamięcią.

"Jakie są najważniejsze języki programowania w informatyce?"

Zależy w jakiej dziedzinie.

" Co to takiego Pascal? "

VW

" Co to takiego ten Turbo Pascal? "

VW TDI.
Zaczynając od Javy traci się wiele z radości programowania. Znam masę osób, które zaczęły od tego języka i szczerze tego żałowały. Lepiej już zacząć od starego dobrego Pascala lub C, a potem dopiero brać się za język taki jak Java.
mechatronik300 pisze:Jasne dlatego zaznaczyłem że znajomość tego języka często rzuca światło na problemy dotychczas nie zrozumiałe. O ile Asembler jest coraz mniej powszechny (nie mało przydatny) o tyle jako pomoc w zrozumieniu, choćby ograniczeń wyższych języków wynikających z ograniczeń procesora, Asembler jest nieoceniony. Jednak faktycznie nie musi być to język "ojczysty".
Zgodzę się, Asembler to fajny język, ale tak jak Java nie nadaje się na początek. Przy pisaniu w nim można dostać szału
Awatar użytkownika
Martingale
Użytkownik
Użytkownik
Posty: 76
Rejestracja: 9 lip 2013, o 10:49
Płeć: Mężczyzna
Lokalizacja: Stuttgart
Podziękował: 3 razy
Pomógł: 10 razy

Programowanie od podstaw

Post autor: Martingale »

To zależy kim chciałbyś zostać. Moim zdaniem dobry programista powinien (docelowo) znać kilka różnych języków programowania, dzięki temu możesz patrzeć na ten sam problem z różnych stron, zupełnie tak, jak fizycy widzą dualizm korpuskularno-falowy.

Wiadomo, że najwięcej osób poleca rozpoczęcie programistycznej przygody od C++, i nie jest to zła wskazówka, bo ten język jest bardzo popularny. Ja zaczynałem od Haskella, jest to całkiem przyjemny twór, ale reprezentuje całkowicie odmienny sposób myślenia (programowanie funkcjonalne, możliwe jest operowanie na nieskończonych listach, kolejność poleceń w kodzie jest czasami mało istotna, a przypisanie destruktywne nie istnieje*), tak więc Tobie radzę zaprzyjaźnić się z nim później.

Dobrym pomysłem może być spróbowanie Pythona albo Ruby, na początkującym poziomie zaawansowania pozwalają na tyle samo co C czy C++, a kod napisany w nich jest o wiele czytelniejszy. Porównaj sobie kod tego samego programu w wymienionych językach:

Kod: Zaznacz cały

http://rosettacode.org/wiki/Sum_multiples_of_3_and_5
.

*

Kod: Zaznacz cały

x = 0
x = x + 1
W Haskellu coś takiego jest niemożliwe, kompilator stwierdzi, że zdefiniowaliśmy x dwa razy.
dexter90
Użytkownik
Użytkownik
Posty: 391
Rejestracja: 11 lis 2011, o 09:48
Płeć: Mężczyzna
Pomógł: 32 razy

Programowanie od podstaw

Post autor: dexter90 »

Kod: Zaznacz cały

możliwe jest operowanie na nieskończonych listach
Niczym Chuck Noris, który potrafi stworzyć listę wykraczającą po za pamięć operacyjną.
aczynając od Javy traci się wiele z radości programowania. Znam masę osób, które zaczęły od tego języka i szczerze tego żałowały. Lepiej już zacząć od starego dobrego Pascala lub C, a potem dopiero brać się za język taki jak Java.
Zacząć od Pascala i zmarnować cenny czas.
MakCis
Użytkownik
Użytkownik
Posty: 1023
Rejestracja: 10 lut 2008, o 15:45
Płeć: Mężczyzna
Podziękował: 72 razy
Pomógł: 15 razy

Programowanie od podstaw

Post autor: MakCis »

Martingale ponieważ haskell jest językiem czysto funkcjonalnym to styczność z nim bez wcześniejszego obycia z językami imperatywnymi wydaje mi się być samobójstwem. W szczególności dla kogoś, kto nie miał styczności z bardziej zaawansowaną matematyką. Poza tym język ten nie jest nigdzie wykorzystywany w przemyśle. Przynajmniej nie w Polsce, mi nie udało się znaleźć żadnej poważnej oferty pracy, w której jednym z wymogów byłaby znajomość haskella. Co nie zmienia faktu, że warto bliżej przyjrzeć się temu językowi w celach hobbystycznych i zobaczyć jak bardzo różnić może się programowanie od tego, które znamy z popularnych języków imperatywnych.

Scharner osobiście radzę zacząć Ci od nauki C z elementami C++. Powodów jest kilka, najważniejszymi z nich jest to, że w sieci znajdziesz sporo materiałów oraz przykładowych programów z tego języka. Niestety wiele z nich nie uczy dobrego stylu programowania. Jest też sporo książek oraz bardzo dobrze napisana dokumentacja. Będziesz mógł poznać zarówno programowanie strukturalne (niskopoziomowe) jak i w pełni obiektowe. Ponadto łatwo potem przenieść się z C++ na C# czy Jave lub cokolwiek innego. Niewątpliwym minusem obiektowego C++ są frustrujące niekiedy archaizmy z C, które C++ musiał po nim odziedziczyć. Np. konwersja liczb ze Stringa na Doubla czy Inta jest zrobiona tragicznie podczas gdy w Javie czy C# słuzy do tego wbudowana funkcja (metoda).

Ja sam zaczynałem od C++ (na początku był to dla mnie przykry obowiązek, który później nawet całkiem polubiłem). I mimo to, że nigdy już nie powrócę do programowania w tym języku (po tym jak zacząłem pisać w C# czy Javie) to nie żałuję, że zaczynałem właśnie od C/C++.
ODPOWIEDZ