Skocz do zawartości

Aktualności

Artykuły

Może Cię zainteresować

C++ czy C# i od czego zacząć? (kursy, itp.)

Rozpoczęty przez PACIK19, mar 12 2016 22:29

  • Temat jest zamknięty
41 odpowiedzi w tym temacie

#1

PACIK19
  • PACIK19
  • Początkujący uczestnik
  • Użytkownik
  • 3 postów

Witam,

naszła mnie ogromna chęć zdobycia wiedzy i poszerzenia swoich horyzontów o właśnie dziedzinę "programowania".
Zacząłem się już zabierać do programowania, ale mam jeden zasadniczy problem. Nie zwróciłem uwagi, że kurs z którego się uczyłem został utworzony w 2006roku.
Dotyczył on oczywiście C++, z tego też powodu, mam do was pytanie...

1.Czy przez ten czas bardzo się zmienił sposób programowania?

2.Polecicie jakieś kursy dla zielonych(nowe), najlepiej w PDF-ie lub na stronie? (wideoporadniki mile widziane)
3.Może dopóki mam czas jednak zacząć się uczyć C#?
4.Jakie są różnice między C++, a C#, co jest lepsze na start i bardziej przyszłościowe?
Mam nadzieję, że moje pytania są dosyć jasne.
Pozdrawiam.
 


  • 0
  • Do góry
  • Napisano 12 marzec 2016 - 22:29

#2

M1siek
  • M1siek
  • Uczestnik
  • Stały użytkownik
  • 3514 postów
  • Płeć:Mężczyzna
  • Skąd:Wrocław

Na studiach uczyłem się C++ i jak dla mnie to chyba najlepszy język żeby poznać jak to programowanie działa (dziś przydaje mi się wiedza z programowania do pisania prostych skryptów perl/bash) ale na co dzień nie zajmuję się programowaniem.

 

Książka jaka mi dużo pomogła to Symfonia C++ od Grębosza


  • 1

i7 6700k@4,6GHz :: Asus Maximus VIII Hero :: GTX 1080@2,1GHz ::  DDR4 3GHz@3,46 16GB :: Dell U3415W :: Samsung 850 EVO 500GB, WD Green 1TB :: LC & config

"Dobrego Inżyniera ogranicza tylko jego własna wyobraźnia"

 

  • Do góry
  • Napisano 12 marzec 2016 - 22:47

#3

Bonusso3
  • Bonusso3
  • Uczestnik
  • Stały użytkownik
  • 1033 postów
  • Płeć:Mężczyzna
  • Skąd:Nysa | Wrocław

1.Czy przez ten czas bardzo się zmienił sposób programowania?

Bardzo nie, ale trochę tak. W sensie na początku i tak nie wykorzystasz/zauważysz tych różnic.

 

2.Polecicie jakieś kursy dla zielonych(nowe), najlepiej w PDF-ie lub na stronie? (wideoporadniki mile widziane)

J/w. Symfonia. Masz zajebisty poradnik od Zelenta po polsku.
 

3.Może dopóki mam czas jednak zacząć się uczyć C#?

Zacząć od C#? Ogólnie możesz zacząć od czegokolwiek bo w programowaniu język jest na drugim miejscu, na pierwszym jest technika, jakieś koncepcje, struktury itp, a te w każdym języku są identyczne. C# jest podobny do C++ ale jest w pełni obiektowy. Jak nigdy wcześniej nie programowałeś to lepiej zacząć od C++ strukturalnie, i stopniowo przejść do obiektowego.

 

4.Jakie są różnice między C++, a C#, co jest lepsze na start i bardziej przyszłościowe?

Nie można powiedzieć że coś jest bardziej lub mniej przyszłościowe. C++ i C# to dwa różne języki i moim zdaniem oba jeszcze przez dłuuuuugi czas nie "spadną" z podium zainteresowania. Ale tak jak wyżej. Na początek C++ strukturalnie, później obiektowo, a na końcu jak już ogarniesz wystarczająco to C#/Java.

 

Po prostu poznaj podstawy, rozkmiń jak to działa samemu, napisz to sam, a później jak przejdziesz do C# zobaczysz że on już większość ma "wbudowane" i koduje się szybciej większe aplikacje.


  • 1

Pozdrawiam,Kamil


 

Autor ma prawo do przedstawienia swojej opinii na dany temat. Zastrzega sobie również możliwość zmiany poglądów bez podania przyczyny

Spoiler
  • Do góry
  • Napisano 13 marzec 2016 - 13:37

#4

PACIK19
  • PACIK19
  • Początkujący uczestnik
  • Użytkownik
  • 3 postów

Masz zajebisty poradnik od Zelenta po polsku.

Jest szansa, aby znaleźć coś takiego, ale pod Visual od Microsoftu? Moim zdaniem ma więcej zalet :)
Pozdrawiam


  • 0
  • Do góry
  • Napisano 13 marzec 2016 - 23:47

#5

Bonusso3
  • Bonusso3
  • Uczestnik
  • Stały użytkownik
  • 1033 postów
  • Płeć:Mężczyzna
  • Skąd:Nysa | Wrocław

Visual Studio? A co za różnica? To tylko IDE, na każdym IDE taki prosty kod będzie działał tak samo. Nie wiem czy dla początkującego lepszy jest Visual Studio niż taki CodeBlocks, ale fakt, jest lepszy (nawet najlepszy moim zdaniem).


  • 0

Pozdrawiam,Kamil


 

Autor ma prawo do przedstawienia swojej opinii na dany temat. Zastrzega sobie również możliwość zmiany poglądów bez podania przyczyny

Spoiler
  • Do góry
  • Napisano 13 marzec 2016 - 23:55

#6

Tester24
  • Tester24
  • Początkujący uczestnik
  • Użytkownik
  • 1 postów
  • Płeć:Mężczyzna

Visual Studio pod C++ średnio się nadaje, implementacja posiada trochę błędów, które irytują na wyższym poziomie zaawansowania.


  • 0
  • Do góry
  • Napisano 22 marzec 2016 - 11:14

#7

Hejger
  • Hejger
  • Uczestnik
  • Stały użytkownik
  • 353 postów
  • Płeć:Mężczyzna
  • Skąd:Warszawa

MSVC do nauki c++ jest świetne - przede wszystkim podkreśla składnię, co eliminuje irytujące błędy typu brak średnika, nawiasu, czy literówki.

