Istnieje forum więc proszę o zakładanie nowych tematów i dzielenie się z nami swoją wiedzą .
   
  informatyka-info
  Programowanie
 

 
 

Programowanie komputerowe jest formą twórczości polegającą na pisaniu użytecznych, możliwych do przechowywania i rozszerzania instrukcji, które mogą być interpretowane (wykonywane) przez system komputerowy (komputer) do wykonywania sensownych zadań, co czyni życie przyjemniejszym i pracę bardziej efektywną dla użytkowników systemu komputerowego. Programowanie komputera może zostać zrealizowane w jednym z wielu języków programistycznych, obejmujących od języków wysokiego poziomu (zbliżonych do języka naturalnego) do pisania bespośrednio w kodzie maszynowym (najniższego poziomu).


Programowanie komputerowe jest częścią szerszej dyscypliny nazywanej Inżynieria oprogramowania. Inżynieria oprogramowania (Software Engineering Body of Knowledge - SWEBOK) dzieli się na poszczególne dyscypliny:

  1. Wymagania dotyczące oprogramowania {Software requirements}
  2. Projektowanie oprogramowania {Software design}
  3. Pisanie (tworzenie) oprogramowania {Software construction}
  4. Testowanie oprogramowania {Software testing}
  5. Zabezpieczenie oprogramowania {Software maintenance}
  6. Konfigurowanie oprogramowania {Software configuration management}
  7. Zarządzanie tworzeniem i konfigurowaniem oprogramowania {Software engineering management}
  8. Proces tworzenia oprogramowania {Software engineering process}
  9. Narzędzia i metody inżynierii oprogramowania {Software engineering tools and methods}
  10. Jakość oprogramowania {Software quality}

Tematyką niniejszej książki jest tworzenie oprogramowania - programowanie.
Wybór języka programowania


Czego powinienem(powinnam) się uczyć?

Najważniejszym czynnikiem przy wyborze pierwszego języka do nauki jest to, na ile użyteczny będzie ten język w praktyce, na przykład - w przemyśle IT lub w otwartym projekcie, do którego masz zamiar dołączyć. Jeśli to ma być tylko twoja firma, taki popularny język jak C++ lub Java będzie dobrym wyborem. Jakkolwiek, są i inne czynniki, na które musisz zwrócić uwagę.


Na ile odpowiedni jest dany język dla początkujących?

Wiele języków programowania jest projektowana specjalnie po to, by były łatwe do nauki, np. Basic czy Pascal . Jakkolwiek są one nieraz krytykowane za obniżoną wydajność spowodowaną ograniczoną liczbą udogodnień. Jednak należy pamiętać, że podstawową funkcją tych języków jest nauka programowania strukturalnego. Dla bardziej zaawansowanych aplikacji mogą być potrzebne bardziej wyspecjalizowane i kompleksowe języki.

Niektóre języki programowania są odpowiednie dla początkujących ponieważ mają prostą składnię, np. Python. Ostatnio pojawiły się również głosy, że do celów dydaktycznych znakomicie mogą sprawdzać się języki Ada i Ruby.


Czy dany język jest dostępny lub odpowiedni na twoim systemie komputerowym?

Najprawdopodobniej będzie. Jeśli wybrałeś język, którego będziesz się uczyć, powinieneś poszukać implementacji do niego na twoją platformę (system). Szybkie wyszukiwanie w Internecie z uwzględnieniem języka programowania oraz systemu powinno dać w wynikach jakieś komercyjne lub bezpłatne implementacje.

Sytuacja komplikuje się, gdy będziesz zmuszony zajmować się starszymi systemami komputerowymi. Mogły one zostać napisane we wczesnych językach programowania, takich jak ALGOL, COBOL, FORTRAN, czy PL/1. Może to doprowadzić do sytuacji, kiedy będziesz zmuszony nauczyć się tych języków, by móc na przykład przeglądać kod źródłowy.


