konto usunięte

Temat: Który język?

Chyba nie ma jednoznacznej odpowiedzi na Twoje pytanie. W zależności od tego w jakim sektorze programowania chcesz się odnaleźć będą to zupełnie inne platformy.
Do Tworzenia serwisów WWW zapewne warto poznać PHP z jednym z szkieletów programistycznych (Zend framework, Prado, Code Igniter). Chociażby z racji hostingu aplikacji wciąż będzie bardzo popularny. Ciekawy jest również Ruby (bądź jego implementacja JRuby) wraz z Railsami. Poznanie podstaw zajmuje tydzień.
W przypadku aplikacji biznesowych warto zdecydować się na platformę JEE bądź .NET. Każda z nich ma znaczący udział na rynku i obie wciąż będą się rozwijać. W przypadku JEE poza specyfikowanymi elementami (JSF, EJB, JPA, parsery XML, ...) warto poznać Springa (i pewnie jakąś dodatkową warstwę widoku, np. Struts).
Dla programistów mikrokontrolerów wciąż podstawą będzie C i Assembler. Pasjonujące może być bowiem stworzenie własnego systemu operacyjnego dla ARMów i wykorzystanie ich możliwości w nowy, innowacyjny sposób.

Poza danym językiem warto znać zalety i ograniczenia środowisk strukturalnych, obiektowych, a także różnice pomiędzy językami statycznymi i dynamicznymi.
Pamiętaj także o rozwijaniu umiejętności poza programistycznych takich, jak wspomniany angielski czy umiejętność pracy w projekcie (to także częsta bolączka młodych programistów). Warto więc rozejrzeć się za kolami naukowymi, grupami użytkowników danej platformy. Z czasem, gdy poznasz podstawy danego języka warto rozejrzeć się za jakimś projektem OpenSource. Ludzie są otwarci na ambitne osoby, więc zawsze znajdziesz coś dla siebie.

A podsumowując naukę języków posłużę się cytatem z warsztatów javowych: "Programista, który wciąż chce się rozwijać, powinien uczyć się co najmniej 3 nowych języków w roku". Myślę, że starczy ich dla nas wszystkich na długie lata:)

konto usunięte

Temat: Który język?

Moim zdaniem trudno jest zdecydować się na konkretną technologię od razu. Dlatego jeszcze raz polecam C++ pod Unixami konsolowo (ehh..., to były czasy edytor Jed i GCC) i C++ pod Windowsem na raz. Wybór nastąpi automatycznie przy pierwszej pracy: Linux i Java, lub Windows i C#. Chyba, że pasjonować kogoś będą sterowniki i zewnętrzne urządzenia. :)

pozdr. edi
Sebastian Marek Gruchacz

Sebastian Marek Gruchacz Senior .Net
Developer at Grupa
Pracuj

Temat: Który język?

Andrzej Z.:
Dariusz Macina:
To moze czasem warto wyjsc z tego getta i udac sie na lekcje angielskiego...

A czy firmy rzeczywiscie potrzebuja specjalistow z angielskim...

Polskie firmy to pewnie nie ale jesli chcesz pracowac w miedzynarodowym srodowisku to nie wiem jak wyobrazasz sobie
>(CIACH)

Niestety na lekcjach Angielskiego ciężko się jest nauczyć konwersacji na poziomie naprawdę komunikatywnym. Co do reszty to oczywiście masz 100% racji.
Andrzej Z.:
Dariusz Macina:
To moze czasem warto wyjsc z tego getta i udac sie na lekcje angielskiego...

A czy firmy rzeczywiscie potrzebuja specjalistow z angielskim...

Polskie firmy to pewnie nie ale jesli chcesz pracowac w miedzynarodowym srodowisku to nie wiem jak wyobrazasz sobie
>(CIACH)

Niestety na lekcjach Angielskiego ciężko się jest nauczyć konwersacji na poziomie naprawdę komunikatywnym. Co do reszty to oczywiście masz 100% racji.

