• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Co powinien wiedzieć programista?

Object Storage Arubacloud
+1 głos
720 wizyt
pytanie zadane 25 marca 2021 w C i C++ przez Whiskey_Taster Pasjonat (15,610 p.)
*Umieszczam to na dziale C/C++, aczkolwiek problem jest tak naprawdę ogólny*

Tak jak w tytule tematu: co powinien wiedzieć programista? Ogólnie rzecz biorąc na ten moment uczę się C++, przy czym wszystko to dotyczy tak naprawdę samego języka, a zdaję sobie sprawę, że programowanie nie ogranicza się tylko do tego aspektu. Poza samym językiem są inne, równie ważne rzeczy, które programista powinien opanować, tylko szczerze powiedziawszy ucząc się na własną rękę nie bardzo mam pojęcie, co takiego należałoby potrafić oprócz samego języka. Oczywiście szukałem co nieco w Internecie, jednakże tutaj mogę wprost odpowiadać komentarzami na odpowiedzi, co będzie bardziej praktyczne :)

Chętnie przyjmę każdą poradę, a także źródło (książka, link, a nawet sama nazwa zagadnienia wystarczy) :)

5 odpowiedzi

+3 głosów
odpowiedź 25 marca 2021 przez niezalogowany
edycja 25 marca 2021

Witam!

Dobry programista nie ogranicza się do jednego języka, najczęściej zna ich kilka. Programista musi umieć wykazać się logicznym myśleniem, rozwiązywać różne problemy, też w programowaniu nie obejdzie się bez języka angielskiego. Uważam także, że programista powinien w jakimś podstawowym stopniu rozumieć jak działają sieci komputerowe, jakie są podstawowe protokoły warstw modelu OSI i TCP/IP, a także znać się na głównych technologiach webowych (HTML, CSS, JavaScript). I w dzisiejszych czasach bardzo ważne też jest cyberbezpieczeństwo.

To wszystko co uważam na początek ważne.

Pozdrawiam i życzę powodzenia w nauce!

Dodatkowe linki:

Kurs sieci komputerowych

Kurs HTML, CSS i JavaScript

haker.edu.pl

5
komentarz 25 marca 2021 przez Wiciorny Ekspert (270,190 p.)
zgodzę się z tym, że zależy jaki programista, bo jeśli ktoś programuje w C/C++ od strony telekomunikacji to nigdy nie bedzie miał stycznosci z "html,css,javascriptem") i znajomośc tego jest mu całkiem niepotrzebna, dodatkowo ... to są tylko narzędzia i też nie jestem zdania, że programista powinien znać, wiele narzędzi na raz - powinien UMIEĆ SIĘ DOSTOSOWAĆ DO ZMIANY JĘZYKA/NARZĘDZI kiedy tego projekt wymaga, ale nie umieć "wiele" powinien być wyspecjalizowany w czym w jednym , ale być flexible? - nie umiem po polsku - elastycznym ! :D w kwestii zmiany
komentarz 25 marca 2021 przez Whiskey_Taster Pasjonat (15,610 p.)
Generalnie rzecz biorąc, to jeszcze nie mam pojęcia czym dokładniej będę się zajmował (a raczej w co będę celował, może to lepsze określenie), nawet tak naprawdę nie mam pojęcia jak zawód programisty wygląda "od kuchni" i w tym celu będę się starał o jakieś praktyki na wakacje, żeby właśnie zobaczyć.

Za bardzo się nie znam, ale również uważam, że elastyczność powinna być bardzo ceniona i do tego właśnie będę zmierzał, żeby przypadkiem nie utknąć w jednym martwym punkcie. Dzięki temu wydaje mi się, że jest o wiele więcej możliwości :D

Chodzi mi głównie o takie, powiedzmy unikatowe, aspekty tej pracy. Na przykład słyszałem o czymś takim jak 'wzorce projektowe' - czy nie jest to coś, co każdy programista powinien (choćby z grubsza) znać? Czy nawet tworząc własną aplikację nie powinienem liznąć tego tematu i użyć (oczywiście nie na siłę) jakiegoś wzorca, który pomógłby rozwiązać mi jakiś napotkany problem?

A jak się ma rzecz z algorytmami i ich znajomością? Wydaje mi się, że to też dosyć ważna rzecz. A ze strony matematycznej - na przykład obliczanie złożoności algorytmu/programu(?). Czy to też nie powinna być wiedza, którą należy mieć?
1
komentarz 25 marca 2021 przez niezalogowany
Algorytmy, to jedna z najważniejszych rzeczy, nie wspomniałem o nich, ponieważ programując tworzymy różne algorytmy, zastosowujemy je do programów itd. A matematyka to samo sobą, w pewnej mierze logika jest od niej zależna. No i języki programowania bazują na liczbach, czyli bez matematyki nie istniało by programowanie.