Czy pomoże ci to uczyć się innych języków w przyszłości?

C, C++, C#, Java są podobne, więc nauka jednego ułatwi naukę pozostałych. Z kolei nauka zupełnie odmiennych języków programowania ułatwi ci naukę nowych języków w ogóle.


Czy pomoże ci to stać się lepszym programistą?

Nauka akademickich języków, takich jak Prolog , Smalltalk czy Haskell może nie wydawać się warte zachodu, jeśli chodzi o przydatność w przyszłej pracy, jakkolwiek prostota tych języków zmusza cię do zmiany sposobu myślenia o programowaniu i uczy pewnych umiejętności, które możesz potem przenieść na inne języki. Niektórzy mogą powiedzieć, że programowanie w tych językach jest o tyle bardziej sprawne, że nie chce się zawracać głowy innymi, ale odkąd programowanie wymaga pracy dla innych i z innymi ludźmi, i tak będziesz musiał się nauczyć popularnych języków.


Jak praktyczny jest dany język?

Znów powracamy do naszego pierwszego zagadnienia przy wyborze języka programowania: na ile będzie użyteczny w realnym świecie? Teraz powinieneś wziąć pod uwagę, jak popularny jest dany język, ponieważ współpraca z innymi ludźmi jest nieunikniona, oraz jak odpowiedni jest do pracy, która cię interesuje. Dopóki nie goni cię czas, wskazane jest żeby dobrze wszystko rozpatrzyć i skupić się na dobrym nauczeniu się języka, i brać pod uwagę walory praktyczne danego języka w przyszłości.

Jako przykład języka związanego z konkretną dziedziną/zastosowaniem, język programowania MUMPS jest stosowany głównie w służbie zdrowia i bankowości. Jeśli chcesz pracować w tych działach, będzie to praktyczny język do nauczenia, mimo że ma on swoje dziwactwa.


Ucz się wszystkich!

Poniżej kilka wskazówek, jakich języków się uczyć. Oto one:

  1. Jeśli tylko chcesz zajmować się programowaniem w pracy, pomiń wszystkie oprócz języków najwyższego poziomu lub skryptowych, jak Python.
  2. Jeśli chcesz być w tym dobry, ucz się języków najwyższego poziomu, ale również staraj się mieć rozeznanie w C i assemblerach.
  3. Jeśli chcesz być mistrzem, odłóż powyższe dopóki nie połapiesz się w akademickich językach jak ML.

Ale jeśli masz inne priorytety, może bardziej zgodzisz się z:

  1. Jeśli chcesz być bezużyteczny jako programista, ucz się języków akademickich takich jak ML.
  2. Jeśli chcesz mieć mnóstwo nauki bez większych osiągnięć, próbuj języków jak C i assemblerów.
  3. Jeśli chcesz coś zrobić, używaj języków najwyższego poziomu (skryptowych) jak Python.


Jakiego języka powinienem używać?

Jeśli masz tylko młotek, to każdy problem widzisz jako gwóźdź. -- Abraham Maslow


Efektywność

Jedne języki programowania dają dużą szybkość i sprawność działania programu, inne natomiast łatwiejsze programowanie. Pisanie w kodzie maszynowym, najczęściej w asemblerze, może nawet w edytorze szesnastkowym, może dać w efekcie najszybszy i najbardziej spójny program, jak to tylko możliwe, jednak tylko jeśli chcesz poświęcić lata życia na napisanie programu, zakładając, że będzie w miarę kompletny i nie będziesz używał kodów z innych języków wyższego poziomu (co musisz zrobić, jeśli piszesz program używający biblioteki).