c++ jest dobrym wyborem na początek, żeby zrozumieć mechanikę programowania. Potem zająłbym się javą - podobna składnia, prosty do nauki język, ale już obiektowy.

Znając javę i c++, c# przyswoisz bez problemu, a jest to dużo mniej uniwersalny język, więc nie zaczynałbym od niego.


  • -1

CPU# i5-2500k

GPU# Asus 5850 DCU

MOBO# Gigabyte GA-P67A-UD4

PSU# OCZ ZT 550W

WC# D-tek dB-1 > Bykski CPU-MTX-C >BWA 122 rev.3 > EK-XRES > EK-FC570 V2> BWA 122 rev.3

  • Do góry
  • Napisano 22 marzec 2016 - 13:52

#8

Ancient
  • Ancient
  • Uczestnik
  • Stały użytkownik
  • 675 postów
  • Płeć:Mężczyzna
  • Skąd:52°13' N 21° E

Każde IDE posiadające(a praktycznie każde posiada) "code completions" się nada. Drugą istotną rzeczą jest prosty i wygodny debugger. Visual Studio to przeładowana kobyła posiadająca wszytko, ale z każdą kolejną wersją coraz gorzej działająca. Wsparcie dla C++ jest w VS też coraz gorsze.

PACIK19 - zacznij od książek. Jeżeli zdecydujesz się na naukę C++ to skorzystaj z jakiegoś prostego IDE. Bo ważne w tym języku jest też abyś zrozumiał zasady działania kompilacji i jej etapy.

Dodatkowo C++ posiada kilka elementów z C jak choćby wskaźniki(nieobecne w C# czy javie)i samo to może go czynić nieco trudniejszym w nauce, lecz nie będzie to czas zmarnowany.

Ważne żebyś zdecydował co właściwie chcesz tworzyć, C++(natywny) nadaje się bardziej do stricte systemowych aplikacji. W C# z kolei stworzysz wiele innych rzeczy.

 

Jave bym jednakowoż odradzał, dni tego języka są policzone. Trzyma się tylko dzięki zastosowaniom korporacyjnym, a te z czasem zostaną wyparte przez otwarcie .netu przez Microsoft na inne platformy i społeczność. Oracle już by chętnie porzucił wsparcie dla javy. Nie mówiąc już o tym że C# to taka ewolucja javy nie posiadająca wielu jej wad.


  • 0

CPU:AMD Phenom II X4 955 C3 --AC Freezer 64 Pro + STG2
Mobo:Gigabyte GA-890XA-UD3
RAM:2x2GB+1x4GB GoodRam @...
Storage:Crucial m4 64GB + Samsung F3 1TB + 160GB
GPU:Gigabyte HD 5850 1GB OC
Screen:Hyundai W220D PSU:Evga Supernova G2 750W Case:Cooler Master 690 II

  • Do góry
  • Napisano 22 marzec 2016 - 14:21

#9

Małpożer
  • Płeć:Mężczyzna

W sumie z java nie masz zbytnio racji, bo juz jest usmiercana od dluzszego czasu. Niestety za duzo softu na tym smiga i ma srodowisko uruchomieniowe dostepne na wszystkie liczace sie platformy (ms, linux, android). Chociaz w czasach 'chmur' dostaje po tylku - sami devowie to przyznaja. Jednak w rozwiazaniach korporacyjnych i tak liczy sie przede wszystkim bezpieczenstwo.

 

C# narazie byl tylko na winde, ale zaczyna inwazje na linuxa. Zobaczymy jak sie to potoczy ;) Dodatkowo mozna w nim skrypty pisac do takiego Unity.

 

C++ w sumie dlugo nie bedzie wyparty w rozwiazaniach stricte wydajnosciowych. Jedyna wada to... brak wbudowanych narzedzi do tworzenia aplikacji okienkowych jak w C# czy java. W czasach krolowania 'chmur' niektore firmy zaczyna nawracac sie na c++ i zdziwieni, ze to smiga lepiej niz java :D Nowe standardy c++ (11/14) daja sporo fajnych rzeczy, ale... trudno znalezc dobrze wytlumaczone te mechanizmy (a wiki ma to po lebkach opisane).


  • 1

cpu ][ mobo ][ ram ][ gpu ][ ssd + hdds ][ dvd ][ psu ][ display ][ desk-lc hybrid

 

"Jak to na wojence ładnie, kiedy ułan z konia spadnie. Koledzy go nie żałują, jeszcze końmi potratują."

 
  • Do góry
  • Napisano 22 marzec 2016 - 14:58

#10

Ancient
  • Ancient
  • Uczestnik
  • Stały użytkownik
  • 675 postów
  • Płeć:Mężczyzna
  • Skąd:52°13' N 21° E

W sumie z java nie masz zbytnio racji, bo juz jest usmiercana od dluzszego czasu.

(...)

Możliwe że nie mam, przyznam bez bicia, że javie po prostu chętnie wróże koniec :). Jednocześnie faktem jest, Oracle już oficjalnie nie dba o rozwój  już tej platformy, a wraz z końcem wsparcia dla wersji 7 porzucono też wsparcie dla "lubianych" appletów.

 

W standardzie C++ fajnie się piszę, a sam standard jest rozwijany jednak dosyć powoli. W czystym C++ bez użycia zewnętrznych bibliotek nie da się wszystkiego napisać, wciąż (C++14) brakuje ujednoliconego interfejsu do obsługi sieci. W C++17 planowane jest dodanie biblioteki do obsługi sieci na podstawie tej z Boosta(Asio). Wtedy będzie można uznać, że standard jest kompletny i na rynku może namieszać. :D


  • 0

CPU:AMD Phenom II X4 955 C3 --AC Freezer 64 Pro + STG2
Mobo:Gigabyte GA-890XA-UD3
RAM:2x2GB+1x4GB GoodRam @...
Storage:Crucial m4 64GB + Samsung F3 1TB + 160GB
GPU:Gigabyte HD 5850 1GB OC
Screen:Hyundai W220D PSU:Evga Supernova G2 750W Case:Cooler Master 690 II

  • Do góry
  • Napisano 22 marzec 2016 - 17:44

#11

Małpożer
  • Płeć:Mężczyzna

