Zdobycie umiejętności w programowaniu wcale nie jest taką łatwą i oczywistą sprawą. Na pewno nie pomagają w tym studia informatyczne, bo szkoły wyższe nie uczą programowania, a raczej prezentują różne możliwości pracy informatyka, ze szczególnym wskazaniem na dostępne kierunki rozwoju. Na studiach nauczymy się jak programować w C++ czy pisać strony internetowe w PHP, jednak nie oznacza to, że dobrze poznaliśmy którykolwiek z tych języków.
Jeśli decydujemy się na programowanie, powinniśmy najpierw zadać sobie kilka pytań i dla własnego dobra udzielić na nie szczerej odpowiedzi. Czy pisanie programów sprawia nam przyjemność? Czy mamy zdolności analityczne i czy matematyka nie jest dla nas czarną magią? Czy jesteśmy gotowi opanować coś do perfekcji, a następnie ciągle dokształcać się w wybranej dziedzinie? Czy umiemy pracować w zespole? Jeśli na wszystkie te pytania odpowiedzieliśmy „tak”, to praca programisty jest być może stworzona właśnie dla nas.
Ważne są początki. Wprawdzie jest to sztuka (tak, programowanie jest często postrzegane właśnie w kategoriach sztuki), której tajniki możemy zgłębiać w dowolnym wieku, jednak panuje tu zasada, że im wcześniej, tym lepiej. Młody umysł jest chłonny, więc szybciej przyjmie tę skomplikowaną i złożoną wiedzę.
Równie ważny jest wybór danego stylu lub języka programowania – warto skoncentrować się na jednym lub dwóch językach i poznać je naprawdę dogłębnie, zamiast rozdrabniać się na dość powierzchowną znajomość pięciu technik. Tutaj dygresja – najprawdopodobniej najlepiej będzie, gdy od razu postawimy na naukę programowania obiektowego, bez względu na to, czy nam się to podoba, czy nie. Metody te są obecnie na tyle modne, że programowanie obiektowe stosuje się niemal wszędzie, nawet tam, gdzie nie jest w zasadzie potrzebne. Tak więc wcześniej czy później tego tematu i tak nie unikniemy – chyba że zdecydowaliśmy się zająć bardzo wąską specjalnością, taką jak na przykład pisanie sterowników czy programowanie w assemblerze. Tak więc teorię programowania obiektowego musimy opanować na bardzo wysokim poziomie. Dobry programista zna i rozumie takie pojęcia jak enkapsulacja, dziedziczenie czy polimorfizm – a także wie, kiedy te metody zastosować.
Oczywiście sama wiedza czysto teoretyczna nie wystarcza, najlepiej jest więc uczyć się „obiektowości” na przykładzie konkretnego, popularnego języka programowania, takiego jak Java czy C++. Jeśli chodzi z kolei o sam nasz wybrany „główny język”, to trzeba go stopniowo opanować na poziomie mistrzowskim, oczywiście przez cały czas dążąc do perfekcji i na własną rękę dokształcając się w jego specyfikacji. Trzeba zdawać sobie sprawę, że współczesne żywe języki programowania nie są statyczne i także podlegają rozwojowi.
Oto lista najpopularniejszych obecnie języków programowania wraz z krótkim zestawieniem ich charakterystyki i zastosowań:
język |
typ |
zastosowanie |
Platforma systemowa |
uwagi |
C |
strukturalny |
programowanie systemów operacyjnych, zadania niskiego poziomu, symulacje numeryczne, sterowniki |
wieloplatformowy |
dominujący język programowania systemów i aplikacji w latach 80-tych, na jego bazie powstał m.in. C++. |
Java |
obiektowy |
aplikacje użytkowe, gry, aplikacje na urządzenia mobilne |
Windows x86/x64/IA64, Linux x86/x64/IA64,Solaris
|
tworzy programy kompilowane do kodu bajtowego, cechuje się silnym typowaniem. Jego składnia jest w dużej mierze przejęta z C++ |
C++ |
obiektowy |
systemy operacyjne, aplikacje użytkowe, gry, aplikacje na urządzenia mobilne, symulacje numeryczne i inne |
wieloplatformowy |
umożliwia abstrakcję danych oraz stosowanie wielu paradygmatów programowania: proceduralnego, obiektowego i generycznego. Wysoka wydajność kodu wynikowego |
Objective-C |
obiektowy |
framework Cocoa w systemie Mac OS X i w iOS, i inne |
wieloplatformowy |
rozszerzenie języka C o możliwości obiektowe |
C# |
obiektowy |
zaprojektowany dla firmy Microsoft. |
wieloplatformowy |
ma cechy wspólne z językami Object Pascal, Delphi, C++ i Java |
PHP |
obiektowy |
zaprojektowany do generowania stron internetowych w czasie rzeczywistym |
wieloplatformowy |
stosowany do tworzenia skryptów po stronie serwera, używany do przetwarzania danych z poziomu wiersza poleceń i programów pracujących w trybie graficznym |
VisualBasic |
częściowo obiektowy |
język programowania wysokiego poziomu firmy Microsoft, używany jako język skryptowy |
Microsoft Windows |
nie udostępnia np. możliwości dziedziczenia i polimorfizmu |
Python |
obiektowy |
|
wieloplatformowy |
wspiera różne paradygmaty programowania, wyraźna składnia |
|
skryptowy |
stosowany na stronach internetowych, możliwość pisania pełnych aplikacji |
wieloplatformowy |
umożliwia tworzenie aplikacji o graficznym interfejsie użytkownika, dopasowującym się do danej platformy |
Perl |
obiektowy, interpretowany |
stosowany do pracy z danymi tekstowymi, obecnie także używany do wielu innych zastosowań, umożliwia powiązanie systemów i struktur danych, których współpraca nie jest przewidziana w momencie projektowania. |
wieloplatformowy |
umożliwia programowanie w różnych modelach: proceduralnym, funkcyjnym i obiektowym |
Assembler |
niskiego poziomu, maszynowy |
programowanie mikrokontrolerów, systemów wbudowanych, systemów operacyjnych, sterowników sprzętu. |
wieloplatformowy |
pierwotnie podstawowy język programowania procesorów |
To absolutne podstawy. Są jednak i inne wymagania stawiane programistom, szczególnie tym, którzy pragną zatrudnić się w poważnej firmie. Zalicza się tu:
znajomość algorytmiki na poziomie średnim lub zaawansowanym,
znajomość obsługi baz danych,
znajomość dodatkowych języków programowania,
sieci i Internet - jeśli programujemy w technologiach związanych z tworzeniem stron i obsługą protokołu HTTP, konieczna będzie też zapewne dobra znajomość związanych z tym zagadnień,
Unix/Linux. Idealny programista to taki, który potrafi odnaleźć się pod każdym systemem operacyjnym, także pod Linuksem,
języki obce – nie sposób być programistą bez podstawowej znajomości języka angielskiego, wymaga tego nie tylko konieczność komunikacji z zespołem, ale także samodzielne czytanie ze zrozumieniem fachowej literatury czy dokumentacji programów.
Bycie programistą to jednak coś więcej niż nauczenie się kilku technik. To kwestia znajomości środowiska i obycia. Dlatego najlepiej jest po prostu działać. O ile naukę programowania warto zacząć od samodzielnego przerabiania programów z książek, im dalej już, tym bardziej warto pisać prawdziwe programy – także na zamówienie. Możemy zacząć od najprostszych zleceń i w ten sposób stopniowo nabierać doświadczenia, które, nawiasem mówiąc, w tej branży liczy się dużo bardziej niż certyfikaty czy dyplomy. Początkowo pieniądze z tego nie są duże, ale doświadczenie oraz kolejne wpisy w CV okażą się z czasem bezcenne. Warto także brać udział w konkursach programowania oraz udzielać się na stosownych forach dyskusyjnych. Takie wejście w środowisko programistów znacznie też ułatwi nam znalezienie pierwszej pracy w zawodzie.
© APLIT Wszelkie prawa zastrzeżone.