Zgadzając się poniekąd z przedmówcami mogę zaproponować solution trochę z autopsji - nauczyć się na lekcjach tyle, żeby mieć odwagę otworzyć usta do kogoś kto choćby pyta o drogę.
Potem - trochę szczęścia, trochę przebiegłości by dostać się do środowiska międzynarodowego - rewelacyjna okazja do szlifowania komunikacji, łatwo o poprawę, wyrozumiałość, jest kogo dopytać w razie czego itp. - a nie jest to od razu skok na głęboką wodę.
Potem już spokojnie można pracować z ludźmi, którzy nic poza langłydżem nie znają...
Oczywiście cały czas warto też samodzielnie doskonalić znajomość bierną, słownictwo, idiomy itd. No ale to banały i w sumie NTG&OOT :)

Temat: Który język?

Uważam, że "najlepszym" językiem programowania jest
Microsoft Visual C#
Programy pisane w C# są:
- wysoce wydajne,
- bezpieczne,
- skalowalne,
- proste w implementacji.

Coraz więcej firm specjalizujących w tworzeniu oprogramowania, używa właśnie tego języka. Jedną z przyczyn jest fakt, że C# jest językiem "ogólnego przeznaczenia" (ściśle mówiąc - CLR platformy .NET).

Można również powołać się na statystyki, ale wyrażają one tylko popularność języków (http://www.soaguide.de/download/4104.html).
Stanisław P.

Stanisław P. Software designer

Temat: Który język?

Wiesz, że brzmisz jak reklama microsoftu?...
Tomasz Malicki:
Uważam, że "najlepszym" językiem programowania jest
Microsoft Visual C#

Microsoft Visual C# to nie język. C# to język.
Programy pisane w C# są:
- wysoce wydajne,
Wydajne jak w każdym innym języku opartym na .net.
- bezpieczne,
Bezpieczne jak w każdym innym języku opartym na .net.
- skalowalne,
Skalowalne jak ka.... ble
No i wszystko zależy od umiejętności programisty.
- proste w implementacji.
Zależy od tego co chcesz implementować.
Programowanie w C# jest bardzo podobne do javy - ale nie należy się za bardzo sugerować, bo różnice też szybko wyjdą.

Co do języków - jeśli autor liczy na migrację z PHP, to do wyboru jest java/vb.net/c#/ruby/python i ... php6!, z tym że java/vb.net/c#, to w większości duże projekty enterprise, a samo vb.net/c# to najczęściej uwiązanie do technologii MS. Ruby/python to w większości startupy i małe projekty. Najbardziej chyba jest się sens takim podziałem sugerować. Dla kogo chcesz pisać? Kolejną klasę + 10 testów w wielkim projekcie, czy wolisz się pobawić w małych firmach...
Oczywiście są wyjątki, jak zawsze ;)

Jak chcesz iść w 1-2 techn. internetowe, to polecałbym po prostu javę i ruby - no i plus jruby za jakiś czas ;)

Temat: Który język?

1. "Microsoft Visual C#" to język programowania
http://www.microsoft.com/poland/developer/press/defaul...
"Microsoft Visual C# .NET to potężny, choć prosty język przeznaczony przede wszystkim dla programistów tworzących aplikacje na platformę .NET".

2. C# jest wydajniejszy np. od VB.NET (a jest to ta sama platforma).

3. Co do bezpieczeństwa - zgadzam się z opinią "jak w każdym innym języku opartym na .net".

4. Skalowalność. Mając np. program napisany w J#.NET lub VB.NET, zastanów się ile programistów podjęłoby się jego skalowania. C# jest bardziej skalowalny ze względu na to, że nikomu nie chce się grzebać w kodzie języka, który jest niepopularny. Wyjątkiem może być sytuacja, gdzie program jako taki nie będzie modyfikowany lecz rozbudowywany. W praktyce jednak rządko się to zdarza.

5. Prosty w implementacji. W C# "odrobinę" łatwiej przebiega proces implementacji niż np. w C++ (a jest to ta sama platforma).
Stanisław P.

Stanisław P. Software designer

Temat: Który język?

Tomasz Malicki:
1. "Microsoft Visual C#" to język programowania
MS może pisać różne rzeczy, ale C# to język, który jest standardem ECMA - http://www.ecma-international.org/publications/standar... i nie ma nic wspólnego z MS poza tym, że go zgłosili do standardyzacji i zaprojektowali :/ (w nazwie nie ma ani MS ani Visual)
2. C# jest wydajniejszy np. od VB.NET (a jest to ta sama platforma).