Java to z wersji na wersje ma bardziej okrojona dokumentacje. Co do c++ to ma ogromne zaplecze bibliotek, wiec nie jest tez az tak zle. W sumie w tym jezyku lepiej mi sie pisze niz w c#/java. Jedyny minus ciezko gdzies praktyke podlapac z c++ :/
  • 0

cpu ][ mobo ][ ram ][ gpu ][ ssd + hdds ][ dvd ][ psu ][ display ][ desk-lc hybrid

 

"Jak to na wojence ładnie, kiedy ułan z konia spadnie. Koledzy go nie żałują, jeszcze końmi potratują."

 
  • Do góry
  • Napisano 22 marzec 2016 - 23:44

#12

mhl333
  • mhl333
  • Początkujący uczestnik
  • Użytkownik
  • 1 postów

Temat troche już stary ale...

 

Polecam Stephen Prata Język C++ Szkoła programowania. Obszerna i jak dla mnie świetnie napisana, w sposób zrozumiały dla każdego (teoria od razu popierana przykładami). Osobiście mam wydanie VI zawierające elementy C++11. Niestety nigdzie nie znalazłem wersji PDF (gdyby ktoś miał proszę o info =]) ale zamiast tego polecam też cpp0x. Nie czytałem akurat działu poświęconego C++ tylko winsock/winapi w celu nauki o gniazdach i wątkach. Również napisane w sposób bardzo dosępny.

 

Co do IDE to korzystam z CodeBlocks. Na początku używałem Visuala ale jak dla początkującego wydawał mi się zbyt przeładowany, dodaje zbyt wiele od siebie przez co początkujący może się pogubić. CodeBlocks jest "czysty", przyjemny i przejrzysty.


  • 0

MSI Z97-G43 / Intel i5-4690k / GOODRAM 2x 4GB 1600MHz CL9 / MSI GTX 970 GAMING / Antec VPF 550W / Antec 900

  • Do góry
  • Napisano 29 kwiecień 2016 - 08:07

#13

airwaves
  • airwaves
  • Początkujący uczestnik
  • Użytkownik
  • 9 postów
  • Płeć:Mężczyzna

