Nie wiem co dalej robić

Witam
Mam pytanie do wszystkich programistów na tym forum. Nie wiem w którą stronę mam się dalej kształcić, web czy desktop. Jeżeli chodzi o moje umjejętności z weba to znam perfekcyjnie HTML, bardzo dobrze CSS i dosyć dobrze JavaScript. Z desktopa znam Pascal, C++, Objective C++ i troszeczkę Jave. Proszę o pomoc i z góry dziękuję.

A co Ci sprawia większą przyjemność?

1 polubienie

Wszystko co umiesz to jedynie dobre podstawy dla jednej z dwóch dróg.
Jeśli więcej przyjemności sprawia Ci desktop to teraz pytanie czy MacOS czy może Windows, jak MacOS to porzuć O-C i ucz się Swift, jeśli Windows to C#. C/C++ to tylko i wyłącznie praca w embeded soft, java to masa starego korporacyjnego softu znów.
Natomiast jeśli wolisz web to musisz się jeszcze zdecydować czy backedn czy frontend, obecnie znasz tylko podstawy frontendu.

Dzięki za podpowiedź. Mam Windows także zacznę naukę C#. Faktycznie większą ,zabawę" daje mi desktop. Jeszcze jedno. Za jakieś 3 lata planuję przesiadkę na Maca. Teraz pytanie czy jak poznam C# to czy warto przerzucać się na Swift czy kontynuować to co zacząłem?

Sama znajomość języka to jest dosłownie dwa dni nauki, a utrwalenie pewnych fajnych feature’ów to powiedzmy kolejny tydzień pisania kodu. W programowaniu ważniejsze od znajomości samego języka jest znajomość ekosystemu zbudowanego w okół niego, a ten poznawać możesz nawet i kilka lat. Im lepiej znasz biblioteki i całe API języka tym lepszy kod tworzysz, lepszy i szybszy oraz szybciej.
Więc czy warto to zależy od sytuacji za 3 lata i czy coś nie zastąpi swifta albo C#. Przerzucić się na inny język za 3 lata o ile naprawdę dobrze będziesz umiał programować to będzie jak pstryknięcie palcami, ale przerzucić się na drugi ekosystem nie będzie takie proste z dwóch powodów. Środowiska programistyczne są bardzo rozbudowane i złożone, a ich poznanie wymaga sporo czasu, druga sprawa to są przyzwyczajenia i to może okazać się najbardziej zabójcze.

Dzięki za odpowiedź. Może faktycznie nie warto zmieniać systemu.

Weź jeszcze pod uwagę obecny trend, że większość usług przenosi się do sieci/chmury/aplikacji internetowych, a komputer pełni tylko rolę terminala czy cienkiego klienta. Ma to tę przewagę, że łatwo portować aplikację na różne systemy (w przypadku aplikacji internetowej w zasadzie mamy to od razu zrobione, bo przeglądarkę otworzysz zarówno na smartfonie, tablecie, pececie jak i telewizorze).
Desktop sprawdza się generalnie w 3 przypadkach:

  • musi działać offline
  • mamy bardzo duże ilości danych (np. gigabajty zdjęć czy materiałów wideo) które przechowujemy lokalnie i nie chcemy czekać kilku godzin na wgranie ich do chmury żeby rozpocząć obróbkę a następnie ściągać to z powrotem by zobaczyć efekt
  • mamy wrażliwe dane i musimy je trzymać lokalnie u siebie na komputerze, a nie u kogoś na serwerze

Pozostałe rodzaje aplikacji są w zasadzie przeniesione już do internetu.

Weź to pod uwagę :slight_smile:

1 polubienie

Tak oczywiście masz rację, jest to prawdopodobny rozwój wytwarzania softu. Faktycznie zapomniałem o tym, ale to z tego powodu, że nie bardzo wierzę, że to się stanie z kilku powodów. Poza tym dużo aplikacji pomimo iż posiada swoją wersję w przeglądarce nie ma tak dużej popularności jak ich dedykowane odpowiedniki.
Na tą chwilę to jest 50/50, jedyny plus takich aplikacji to jest przenośność kodu (wieloplatformowość), jednak osobiście nie wierzę w takie rozwiązania. Jest to temat na osobny wątek więc się nie rozpisuję, dobrze jednak, że o tym wspomniałeś bo to jest mimo wszystko istotny trend :wink: .

1 polubienie

BTW nie mam pojęcia dlaczego zacytował się Twój fragment wypowiedzi :smiley: Nie miałem takiej intencji… A wątek o przenoszeniu do chmury już był na forum - ale nie mogę go znaleźć :frowning:

HA! jednak mam :slight_smile: Chmura i przyszłość aplikacji

Czyli programowanie webowe jest bardziej uniwersalne jezeli chodzi o dostępność. A w desktopie musiałbym to optymalizować pod dany system tak? W sumie to web nie jest taki zły a z tego wynika że dużo ,prostszy" od desktopa.

Z prostotą jest odwrotnie. Tak otrzymasz aplikację którą uruchomić powinieneś w każdej przeglądarce, jednak przeglądarki w różnym stopniu mają zaimplementowane standardy i nie na wszystkich opcja A danego standardu musi działać. W praktyce to na tobie będzie spoczywało zapewnienie obsługi różnych przeglądarek. Dodatkowo aplikacja w przeglądarce nie jest tak wydajna jak normalna i jak przesadzisz szybko uzyskasz muła. Pomijam już że z poziomu przeglądarki nie masz dostępu do wielu rzeczy i możliwości.
WebDev jest dużo bardziej skomplikowany, wystarczy popatrzeć na to, że dzieli się on już na Frontend, Backend a w ostatnim czasie mówi się jeszcze o DevOps. W przypadku desktopu masz C#, WPF, ewentualnie asp.net i zrobisz w tym aplikację na desktop i jeszcze serwer z webowym api postawisz. Minus taki, że będzie to działało tylko na Windowsie, a jak będziesz chciał to samo zrobić na Maca to wszystko przepisujesz na Swifta.

Co do języków to też uczę się jeszcze programować i jestem coraz bliżej wejścia na drogę zawodową ale mimo to jestem zdania, że nieważne w jakim języku programujesz, najważniejsze aby nauczyć się myśleć jak programista, wtedy nauka każdego kolejnego języka programowania będzie sprawiała mniej kłopotu.

2 polubienia

No to będę musiał się jeszcze zastanowić. Na razie jednak zajmę się desktopem.