Zależy od runtime'a - JIT / AOT decyduje tu o wydajności. W końcu CIL można przekształcić jak się chce póki będzie zachowywał odpowiednie właściwości (weryfikacja).
4. Skalowalność. Mając np. program napisany w J#.NET lub VB.NET, zastanów się ile programistów podjęłoby się jego skalowania. C# jest bardziej skalowalny ze względu na to, że nikomu nie chce się grzebać w kodzie języka, który jest niepopularny. Wyjątkiem może być sytuacja, gdzie program jako taki nie będzie modyfikowany lecz rozbudowywany. W praktyce jednak rządko się to zdarza.

Co znaczy, że jeśli znajdziesz programistę VB.net, bądź J# to program będzie tak samo skalowalny jak w C#. Prawda? Co ma skalowalność do popularności? Jeśli będzie to dobrze zaprojektowana biblioteka vb.net, to i w c# będzie można zbudować odpowiednią otoczkę pozwalającą na serwisy, etc.
5. Prosty w implementacji. W C# "odrobinę" łatwiej przebiega proces implementacji niż np. w C++ (a jest to ta sama platforma).

C++ to nie ta sama platforma co c#. C++.net (managed c++) to ta sama platforma co c# - a tam, jeśli używasz tylko wskaźników managed, to implementację można pewnie zmieniać automatycznie z c# na c++ - reszta to detale (weryfikowane overflowy np.). Jeśli ktoś zna lepiej c++.net, to na pewno w c# programu szybciej nie napisze...

(oczywiście sprawa wygląda inczej, jeśli ktoś miesza native i clr c++... ale to już zupełnie inna dziedzina - niskopoziomowe szybkie operacje matematyczne na "pseudo-zmiennoprzecinkowych" liczbach łatwiej zaimplementować w c++ - patrz np. quake'owy pierwiastek)Stanisław Pitucha edytował(a) ten post dnia 03.02.08 o godzinie 02:50
Krzysztof Mierzejewski

Krzysztof Mierzejewski SharePoint
Consultant

Temat: Który język?

Z tego co widzę pan Tomek napisał kilka krążących w środowisku znanych opinii na temat platformy .NET - zasadniczo nie skłamał i można by temat zostawić. Za to pan Stanisław postarał się, korzystając z wiedzy wydającej się bardziej fachową, poprawić wypowiedź pana Tomka. I dlatego teraz czuję się w obowiązku sprostować wypowiedź pana Stanisława ;)
Stanisław Pitucha:
[author]Tomasz Malicki:[/autohor]
2. C# jest wydajniejszy np. od VB.NET (a jest to ta sama platforma).

Zależy od runtime'a - JIT / AOT decyduje tu o wydajności. W końcu CIL można przekształcić jak się chce póki będzie zachowywał odpowiednie właściwości (weryfikacja).

AOT - Application Object Library? Nie za bardzo rozumiem, czemu ten akronim się tutaj znalazł, ale wracając do tematu:

JIT nie decyduje o wydajność, oba kompilatory (CSC i VBC) korzystają z tego samego środowiska uruchomieniowego, czyli tak naprawdę decyduje jakość kodu pośredniego. I tutaj kompilator C# jest wydajniejszy by default - po pierwsze nie ustawia domyślnie atrybutu STAThread, po drugie, także domyślnie, nie włącza overflow check'a dla obliczeń na zmiennych całkowitoliczbowych - a to jest ogromna różnica w wydajności. Oczywiście można o tym pamiętać i zmuszać VBC do innych zachowań, ale to tylko dwa przykłady, takie najbardziej znane. Polecam napisać co w IL'u bezpośrednio, zdekompilować do C# i VB a potem znowy skompilować do IL'a i uruchomić pod profilerem - ciekawe doświadczenie.