To ja też dołożę cegełkię, bo temat chociaż stary to wciąż popularny. Większość książek, które polecali poprzednicy znam. Dla kogoś kto dopiero zaczyna karierę jako programista polecałbym mniej Symfoni C++ (a jeśli już to koniecznie najnowsze wydania), a więcej książek/stron www promujących nowy standard C++0x czy jak kto woli C++11. Dlaczego? Ponieważ książka promuje trendy, które są przestarzałe, a programy pisane zgodnie z nimi mogą być mniej bezpieczne (głównie chodzi o złe korzystanie ze wskaźników, NULL'i itd.). Mówię to z własnego doświadczenia, żeby młodsi koledzy, którzy zaczynają dopiero studia/technikum nie musieli marnować czasu na dodatkowe doszkalanie się za kilka lat. Warto też zainteresować się materiałami o STL (Standard Template Library), która zawiera dużo popularnych struktur danych, napisanych przez profesjonalistów, co dodatkowo zwiększa wydajność - na pewno ją docenicie, gdy zaczniecie implementować algorytmy dla problemu komiwojażera, plecakowego itd. Podobnie polecam poczytać coś o Boost - tam również jest masa gotowych algorytmów i struktur, które wykorzystywane są nie tylko przez profesjonalnych programistów z korpo, ale także naukowców pracujących nad AI, NLP, itp.

Jeśli chodzi o IDE - trzeba się trochę namęczyć z MS Visual Studio, ale doceni to każdy pracodawca. To naprawdę może być dodatkowy (ale oczywiście nie najważniejszy) atut w waszym CV. To samo dotyczy Javy - lepiej przejść z NetBeansa na Eclipse.

Co do wyboru Java/C#/C++ - fajnie jest znać każdy język, bo każdy z nich służy do czegoś innego, ale ostatecznie trzeba 
oczywiście wybrać jeden, w którym chcemy się rozwijać dalej. Z moich studiów i obecnego doświadczenia zawodowego wywnioskowałem, że:

C/C++ - używany jest w programowaniu krytycznych elementów systemów informatycznych, takich które muszą działać naprawdę wydajnie. Często ten język łączy się ze wstawkami asemblera (oczywiście tylko krytyczne funkcje). Tworzenie aplikacji dialogowych wymaga znajomości zewnętrznych bibliotek (od MS albo open-source). Tworzenie rozbudowanych aplikacji sieciowych z interfejsem graficznym może być ciężkie dla początkującego.
Java - język używany głównie w aplikacjach biznesowych, gdzie potrzebna jest skalowalność, load-balancing i bezpieczeństwo (kod Javy często uruchamia się w tzw. kontenerach, poza tym sam kompilator nie generuje bezpośredniego kodu maszynowego, tylko kod bajtowy uruchamiany na JVM). Prędzej czy później będziecie zmuszeni poznać JavęEE, która nieco różni się od popularnej JavySE, w której tak łatwo się wszystkim programuje. Molochów typu Spring, Hibernate prawdopodbnie nie unikniecie, jeśli wybierzecie sciężkę kariery związaną z Javą. Wielką zaletą jest multiplatformowość. Ponadto ucząc się Javy, uczymy się pośrenio programowania appek na Androida (niższe warstwy systemu pisane są już w C/C++).
C# - podobnie jak Java (bo C# czerpie z niej garściami), używany jest głównie w szeroko pojętych aplikacjach biznesowych, chociaż bardziej przyziemnych. C# spotykany jest głównie w tworzeniu aplikacji dialogowych na systemy z rodziny Windows służacych do ogólnego użytku przez typowego Kowalskiego oraz większych serwisach internetowych (ASP.NET). Zdecydownie szybciej jest w nim stworzyć rozbudowany program początkującemu, jednak podobnie jak w Javie - obarczone jest to mniejszą wydajnością od C/C++.

Oczywiście każdy program można napisać w dowolnym języku programowania. Wymieniłem tylko typowe zastosowania, gdy już się go nauczymy, bazując na tym, które firmy, jakich języków zazwyczaj wymagają.


Użytkownik airwaves edytował ten post 25 lipiec 2016 - 19:05

  • 1

MSI X99A Gaming 7 / Intel i7-5820K / MSI GeForce GTX 980Ti Gaming 6G / Corsair Vengeance LPX 2800 MHz CL16 4x4GB DDR4 / XFX Black Edition XTR 750W Modular / Samsung EVO 850 500GB / 2xWD RED 2TB RAID 0 / SilentumPC Gladius M40 Pure Black / SilentiumPC Grandis XE1236 / ASUS PB278Q / Acer v3-571g

Prawdziwe studia zaczynają się gdy nie znajdujesz nic na StackOverflow

  • Do góry
  • Napisano 25 lipiec 2016 - 18:19

#14

<account_deleted>
  • <account_deleted>
  • Banned
  • Banned
  • 2212 postów
  • Płeć:Mężczyzna

Dżizas, dawno mnie tu nie było, więc tak tragicznie niski poziom nieco mnie przeraził - really? - to jest wszystko co mozna znaleźć na tym forum?

1. 100% dokumentacji dot. nowych rozwiązań powstaje w j. angielskim (nawet jesli są to polskie rozwiązania) - bez znajomości angielskiego technicznego z branży programowania/IT - lipa.

2. Jedyny realnie funkcjonujący on-line support dla programistów <stackoverflow, serverfault> jest po angielsku...

3. Niestety polskie szkoły/uczelnie kształcą idiotów - angielski techniczny = zero, ale co gorsza, absolwenci nie mają bladego pojęcia o programowaniu czegokolwiek poza czasem podgrzewania pizzy w mikrofalówce...

 

Żeby nie było głupich "ale", prosty test:

1. Co to jest kontekst procesora?

2. Czym się różni przerwanie od wyjątku?

3. Dlaczego liczba 1.1 powoduje błędy w obliczeniach i jakie są znane rozwiązania tego problemu?

 

To są trywialne pytania, ale 99.9999% absolwentów polskich uczelni nie jest w stanie udzielić poprawnej odpowiedzi - niestety.

Nie liczę na to że znajdzie się ktoś na tym forum...

 

... ale przecież wystarczy powiedzieć że Visual jest super - nawet kiedyś go widziałem jak działa...


Użytkownik <account_deleted> edytował ten post 20 październik 2016 - 00:21

  • -2
  • Do góry
  • Napisano 20 październik 2016 - 00:15

#15

Małpożer
  • Płeć:Mężczyzna

Kontekst czyli aktualnie wykonywany fragmant programu. Systemy przelaczaja wykonywanie programow aby dac wrazenie wielozadaniowosci na 1 rdzeniowych procesorach.

Przerwanie jest sprzetowe, a wyjatek programowy (obarczony duzym kosztem obslugi).

Co do 3. jesli sie nie myle to chodzi Ci o sposob zapisu czesci ulamkowej na komputerach, przez co jest problem z precyzja/dokladnoscia liczb. I problem nie dotyczy jedynie 1.1 ale i wielu innych liczb. Jak sobie z tym radzic? Nie wiem, ale jakbym potrzebowal z tym pomocy to szukalbym na overflow :D

Co do ide to zamiast codeblocks polecam codelite. Tworzy to jeden czlowiek a dziala lepiej niz CB. Do tego podpowiadanie kodu dziala poprawnie.


Tyle ze co to ma do tematu?

Użytkownik Quave edytował ten post 22 październik 2016 - 08:11

  • 1

cpu ][ mobo ][ ram ][ gpu ][ ssd + hdds ][ dvd ][ psu ][ display ][ desk-lc hybrid

 

"Jak to na wojence ładnie, kiedy ułan z konia spadnie. Koledzy go nie żałują, jeszcze końmi potratują."

 
  • Do góry
  • Napisano 22 październik 2016 - 08:10

#16

<account_deleted>
  • <account_deleted>
  • Banned
  • Banned
  • 2212 postów
  • Płeć:Mężczyzna

Hmm, tak jak myślałem... słabiutko...

Kontekst czyli aktualnie wykonywany fragmant programu. Systemy przelaczaja wykonywanie programow aby dac wrazenie wielozadaniowosci na 1 rdzeniowych procesorach.

Kontekst procesora, to nie jest "fragment programu", tylko:
a) Stan procesora w danej chwili, gdzie poprzez "stan" rozumie się zbiór wartości wszystkich rejestrów, w szczególności wskaźnika stosu, wskaźnika instrukcji oraz rejestru statusowego.
b) Kontekstem procesora nazywa się również strukturę przechowującą stan procesora. Struktura ta jest używana przez jądro systemu operacyjnego do przełączania zadań (procesów/wątków), co sprowadza się właśnie do "podmiany" stanu procesora. Ilość rdzeni czy procesorów nie ma tu nic do rzeczy.

Przerwanie jest sprzetowe, a wyjatek programowy (obarczony duzym kosztem obslugi).

No... nie. Przerwanie jest również wyjątkiem. Mówiąc inaczej wyjątki można sklasyfikować jako sprzętowe (przerwania) i jako programowe, gdzie nadal nazywane są wyjątkami. Główna różnica polega na tym, że procedury obsługi przerwań są wykonywane w przestrzeni jądra systemu, natomiast wyjątki niekoniecznie (zazwyczaj w przestrzeni użytkownika).
Stwierdzenie że "wyjątek jest obarczony dużym kosztem obsługi" świadczy że nie masz waść bladego pojęcia o czym mówisz.

Co do 3. jesli sie nie myle to chodzi Ci o sposob zapisu czesci ulamkowej na komputerach, przez co jest problem z precyzja/dokladnoscia liczb. I problem nie dotyczy jedynie 1.1 ale i wielu innych liczb. Jak sobie z tym radzic? Nie wiem, ale jakbym potrzebowal z tym pomocy to szukalbym na overflow :D

No nie, zdecydowanie nie chodzi o "sposób zapisu czesci ulamkowej na komputerach", tylko o ograniczenia wynikające ze stosowania standardu IEEE-754.
Najbardziej znanym sposobem obejścia problemu dokładności jest rozszerzenie formatu IEEE-754 z 64 do 80-bitów, co w wielu przypadkach jest całkowicie wystarczające.
Inne rozwiązania to np. "poczwórna" precyzja zapisu liczb (np: libquadmath: 128bit).

Może zamiast rozwodzić się nad wyższością C# nad C++ albo nad tym, które IDE ładniej koloruje składnię, warto by jednak zacząć od (albo wrócić do) podstaw...
Co to ma wspólnego z tematem? - wszystko.

