Zaloguj się, aby obserwować  
Bartuc

Język C / C++ / C# / Java - pytania, problemy...

1979 postów w tym temacie

> /.../

Aha, no to wygląda na to że praca programisty jest trudniejsza, a zarobki są podobne - jak to jest naprawdę? Czytałem kilka artykułów, stąd ta [mylna/prawidłowa - niepotrzebne skreślić] wiedza :-) Zastanawiam się też co taki admin musi umieć? Przecież języki a la C++/Java nie są mu za bardzo potrzebne, więc tutaj wiedza powinna iść w innym kierunku. Pytanie jeszcze w jakim, bo wiedzę "Co zrobić gdy komputer się zbuntuje?" nabywa się poprzez praktykę...

> co poniektórzy twierdzą, że komputery
> się mnie boją i działają poprawnie, gdy jestem w pracy, a gdy mam wolne - harcują.

Skąd jak to znam? ^^ Z drugiej strony czasem jest tak że komputer policzy 2+2=5 i nikt nie jest winny.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

programowanie jak najbardziej się przyda, ale raczej języki skkryptowe np perl czy bash. Chodzi o to żeby zamiast robić wszystko "na piechotę" napisać automat który często wykonywane a ważne czynności za nas (np back-upy) zrobi.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Hmm. A co sądzisz o rozpoczęciu nauki od C++ i późniejszym zapoznaniu się z C# lub Javą? Czasu na naukę mam bardzo wiele, toteż planuję naukę kilku języków (oczywiście nie naraz).

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
Dnia 25.09.2008 o 16:24, marcin1930 napisał:

Zastanawiam się też co taki admin musi umieć?

Trzeba znać się na administrowaniu różnymi systemami operacyjnymi i ew. bazami danych; przydatne są raczej języki skryptowe, bo tworzone programiki to raczej bardzo wyspecjalizowane narzędzia odpowiadające np. za obróbkę danych wychodzących z jednego programu lub importowanych do innego (najciekawiej jest, gdy po uaktualnieniu jednego z nich trzeba analizować krok po kroku, co się dzieje z danymi). Należy też z grubsza obserwować, co w sieci piszczy - zdarza się, że ktoś załapie jakiś malware i np. nieświadomie spamuje, czy próbuje włamywać się na inne komputery. Bardzo wskazana jest umiejętność obsługi programów używanych w firmie - kiedy ktoś czegoś nie potrafi to właśnie do admina dzwoni. Mogą dochodzić też obowiązki związane z monitorowaniem poczynań użytkowników, zwłaszcza w zakresie tego, co ściągają na swoje komputery. Podsumowując admin to taki ktoś, którego pracy nie widać, gdy wszystko poprawnie działa, za to jest idealnym workiem do wyżycia się, gdy coś się popsuje.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
Dnia 25.09.2008 o 23:17, Łowca Gier napisał:

Hmm. A co sądzisz o rozpoczęciu nauki od C++ i późniejszym zapoznaniu się z C# lub Javą?
Czasu na naukę mam bardzo wiele, toteż planuję naukę kilku języków (oczywiście nie naraz).

W takim razie zaczoł bym od javy, jest dużo prostsza niż c++.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
Dnia 25.09.2008 o 23:33, Treant napisał:

/.../


Aha, no to praca faktycznie bardzo nierówna. I trzeba być odpornym psychicznie, nie każdy zniesie "worek treningowy" na sobie.

@Sig
Dzięki za odpowiedź.

@Łowca Gier
Jak Java to polecam "Thinking in Java 4" - podobno najlepsza książka do nauki tego programu, sam ją prawdopodobnie dziś pojadę kupić (wszystko zależy od czasu :-).

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
Dnia 25.09.2008 o 23:17, Łowca Gier napisał:

Hmm. A co sądzisz o rozpoczęciu nauki od C++ i późniejszym zapoznaniu się z C# lub Javą?