Pozdrawiam!
1
komentarz 25 marca 2021 przez Wiciorny Ekspert (270,190 p.)
Pytanie @niezalogowany, jak długo jesteś programistą, bo tak czytając śmiem twierdzić, że za dużo chyba "czytasz" tego co w internecie, a zamło wiesz z doświadczenia w pracy.
1
komentarz 25 marca 2021 przez Wiciorny Ekspert (270,190 p.)
no bo problem w tym, że jeśli nie masz doświadczenia w pracy programisty, to nie wiesz tak naprawdę, a opierasz się o to " co w internecie piszczy", a prawda jest nie co inna i zbiegiem czasu w pracy zrozumiesz, że to co wydawało CI sie, że powinien wiedzieć/potrafić programista całkiem się różni od tego co jest w rzeczywistości.
Bo fakt faktem, to co mówi się w internecie nie jest do końca prawdą, każdy "coś dopowie" i wychodzi, że programista to multi-tasker który wszystkie języki zna, a niestety nie i nie powinen tym bardziej wiedzieć wszystkiego.

Im więcej wiesz, tym mniej wiesz :D ale tak naprawdę jeśli w wielu rzeczach jesteś "dobry" to w żadnej nie jesteś ekspertem
1
komentarz 25 marca 2021 przez Oscar Nałogowiec (29,320 p.)
Chciałby dopisać jeszcze, że programista powinien orientować się też w zagadnieniu, którego będą dotyczyły pisane przez niego programy. Nie wszystkie "kręcą się tylko wokół komputera". Pisząc jakieś programy księgowe trzeba jednak przynajmniej znać pojęcia z księgowości itp. A że to nie jest "to co tygrysy lubią najbardziej", może być trudno. Spotkałem się z stwierdzeniem że lepszy program księgowy napisze zawodowy księgowy, który trochę nauczył się programowania, niź biegły programista, który trochę zna księgowość.
+1 głos
odpowiedź 25 marca 2021 przez Paweł Nąckiewicz Nałogowiec (48,990 p.)

Zależy od dziedziny.

 

Na pewno musisz umieć w angielski. A tak pyzatym to musisz ogarniać podstawy zagadnień/technologii które będą wykorzystywane w twojej dziedzinie. Chcesz być programistą frontendowym (piszącym strony internetowe) - wpisz frazę Frontend 2021 roadmap. Chcesz być C++ developerem wpisz to samo (C++ 2021 roadmap) i będziesz wiedział z czego musisz się doszkolić.

komentarz 25 marca 2021 przez Whiskey_Taster Pasjonat (15,610 p.)
O, to bardzo fajna myśl :D Poszperam sobie i zobaczę, czy trafię na coś, co wyda mi się rzetelne

Co do angielskiego, to fakt, przy czym tutaj nie mam większych problemów z czytaniem dokumentacji, ponieważ już mi się zdarzyło :)
0 głosów
odpowiedź 25 marca 2021 przez CubeStorm Pasjonat (15,020 p.)
To ja dodam coś od siebie: Git.
komentarz 25 marca 2021 przez Whiskey_Taster Pasjonat (15,610 p.)
Faktycznie, przeglądając różne oferty Git się przewija praktycznie co chwilę, więc na pewno się przyda
1
komentarz 25 marca 2021 przez Oscar Nałogowiec (29,320 p.)
Jest wiele różnych systemów kontroli wersji. Może git jest najpopularniejszy, ale nie jest jedynym używanym. Najważniejsze to wiedzieć jaka jest idea używania tych narzędzi, jak nie narobić bałaganu (a to jest możliwe - kilka razy spotkałem się z przypadkiem, gdy ktoś nienawykły do takich systemów, trzymający u siebie w kompie wiele kopii programu w różnych wersjach, wziął skopiował jakąś starą wersję, która mu lepiej działała, do katalogu roboczego i tym samym cofnął poprawki wniesione w międzyczasie przez innych).
komentarz 25 marca 2021 przez Whiskey_Taster Pasjonat (15,610 p.)
O, to jest właśnie uwaga, która jest ważna :)
1
komentarz 25 marca 2021 przez Oscar Nałogowiec (29,320 p.)
Można by to uogólnić, wnioskiem, że w pracy programisty ważna jest umiejętność pracy w grupie. System kontroli wersji to jedno z narzędzi pracy grupowej. Oczywiście można go stosować indywidualnie, ale wtedy jest mniej przydatny.
0 głosów
odpowiedź 25 marca 2021 przez pvalue Dyskutant (8,720 p.)
Znalezione gdzieś w necie C++

