Czy opłaca się uczyć kolejnego języka.

0

Jestem studentem (już) 2 roku studiów informatycznych. W tym semestrze ponoć będę miał luzy. W zeszłym semestrze zrobiłem średniej wielkości (tak mi się wydaje) projekt w C++. Dużo się w ten sposób nauczyłem. Projektu nie skończyłem, ponieważ praca, która musiała być spożytkowana na refaktoryzację kodu, z poziomu początku semestru, zajęła by zbyt długo. Chciałbym jednak robić coś z czego ludzie będą korzystać, lub po prostu powiedzą "OK. Fajne", dlatego myślałem o Javie, a później środowisko Androida. Pytanie jest moje takie: nie lepiej skupić się na C++ do perfekcji i opanować np. OpenGL, czy nauka Javy? Dodam, że na czwartym semestrze obiorę sobie "specjalizację" w której będę miał Javę. Chciałbym nie przebyć tych studiów bez żadnej pracy, ale też aby później nauczony język mi się przydał. No i na koniec, takie ogólne pytanie: może inny język(Ruby, C#)?

1

A w czym chcesz potem pracować?

0

Trudno powiedzieć. Nie jestem przekonany, czy będę miał wybór tworzenia gier a aplikacji biznesowych, czy po prostu stricte użytkowych. Chcę natomiast myśleć co będzie za 3/4 lata.

1

OpenGL do perfekcji możesz się uczyć, jeśli chcesz pisać silnik lub modyfikować jakiś istniejący. Jeżeli zaś chcesz pracować przy produkcji gier, to zorientuj się jaki komercyjny silnik jest obecnie wykorzystywany w produkcjach i się go ucz :)

No i też jest opcja: czy chcesz pracować dla jakiegoś pracodawcy w wybranych przez niego technologiach, czy też chcesz na własną rękę tworzyć programy/aplikacje webowe i na nich zarabiać. Przy pierwszej opcji pewnie dobrze będzie pójść w Javę/C#. Przy drugiej masz pełną dowolność w wykorzystywanych technologiach, to się nazywa wolność :] Na C++ ostatnio nie widziałem zbyt wielu ofert, ale jedną dla Senior Developera C++ widziałem na kilkanaście tysięcy zł miesięcznie - nisza, już mało ludzi chce się babrać w niskopoziomowych językach :)

0

"Nisko poziomowych językach"... Nie wierzę w "otwarty" rynek programistów za kilka lat, chcę po prostu być "poszukiwany", przez pracodawców. Albo ja przedstawiłem źle pytanie, albo Wy je źle pojmujecie. Oto one (w innej wersji): Czy opłaca się uczyć Javy od podstaw, czy NIE TRACIĆ czasu i doskonalić się w C++.

5

Może i jestem młodszy, ale już poznałem świat na tyle by móc Ci powiedzieć byś uczył się programować, a nie uczył języków. Jak będziesz potrzebował to języka nauczysz się w tydzień, ale jak nie będziesz umiał programować to i tak to Ci nic nie da.

2
winerfresh napisał(a):

Jak będziesz potrzebował to języka nauczysz się w tydzień, ale jak nie będziesz umiał programować to i tak to Ci nic nie da.
Świecka prawda... ale trwanie przy jednym języku nie jest dobre. Aby dobrze nauczyć się programować trzeba poznać różne języki i technolgie, żeby wiedzieć, że pewne rzeczy da się zrobić zupełnie inaczej i że istnieją różnorakie narzędzia lepsze do jednych celów a gorsze do innych.

Java przede wszystkim różni się od C++ modelem zarządzania pamięci. Warto poznać choć jeden taki języka jak Java.

0

No dobra, dzięki.

0

Warto poznawać wszystko. Ja jeszcze studiów nie zacząłem (28 mam spotkanie pierwsze), ale trochę się bawiłem w różne języki (zwykłe i ezoteryczne) przez co mam różne pomysły na wykonanie jakiegoś zadania. Oczywiście, że trzeba próbować innych, a nie się alienować z jednym językiem, ale nikt nie wymaga pisania czegoś super. Warto np. spróbować napisać sobie coś na Androida, czy jakąś aplikację webową np. używając RoR'a, nawet jeśli w przyszłości chcesz pracować jako programista mikrokontrolerów.

1
KnockOut napisał(a):

" Czy opłaca się uczyć Javy od podstaw, czy NIE TRACIĆ czasu i doskonalić się w C++.

Moim zdaniem znajomość w jakimś stopniu C/C++ jest konieczna. Nie chodzi mi to o to, żeby w tym pracować czy pisać nie wiadomo, jak wielkie aplikacje, ale po to, żeby zrozumieć, jak działa programowanie od środka. Nauka C/C++ jest pod tym względem bardzo dobra, bo pokazuje to na konkretnych przykładach. Wiesz, co to adres zmiennej, jak działają wskaźniki, jak zachowuje się pamięć, jak zwalniać obiekty, itd. Jednym określeniem w C++ jesteś panem życia i śmierci.

Javy czy C# warto umieć, po to, żeby właśnie w tym pracować. Języki w pełni obiektowe, które głównie uczą budowania posługiwania się tymi obiektami, używania wzorców projektowych i tworzenia różnych wysokopoziomowych aplikacji. Czyli konkretów. Jednak te języki nie powiedzą Ci, jak działają programy "od dołu". Przykład - kiedy zaczynasz od Javy i słyszysz, że wszystko jest referencją, to zastanawiasz się co to jest referencja, albo w ogóle nad tym nie myślisz tylko klepiesz. To błąd, bo pojawiają się różne problemy, w których znajomość czegoś takiego jest potrzebna. Jednak większość książek czy kursów w necie tego nie opisuje, tylko o tym wspomina.
Jeśli chodzi o tą znajomość podstaw C/C++, to mam na myśli nie tylko zwykłego helloworlda i wiedza na temat pętli for. Podstawy to wskaźniki, referencje, po programowanie obiektowe i szablony. Warto znać też STL. Wtedy można powiedzieć, że zna się C++ w jakimś stopniu.

Podsumowując - ucz się Javy i kontynuuj naukę C++. W przyszłość pewnie przyda Ci się jeszcze nauka jakiegoś języka skryptowego.

2

Z języków które warto umieć:

  • Podstawy C
  • Podstawy Assemblera
  • sh/csh lub PowerShell, zależy na jakim systemie działamy
  • Jeden język skryptowy niezależny: Python/Ruby/Perl
  • Jeden język skryptowy do rozszerzania innych aplikacji: JavaScript/Lua
  • Jakiś język komercyjny: Java/Scala/C#
  • Podstawy jakiegoś języka funkcyjnego, np. Haskell
  • Jeszcze inne paradygmaty (jak np. logiczne)
0

Ja bym dorzucił, że warto się zapoznać z... Clipperem i VB albo Cobolem.... Czasem można pracując dodatkowo przy konserwacji istniejących aplikacji... albo przenoszenia ich na nowy język...

1 użytkowników online, w tym zalogowanych: 0, gości: 1