Programista a twórca oprogramowania — czy i czym się różnią?
Celem tego artykułu jest przybliżenie Wam czym zajmują się na co dzień informatycy. Jakie są ich główne zadania oraz występujące różnice i podobieństwa między nimi. Generalnie w wielu przypadkach nie ma większej różnicy pomiędzy poszczególnymi rolami, a pojawiają się dopiero w obrębie zdobytej wiedzy albo danego zlecenia do wykonania. I tu nasuwa się nam od razu pytanie, jaka jest różnica między programistą a twórcą oprogramowania? W obecnych czasach te dwa terminy działają wymiennie, ale można jeszcze dodać koder. Każde z tych określeń można odmieniać przez przypadki i zadania, a wszystkie one sprowadzają się do kogoś, kto ma określoną wiedzę i umiejętności do używania języków programowania i tworzenia poleceń zrozumiałych dla komputera, za pomocą których tworzone są oprogramowania. W życiu codziennym oznaczają praktycznie to samo jednak niektórzy uważają, że tworzenie oprogramowania to szersze zadania projektowe i podejmowane decyzje na wyższym poziomie, podczas gdy programowanie zwykle odnosi do pisania wierszy kodu w oparciu o specyfikację projektu. A czy są zatem istotne różnice między inżynierem oprogramowania a programistą? To nie tylko sam tytuł tzn. wykształcenie wyższe co najmniej na poziomie licencjata w dziedzinie informatyki. Ich zadanie oraz rolę określa firma, ale zasadniczo w każdym przypadku musi być to stanowisko programisty z wyższym wykształceniem. Na wszelkich uczelniach podstawy informatyki są wykładane z większym naciskiem niż programowanie praktyczne. Każdy inżynier oprogramowania musi dobrze znać nie tylko teoretyczną część tworzenia oprogramowania, ale również część praktyczną. Jeśli firma nie potrzebuje inżynierów oprogramowania, ale programistów bądź twórców oprogramowania to dyplom wyższej uczelni nie będzie decydującym kryterium, a mile będzie widziane doświadczenie nabyte podczas kursów oraz praktyki. Zapewne umiejętność szybkiego uczenia się oraz zdobywanie nowych umiejętności są poszukiwane.
Aby powstała idealna strona internetowa muszą być zaangażowani różni eksperci. Projektanci tworzą projekt wizualny oraz atmosferę witryny, natomiast projektanci stron odpowiadają za jej wygląd, korzystając z różnych programów graficznych. Muszą znać się na teorii kolorów, typografii oraz innych przydatnych umiejętnościach graficznych, chociażby takich jak grafika wektorowa czy podstawy typografii. Znajomość czy chociażby podstawy struktury stron internetowych jest bardzo istotna. Projektant powinien znać podstawy HTML czy CSS, aby strona wyglądała idealnie, a nie jak twór z innej planety. Projektanci stron to generalnie nie programiści, a jedynie są odpowiedzialni za wizualizację strony. Web developerzy to ci pracownicy, którzy tworzą i utrzymują witrynę przy użyciu języków programowania takich jak; HTML, CSS, JavaScript czy innych, a jest to uzależnione od zadania. W przeciwieństwie do projektantów to twórcy stron internetowych są już programistami, którzy piszą kody do utrzymania strony. Osoba pracująca nad interfejsem użytkownik (UI)musi przede wszystkim brać pod uwagę potrzeby użytkowników oraz wygląd marki. Uwzględnia w pierwszej kolejności wizualne aspekty interfejsu takie jak barwy, ilustracje, przyciski posługując się głównie programami graficznymi. Inaczej jest, jeśli chodzi o projektantów UX którzy musza dokładnie ocenić potrzeby użytkowników np. poprzez wywiady prosząc później o opinie.
Mając pełen obraz wszystkich zebranych danych tworzą strukturę elementy nawigacji, menu i pozostałe części witryny. Wykorzystują do tego oprogramowanie, które stworzono do projektowania i optymalizacji doświadczeń użytkownika. Front-end to inaczej strona klienta, cześć witryny, którą widzimy; przyciski, teksty, obrazki oraz interakcje. Osoby, które odpowiadają ze utworzenie strony internetowej lub aplikacji mobilnej oraz wszystkiego co użytkownicy widzą i z czego korzystają nazywają się programistami front-endu. Najczęściej pracują w HTML, CSS oraz JavaScript, ale korzystają też z frameworków JavaScript. Back-end to ta strona serwera, ta cześć, której nie widzimy, czyli zapisywanie i przesyłanie dany z wszystkich baz danych, wykonywane obliczenia, odpowiadanie na zapytania klientów, udostępnianie punktów końcowych API, czyli w największym skrócie wszelkie programy aktywne na serwerze. Programiści od back-endu najczęściej pracują używając języków od strony serwera, czyli Python, Node.je, PHP oraz Java. Administratorzy systemu nazywani SysAdmins to osoby odpowiedzialne za konserwację oraz działanie serwerów. Ich główne zadanie to instalowanie i utrzymywanie systemów oprogramowania, zarządzanie okresami przestoju oraz innymi problemami. Zwykle wymaga to znajomości programowania, bo muszą pisać programy które automatyzują zadania regularnie powtarzanych. Inżynierowie DevOps działają na zasadzie granicy pomiędzy zadaniami sprzętowymi administratora, a zadaniami związanymi z oprogramowaniem, które są wykonywane przez programistów. Są to koderzy, którzy biorą udział w zadaniach związanych z instalacją, testowaniem oraz uruchamianiem infrastruktur albo mogą być również administratorami systemu, ponieważ mają umiejętności programistyczne i rozumieją i aktualizują niezbędne kody. Ważnym zadanie tych specjalistów jest zabezpieczenie oraz ochrona przed hakerami. Istotną częścią ich pracy to pozostawanie w kontakcie z całym zespołem deweloperskim, użytkownikami i administratorami systemu, dlatego powinni się wykazywać umiejętnościami komunikacyjnymi i pracy w zespole. W całym tym zacnym gronie należy też umieścić architekta oprogramowania, gdyż jego rola wymaga dużego doświadczenia, ogromnej wiedzy i umiejętności a to wiąże się z dużą odpowiedzialnością.
To właśnie oni podejmują decyzję w kwestiach dotyczących programowania oraz realizacji na wysokim poziomie, znają szeroką listę narzędzi związanych z technologiami oraz możliwościami tworzenia i projektowania oprogramowania. Są to też osoby, które nadużywają swojej wiedzy i umiejętności informatycznych, aby dokonać włamania bez upoważnienia do systemów komputerowych i potocznie nazywani są hakerami. W kontrze do nich stoją etyczni hakerzy, którzy mają oficjalne zezwolenie do oceny bezpieczeństwa systemu informatycznego. Swoją wiedze i doświadczenie wykorzystują do testowania systemów i wykrywania wszelkich problemów z zabezpieczeniami szczegółowo to dokumentując i powiadamiając osoby decyzyjne o lukach w zabezpieczeniach. Zanim dany produkt trafi na rynek czy bezpośrednio do klienta przeprowadzana jest długa ścieżka testowa, aby zweryfikować, czy wszystko jest w porządku. W tym przypadku istnieją dwa rodzaje testowania- automatyczne oraz ręczne. Testerzy manualni przyjmują rolę użytkowników i prowadzą testy danych funkcji oprogramowania, dokumentując ewentualne usterki. Symulują indywidualne sytuacje na jakie mogą natknąć się użytkownicy podczas korzystania z danego produktu. Ręczni testerzy starają się dokładnie przeanalizować konkretne zdarzenia, a następnie udokumentować cały proces i przekazać opinię programistom. Natomiast w przypadku testów automatycznych tester tworzy specjalistyczne narzędzia testowe zamiast przeglądać wykaz problemów. Reasumując, Ci którzy automatyzują testy to programiści, a procesy testowe są opracowywane przez zespoły eksperckie. Pozostała ostatnia grupa do przedstawienia a są nimi analitycy. Są to osoby, które omawiają dane, a także pomagają zespołowi w interpretacji i wizualizacji. Podstawowe narzędzia z jakich korzystają to Excel, SQL, R oraz Tableau i Data Studio. Zwykle mają bardzo zaawansowaną wiedzę z matematyki, statystyki i programowania. Ich główne narzędzia do pracy to SASS, Python, R, Hadoop i Spark. Trzeba w tym miejscu zaznaczyć, że jest to zawód, gdzie pracownicy są bardzo poszukiwani, złożoność wymaganej wiedzy jest wysoka a wynagrodzenie adekwatne do wymogów.
Mam nadzieję, że poprzez ten artykuł mogliście zapoznać się różnicami jakie są pomiędzy danymi stanowiskami oraz co jakie zadania wykonują każdego dnia.
Other entries
Słowniczek pojęć internetowych cz.2
Dziś dalsza część słowniczka pojęć związanych z pojęciami internetowymi, które są używane codziennie, a mogą być nie do końca nam znane. Digitalizacja — to cyfrowa postać, która jest nadawana pismom i dokumentom zawartych na nośnikach danych. E- administracja...
Słowniczek pojęć internetowych cz.1
W XXI w. prawie każdy i to bez względu na to, ile ma lat, codziennie siada do komputera, laptopa czy innego urządzenia, gdzie w szerokim zakresie może korzystać z Internetu. Ktoś skończył szkołę czy uczelnie o profilu informatycznym, ktoś inny zdobył wiedzę na kursach...
Na jakich stanowiskach pracują programiści?
Intensywny wzrost nowych technologii sprawia, że również stanowiska pracy w branży IT ewoluują w ogromnym tempie. Autorzy oprogramowania wpływają już praktycznie na każdy aspekt naszego życia. Firmy o różnym profilu, coraz częściej sięgają po nowoczesne rozwiązania...