Wybór dalszej drogi programowania

0

Witam.
Zwracam się z prośbą o pomoc w wyborze dalszej drogi programowania.
Na początku często wszystko wydaje się zawiłe i skomplikowane, dlatego szukam rady w trudnym wyborze.
Uczę się programowania z C++ od września. Niestety przedmioty na pierwszym roku są ogólnikowe i mało związane z programowaniem.
Postanowiłem przenieść się na jeden z języków, które dadzą więcej możliwości niż C++.
Zastanawiam się między C# a java. Niestety ciężko mi stwierdzić, który da mi więcej możliwości.
Wiele też osób stwierdza, że lepiej uczyć się kilku języków programowania.
Zaciekawiło mnie wytwarzanie aplikacji. Wiem też, że zarówno C# jak i java pozwalają na różne rozwiązania.
Wyczytałem w różnych źródłach, że java to aplikacje na androida albo np C# to aplikacje na windowsa tylko.
Jest tez w C# technologia Xamarin. Słyszałem, że za pomocą tej technologii można wygenerować 1 kod na 3 platformy.
Możliwe, że był już taki temat gdzieś na forum. Znalazłem podobne, ale nie takie same.
Mógłby ktoś wyjaśnić mi tak ,,po ludzku" ( w necie są czesto opisane same technologie, które wiele mi nie mówią)

  1. Jakie możliwości daje C# a jakie Java?
  2. Jak te języki sprawdzają się w tworzeniu aplikacji?
  3. Czym różnią się: aplikacje okienkowe, webowe i sieciowe?

Dziękuję za wszelkie rady i przepraszam za moją niewiedzę. Dopiero wkraczam w świat IT :)

0
  1. takie tematy powstaja zapewne codziennie, szkoda ze nie poszukasz nawet chociazby tego forum. I nie, Twoj problem nie jest unikaty/oryginalny
  2. Kazdy jezyk daje takie same mozliwosci jezeli wie co sie robi (oczywiscie sa wyjatki od tego)
  3. nie ma sensu sie uczyc kilku jezykow programoania jezeli nie potrafi sie programowac.
  4. nie ucz sie C++ jako pierwszy jezyk.

A na Twoje pytania... Powaznie podac Ci linki do googla ktore sa setki wynikow i ktore kazde cos wnosi i znalezc Ci te 2-3 linki konkretne? Czy moze znalezc Ci takie tematy na tym forum

W programowaniu szukanie informacji jest kluczowe. Zacznij szukac

0

Akurat C++ miałem narzucone przez studia, więc nie miałem wyboru. Trochę późno wkraczam w temat programowania, ale lepiej późno niż wcale :)
Ok, to postaram się poszukać :)

0