Użytkownik <account_deleted> edytował ten post 24 październik 2016 - 04:57

  • -1
  • Do góry
  • Napisano 24 październik 2016 - 04:50

#17

airwaves
  • airwaves
  • Początkujący uczestnik
  • Użytkownik
  • 9 postów
  • Płeć:Mężczyzna

A podobno to PClol ma toksyczną społeczność. Może jeszcze zaczniemy dyskutować o algebrze Boole'a i architekturze CISC, bo to też ma związek z programowaniem? I to w temacie dla osób, które dopiero zaczną się uczyć... Give me a break.

W każdym języku programowania można osiągnąć zamierzone cele, ale trzeba być totalnym amatorem/teoretykiem, żeby nie zauwazyć, iż każdy język został różne przyjęty przez rynek w danych sektorach.

Więc jeśli chcemy komuś doradzić na jakim języku programowania ma się skupić to trzeba się najpierw spytać, co chce programować.

Rozmowa o IDE jest bezsensowna, to fakt. Jednak znajomość profesjonalnych narzędzi nikomu nie zaszkodzi, zwłaszcza gdy za kilka lat autor tematu będzie chciał wejść na rynek pracy. Więc hejt i wywyższanie się są de facto nieuzasadnione w tym przypadku.
  • 2

MSI X99A Gaming 7 / Intel i7-5820K / MSI GeForce GTX 980Ti Gaming 6G / Corsair Vengeance LPX 2800 MHz CL16 4x4GB DDR4 / XFX Black Edition XTR 750W Modular / Samsung EVO 850 500GB / 2xWD RED 2TB RAID 0 / SilentumPC Gladius M40 Pure Black / SilentiumPC Grandis XE1236 / ASUS PB278Q / Acer v3-571g

Prawdziwe studia zaczynają się gdy nie znajdujesz nic na StackOverflow

  • Do góry
  • Napisano 24 październik 2016 - 13:38

#18

<account_deleted>
  • <account_deleted>
  • Banned
  • Banned
  • 2212 postów
  • Płeć:Mężczyzna

(...) Może jeszcze zaczniemy dyskutować o algebrze Boole'a i architekturze CISC, bo to też ma związek z programowaniem? I to w temacie dla osób, które dopiero zaczną się uczyć... Give me a break.

Bardzo by się to przydało, bo cała masa "speców" nie jarzy dlaczego sizeof(bool) jest niezdefiniowany...
...i jak obliczyć rozmiar dynamicznie alokowanej tablicy bitów...

Naukę zaczyna się od podstaw - a w programowaniu komputerów podstawą jest zrozumienie "jak działa komputer" - tymczasem, większość "lolków" zaleca rozpoczęcie nauki od zainstalowania VisualStudio...

Bez podstaw, zdolność pojmowania kończy się zazwyczaj na jednym 2 etapów:
- aplikacje sterowane zdarzeniami
- synchronizacja wątków, czyli rozwiązywanie problemów z wyścigami logicznymi przy dostępie do zasobów.

... albo wcześniej.

(Oczywiście to jest hejt - nienawidzę głupoty.)

Moja rada: zacząć od jakiegoś prostego assemblera i prostej architektury, np. 8-bitowy AVR, który ma masę ciekawych możliwości, dobre narzędzia, w pełni otwartą, powszechnie dostępną dokumentację + bardzo dobre wsparcie ze strony użytkowników.

Użytkownik <account_deleted> edytował ten post 24 październik 2016 - 16:00

  • 0
  • Do góry
  • Napisano 24 październik 2016 - 16:00

#19

Małpożer
  • Płeć:Mężczyzna

Hmm, tak jak myślałem... słabiutko...

Tak, u Ciebie z wiedza.
 

Kontekst procesora, to nie jest "fragment programu", tylko(...)

To, ze odpisalem w skrocie, nie oznacza, ze tego nie wiem. Okroilem odpowiedz do minimum, bo to nie miejsce do rozmowy o tym, tym bardziej, ze osoba tutaj dopiero zaczyna swoja przygode z programowaniem. Ale ty chyba tego nie rozumiesz.
 

Stwierdzenie że "wyjątek jest obarczony dużym kosztem obsługi" świadczy że nie masz waść bladego pojęcia o czym mówisz.

Jakby bylo jak twierdzisz, to w grach komputerowych, gdzie liczy sie maks. wydajnosc nie odrzucaloby tego rozwiazania. A dlaczego tak jest? Bo generuje ono dodatkowy kod obslugi co przeklada sie tez na szybkosc aplikacji (tworzenie potrzebnych do tego zmiennych itd). Wiec przestan pie***yc glupoty, chyba ze jestes javowcem, milosnikiem try-catchowania na kazdym kroku.

Druga sprawa to przerwania sa sprzetowe i sie tu nie pomylilem, problem jest z wyjatkami, ktore dotycza 3 roznych sytuacji i opisalem jedna, ta zwiazana z tematem, tj. uzywana w programach. Jak bedzie chcial programowac OS to wtedy sobie ogarnie to pojecia, ale po co mu teraz mieszac?
 

No nie, zdecydowanie nie chodzi o "sposób zapisu czesci ulamkowej na komputerach", tylko o ograniczenia wynikające ze stosowania standardu IEEE-754.
Najbardziej znanym sposobem obejścia problemu dokładności jest rozszerzenie formatu IEEE-754 z 64 do 80-bitów, co w wielu przypadkach jest całkowicie wystarczające.

Lol, padlem. A wiesz, ze nie kazda liczba ma skonczona czesc ulamkowa? Np. 1/3 ( 0.333(3) ) i mozesz w nich precyzje zwiekszac ile chcesz, a i tak nadal bedzie jakis blad w obliczeniach. Dodatkowo twoje rozwiazanie nie nadaje sie do zastosowania w systemach finansowych, gdzie nawet 1 grosz, wiec sa inne rozwiazania jak liczby staloprzecinkowe (uzytkownik sam ustala ilosc bitow na czesc calkowita i ulamkowa, obie przechowywane np. jako long). Co do 80 bitow to kolejna niewiedza z twojej strony, ze nie kazdy procesor to wspiera. Na pewno Intel, amd nie wiem i nie szukalem.

 

Może zamiast rozwodzić się nad wyższością C# nad C++ albo nad tym, które IDE ładniej koloruje składnię, warto by jednak zacząć od (albo wrócić do) podstaw...
Co to ma wspólnego z tematem? - wszystko.