Assemblery mają bardzo precyzyjną składnię co oznacza, że pojedynczym poleceniem zrobi się najmniej jak to możliwe, odkąd każde polecenie odnosi się głównie do jednej lub dwóch instrukcji procesora, jakkolwiek jest odmiana Macro Assembly Language który łagodzi te ograniczenia.Języki wysokiego poziomu posiadają instrukcje, które odpowiadają tuzinom instrukcji, co znacznie przyspiesza pisanie, jednak musisz polegać na kompilatorze, jak przekształci te polecenia w najefeksywniejszą sekwencję instrukcji. Zazwyczaj wykonuje to w miarę dobrze, co jeszcze zależy od kompilatora, ale nigdy nie są perfekcyjne, więc program będzie mniej lub bardziej wolniejszy. Z reguły (choć nie zawsze), im łatwiej zaprogramować, tym wolniej będzie się program wykonywał.

Z tego wynika, że najefektywniejsze (biorąc pod uwagę jakość programu i czas poświęcony na programowanie) są języki średniego poziomu. Jakkolwiek programowanie w assemblerze może zaowocować szybszymi programami niż języki średniego poziomu, nowocześnie zoptymalizowane kompilatory dają najczęściej lepszy rezultat niż byłby w stanie osiągnąć przeciętnie zdolny programista.


Pójdź na łatwiznę (opinia)

Dopóki nie będziesz miał do czynienia z programami, które muszą działać szybko (na pewno nie w przypadku, kiedy czytasz wstęp do programowania), najlepiej wybrać język, w którym programowanie jest proste. Dla początkujących jest na pewno ważniejsze napisanie programu, który "w ogóle działa", niekoniecznie szybko. Programowanie w językach wysokiego poziomu pozwoli uniknąć wnikania w szczegóły składni i ukryje wiele możliwości wdarcia się błędów do programu.

Nawet jeśli okażesz się być najlepszym hackerem kodu maszynowego, zauważ, że oprogramowanie bywa długo w użyciu i musi być uaktualniane, obojętne czy przez ciebie, jakiegoś anonimowego pracownika oddziału twojej firmy, czy jednego z milionów twórców wolnego oprogramowania. Ktoś będzie musiał przeczytać i poprawić ten kod, więc możesz równie dobrze wybrać język, który mu to ułatwi.

Poza tym kwestia szybkości jest aktualnie bardziej skomplikowana, niż przedstawiliśmy to powyżej. Praca z językami wyższego poziomu może na tyle uprościć programowanie, że będziesz mógł skupić się na poprawianiu efektywności, gdy tymczasem misterne skonstruowanie kodu maszynowego może okazać się stratą czasu w przypadku gdy (hipotetyczne) komputery kolejnej generacji pojawią się za dwa tygodnie.


Łatanie dziur (kolejna opinia)

Daliśmy ci jasno do zrozumienia, że programowanie w językach wysokiego poziomu jest generalnie lepsze dla twojego zdrowia. Jeśli zaś rozejrzysz się trochę, to zauważysz, że w wielu przypadkach ludzie całkowicie ignorują tą dobrą radę. Na przykład - zarówno Linux jak i oprogramowanie GNU, jak GNOME, zostały napisane w staromodnym C. Dlaczego? Ponieważ w obu przypadkach niezwykle istotna jest szybkość działania oprogramowania - jądro systemu (Linux) nie może działać zbyt wolno, gdyż musi pracować równocześnie z wieloma programami, nieraz bardzo wymagającymi, zaś oprogramowanie baz danych przetwarza ogromne ilości danych, i powolne działanie mogłoby spowodować niedrożność systemu. Ponadto programy napisane w językach niższego poziomu mają z reguły mniejszy rozmiar, i zajmują mniej pamięci operacyjnej, co w wypadku jądra systemu operacyjnego jest o tyle istotne, że pozostaje więcej zasobów dla innych programów, dzięki czemu działają efektywniej.

 


Popularne języki programowania