Ja na studiach miałem podobny dylemat i wybrałem taką drogę:

  1. Odrzucenie wszystkiego co jest związane C/C++/C#.
    W 100%. Ewentualnie żeby tylko kompilować umieć (i zainstalować kompilator), sprawdzić jakich bibliotek brakuje i gdzie te biblioteki się wpisuje (#include), wiedzieć co to jest make.
    Napisanie hello world w C/C++.
    I tyle. 1 dzień maks na to. Żadnych książek.
    1b. assembler minimalnie, żeby tylko zakuć zdać zapomnieć. Żadnych książek.
    1c. pascal, delphi jako ciekawostki, maks pół godziny, to co chcą na studiach na minimum. Żadnych książek.
  2. Zaliczenia z C/C++ minimalnie, ledwo na 3.0.
    Ludziom z grupy na początku może wydawać się, że nie umiesz programować, że cię to nie kręci, etc
    I to jest ciekawe bo mamy mainstream vs specjalizacja.
  3. Odrzucenie w 100% "technologii M$" - a więc bez asp.NET, .NET, MS SQL, oczywiście bez C# (nawet hello world nie jest konieczne). Jedyne co trzeba umieć to rozróżnić minimalnie te technologie (czym się różni .NET od C#). Żadnych książek.

pierwszy plus tej decyzji:
ludzie zaczynają programować > wpisują w google "nauka programowania" > google podpowiadają, że "programowanie to pisanie w C/C++" > efekt tego taki, że prawie zawsze (!) początkujący wchodzą w C/C++ > paradoks polega na tym, że dla C/C++ wcale nie ma wielu stanowisk a próg wejścia jest spory > a więc ciężej dostać 1wszą pracę.
Osoba która to przeskoczy może od razu przejść do innych języków. A więc nie traci czasu, a od razu jest "specjalistyczna" względem reszty. Od razu nakierunkowanie na specjalizację.

Po odrzuceniu tych rzeczy, czas na wybór.
Są różne drogi, generalnie można java, czy tam PHP, przejść na Linuxa, zainteresować się serwerami, czy tam big data. Można webdev (JS, HTML, CSS), można ruby + frameworki np RoR.
Jeszcze jest kwestia paradygmatu (obiektowe, MVC), żeby nie zasiedzieć się w nieuporządkowanym kodzie.
Ja generalnie wybrałem taką drogę (PHP + linux + serwery + SQL + bazydanych + a w przyszłości Ruby + RoR) i nie ma problemu z robotą: zarówno pod względem popytu i pod względem kasy.
Najśmieszniejsze, że chciałem iść w javę, ale szybciej robota była w PHP (jakoś łatwiejszy próg wejścia był wtedy). A teraz już za późno (za mała kasa dla juniora byłaby). Ale jakbym mógł cofnąć, to raczej java + bigdata + oracle.

3

to jest częsty dylemat. czy .NET i Windows i MSQL Server, brak konsoli, terminala, SSH, brak wolności wyboru, skazanie się na okna windowsa i maksymalnie używany Peguot czy
Java, Linux, SSH, konsola, terminal, pełny przekrój prawdziwie hakerskich technologii, nmap, skanery sieciowe, polecenia typu ps aux i bazy i serwery i wolność GNU i Mercedes S klasa w leasingu.

moim zdaniem najlepiej dla Ciebie będzie jeżeli wybierzesz Jave i Linuxa. Nauczysz się SQLa też i javascriptu. i jeszcze jak BASHa trochę i trochę pythona żeby sobie optymalizować pracę.
wybierzesz sobie środowisko graficzne. poznasz niskopoziomowo leciutko C albo assamblera - jak to tam pod spodem działa, jak działają pod spodem listy i mapy i drewa splay.
co to jest SOCKET i jak działają usługi sieciowe.
co to są kleszczenia tranzakcji na bazie. jak poznasz Postgresa i H2 i MongoDB i Cassandre i angulara też trochę liźniesz. Style CSS się przydadzą. JSF jak tego używać.
co to jest haproxy i co to jest serwer aplikacyjny. a co to jest Tomcat.

to będzie dla Ciebie najlepsze. Java to jest styl życia. Styl życia hakera

a i ostatnie: nie ma co się ukierunkowywać tylko na webówkę albo appki desktopowe. trzeba umieć po prostu w środku kodu się odnaleźć. czy to w środku logiki biznesowej wielkiej aplikacji krowy, czy przy wystawieniu rest service czy blisko baziny a może w kontrolrze i JSF.
praca nisko przy utrzymaniu wydajności serwerów/mikrousług w C/C++ i baz swoją drogą też jest fajna. być może nawet bardziej emocjonująca niż klepanie formatek, czy wystawianie kolejnego rest serwisu. baza, optymalizacje w środku, logika, planowanie struktur na bazie, big data - to jest fajne a nie jakieś tam C#

0

Jak chcesz mieć otyłość 3 stopnia, pryszcze, tłuste włosy i samodzielne życie seksualne wybierz jave.
Jeśli jednak chcesz zarabiać torbe pieniedzy miesiecznie, jacht w saint tropez, strzelac z RPG w kanionie w Nevadzie to wybierz .NET.

0

Jak chcesz mieć otyłość 3 stopnia, pryszcze, tłuste włosy i samodzielne życie seksualne wybierz jave.
Jeśli jednak chcesz zarabiać torbe pieniedzy miesiecznie, jacht w saint tropez, strzelac z RPG w kanionie w Nevadzie to wybierz .NET.

Zamiast Java zmień na C, Assembler, C++ :)

Java i C# da ci to drugie.