Po drugie nie CIL a MSIL - mówimy tutaj o .NET.
Co znaczy, że jeśli znajdziesz programistę VB.net, bądź J# to program będzie tak samo skalowalny jak w C#. Prawda? Co ma skalowalność do popularności? Jeśli będzie to dobrze zaprojektowana biblioteka vb.net, to i w c# będzie można zbudować odpowiednią otoczkę pozwalającą na serwisy, etc.

Ano skalowalność do popularności ma bardzo dużo. Dajmy na to przykład z J# i C# i .NET Compact Framework. Jak wiemy urządzenia mobilne nie mają za dużo pamięci, toteż warto by okroić samego .NET'a na nich zainstalowanych. OK - tniemy, poleciały wszystkie FCL (czy BCL, nazywajcie jak chcecie) związane z J#. A wśród nich obsługa zip'a. Więc co się stanie, jak spróbujemy pod takim środowiskiem uruchomić program napisany w J#, który akurat korzystał z takiej funkcjonalności? 'File Not Found Exception'.

Załóżmy już nawet, że biblioteka mieści się w całości w CTS'ie (jak się uprzeć to i za to ograniczenie można było wyjść chociażby w pierwszym CLR), ale kto mi zagwarantuje, że się mieści w CLS? Pamiętajmy, że ustawiająć CLSCompliant ograniczamy sobie niemałą część funkcjonalności języka (uint'y w C# dla przykładu). Nie twierdzę, że inne języki poza C# są złe - jeżeli tylko nie korzystamy ze 100% możliwości wybranego przez nas kompilatora a piszemy w VB np. dla wygody to wszystko jest w porządku. Jednak różnice pomiędzy poszczególnymi językami są na prawdę spore (chociażby obsługa propertisów w typach - ale to temat na dłuższą rozmowę).

Po prostu statystycznie C# jest najczęściej wybieranym językiem (czyli jest najbardziej uniwersalny) i najwięcej przykładów jest właśnie w nim napisane.
(oczywiście sprawa wygląda inczej, jeśli ktoś miesza native i clr c++... ale to już zupełnie inna dziedzina - niskopoziomowe szybkie operacje matematyczne na "pseudo-zmiennoprzecinkowych" liczbach łatwiej zaimplementować w c++ - patrz np. quake'owy pierwiastek).

Racja. Chociaż jak sie uprzeć - w końcu JiT produkuje kod maszynowy specyficzny dla architektury procesora - to samo co mamy po skompilowaniu C++... No i nie zapominajmy o P/Invoke ;)Krzysztof Mierzejewski edytował(a) ten post dnia 25.02.08 o godzinie 00:04
Stanisław P.

Stanisław P. Software designer

Temat: Który język?

Krzysztof Mierzejewski:
Stanisław Pitucha:
[author]Tomasz Malicki:[/autohor]
2. C# jest wydajniejszy np. od VB.NET (a jest to ta sama platforma).

Zależy od runtime'a - JIT / AOT decyduje tu o wydajności. W końcu CIL można przekształcić jak się chce póki będzie zachowywał odpowiednie właściwości (weryfikacja).

AOT - Application Object Library?

Ahead of time compiler (w przeciwieństwie do Just In Time) - np. taki ngen, czy gcc-cil (ostatniego nie jestem pewny).
JIT nie decyduje o wydajność, oba kompilatory (CSC i VBC) korzystają z tego samego środowiska uruchomieniowego

Tzn. którego? MS.net, mono, gcc-cil, dotgnu czy aot który piszę?
Polecam napisać co w IL'u bezpośrednio, zdekompilować do C# i VB a potem znowy skompilować do IL'a i uruchomić pod profilerem - ciekawe doświadczenie.

A tego to nie widziałem jeszcze - jakichś wielkich różnic nie widziałem, ale pewnie będę się musiał kiedyś przyglądnąć na większych projektach. :) pomysł ciekawy
Po drugie nie CIL a MSIL - mówimy tutaj o .NET.

"CIL was originally known as Microsoft Intermediate Language (MSIL) during the beta releases of the .NET languages. Due to standardization of C# and the Common Language Infrastructure, the bytecode is now officially known as CIL."Stanisław Pitucha edytował(a) ten post dnia 03.02.08 o godzinie 20:09
Krzysztof Mierzejewski

Krzysztof Mierzejewski SharePoint
Consultant

