Witamy na forum PC Format Zapraszamy do REJESTRACJI


Użytkownicy przeglądający ten wątek: 1 gości

FAQ dla początkujących - Przeczytaj zanim założysz nowy temat!

#1
FAQ dla początkujących - Przeczytaj zanim założysz nowy temat!
[/color]W tym wątku postaraliśmy się odpowiedzieć na pytania niezwykle często zadawane przez początkujących. Przy okazji zachęcam do skorzystania z funkcji Szukaj i przejrzenia naprawdę licznych dyskusji na te tematy; być może znajdziesz tam jeszcze więcej informacji.

P: Od jakiego języka zacząć naukę programowania?
O: Najczęściej wybierane są C++, C, Ada, Python, C Sharp(C#), Delphi, Java, lub Pascal

P:Jaki wybrać kompilator do języka w którym programuję?
O: Kompilator jest często mylony ze środowiskiem programistycznym. Kompilator jedynie tłumaczy napisany przez nas kod na język komputera. Kod źródłowy możemy napisać nawet w systemowym Notatniku. Obecnie kompilatory są częścią środowisk programistycznych(IDE), czyli aplikacji(lub zespołu aplikacji) pozwalających na wygodne tworzenie programów. W skład każdego IDE wchodzi obecnie edytor kodu źródłowego, kompilator, linker, edytor zasobów, i wiele innych narzędzi. Oto niektóre środowiska dla wybranych języków:
C/C++ :
1. Dev C++
2. wxDev-C++
3. Code::Blocks
4. Microsoft Visual C++(2010 Express Edition)
5. C++ Builder(2007 Enterprise)

C#:
1. Visual Studio 2013 express
2. SharpDevelop
3. Turbo C# Explorer

Ada:
1. GNAT

Python:
1. Interpretator Python

Delphi(Pascal):
1. Lazurus
2. Delphi 2007(Trial)

Java:
1. JDK
2. BlueJ
3. SUN

Niektóre środowiska, jak np. Eclipse czy NetBeans dzięki odpowiednim wtyczkom obsługują więcej niż jeden język programowania.

P: Waham się między nauką C/C++ a Pascala. Który język jest lepszy?
O: Nie ma jednoznacznej odpowiedzi na to (i inne tego typu pytania). Jedni uważają, że nauka Pascala pozwala zrozumieć podstawowe zasady programowania, a inni, że to strata czasu i tego samego nauczymy się w C/C++. Proste porównanie tych języków znajdziemy np. Tutaj. W Sieci krąży mit, że aby uczyć się C++, trzeba znać jakiś inny, "prostszy" język, jak np. Pascal czy Basic. Nie jest to prawdą. Składnia C/C++ nie jest bardziej skomplikowana od innych języków. Są one przyjazne zarówno tym którzy znają już jakiś język, i tym którzy dopiero zaczynają swoją przygodę z programowaniem. Krótko mówiąc, wszystkich podstaw których nauczymy się w Pascalu/Basicu równie dobrze i bezboleśnie możemy się nauczyć w C/C++ etc.

P: Z czego uczyć się wybranego języka?
O: Najlepiej z książek lub kursów internetowych.

Książki i kursy do nauki C++:
1. Jerzy Grębosz, Symfonia C++ Standard
2. Megatutorial "Od zera do gier kodera"
3. Stephen Prata, Język C++. Szkoła programowania.
4. Bruce Eckel, Thinking in C++ (darmowa wersja elektroniczna)
5. C++ ze strony Wikibooks
6. Zbigniew Koza, Język C++. Pierwsze starcie
7. C++ Programming: Program Design Including Data Structures
8. Zadania z programowania w języku C/C++, cz. I
9. The C++ Standard Library: A Tutorial and Reference
10. cpp0x

Książki i kursy do nauki Pythona:
1. Python. Rozmówki
2. Python. Wprowadzenie III
3. Zanurkuj w Pythonie(kurs online)
4. TI: Programowanie z Pythonem (kurs online)

Książki i kursy do nauki Delphi:
1. Delphi 7. Praktyka programowania Tomy 1,2
2. Praktyczny kurs Delphi
3. Dużo materiałów dot. Delphi znajdziesz na www.4programmers.net

Książki i kursy do nauki Javy:
1. Java. Podstawy. Wydanie VIII
2. Thinking in Java. Edycja polska. Wydanie IV
3. JAVA, wykłady i ćwiczenia
4. Kurs Javy
5. Java. Kompendium programisty. Wydanie VIII
6. Java for programmers - 2nd edition

Książki i kursy do nauki C#:
1. Visual C# step by step
2. Pro C# 5.0 and .NET 4.5 framework
3.Illustrated C# 2012


P: Gdzie w internecie znajdę do pobrania "Symfonię"?
O: Jest to bardzo często zadawane pytanie na wielu forach. Po sieci krążą nielegalne kopie wydań sprzed kilkunastu lat, niezgodne z obecnie obowiązującym standardem ISO.

P: Kiedy można rozpocząć naukę programowania?
O: Nie ma granicy wiekowej, jednak bardzo dużo osób zaczyna naukę programowania w wieku 13-16 lat.

P: Czy trzeba być dobrym z matematyki żeby być dobrym programistą?
O: Matematyka jest ważnym elementem programowania i nie można jej uniknąć w większych projektach. Zaczynając naukę dowolnego języka należy znać przynajmniej podstawowe zagadnienia. Jeżeli chcesz się o tym dowiedzieć więcej, odsyłam Cię na tę stronę.

P: Jakiej biblioteki graficznej się uczyć?
O: Nauka języków programowania zazwyczaj przebiega przy użyciu konsoli. Jeżeli chcemy tworzyć aplikacje tak jak np. Microsoft Office lub chociaż Notatnik, potrzebna jest znajomość bibliotek graficznych. Przedstawię pokrótce najpopularniejsze biblioteki.

Biblioteki 2D i 3D:
Allegro - biblioteka napisana w języku C, służąca do programowania gier. To oznacza, że oprócz funkcji graficznych, udostępnia funkcjonalność związaną z obsługą dźwięku, myszy, klawiatury, pomiaru czasu itd. Allegro posiada także zaimplementowane elementarne funkcje związane z grafiką 3D. Biblioteka dostępna jest na różne platformy (Windows, Linux, Mac OS X i inne). Posiada akcelerację sprzętową tylko w niewielkim stopniu, choć można to zmienić używając rozszerzenia AllegroGL (po więcej informacji odsyłam do zewnętrznych źródeł). Biblioteka Allegro jest oczywiście w pełni darmowa, co więcej - jej kod źródłowy jest dostępny na stronie oficjalnej.

SDL - dość podobna do Allegro, napisana w C oraz multiplatformowa. Oferuje zbliżoną funkcjonalność oraz podstawową obsługę wątków i napędu CD-ROM. Dodatkowo SDL jest przystosowany do współpracy z OpenGL. Co ciekawe, na stronie oficjalnej można znaleźć mnóstwo rozszerzeń oraz samodzielnych bibliotek, które oferują procedury służące np. do wykrywania kolizji, tworzenia interfejsu użytkownika itd. SDL jest dedykowany głównie dla C i C++, aczkolwiek powstało wiele portów pozwalających na korzystanie z niego w językach wyższego poziomu jak np. C#, Java czy Python (pełna lista na oficjalnej stronie). SDL, podobnie jak Allegro, jest narzędziem darmowym (licencja LGPL). Kod źródłowy jest również dostępny.

SFML - cechą, która chyba najbardziej odróżnia bibliotekę SFML od dwóch powyższych jest to, iż została zaprojektowana obiektowo. Napisano ją w C++, ale dostępna jest również m. in dla platformy .NET oraz Pythona. Pozwala na obsługę grafiki, dźwięku, kontrolerów, pomiaru czasu oraz sieci. Można ją zintegrować z interfejsami stworzonymi m. in. za pomocą Qt, wxWidgets, Win32 API i MFC. Podobnie jak SDL pozwala na stworzenie interfejsu, z którego następnie będzie korzystała biblioteka OpenGL. SFML w dość znacznym stopniu wykorzystuje akcelerację sprzętową, dotyczy to zarówno grafiki jak i dźwięku. Biblioteka jest całkowicie darmowa zarówno dla użytku komercyjnego jak i niekomercyjnego. Jej źródła są w pełni dostępne.

DirectX - zestaw funkcji stworzonych przez Microsoft. Najczęściej używane przy tworzeniu gier, aplikacji multimedialnych, lub symulacji z wykorzystaniem grafiki trójwymiarowej.

XNA - darmowy framework wydany przez Microsoft do tworzenia gier komputerowych. Zapewnia obsługę wszystkich aspektów programowania gier zaczynając od obsługi klawiatury, poprzez zaawansowaną grafikę 3D i kończąc na zastosowaniach internetowych (gry typu Multiplayer). Biblioteka oparta jest na technologii DirectX, a jej przeznaczeniem jest język C#. Grę utworzoną w tej bibliotece można skompilować na Xbox 360, Windows Phone 7, Windows. Framework jest bardzo prosty w obsłudze nawet dla początkujących programistów - wystarczy ściągnąć gotowe zestawy startowe gier, których gama jest szeroka (od gier logicznych po wyścigowe) i już można dowolnie modyfikować kod źródłowy, grafiki, dźwięki. Jest to duże ułatwienie, ponieważ gry nie trzeba pisać od zera. Systemy operacyjne obsługiwane przez XNA to Windows XP, Vista i Windows 7. Minimalne wymagania sprzętowe to Shader Model 1.1 (zalecane 2.0) oraz DirectX 9.0c.

OpenGL - biblioteka stworzona do generowania grafiki. Korzysta z zestawień figur geometrycznych. Często wykorzystywana w tworzeniu gier i wygaszaczy ekranu. Jest (po części) alternatywą dla DirectX.

Biblioteki do tworzenia interfejsu użytkownika:
GTK+- biblioteka służąca do tworzenia interfejsu graficznego do programów komputerowych. Pozwala na programowanie obiektowe, i współdziała z wieloma popularnymi językami, jak np. C++, ADA, Python.

QT - przenośne biblioteki C++ i Javy służące głównie tworzeniu GUI, ale także programów konsolowych i serwerów. Mimo dedykacji dla C++ i Javy, QT można używać programując także Pythonie, C#, czy Adzie. Biblioteki są w pełni obiektowe. Oprócz tworzenia graficznego interfejsu użytkownika, biblioteki oferują np. obsługę procesorów, grafiki trójwymiarowej, czy baz danych. QT posiada niezależne od STL szablony klas pojemnikowych.

WxWidgets pozwala na tworzenie oprogramowania dla różnych środowisk graficznych. Obecnie biblioteka pozwala na tworzenie aplikacji wielojęzycznych. Jednak do pojawienia się wersji 3, niestety programiści są zmuszeni wybierać kodowanie znaków między Unikodem, a typowym, 8-bitowym zestawem znaków.

WinApi - interfejs programistyczny Windows, używany przy tworzeniu aplikacji dedykowanych dla tego systemu. Zawiera zbiór funkcji umożliwiających działanie programu w tym systemie operacyjnym. WinApi daje także dostęp do zasobów sieciowych i sprzętowych komputera.

MFC - biblioteka napisana obiektowo w C++, przeznaczona do tworzenia Windowsowych aplikacji. Jest uproszczeniem WinApi.


Lista osób, które przyczyniły się do powstania tego FAQ:
izi, oskarzet, andros1245, cube0, quavitor, brzegator27 oraz Rincewind
Dyskusja o FAQ i propozycje zmian w dziale "Programowanie": http://forum.pcformat.pl/Przeczytaj-zani...emat-FAQ-t
 System operacyjny: windows_xp_2003 Przeglądarka: firefox
Programy: Polecane / Nowe / Inne



Użytkownicy forum szukali:
download biblioteki graficzne 2d 3d do eclipse c++bruce eckel thinking in c++ odpowiedziinterfejsy graficzne w pythoniejakie są potrzebne biblioteki microsoft c dla pythonajava kompendium programisty kody źródłoweJava. Kompendium programisty. Wydanie VIIIjęzyk c kody źródłowe biblioteka allegrojęzyk programowania na pc dla początkującego

Podobne wątki (FAQ dla początkujących - Przeczytaj zanim założysz nowy temat!)
Wątek: Autor Odpowiedzi: Wyświetleń: Ostatni post
  Pisanie kurs jeżyków programowania pomoc dla początkujących Ebix 0 6912 18.11.2012, 12:08
Ostatni post: Ebix
  Przeczytaj zanim załozysz nowy temat - dyskusja na temat FAQ. izi 38 30640 27.07.2012, 15:14
Ostatni post: Szachista
  m.lis java dla początkujących komputronix 2 7722 30.12.2011, 14:49
Ostatni post: komputronix

Skocz do:


Wybrane wątki (FAQ dla początkujących - Przeczytaj zanim założysz nowy temat!)
Wątek: Autor Odpowiedzi: Wyświetleń: Ostatni post
  Programowanie Batch (CMD) Informatyk2019 0 1940 11.12.2019 18:30
Ostatni post: Informatyk2019
  [JavaScript] Znajdowanie przedziału czasu rafal12999 0 881 10.12.2019 17:58
Ostatni post: rafal12999
  Przekazywanie wskaźnika przez referencję w Qt Trojan3000 3 9453 10.12.2019 13:16
Ostatni post: Ajgor
  Proszę o pomoc w uzupełnieniu ankiety dt. Zawodu Programisty MaleMonki 0 1354 17.11.2019 12:47
Ostatni post: MaleMonki
  Spring framework – jakie strony polecacie do nauki? olek23 5 4148 15.11.2019 15:57
Ostatni post: Alsenas
  Programowanie windy (problem) w C++ mysza2323 2 2923 06.11.2019 23:04
Ostatni post: mysza2323
  Programy w C ~Anonim 1 3318 22.10.2019 17:48
Ostatni post: Szachista
  Książki do nauki C# olek23 14 12119 17.10.2019 13:06
Ostatni post: Ajgor
  Wyświetlanie informacji z bazy danych na stronie www PitPlay 1 4471 16.09.2019 11:18
Ostatni post: Ajgor
  Błąd przy uruchamianiu programu w Java z wiersza poleceń Physicist 3 2961 30.08.2019 14:16
Ostatni post: Physicist
  Python z wiersza poleceń Physicist 15 13982 21.08.2019 20:14
Ostatni post: Physicist
  Transfer plików via FTP Visual Basic FireBytes 3 6034 15.08.2019 07:41
Ostatni post: Szachista
  Menu wysuwane z boku patryk67 1 5120 07.08.2019 12:43
Ostatni post: aht
  Visual Basic Excel l.całkowitą przedstawić w postaci szesnastkowej fugaz 4 6915 18.06.2019 21:36
Ostatni post: fugaz
  Nauka do Olimpiady Informatycznej? piotr0905 1 6663 08.06.2019 16:50
Ostatni post: wlisik