Nie ma nic wspolnego z tematem, bo osoba ta zaczyna zabawe w programowanie i nie wiadomo czy zajdzie dalej niz obiektowka, bo moze to nie bedzie dla niego. A IDE wbrew pozorom ma znaczenie - ulatwia znalezenie bledow, reformatowanie kodu itd, itp.
 

A podobno to PClol ma toksyczną społeczność. Może jeszcze zaczniemy dyskutować o algebrze Boole'a i architekturze CISC, bo to też ma związek z programowaniem? I to w temacie dla osób, które dopiero zaczną się uczyć... Give me a break.

Po prostu przylecial taki napalony i chce zablysnac czego to sie on dowiedzial, zwiekszajac ego o +5.
 

Więc jeśli chcemy komuś doradzić na jakim języku programowania ma się skupić to trzeba się najpierw spytać, co chce programować.

Niekoniecznie. Jak zaczyna to jednak C++ jest dobrym rozwiazaniem. Zrozumie podstawowe petelki, poslugiwanie sie funkcjami i obiektami. A wszystko to krok po kroku.
 

Bardzo by się to przydało, bo cała masa "speców" nie jarzy dlaczego sizeof(bool) jest niezdefiniowany...
...i jak obliczyć rozmiar dynamicznie alokowanej tablicy bitów...

Jest zdefiniowany, ale zalezy od kompilatora. Wszystko rozbija sie o to czy kompilator pakuje po 8 booli do bajta, czy w inny sposob.
 

Naukę zaczyna się od podstaw - a w programowaniu komputerów podstawą jest zrozumienie "jak działa komputer" - tymczasem, większość "lolków" zaleca rozpoczęcie nauki od zainstalowania VisualStudio...

Na pewno nie na poziomie przeplywu impulsow w pc. Programujesz sterowniki, to moze Cie to interesuje, ale nie reszte.
 

Bez podstaw, zdolność pojmowania kończy się zazwyczaj na jednym 2 etapów:
(...)
- synchronizacja wątków, czyli rozwiązywanie problemów z wyścigami logicznymi przy dostępie do zasobów.

Wiele jezykow ma juz wbudowana obsluge podstawowych mechanizmow do tego, wiec znowu pudlo. Wystarczy wiedza ogolna o dzialaniu, o tym kiedy potrzeba stosowac te mechanizmy.
 

(Oczywiście to jest hejt - nienawidzę głupoty.)