Temat: Który język?

Stanisław Pitucha:
Ahead of time compiler (w przeciwieństwie do Just In Time) - np. taki ngen, czy gcc-cil (ostatniego nie jestem pewny).

Ponieważ dyskusja ciągle dotyczy .NET to z tego co wiem oficjalnym określeniem na ngen'a jest pre JIT, w przeciwienstwie do standrad JIT czy econo JIT.
Tzn. którego? MS.net, mono, gcc-cil, dotgnu czy aot który piszę?

Dokładnie tak jak piszę - jako że .NET to znaczy, że CLR (czyli microsoftowa implementacja ecma CTS).
"CIL was originally known as Microsoft Intermediate Language (MSIL) during the beta releases of the .NET languages. Due to standardization of C# and the Common Language Infrastructure, thebytecode is now officially known as CIL."

Blisko, prawda jest jednak minimalnie inna:

CIL - Common Intermediate Language - is the term used in the International Standard.
MSIL - Microsoft Intermediate Language - is the product term for the Microsoft implementation of that standard.

To minimalnie jest tak małe jak różnice pomiędzy standardami zaakceptowanymi przez ecma (które różnią się od tego, co wysłał MS) a implementacją tego standardu zaimplementowanymi w .NET ;) Gdyby wszyscy trzymali się ściśle standardów to MONO pewnie już by wyprzedziło w rozwoju .NET'a...Krzysztof Mierzejewski edytował(a) ten post dnia 04.02.08 o godzinie 01:10
Maciej Czerwiakowski

Maciej Czerwiakowski Change Manager @ HP
/ MCPD : Enterprise
Application Devel...

Temat: Który język?

@Krzysztof, Stanisław:
Dyskusja fajna i nawet ciekawa, ale też akademicka. Prawda jest taka, że mało kto patrzy na CIL, MSIL i cała masę innych rzeczy... po prostu kod ma dobrze działać, a najlepiej jak działa za małe pieniądze ;) A przynajmniej ja się nie spotkałem do tej pory ze specjalnie innym podejściem.

Co do samego pytania z początku wątku polecam C#. Gładko wchodzi, wygodnie klepie się w nim kod (masa klas ułatwiających życie) i tak naprawdę dobry punkt startu. C\C++ można nie znać i żyć, ale można też poświęcić masę czasu na zrozumienie tego języka i finalnie odnaleźć powołanie w Javie. A C# można nauczyć się szybko, jest to dobry punkt wyjścia do nauki innych języków i równie dobrze można napisać w nim program do wysuwania tacki CD jak i aplikacje do obsługi międzynarodowego portu lotniczego z funkcją banku i pralni garniturów nie wychodząc po za środowisko Visual Studio. A jak wiadomo nauka języka to nie jest trudna sprawa, ale nauka nowego środowiska* to dopiero dramat.

--
*mam na myśli wszystkie biblioteki, funkcje, mechanizmy obsługi danych, samo IDE i co tam jeszcze chcecie. A jakby na to nie patrzeć VS zbiera to wszystko w jednym miejscu pod wspólnym interfejsem i nazewnictwem.

EDIT: Rozszerzałem przypisMaciej Czerwiakowski edytował(a) ten post dnia 04.02.08 o godzinie 04:56
Dariusz Macina

Dariusz Macina Technology Manager,
Making Waves Polska

Temat: Który język?

Maciej Czerwiakowski:
Gładko wchodzi, wygodnie klepie się w nim kod (masa klas ułatwiających życie) i tak naprawdę dobry punkt startu.

I to jest wlasnie glos rozsadku :)

Dyskusje o CIL, MSIL i standardach ECMA na pewno koledze nie ulatwia wyboru jezyka.
Sławek Markiewicz

Sławek Markiewicz Programista WMS

Temat: Który język?

Witaj,

Polecam zacząć od C++ - poznaj podstawy a zrozumiesz istotę programowania :).

Następnie C#, java a moze PL/SQL ,T-SQL ASP . Net , VB ( kolejność dowolna :) wedle uznania )

Moim zdaniem podchodzisz to tego od złej strony.

Zobacz który da Ci radość z pracy.