1
  1. takie same
  2. dobrze
  3. desktopowe: to co uruchamiasz na swoim pc (excel, notatnik, saper), okienkowe: patrz desktopowe, webowe: to co otwierasz w przegladarce (facebook, allegro, 4programmers), sieciowe: patrz webowe
0

@Karolinaa ja myślałem że język hakera poza angielskim to C , Lua i Python, ale Java:ooo No czegoś nowego tu się zawsze dowiaduję i co ma wspólnego nmap z Javą czy Oracle :oooo

5

@karmin, ale czego Ty się spodziewasz po swoich pytaniach?

Jak widać, dzieci Linuksa i Javy, których wiedza o IT jest niemalże równa jej wiedzy: , będą polecały swoje ulubione zabawki. Szczęśliwy programista PHP, poleci Ci swoją ulubioną parodię języka programowania. Gość, który od 15 lat klepie apkę w WinFormsach, poleci Ci C#, bo zwyczajnie niczego innego nie zna.

Spróbuj różnych języków, napisz w każdym podobną aplikację i sam stwierdź, co Ci się najbardziej podoba.

0

Zrób jak somekajnd Ci mówi. Sam tak zrobiłem zaczynając zabawe w programowanie. Napisałem dosyć proste aplikacje w 5-6 technologiach/jezykach, przeklikałem sobie popularne IDE do tych technologii i po krótkim czasie wybrałem to w czym tworzenie aplikacji wydało się dla mnie najprzyjemniejsze.

3

user image
:)

0
  1. Jakie możliwości daje C# a jakie Java?

Jako języki - podobne. Powszechnie mówi się o tym że C# to majkrosoftowa odpowiedź na Jave.

Jako środowiska: zupełnie różne. Jeden wyjątek to Hibernate (Java) i NHibernate (C#).

Więcej szczegółów:
https://en.wikipedia.org/wiki/Comparison_of_C_Sharp_and_Java
https://en.wikipedia.org/wiki/C_Sharp_%28programming_language%29
https://en.wikipedia.org/wiki/Comparison_of_the_Java_and_.NET_platforms

  1. Jak te języki sprawdzają się w tworzeniu aplikacji?

To są aktualnie wiodące na rynku języki (pod względem popularności w budowaniu aplikacji). Podejrzewam więc że całkiem nieźle.

  1. Czym różnią się: aplikacje okienkowe, webowe i sieciowe?
  • okienkowe/desktopowe: aplikacje uruchamiane bezpośrednio na komputerze klasy PC, często bez wymogu podłączenia do internetu. Przykład: Notatnik, Excel.
  • webowe: aplikacje które generują ekrany zdalnie na komputerze użytkownika przy użyciu technologii przeglądarkowych: HTTP, HTML, CSS, JavaScript, SSL, wymagają internetu. Przykład: allegro.pl
  • sieciowe: aplikacje okienkowe lub backoffice (konsola/demon) które łączą się z innymi komputerami przy pomocy własnych protokołów sieciowych - przez LAN lub internet. Przykład: serwer gry sieciowej, Gadu Gadu/Skype

Są jeszcze:

  • mobilne: aplikacje uruchamiane na telefonach/tabletach, mogą ale nie muszą wymagać internetu
  • konsolowe: aplikacje uruchamiane w trybie tekstowym pełnoekranowym (kasy w sklepie) lub w okienku terminala (np. Lynx)
  • embedded: aplikacje uruchamiane na komputerach jednoukładowych/Rasbperry Pi/itp.
  • rozproszone: działające na wielu komputerach jednocześnie, przykład: SETI
0

Dziękuję za rady :)
Czego oczekuję? Po prostu porady od kogoś, kto ma doświadczenie w tym i zechce coś od siebie powiedzieć na ten temat :)
Po prostu mam też jave na 4 semestrze studiów i myślałem żeby teraz zapoznać się z c# a potem ( z przymusu nawet, bo studia) zająć się java i wtedy będę wiedział :)
Moja wiedza póki co jest mała a że nie myślę o pracy to chciałbym zająć w wolnym czasie np nad wytwarzaniem aplikacji, bo myślę, że mogę tym się dobrze zainteresować :)

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