Spis treści Poprzednia strona: Wstęp Następna strona: Kim jest programista?
Celem programowania jest „ożywianie maszyn”, czyli wykorzystanie sprzętu komputerowego (i ogólnie elektronicznego) w celu rozwiązywania konkretnych problemów, ponieważ są one dla ludzi albo zbyt złożone, albo zbyt czasochłonne. Dla rozwiązywania prostych problemów nie należy w ogóle siadać do komputera. Programowaniem zajmują się programiści. Celem tego kursu jest zrobienie z Ciebie programisty(-stki). Aby pomóc Ci lepiej się wczuć w tę rolę, będę często pisał w liczbie mnogiej „my programiści” 🙂
Sposób w jaki programujemy zależy od odpowiedzi na trzy podstawowe pytania:
- Co chcemy osiągnąć (jaki problem rozwiązać)?
- Jak chcemy to osiągnąć (jaki algorytm zastosować)?
- Jakim dysponujemy sprzętem komputerowym?
Rozwój technologii zmierza w kierunku uniezależnienia się od odpowiedzi na pytania 2 i 3 oraz na skoncentrowaniu się na pytaniu 1. Programowanie jest podobne do architektury: jest jednocześnie inżynierią i sztuką. Z tego powodu nie każdy nadaje się na programistę, przynajmniej na razie, kiedy technologia nie pozwala całkowicie pozbyć się odpowiedzi na pytania 2 i 3. Sztuka przejawia się w innowacyjności i prostocie rozwiązań skomplikowanych problemów. Informatyka jest nauką eksperymentalną i bazuje na odkryciach. Niektóre rozwiązania się przyjmują, a inne odchodzą w zapomnienie. Historia programowania jest mocno związana z historią języków programowania, poziomem ich abstrakcji i ich możliwościami. W celu klasyfikacji języków programowania ze względu na poziom abstrakcji wyróżnia się różne generacje języków programowania:
- 0GL – poziom sygnałów elektrycznych
- 1GL – kod maszynowy
- 2GL – assembler
- 3GL – języki ogólnego przeznaczenia (C, C++, C#, Java, VB, Object Pascal)
- 4GL – języki wyspecjalizowane (SQL, HTML, XML, XSLT, CSS, YACC)
- 5GL – języki deklaratywne do rozwiązywania problemów (zwykle optymalizacyjnych) zadanych wyłącznie przez warunki brzegowe (Prolog, języki sztucznej inteligencji oparte o język Lisp)
Ponieważ język C# należy do grupy 3GL, tą grupą będziemy się w tym kursie zajmować i zwracać uwagę na elementy 4GL i 5GL, które pojawiają się od czasu do czasu w językach 3GL.
Spis treści Poprzednia strona: Wstęp Następna strona: Kim jest programista?