A sam ja powielasz :(
 

Moja rada: zacząć od jakiegoś prostego assemblera i prostej architektury, np. 8-bitowy AVR, który ma masę ciekawych możliwości, dobre narzędzia, w pełni otwartą, powszechnie dostępną dokumentację + bardzo dobre wsparcie ze strony użytkowników.

Nie kazdy potrzebuje assemblera :D Jedynie w kilku zastosowaniach sie nim optymalizuje kod, a i tak to baaaaardzo rzadko.


  • 1

cpu ][ mobo ][ ram ][ gpu ][ ssd + hdds ][ dvd ][ psu ][ display ][ desk-lc hybrid

 

"Jak to na wojence ładnie, kiedy ułan z konia spadnie. Koledzy go nie żałują, jeszcze końmi potratują."

 
  • Do góry
  • Napisano 24 październik 2016 - 16:48

#20

<account_deleted>
  • <account_deleted>
  • Banned
  • Banned
  • 2212 postów
  • Płeć:Mężczyzna

&nbsp;

To, ze odpisalem w skrocie, nie oznacza, ze tego nie wiem.


Nie odpisałeś w skrócie, tylko udzieliłeś błędnej odpowiedzi.

"Dobrze wiedziałem, tylko mi się napisać nie chciało" ... i wszystko jasne ...
  • 0
  • Do góry
  • Napisano 24 październik 2016 - 17:46

#21

Małpożer
  • Płeć:Mężczyzna

Jesli wykonuje jakis fragment kodu to chyba oczywiste, ze dotyczy to stanu procesora i przechowywanych w rejestrach danych? Chyba, ze dla Ciebie wszystko szczegolowo opisywac wraz z tym co gdzie w procesorze sie znajduje i z czym i po co sie laczy, bo "udziles blednej odpowiedzi". Ty swoja tez nie zablysles w kilku miejscach sie mylac.


  • 0

cpu ][ mobo ][ ram ][ gpu ][ ssd + hdds ][ dvd ][ psu ][ display ][ desk-lc hybrid

 

"Jak to na wojence ładnie, kiedy ułan z konia spadnie. Koledzy go nie żałują, jeszcze końmi potratują."

 
  • Do góry
  • Napisano 24 październik 2016 - 17:50

#22

<account_deleted>
  • <account_deleted>
  • Banned
  • Banned
  • 2212 postów
  • Płeć:Mężczyzna

Jesli wykonuje jakis fragment kodu to chyba oczywiste, ze dotyczy to stanu procesora i przechowywanych w rejestrach danych? Chyba, ze dla Ciebie wszystko szczegolowo opisywac wraz z tym co gdzie w procesorze sie znajduje i z czym i po co sie laczy, bo "udziles blednej odpowiedzi". Ty swoja tez nie zablysles w kilku miejscach sie mylac.

Pytania były jasno sformułowane - zła dpowiedź to po prostu zła odpowiedź.
Powyższy komentarz kompromiutuje Cię totalnie - tyle że jesteś zbyt głupi żeby to zrozumieć...
Jesteś waść również zbyt głupi, żeby zrozumieć, że wspomniałem o języku assembler jako o "wstępie do podstaw" - oczywiście tylko w bardzo niewielu/extremalnych przypadkach używa się dzisiaj assemblera - ale też, znajomość języka maszynowego jest podstawą do zrozumienia "jak działa komputer" - o czym wspomniałem wcześniej...

Rozumiem, że Twój debilny komentarz (odnośnie systemów "finansowych") został wykopany z google'a - i na tej podstawie postanowiłeś wyrazić samozadowolenie w postaci stwierdzenia, że "przecież też się pomyliłem" - tylko że sytuacja jest raczej kompletnie przeciwna - jesteś debilem do kwadratu, ponieważ właśnie libquadmath (o której wspomniałem) gwarantuje dokładność na poziomie conajmniej 10^-8, podczas gdy systemy bankowe używają co najwyżej dokładności na poziomie 10^-4.

Spodziewam się kolejnego "ataku" spreparowanego przez debila ukrywającego się pod nickiem (aktualnie) - Małpożer - ale z drugiej strony, mam nadzieję że ludzie realnie zainteresowani nauką programowania są w stanie odróżnić forumowego trolla od gościa, który od ~15 lat programuje systemy produkcyjne...

Pozdrawiam.

Użytkownik <account_deleted> edytował ten post 27 listopad 2016 - 02:59

  • 0
  • Do góry
  • Napisano 27 listopad 2016 - 02:54

#23

Małpożer
  • Płeć:Mężczyzna

Ojoj juz sie tak nie unos, bo ci zylka peknie. Po pierwsze zmien ton, bo nie chce mi sie prowadzic dyskusji z nadetym bufonem. Po drugie nie moj problem, ze masz tak ciasny mozdzek, ze nie rozumiesz skrotow myslowych. Po trzecie sam zaczales jakies wyjazdy o assemblerze itd. gosciowi, ktory zaczyna zabawe z programowaniem. Czas na lizniecie assemblera itp bedzie jeszcze,mial jak sie w to wkreci. A jak pojdzie w c# lub jave to bedzie mial gdzies calego assemblera - wiekszosc z javowcow ma gdzies wydajnosc, tylko aby dobrze dzialalo.
Po czwarte siwlki znaffco zwiekszanie precyzji nic nie daje przy duzej ilosci obliczen, w szczegolnosci bankowosci, wiec przestan piep****yc o 15 latach doswiadczenia, ktore oznacza ni mniej ni wiecej, ze szybciej rozwiazujesz problemy/piszesz kod, bo robisz to dluzej. A to ze banki na stronach o walutach wyswietlaja 4 liczby po przecinku, nie znaczy, ze tak je przechowuja. Ogolnie jest cos 10-6 czy nawet wiecej. I nie, nie przechowuja tego na doubl czy long double, ale maja specjalne biblioteki matematyczne od tego - im az tak nie zalezy na szybkosci dzialania, co dokladnosci obliczen. Chcesz miec lepsza dokladnosc bez wzgledu na platforme to zastosuj liczby staloprzecinkowe - tyle ze znow wydajnosc gorsza, szczegolnie funkcje tryg.

A tekst, ze assembler do zrozumienia jak dziala komputer... smiechlem i tyle w tym temacie. W sumie mozna zakonczyc ta dyskusje bo nie ma nic wspolnego z pierwotnym zapytaniem. A jak chcesz dalej to ciagnac to zapraszam na priv.
  • 0

cpu ][ mobo ][ ram ][ gpu ][ ssd + hdds ][ dvd ][ psu ][ display ][ desk-lc hybrid

 

"Jak to na wojence ładnie, kiedy ułan z konia spadnie. Koledzy go nie żałują, jeszcze końmi potratują."

 
  • Do góry
  • Napisano 27 listopad 2016 - 08:14

#24

<account_deleted>
  • <account_deleted>
  • Banned
  • Banned
  • 2212 postów
  • Płeć:Mężczyzna

Ojoj juz sie tak nie unos, bo ci zylka peknie. Po pierwsze zmien ton, bo nie chce mi sie prowadzic dyskusji z nadetym bufonem. Po drugie nie moj problem, ze masz tak ciasny mozdzek, ze nie rozumiesz skrotow myslowych. Po trzecie sam zaczales jakies wyjazdy o assemblerze itd. gosciowi, ktory zaczyna zabawe z programowaniem. Czas na lizniecie assemblera itp bedzie jeszcze,mial jak sie w to wkreci. A jak pojdzie w c# lub jave to bedzie mial gdzies calego assemblera - wiekszosc z javowcow ma gdzies wydajnosc, tylko aby dobrze dzialalo.
Po czwarte siwlki znaffco zwiekszanie precyzji nic nie daje przy duzej ilosci obliczen, w szczegolnosci bankowosci, wiec przestan piep****yc o 15 latach doswiadczenia, ktore oznacza ni mniej ni wiecej, ze szybciej rozwiazujesz problemy/piszesz kod, bo robisz to dluzej. A to ze banki na stronach o walutach wyswietlaja 4 liczby po przecinku, nie znaczy, ze tak je przechowuja. Ogolnie jest cos 10-6 czy nawet wiecej. I nie, nie przechowuja tego na doubl czy long double, ale maja specjalne biblioteki matematyczne od tego - im az tak nie zalezy na szybkosci dzialania, co dokladnosci obliczen. Chcesz miec lepsza dokladnosc bez wzgledu na platforme to zastosuj liczby staloprzecinkowe - tyle ze znow wydajnosc gorsza, szczegolnie funkcje tryg.

A tekst, ze assembler do zrozumienia jak dziala komputer... smiechlem i tyle w tym temacie. W sumie mozna zakonczyc ta dyskusje bo nie ma nic wspolnego z pierwotnym zapytaniem. A jak chcesz dalej to ciagnac to zapraszam na priv.


Mój poprzedni post był niepotrzebny - szkoda czasu, bo testy już się skończyły - anyway - ludzie czytający ze zrozumienim będą w stanie zrozumieć o co chodzi, a tylko tacy są warci uwagi.

Pozdrawiam.

Użytkownik <account_deleted> edytował ten post 27 listopad 2016 - 22:11

  • 0
  • Do góry
  • Napisano 27 listopad 2016 - 22:07

#25

Małpożer
  • Płeć:Mężczyzna

Szczerze to nie wiem nawet po co odpisywales. Przyszedles, poplules jadem i nic konstruktywnego do tematu nie wniosles.
  • 0

cpu ][ mobo ][ ram ][ gpu ][ ssd + hdds ][ dvd ][ psu ][ display ][ desk-lc hybrid

 

"Jak to na wojence ładnie, kiedy ułan z konia spadnie. Koledzy go nie żałują, jeszcze końmi potratują."

 
  • Do góry
  • Napisano 27 listopad 2016 - 22:40

#26

<account_deleted>
  • <account_deleted>
  • Banned
  • Banned
  • 2212 postów
  • Płeć:Mężczyzna

Szczerze to nie wiem nawet po co odpisywales. Przyszedles, poplules jadem i nic konstruktywnego do tematu nie wniosles.

W zasadzie powiedziałem już wszystkto... Ale, jako że jest jeszcze trochę czasu do "wyrwania" - czy sformułowanie "test przesiewowy" <screening test> coś Panu mówi, czy "nie bardzo"?
...pytanie w sumie retoryczne - ale spróbujmy...

Pozdrawiam.
  • 0
  • Do góry
  • Napisano 27 listopad 2016 - 23:11

#27

Małpożer
  • Płeć:Mężczyzna

Pierwszy raz o tym slysze (poczytalem na wiki, wiec wiem o co mniej wiecej kaman). Teraz czekam na oswiecenie z Twojej strony, bo nijak nie widze powiazania z dotychczasowa rozmowa i mam nadzieje, ze nie bedzie to kolejna rzucona na 'wiatr' nazwa.
  • 0

cpu ][ mobo ][ ram ][ gpu ][ ssd + hdds ][ dvd ][ psu ][ display ][ desk-lc hybrid

 

"Jak to na wojence ładnie, kiedy ułan z konia spadnie. Koledzy go nie żałują, jeszcze końmi potratują."

 
  • Do góry
  • Napisano 27 listopad 2016 - 23:35

#28

<account_deleted>
  • <account_deleted>
  • Banned
  • Banned
  • 2212 postów
  • Płeć:Mężczyzna

Pierwszy raz o tym slysze (poczytalem na wiki, wiec wiem o co mniej wiecej kaman). Teraz czekam na oswiecenie z Twojej strony, bo nijak nie widze powiazania z dotychczasowa rozmowa i mam nadzieje, ze nie bedzie to kolejna rzucona na 'wiatr' nazwa.

No własnie ... Wikipedia ... - podaje, że test przesiewowy to pojęcie związane z medycyną - co tylko częściowo jest prawdą - to jest pojęcie z zakresu statystki...

Niestety, poprzednie pytania testowe były niedoskonałe, ponieważ odpowiedzi są łatwe do znalezienia w sieci - co jednak nie przeszkodziło w uzyskaniu prawidłowych wyników - wręcz przeciwnie - pojawiła się wartość dodana w postaci przykładu pokazującego, że niektórzy nie odróżniają przypadku ogólnego od szczególnego ;)