Najczęściej używanymi językami programowania są prawdopodobnie C i C++. Oba są dosyć podobne, więc jeśli nauczysz się jednego, będzie ci dużo łatwiej nauczyć się drugiego, jednak C++ ma większą elastyczność składni i dużo łatwiej pisze się w nim duże programy. Kompilatory C i C++ są dostępne dla prawie wszystkich systemów operacyjnych. Na większości kompilatorów oba języki mogą być przemieszane, jeżeli zachodzi taka potrzeba.

Innym powszechnie używanym językiem jest Java. Największą zaletą jest to, że może być wykonywana na wielu systemach operacyjnych (na najpopularniejszych) bez najmniejszych zmian, ponieważ nie jest wykonywana bezpośrednio przez procesor, ale przez rodzaj oprogramowania, tzw. Wirtualną Maszynę Javy - coś jakby komputer w komputerze. Dodatkowa złożoność procedur wykonywanych przez wirtualną maszynę (gdyż Java jest językiem wysokiego poziomu) początkowo powodowała na tyle duże spowolnienie jej pracy, że wielu użytkowników rezygnowało z korzystania z tego narzędzia, ale kilka osiągnięć technicznych pozwoliło znacznie zwiększyć jej efektywność. Struktura i składnia Javy jest podobna do C++, więc jeśli znasz C++ możesz łatwo nauczyć się Javy; jakkolwiek jeżeli umiesz Javę, to nauka C++ będzie mimo to wymagać przyswojenia pewnej liczby nowych wiadomości i umiejętności.

Basic (również Visual Basic, QBasic) jest także często używany. Jest bardzo prosty w programowaniu, i tylko z powodu tej prostoty jest obecnie używany do wielu zadań np. w Windowsie.

Assembler i kod maszynowy nie jest obecnie tak użyteczny, jak kiedyś był, ale nauka tych języków programowania pomoże ci zrozumieć, jak działa komputer i jak lepiej projektować strukturę programu w języku wysokiego poziomu. Jakkolwiek znajomość assemblerów jest niezbędna, jeżeli będziesz programować podstawowe procedury (niskiego poziomu) dla różnego sprzętu. Ponadto, jeżeli chcesz rzeczywiście przyspieszyć kilka często używanych procedur w twoim programie, najlepiej jeśli użyjesz assmblera do napisania ich. Ponieważ assembler jest językiem niskiego poziomu, każda architektura procesora wymaga napisania kodu specjalnie dla tego rodzaju procesora; program napisany na PC będzie wymagał kompletnej przebudowy, żeby mógł być wykonany na procesorze typu ARM. Języki wyższego poziomu są o  tyle bardziej przenośne, o ile kompilator posiada implementację dla danej architektury procesora.

Jest jeszcze jedno rozróżnienie pomiędzy językami skryptowymi czy najwyższego poziomu a innymi językami. Języki skryptowe, jak PHP,PerlPythonRuby czy RACER zostały zaprojektowane jako szybkie i proste w pisaniu programu za pomocą krótkich instrukcji, często z elastyczną składnią i pozwalające na napisanie kompletnej aplikacji w kilkunastu zaledwie linijkach kodu. Doskonale nadają się do rozwiązywania bieżących zadań, mniej do pisania kompletnych, jednolitych programów, choć tutaj są i wyjątki (przykładowo aplikacje pisane w Pythonie, jak MayaVi, Zope oraz mechanizmów przygotowanych na potrzeby Internetu i pisanych w PHP, np. system Wiki, dzięki któremu czytasz te słowa).

 


Języki programowania


Typy języków programowania


Programowanie pod systemy operacyjne


Popularne biblioteki danych

 
  Dzisiaj stronę odwiedziło już 1 odwiedzający (19 wejścia) tutaj!  
 
Strona istnieje , ponieważ chce pomagać w nauce i przy tym samemu się dokształcać. Ta strona internetowa została utworzona bezpłatnie pod adresem Stronygratis.pl. Czy chcesz też mieć własną stronę internetową?
Darmowa rejestracja