Kiedyś uważałbym, że to właściwa kolejność, ale dzisiaj jednak jest odwrotnie. C++ ma kilka baardzo nieintuicyjnych rozwiązań, które nie tylko frustrują początkującego, ale wręcz kierują jego naukę na złe tory (na przykład bezwartościowa, mozolna nauka rozumienia wielowymiarowych tablic). Z powodu nędzy w bibliotece standardowej C większość początkujących w C++ próbuje na nowo wymyślać koło. ;) Z drugiej strony biblioteka STL jest perfekcyjnie zaprojektowana dla zaawansowanych programistów, początkującym jednak nie łatwo z niej dobrze korzystać. Z powodu tysięcy książek do C++ wydawanych na przestrzeni 20 lat miesza się programowanie przestarzałe (konstrukcje, algorytmy) z programowaniem nowoczesnym. Typowym przykładem jest mieszanie kiepskiego programowania proceduralnego z kiepskim obiektowym. Początkujący pakują obiekty do programu czysto funkcyjnego nie rozumiejąc po co w ogóle to robią. Mieszanie takich rzeczy jak kbhit(), printf() oraz nierozszerzalnych obiektów cout, to patologiczna norma. ;)
W C++ na początku nie widać żadnych korzyści z obiektowości. Mnóstwo rzekomo "zaawansowanych" przykładów użycia obiektów w C++ z samego końca wielu książek, to przedszkole, które w Javie porusza się dosłownie na samym początku podręczników. Mnóstwa konstrukcji i rozwiązań, które w Javie są czymś oczywistym w C++ w trakcie nauki po prostu nie ma.
Na przykład moim zdaniem nie ma przyjemniejszego i łatwiejszego poznania koncepcji programu sterowanego zdarzeniami (czyli okienkowego) niż zrobienie takiego programu w Javie (np. w Swingu). Przy okazji uczący od razu natyka się na problem wielowątkowości, której obsługa w Javie istnieje, a w C++ w ogóle jej nie ma.

Krótko mówiąc prawie 20 lat temu kiedy uczyłem się C i C++ były to języki, po których poznaniu, ucząc się innych - zapamiętywało się tylko co jest gorsze w stosunku do C/C++. Dzisiaj ucząc się Javy można łatwo rozpoznać co jest gorsze w C++ oraz w innych językach. Wszelkie braki w tym języku muszą być łatane bibliotekami. W C++ biblioteki obejmują nawet podstawowe konstrukcje współczesnego programowania.
Oczywiście mi łatwo to mówić bo oba języki w dużym stopniu znam.

Dnia 25.09.2008 o 23:17, Łowca Gier napisał:

Czasu na naukę mam bardzo wiele, toteż planuję naukę kilku języków (oczywiście nie naraz).

Dlatego moim zdaniem Java, to niezły początek bo pozwala łatwo uczyć się pisania wysokopoziomowego, obiektowego i sterowanego zdarzeniami jednocześnie.
A proceduralny C do nauki pisania niskopoziomowego - dzięki temu zrozumiesz jak działa oprogramowanie na poziomie maszyny, do czego służą wskaźniki i dlaczego nowsze języki bardzo ograniczają ich użycie zamieniając je na referencje (na których nie można wykonywać operacji matematycznych).
Można też uczyć się alternatywnie C#, który jest bezpośrednią Microsoftową konkurencją dla Javy (jest dość podobny i ma identyczną koncepcję działania), ale do jest już wybór jakby bardziej polityczny niż merytoryczny.

Wiele osób narzeka na wydajność w Javie podając jako przykład Javę 1.0/1.2, która rzeczywiście była wolniejsza 100-1000 razy od programów pisanych w C/C++. Ale to już od dawna przeszłość. Dzisiaj tak samo zakodowany program w Javie jest 1,1 do 1,5 razy wolniejszy od odpowiednika w C++, a biorąc pod uwagę łatwość programowania i czytelność kodu, to wybór Javy jako pierwszy język niezłym pomysłem.
Co do wydajności, to skoro na standardowej interpretowanej Javie w stulinijkowym kodzie udało mi się uzyskać wyświetlanie ponad 100 klatek na sekundę na ekranie o rozdzielczości 1280x1024 z antyaliasingiem x2, to do wydajności tego języka przestałem mieć zastrzeżenia.
Oznacza to, że bez sztuczek można łatwo samemu sobie napisać odtwarzacz filmów nie różniący się funkcjonalnie od WMP, a tym bardziej od tego co prezentuje youtoube.
A przecież program w Javie można kompilować do kodu binarnego tak jak i inne języki. I wtedy wydajność jaką Java osiąga nierzadko przewyższa wydajność obliczeniową programów w C++.

Obecnie (wre praca nad tym, żeby to zmienić) jedyną wadą Javy jest brak obsługi sprzętowej akceleracji 3D. Warto jednak zauważyć, że Star Wars Galaxies została napisana w całości w Javie (szkoda, że zrobiła klapę bo byłaby to promocja Javy), a wiele innych gier, to hybrydy Javy z C i C++. WArto też zauważyć, że w Javie i Swingu jest napisana przeglądarka Mozilla Firefox 1, 2 i 3. Tyle, że została ona skompilowana do kodu wykonywalnego pod kilka ważniejszych systemów.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
Dnia 26.09.2008 o 08:51, sig. napisał:

W takim razie zaczoł bym od javy, jest dużo prostsza niż c++.

Prostsza, ale tylko w nauce. Konstrukcje języka są o dekadę bardziej zaawansowane.

Dopiero znając Javę zaczyna się umieć pisać obiektowo w C++.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
Dnia 26.09.2008 o 12:30, Olamagato napisał:

WArto też zauważyć, że w całości w Javie i Swingu jest napisana
przeglądarka Mozilla Firefox 1, 2 i 3. Tyle, że została ona skompilowana do kodu wykonywalnego
pod kilka ważniejszych systemów.


Gdzie znalazłeś taką informację? Wszędzie gdzie czytałem o firefoxie była mowa o c++ i javascripcie. Z ciekawości ściągnąłem źródła i nie znalazłem żadnych śladów javy (za to znalazłem trochę C#).

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
Dnia 27.09.2008 o 12:55, MichaSan napisał:

Gdzie znalazłeś taką informację?

To bardzo proste. Wszelkie okienka w Firefoxie są zrobione w Swingu. A ta biblioteka i koncepcja jej działania występuje wyłącznie w Javie.
Najbardziej charakterystyczna jest jedna cecha. Te same błędy obsługi menu, które występują tylko w Swingu. Konkretnie chodzi o automatyczne zamykanie menu jeżeli klikamy na podmena i niemożliwość utrzymania menu w przypadku jego sortowania (wszelkie menu w wykonaniu Microsofta można sortować bez ich resetowania).

Dnia 27.09.2008 o 12:55, MichaSan napisał:

Z ciekawości ściągnąłem źródła i nie znalazłem żadnych śladów javy (za to znalazłem trochę C#).

Firefox, to hybryda.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

WItam od niedawana zaczynam wczytywać się w C++ i panująće w nim zasady. I teraz mam problem. Zapomniałem co trzeba wpisać aby skompilowane okno nie znikało odrazu tylko gdy nacisnę enter?

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
Dnia 29.09.2008 o 18:40, BANITA PL napisał:

WItam od niedawana zaczynam wczytywać się w C++ i panująće w nim zasady. I teraz mam
problem. Zapomniałem co trzeba wpisać aby skompilowane okno nie znikało odrazu tylko
gdy nacisnę enter?


system("pause")

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

nie dziala niestety...
To ja pokaze o co mi sie rozchodzi...

#include <iostream.h>
int main () {
cout << "Ile masz latek?\n";
cin >> Latka ;
cout << "Masz" << Latka << "lat";
}
return 0;


I teraz co dopisac zeby to sie niedizalo tak ze jak bore urochom to pojawia sie i znika...

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
Dnia 29.09.2008 o 20:57, BANITA PL napisał:

nie dziala niestety...
To ja pokaze o co mi sie rozchodzi...

#include <iostream.h>
int main () {
cout << "Ile masz latek?\n";
cin >> Latka ;
cout << "Masz" << Latka << "lat";
}
return 0;


I teraz co dopisac zeby to sie niedizalo tak ze jak bore urochom to pojawia sie i znika...

Używasz Dev C++? Jeżeli tak, to przed return 0 dopisz linijkę system("PAUSE"); . Pomoże :)

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
Dnia 29.09.2008 o 20:57, BANITA PL napisał:

nie dziala niestety...
To ja pokaze o co mi sie rozchodzi...

A gdzie definicja zmiennej "Latka"?
Używanie system("pause") jest kompletnie złym pomysłem. Już pisałem na wcześniejszych stronach tego tematu z jakich powodów.
Eleganckie rozwiązanie z czystego C jest takie:
while(kbhit()) getchar(); //ściąga znaki z stdin aż do wyczerpania
getchar(); //czeka na pojawienie się znaku i po wpisaniu gubi go
które wstawia się przed końcowe return. Tak na marginesie funkcje, których typem jest void nie potrzebują instrukcji return w ogóle.
Rozwiązanie strumieniowe z C++ jest takie:
while(cin.get() != EOF); //ściąga z cin wszystko aż do wyczerpania
cin.get(); //czeka na pojawienie się znaku i po wpisaniu gubi go

Jeżeli na bieżąco ściągane są znaki z bufora wejściowego to wystarczy zupełnie pojedynczy getchar() lub cin.get().

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Zacząłem się interesować tymi językami, ale zastanawiam się, który z nich jest najprzyjemniejszy dla początkujących? Pomoże ktoś? :)

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
Dnia 06.10.2008 o 15:42, Break the peace napisał:

który z nich jest najprzyjemniejszy dla początkujących?

Moim zdaniem ewidentnie Java. Pozwala nawet kompletnemu nowicjuszowi pisać proste programy okienkowe oraz nawet uruchamiane z przeglądarki. Pomijam już takie drobiazgi, że jest to jedyny język pozwalający używać polskich nazw (z polskimi literami).

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Utwórz konto lub zaloguj się, aby skomentować

Musisz być użytkownikiem, aby dodać komentarz

Utwórz konto

Zarejestruj nowe konto na forum. To jest łatwe!


Zarejestruj nowe konto

Zaloguj się

Masz już konto? Zaloguj się.


Zaloguj się
Zaloguj się, aby obserwować