Interesuje mnie jeszcze jedna kwestia, mianowicie uzasadnienie/wykazanie dlaczego znajomość zasady działania/budowy komputerów i języka maszynowego (czyli podstawy) są niezbędne dla każdego, kto chce kiedyś nazywać się programistą...

Proponuję więc quiz:
(wstęp do podstaw, ale większość nawet nie zajarzy o co chodzi - powodem jest brak podstaw właśnie...)

Jak optymalnie (minimum kodu wynikowego, maksymalna szybkość działania) sprawdzić prawdziwość nastepującego wyrażenia:

(a * b) <= 0x7FFFFFFF

gdzie:
a,b są zmiennymi typu int (integer) i do dyspozycji mamy 32-bitowy procesor?

Są tylko 2 *optymalne* rozwiązania tego problemu - jedno portowalne i jedno nie (ale za to ultra-szybkie ;) ).

Rozwiązania da się znaleźć w sieci - ale żeby je znależć, najpierw trzeba wiedzieć o co chodzi w tym przykładzie.

Z tego co sprawdziłem, większość rozwiązań w sieci jest błędna - co mam nadzieję wyeliminuje "cwaniaczków" i trolle...

Panie "Małpożer": proponuję najpierw dać ze 2 dni forów dla mniej ogarniętych - potem śmiało może Pan zniszczyć mnie swoim profesjonalizmem i doświadczeniem ;)

(swoją drogą jestem naprawdę ciekawy co z tego wyjdzie...)

Pozdrawiam.


Użytkownik <account_deleted> edytował ten post 28 listopad 2016 - 22:24

  • 0
  • Do góry
  • Napisano 28 listopad 2016 - 22:23

#29

Małpożer
  • Płeć:Mężczyzna

Edyt posta. Mialem isc spac, ale... musialem pomyslec nad tym. Wiec to cos ma wspolnego z operatorem <= i porownywaniem do stalej, a nie 0. A ten nieprzenosny sposob to pewnie jakas magiczna optymalizacja poprzez assembler, ktory... stosowany jest przewaznie przez programistow piszacych drivery i zalezny jest od procka ;) Ogolnie co do assemblera to sa male dzisla sztuki na necie, animacje kilkunasto kilobajtowe czy megabajtowe w assemblerze.

Co do doswiadczenia nie pisalem, ze posiadam jakies ogromne. Ot ciagle sie ucze i szukam czegos nowego powiazanego z programowaniem w C++. O liczbach zmiennoprzecinkowych czytalem przy artach zwiazanych z gamedev i problemach przechowywania danych w grach multi na roznych platformach.

Co do przesiewowego czasem to wlasnie nie do konca mi cos pasowalo z ta medycyna. Pewnie cos w rodzaju wzorow na obliczenie ile probek potrzeba na sprawdzenie partii towaru ;)

Użytkownik Małpożer edytował ten post 29 listopad 2016 - 00:37

  • 0

cpu ][ mobo ][ ram ][ gpu ][ ssd + hdds ][ dvd ][ psu ][ display ][ desk-lc hybrid

 

"Jak to na wojence ładnie, kiedy ułan z konia spadnie. Koledzy go nie żałują, jeszcze końmi potratują."

 
  • Do góry
  • Napisano 28 listopad 2016 - 23:56

#30

<account_deleted>
  • <account_deleted>
  • Banned
  • Banned
  • 2212 postów
  • Płeć:Mężczyzna

Mialem isc spac, ale... musialem pomyslec nad tym. Wiec to cos ma wspolnego z operatorem <= i porownywaniem do stalej, a nie 0.


Zimno, ciekły azot, -273.15 ...

0x7FFFFFFF to jest po prostu maksymalna wartość jaką da się zapisać w 32-bitowej wersji typu <int> (bo <int> niekoniecznie musi być 32-bitowy).

Nie ma tu większego znaczenia czy będziemy mnożyć czy sumować a i b - ale wiecej przykładów w sieci dotyczy operacji sumowania - więc chodziło o "zmylenie przeciwnika" - ostateczne rozwiązanie jest takie samo: chodzi po prostu o sprawdzanie czy doszło do przepełnienia zmiennej typu <int> - "integer overflow".

Pozdrawiam.
  • 0
  • Do góry
  • Napisano 30 listopad 2016 - 00:08