Nie wiem co dalej robić


(pitrowskiadam) #1

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ę.


(bachus) #2

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


(Fizyda) #3

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.


(pitrowskiadam) #4

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?


(Fizyda) #5

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.


(pitrowskiadam) #6

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


(hindus) #7

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:


(Fizyda) #8

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: .


(hindus) #9

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


(pitrowskiadam) #10

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.


(Fizyda) #11

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.


(Clank) #12

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.


(pitrowskiadam) #13

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