W  czasie zajęć nauczycie się:
Podstaw architektury komputera z perspektywy programisty
Jak dokładnie działa tworzenie kodu wykonywalnego
Programowania proceduralnego w tym, jak działa:
zarządzanie pamięcią,
organizacja pamięci programu,
stałe/zmienne lokalne/globalne, automatyczne, statyczne (globalne i lokalne) i dynamiczne
tablice
wskaźniki (w tym do funkcji) i referencje
Programowania obiektowego w tym, co to są:
klasy (konkretne, abstrakcyjne i czysto abstrakcyjne/interfejsy), obiekty, metody, kontrola dostępu (w tym funkcje/klasy zaprzyjaźnione)
konstruktory, destruktory (w tym wzorzec RAII)
dziedziczenie vs. kompozycja
polimorfizm i funkcje wirtualne
definiowanie (przeciążanie) operatorów
przestrzenie nazw, moduły
wyjątki
szablony funkcji i klas
elementy biblioteki standardowej (kolekcje i algorytmy)
elementy standardów C++11,14
Wybranych zagadnień z algorytmów i struktur danych w tym, co to są:
tablice, tablice z haszowaniem, zbiory, stosy, kolejki, listy; drzewa (poszukiwań binarnych), grafy, …
wybrane algorytmy: wyszukiwanie, sortowanie, najkrótsze ścieżki w grafie, programowanie dynamiczne (vs. algorytmy zachłanne)
rekursja (w tym strukturalna)
złożoność obliczeniowa (czasowa, pamięciowa)
Dodatkowo podstaw programowania współbieżnego i systemów czasu rzeczywistego
W piątkowe wieczory będzie można dodatkowo dowiedzieć się o:
Zwinnych metodykach tworzenia oprogramowania w zespołach - SCRUM, Kanban
O pracy z kodem źródłowym w systemach kontroli wersji, tzw. Configuration Management
Tworzeniu Unit Testów
Środowisku ciągłej integracji
Automatycznych systemów budowania i weryfikacji oprogramowania
komentarz 25 marca 2021 przez Whiskey_Taster Pasjonat (15,610 p.)
Wygląda jak sylabus z jakiegoś przedmiotu :D Znaczną część z tych rzeczy znam z książki lub też spotkałem się z tymi zagadnieniami, przy czym odnoszą się one głównie do języka programowania, a nie do ogólnych umiejętności
komentarz 25 marca 2021 przez Oscar Nałogowiec (29,320 p.)
Akurat za moich czasów połowa tych punktów to były oddzielne przedmioty. Kurs C to kurs C, a algotytmy + struktury danych, obsługa urządzeń, wielobieżność itp to są "ogólnoprogramistyczne" tematy, w zasadzie wspólne dla całego szeregu języków. Sam język jest tutaj wtórny, po prostu w jednym języku lepiej jest rozwinięte jedno zagadnienie, w innym inne.
0 głosów
odpowiedź 25 marca 2021 przez Szabranigdo Obywatel (1,370 p.)
Jako ktoś kto całkiem niedawno zaczął się uczyć kodowania mogę ci tylko polecić (kto wie może się mylę niech się bardziej doświadczeni wypowiedzą) zmianę języka na c#. jeśli chodzi o język z tej samej rodziny Zaczynałem się uczyć  od c++ i uważam ten język za zaniedbany ze strony twórców.. Przykład? Niby komendy wpisujemy małą literą i tak sobie beztrosko piszemy a tu nagle zonk. Wpisujemy sleep() (o ile pamiętam tej funkcji to dotyczyło) i kompilator wywala błąd a ty się zastanawiasz o co chodzi. Są też inne niespodzianki tego typu. . Jeśli chodzi o c# to współpracuje on np z uwp czy wpf co daje ciekawe możliwości i wg mnie jest o niebo bardziej przejrzysty. I faktem jest znajomość innych języków jest konieczna.  Np xaml (interfejs graficzny...) który jest niejako nakładką dla c# i współpracują one ze sobą bezpośrednio.
komentarz 25 marca 2021 przez j23 Mędrzec (194,920 p.)

Z tym sleepem to na poważnie?

Po pierwsze to nie jest komenda, tylko wywołanie funkcji. Po drugie Sleep to funkcja Windowsa, a sleep Uniksa. Obie nie są częścią standardu C++. Więc o jakim zaniedbaniu mowa?

komentarz 25 marca 2021 przez Szabranigdo Obywatel (1,370 p.)
Tak całkowicie poważnie. W nawiasie dopisałem że chodzi o funkcje. W c++ standardem miał być brak konieczności używania dużych liter w takich przypadkach i to uważam za zaniedbanie.
komentarz 26 marca 2021 przez j23 Mędrzec (194,920 p.)
Skąd to wziąłeś?

Nazwy funkcji wynikają z konwencji nazewnictwa, jaką sobie przyjął twórca biblioteki, i tyle. Nie wiem, co tu ma standard do tego.

Podobne pytania

0 głosów
1 odpowiedź 381 wizyt
pytanie zadane 14 kwietnia 2016 w Offtop przez Shuhari Bywalec (2,060 p.)
0 głosów
1 odpowiedź 544 wizyt
pytanie zadane 28 października 2015 w HTML i CSS przez Kamil.eF Początkujący (410 p.)
+1 głos
2 odpowiedzi 120 wizyt
pytanie zadane 10 października 2023 w Inne języki przez Szczurzyca Nowicjusz (170 p.)

92,579 zapytań

141,432 odpowiedzi

319,664 komentarzy

61,964 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...