Praca powinna przynosić satysfakcje a nie męczarnie przez x godzin.

Pozdrawiam.Sławek Markiewicz edytował(a) ten post dnia 18.02.08 o godzinie 21:07
Maciej Czerwiakowski

Maciej Czerwiakowski Change Manager @ HP
/ MCPD : Enterprise
Application Devel...

Temat: Który język?

Sławek Markiewicz:
Praca powinna przynosić satysfakcje a nie męczarnie przez x godzin.

Praca powinna przynosić pieniądze, a najlepiej jak przynosi ich dużo przy małym nakładzie kosztów własnych :)
Sławek Markiewicz

Sławek Markiewicz Programista WMS

Temat: Który język?

Maciej Czerwiakowski:
Sławek Markiewicz:
Praca powinna przynosić satysfakcje a nie męczarnie przez x godzin.

Praca powinna przynosić pieniądze, a najlepiej jak przynosi ich dużo przy małym nakładzie kosztów własnych :)


To prawda , ale gdy masz pracować przez x godzin Wkurzony i zarabiać jakieś 200PLN mniej od pracy w której czujesz sie w pełni doceniony

to jaką byś wybrał ??
Henryk Malinowski

Henryk Malinowski programista, XXX

Temat: Który język?

Według mnie to pytanie jaki język ma sens na początku kariery programisty i to też ograniczony.
Język należy znać taki jaki w danej chwili jest potrzebny pracodawcy.
Jeżeli już to należy znać na tyle bieżące technologie by jak najszybciej wdrożyć się do pracy.
Z doświadczenia wiem ,że przeciętny większy projekt trwa na tyle długo, że po jego zakończeniu zwykle pracodawcy żądają innych umiejętności niż przed jego rozpoczęciem. Chyba ,że projekty są małe ale ewolucja oprogramowania i technologii jest na tyle szybka, że super specjalista dziś po roku jest nieukiem ( przesadziłem ale chcę zaznaczyć tendencje).
Mam jeszcze jedną wątpliwość. Umiejętność programowania to nie znajomość konkretnego języka a umiejętność przełożenia idei na zadaną przez zleceniodawcę technologie.
Złagodzeniu tego szoku pomagają wszystkie techniki projektowania i analiz.

konto usunięte

Temat: Który język?

Mateusz Pułkowski:
Witam.

Jakiego Waszym zdaniem języka programowania warto się obecnie nauczyć? Którego znajomość daje największe możliwości znalezienia pracy, a który jest najbardziej perspektywiczny? Dużo dobrego słyszałem o języku Ruby. To prawda, że migracja z PHP postępuje i niedługo coraz częściej poszukiwani będą programiści Ruby? Chciałbym nauczyć się jednego, dwóch języków wykorzystywanych w aplikacjach internetowych. Do tej pory poznałem i dobrze opanowałem jedynie HTML, teraz chciałbym się dokształcić (zacząć dokształcać) w tym kierunku. Z czym warto połączyć znajomość poszczególnych języków, aby jeszcze zwiększyć swoje umiejętności (np. Ruby - Ajax?). Dzięki za wszelkie sugestie. Pozdrawiam.


proponuję trzy równoległe ścieżki:

1. java lub c#
2. python lub ruby
3. lisp lub ocaml lub F#

Sprawdź w google skąd taki pomysł :-)

oczywiście nie zapominaj o dowolnej implementacji sql-a (t-sql lub pl/sql) - większość aplikacji biznesowych korzysta z baz danych.

powodzeniaMarcin Sztandarski edytował(a) ten post dnia 24.02.08 o godzinie 21:24
Krzysztof Mierzejewski

Krzysztof Mierzejewski SharePoint
Consultant

Temat: Który język?

No to jeszcze jedna ścieżka:

4. Prolog.

konto usunięte

Temat: Który język?

Krzysztof Mierzejewski:
No to jeszcze jedna ścieżka:

4. Prolog.

zgadzam sie i dokładnie w takiej kolejności :-), ewentualnie na koniec (thinking low-level, writing high-level):

5. asemblerMarcin Sztandarski edytował(a) ten post dnia 25.02.08 o godzinie 00:16



Wyślij zaproszenie do