Jak zabrać się za programowanie?

0

Tylko, zawsze i wszędzie - assembler :)

1
kaczus napisał(a):

A ja powiem, że bez różnicy, czy będzie uczył się C++, czy innego języka, programować może nauczyć się w każdym.
Nie wiem ponadto co w C++ jest zniechęcającego (w kontekście do innych języków)?

To jest ogólnie tylko takie gadanie na poziomie akademickim i jak dla mnie jest to czysta abstrakcja. Czy brałeś pod uwagę fakt, że niektóre technologie odchodzą już jakby do lamusa a nauka takiego C++ (i jeszcze programowanie w praktyce) zajmie takiemu zapaleńcowi nie dni, nie miesiące ale pewnie długie lata? Podobnie można by rozpatrywać również object pascal (DELPHI/LAZARUS czy co tam jeszcze innego). Chodzi mi o dojście do tzw. poziomu master.

Druga sprawa to jest jeszcze to na co taki zapaleniec ma się nastawić. Aplikacje desktopowe? Tylko jakie jest obecnie zapotrzebowanie na tego typu aplikacje? Aplikacje web? Pewnie, dobry wybór, zapotrzebowanie duże, tylko że trzeba również wziąć pod uwagę fakt, że początkujący musi przecież jakoś przebić się przez konkurencję (bo takich początkujących z jakimś małym doświadczeniem to jest teraz mnóstwo).

Specjalizacja wydaje się być tu kluczem, tylko co jak taki rasowy młody programista wyceluje w technologie na które nie ma zapotrzebowania albo wymierają?

Tu nie chodzi o same umiejętności i znajomość perfect określonego języka programowania tylko o to jak to się przekłada na perspektywy zarobków, bo jak ktoś chce coś pisać tylko dla siebie albo w ramach wolontariatu OS, technologia którą wybierze w zasadzie nie ma znaczenia.

Sprawa trzecia, samodzielna nauka vs. współpraca ze specjalistami. Ile trzeba zapaleńcowi żeby samodzielnie doszedł do takiego poziomu jaki reprezentują profesjonaliści?

C++ nie nadaje się do szybkiego i łatwego tworzenia aplikacji desktopowych, tu z DELPHI jest o niebo lepiej a jeszcze przyjemniej sprawa wygląda z C#, bo pod .NET jest od groma bibliotek a i taki VisualStudio czy SharpDevelop to dobre narzędzia do tworzenia takich aplikacji.

1
drorat1 napisał(a):
kaczus napisał(a):

A ja powiem, że bez różnicy, czy będzie uczył się C++, czy innego języka, programować może nauczyć się w każdym.
Nie wiem ponadto co w C++ jest zniechęcającego (w kontekście do innych języków)?

To jest ogólnie tylko takie gadanie na poziomie akademickim i jak dla mnie jest to czysta abstrakcja. Czy brałeś pod uwagę fakt, że niektóre technologie odchodzą już jakby do lamusa a nauka takiego C++ (i jeszcze programowanie w praktyce) zajmie takiemu zapaleńcowi nie dni, nie miesiące ale pewnie długie lata? Podobnie można by rozpatrywać również object pascal (DELPHI/LAZARUS czy co tam jeszcze innego). Chodzi mi o dojście do tzw. poziomu master.

Widać w przemyśle o tym nie wiedzą i cały czas mam oferty programowania w Delphi, C, C++. Co do samej akademickiej dyskusji pokusiłem się o mały artykuł na temat wyboru ścieżki nauki programowania.

Druga sprawa to jest jeszcze to na co taki zapaleniec ma się nastawić. Aplikacje desktopowe? Tylko jakie jest obecnie zapotrzebowanie na tego typu aplikacje?

Najpierw taki zapaleniec musi nauczyć się programować, czy nauczy się na pisaniu programów desktopowych, webowych, czy embeded - nie ma znaczenia. Musie wiedzieć na czym to polega, jakich algorytmów może użyć itd.

Aplikacje web? Pewnie, dobry wybór, zapotrzebowanie duże, tylko że trzeba również wziąć pod uwagę fakt, że początkujący musi przecież jakoś przebić się przez konkurencję (bo takich początkujących z jakimś małym doświadczeniem to jest teraz mnóstwo).

Jeśli nie nauczy się programować, to nie przebije konkurencji nigdy.

Specjalizacja wydaje się być tu kluczem, tylko co jak taki rasowy młody programista wyceluje w technologie na które nie ma zapotrzebowania albo wymierają?

Specjalizowac to sie można, jak się ma podstawy ku temu. Najpierw trzeba je zdobyć.

Tu nie chodzi o same umiejętności i znajomość perfect określonego języka programowania tylko o to jak to się przekłada na perspektywy zarobków, bo jak ktoś chce coś pisać tylko dla siebie albo w ramach wolontariatu OS, technologia którą wybierze w zasadzie nie ma znaczenia.

Przepraszam, ale programować (od podstaw) człowiek nie uczy się w 3 miesiące - potrafisz przewidzieć co będzie za 5 lat? Pamiętam jaki bum był w inwestycje kasków 3d - i co minęło kilkanaście lat i jakoś wysypu takowych nie widzę... A nie - przepraszam, ostatnio na jakiś targach ktoś znów próbował odgrzać temat - no ale widzę, że wymagasz od osoby rozpoczynającej zabawę z programowaniem, że przewidzi co będzie za 3-5 lat, czego jak widać nie potrafią przewidzieć osoby będące w branży.

Sprawa trzecia, samodzielna nauka vs. współpraca ze specjalistami. Ile trzeba zapaleńcowi żeby samodzielnie doszedł do takiego poziomu jaki reprezentują profesjonaliści?

Nie ma jednego rozwiązania - najlepiej zacząć od nauki własnej, następnie w jakiejś grupie, ale zawsze warto mieć obok siebie kogoś wiedzącego więcej.

C++ nie nadaje się do szybkiego i łatwego tworzenia aplikacji desktopowych, tu z DELPHI jest o niebo lepiej a jeszcze przyjemniej sprawa wygląda z C#, bo pod .NET jest od groma bibliotek a i taki VisualStudio czy SharpDevelop to dobre narzędzia do tworzenia takich aplikacji.

Wszystko zależy od systemu - co z tego, ze stworzę super aplikację w delphi, jeśli np moim docelowym systemem będzie np MorphOS, gdzie z racji nikłego zainteresowania nawet ostatni port fpc jest bardzo leciwy, o takich rzeczach, jak niekompatybilne GUI nawet nie wspomnę. A jak będę chciał stworzyć jakąś aplikację na sterownik działający pod RTOS-em, to tam GUI też będzie zapewne inne - sam sposób jego projektowania nie odbędzie się ani w delphi, ani w vs... No tak, ale znajomość czegoś po za windowsem widać niektórych przeraża...

0

Osobiście polecam VisualBasic. Takie troszkę budowanie z klocków, ale według mnie najbardziej czytelny. Sam od tego zaczynałem i uważam, że na początek jest idealny. Składnia jak dla idiotów, raczej nie napracowano się nad optymalizacją czasu pracy programisty. W składni mało skrótów myślowych, a podstawowe zasady podobne jak w innych językach. Dość przyzwoita jest również pomoc na przeróżnych forach. W ramach treningu polecam napisanie kalkulatora, na początek mało skomplikowanego, a na koniec czegoś na wypasie. Zadanie daje fajne podstawy na początek i bardzo łatwo można je skomplikować.

0
kaczus napisał(a):

Widać w przemyśle o tym nie wiedzą i cały czas mam oferty programowania w Delphi, C, C++.

Masz, bo jesteś doświadczony. Zanim początkujący nauczy się C++ w stopniu pozwalającym sensownie pracować, zdąży się nauczyć cztery razy więcej w bardziej biznesowej technologii.

No tak, ale znajomość czegoś po za windowsem widać niektórych przeraża...

A może po prostu "niektórych" nie interesują systemy, z których korzysta kilka osób na świecie?

0

Zamiast dywagowac i robic watek na cztery strony, po prostu zacznij cos robic, np. przerob ten kurs: http://learnpythonthehardway.org/ Jak bedziesz to ogarnial, bedzie Ci latwiej wybrac co dalej (IMHO warto pozniej przerobic podobny kurs o C)

0

@somekind Jak zaczynałem studia to mówiło się, że Pascal się kończy, mieliśmy zajęcia jeden semestr - później można było ew korzystać na metodach numerycznych z pascala, ja jako, że uwierzyłem, uczyłem się innych języków (moze i na dobre mi to wyszło), po zakończeniu studiów, szukałem pracy i okazało się, że praca jest, ale trzeba znac Pascala (całe szczęście zanim poszedłem na studia kilka lat w szkole średniej uczyłem się pascala na zajęciach w liceum i na kółku informatycznym - więc musiałem sobie przypomnieć troszkę...). Więc kategorycznie co będzie za 5 lat nie chcę pisać, bo od czasu gdy skończyłem studia minęło już kilkanaście lat i pascal dalej jest w przemyśle i dalej mogę zarabiać na jego znajomości....

1

Tylko to, że llegacy code zawsze będzie w przemyśle niczego nie udowadnia. Do legacy code potrzebni są eksperci. Zanim początkujący zostanie ekspertem w C++ minie np. 15 lat, a w C# czy Javie 5 lat, i będzie przy tym zarabiał więcej.

1
somekind napisał(a):

Zanim początkujący zostanie ekspertem w C++ minie np. 5 lat, a w C# czy Javie 2 lata,

Od zera do eksperta-kodera w dwa lata?

0

Kurcze, tyle się pisze o czasie potrzebnym do nauki kodowania, ale przecież bardziej chodzi o jakość tego czasu, a nie ilość. 5 lat pracy w domu po godzinach to może być naprawdę mniej niż 3 miesiące ogarniania w domu + 1 rok stażu/juniorstwa w konkretnej firmie. Imho lepiej przeczytać Sicpa, jakiś podręcznik do konkretnego języka obiektowego, head first designy i dawać po praktykę (i tak znam mnóstwo regularów którzy nawet tego nie wiedzą a spokojnie pracują).
Jasne, programowania trzeba się nauczyć i koszt wejścia jest spory, ale bez przesady.

0
kaczus napisał(a):

Najpierw taki zapaleniec musi nauczyć się programować, czy nauczy się na pisaniu programów desktopowych, webowych, czy embeded - nie ma znaczenia. Musie wiedzieć na czym to polega, jakich algorytmów może użyć itd.

To nie jest takie proste. Pisałeś kiedyś coś z komunikacją szeregową z jakąś elektroniką na bazie jakichś protokołów transmisji, gdzie na bazie dokumentacji wiele rzeczy często może być niejasnych? Jakieś zaawansowane i szybkie algorytmy np. kompresja, przetwarzanie sygnałów czy parsery plików? Sztuczna inteligencja? Zaawansowane systemy do kontroli ruchu drogowego? Jak dużą trzeba mieć wiedzę (i nie tylko z zakresu programowania) żeby się czymś takim zajmować?

Zresztą wydaje mi się, że jest taka poprzeczka, którą wielu śmiałków nie ma szans przeskoczyć chociażby ze względu na poziom swojego IQ.

Jeśli nie nauczy się programować, to nie przebije konkurencji nigdy.

Myślisz że w tym przypadku same umiejętności wystarczą? A co z umiejętnościami sprzedażowymi? Nie mniej istotne, bo albo jesteś bardzo dobry i masz wyrobioną markę, albo idziesz po taniości, jak to ma miejsce na Oferii czy innych takich aukcjach. Gdzie tu jest miejsce dla średniaków?

Przepraszam, ale programować (od podstaw) człowiek nie uczy się w 3 miesiące - potrafisz przewidzieć co będzie za 5 lat?

No ja akurat nie ale widocznie są tacy co potrafią. Jak myślisz skąd się wzięło np. to naganianie na informatykę? To się z czegoś wzięło, rozwój internetu, tak samo jak coraz lepsze telefony to i oprogramowanie będzie.

Ktoś na GL twierdził, że w niedalekiej przyszłości będą wkręcać na bezpieczeństwo międzynarodowe. Może coś jest na rzeczy? Z czegoś to wynika? Tu się na tych forach wszystko sprowadza do tego, czy w ogóle warto obecnie wchodzić w IT a młodzi pytają nader często, gdzie jakby nie było sama nauka zajmuje lata. Mogę się założyć, że za te kilka, może kilkanaście lat pismaki nie będą już przedstawiać IT w takich świetlanych barwach.

0

Żeby pracować z legacy code trzeba mieć sporo doświadczenia z legacy code, znać różne haki i nietypowe zachowania języka, znać typowe błędy, znać zachowania starych technologii. To można zdobyć jedynie przez parę lat rzeźbienia w słabym i starym kodzie, na pewno nie nauczy się tego w 1,5 roku pracy w firmie realizującej nowe projekty w nowych technologiach.

0
drorat1 napisał(a):
kaczus napisał(a):

Najpierw taki zapaleniec musi nauczyć się programować, czy nauczy się na pisaniu programów desktopowych, webowych, czy embeded - nie ma znaczenia. Musie wiedzieć na czym to polega, jakich algorytmów może użyć itd.

To nie jest takie proste. Pisałeś kiedyś coś z komunikacją szeregową z jakąś elektroniką na bazie jakichś protokołów transmisji, gdzie na bazie dokumentacji wiele rzeczy często może być niejasnych? Jakieś zaawansowane i szybkie algorytmy np. kompresja, przetwarzanie sygnałów czy parsery plików? Sztuczna inteligencja? Zaawansowane systemy do kontroli ruchu drogowego? Jak dużą trzeba mieć wiedzę (i nie tylko z zakresu programowania) żeby się czymś takim zajmować?

Poza sztuczną inteligencją na pozostałe pytania odpowiedź jest TAK

Przepraszam, ale programować (od podstaw) człowiek nie uczy się w 3 miesiące - potrafisz przewidzieć co będzie za 5 lat?

No ja akurat nie ale widocznie są tacy co potrafią. Jak myślisz skąd się wzięło np. to naganianie na informatykę? To się z czegoś wzięło, rozwój internetu, tak samo jak coraz lepsze telefony to i oprogramowanie będzie.

Jest naganianie ogólnie na kierunki techniczne, bo właśnie ktoś kilka lat temu nie sądził, ze to będzie potrzebne...

1

@członek zarządu Porównanie do lekarzy jest trochę nietrafne. Po pierwsze, jeśli chodzi o zawód programisty to (przynajmniej u nas) nie trzeba żadnych uprawnień żeby ten zawód wykonywać. Po drugie, dostęp do wiedzy jest obecnie na tyle łatwy i powszechny, że w praktyce więcej pasjonatów zacznie się uczyć. Po trzecie, w takiej grupie 1000 potencjalnych studentów informatyki, zawsze się znajdzie jakiś procent (niech to będzie nawet ten 1%) tych którzy coś faktycznie potrafią i dobrze rokują. Oczywiście rekrutując takiego zawsze można uwalić, tu nie ma problemu.

@LukeJL Wyjazd za granicę? Spoko. Tylko że weź pod uwagę, że jak masz rodzinę to i dla żony musi się też coś znaleźć, no chyba że jesteś na tyle zaradny, że sam jesteś w stanie utrzymać rodzinę ale i tu sprawa nie jest taka prosta. Mówię o wyjeździe, nie każdy ma możliwość i ochotę.

Ja to analizuję z perspektyw zapotrzebowania na usługi i oprogramowanie. Takie coś jak globalizacja coś Ci mówi? Pracując zdalnie z Polski możesz być tańszy od takiego Anglika z wiadomych względów, trzeba jednak wziąć pod uwagę że w tym przypadku konkurujesz z potencjalnie niemałą liczbą wcale nie gorszych od Ciebie ale potencjalnie tańszych programistów z innych krajów więc konkurencyjnych.

Kolejna sprawa: open source. Niby fajne, tylko tak się zastanawiam czy nie niszczy choć po części rynku. Bo ktoś to napisał i jest za darmo nawet do celów komercyjnych (tak jest często) i praktycznie jakiś programista z małą wiedzą ale za to z z dobrym marketingiem może coś zrealizować i konkurować z firmami cudzym kosztem.

Generalnie to naganianie powinno się przyczyniać do zaspokojenia zapotrzebowania w IT, natomiast trzeba również zdawać sobie sprawę z tego, że prawa rynku są tu bezlitosne.

1
drorat1 napisał(a):

Kolejna sprawa: open source. Niby fajne, tylko tak się zastanawiam czy nie niszczy choć po części rynku. Bo ktoś to napisał i jest za darmo nawet do celów komercyjnych (tak jest często) i praktycznie jakiś programista z małą wiedzą ale za to z z dobrym marketingiem może coś zrealizować i konkurować z firmami cudzym kosztem.

Nie tyle konkurencja, co pozwala niższym kosztem wejść na rynek. Nie trzeba pisać za każdym razem wszystkiego od początku, tylko trzeba umieć to wykorzystać. Po prostu trzeba zmienić troszkę model biznesowy i można na tym również zarobić.

0
kaczus napisał(a):

Nie tyle konkurencja, co pozwala niższym kosztem wejść na rynek.

W praktyce więc to będzie oznaczało więcej firm, większa konkurencja więc i niższe ceny. Prosty przykład: ta sama aplikacja desktopowa w DELPHI vs. Lazarus, tworzona na zlecenie jakiegoś klienta. Za DELPHI trzeba słono wybulić, tak samo jak i za płatne komponenty, więc będzie drożej. Wiadomo że często klienci lecą po cenie, więc firma która używa DELPHI musi się dostosować (w praktyce jednak można by się tutaj obronić, ponieważ Lazarus niestety wciąż jeszcze pozostawia wiele do życzenia, ogólnie nie jestem za bardzo zadowolony, mogą być problemy jeśli chodzi o zachowanie okienek, połączenia przez COM czy też z wydajnością). To samo jeśli chodzi o Photoshopa vs. GIMP czy inne tego typu programy.

Korzyści tutaj dostrzegam raczej w kontekście wymiany barterowej, ogólnie jest wiele korzyści z open source, jednak ma to i ciemne strony.

Z perspektywy programisty wolontariusza, ten to raczej niewiele z tego będzie miał. Robiłem coś właśnie w tym obszarze z zakresu sztucznych sieci neuronowych, jak również coś pod Kohana (własny moduł), także pod Arduino, na razie jednak nie mam tu pomysłów jak by na tym zarobić.

0

@drorat1 Popatrz na to z drugiej strony, dzięki temu, ze jest konkurencja ceny narzędzi nie są na poziomie abstrakcyjnym i zaczynają ze sobą konkurować. Delphi i Lazarus to bardzo złe przykłady - Lazarus moim zdaniem jest cały czas niedokończony, przez co za narzędzia delphi trzeba płacić jak za zboże (nie wspomnę o dziwnych akcjach typu, że w hameryce można kupić dużo taniej niż w ue...

Po prostu - tak samo jak w muzyce i innych gałęziach, gdzie nowa technologia zmienia sposób działania przemysłu, trzeba się dostosować i wykorzystać to co się otrzymuje.

Jeśli chodzi o wolontariat - to mam znajomych, którzy od hobbystycznych poprawek zaczynali w takim linuksie, teraz zarabiają całkiem poważne pieniądze za prace przy tym systemie. Inny wymierny zysk, to czasami jakieś piwo na jakimś party ktoś postawi, bo jest zadowolony z jakiejś pchełki, którą robiłem dla siebie i udostępniłem innym...

0
kaczus napisał(a):

@drorat1 Popatrz na to z drugiej strony, dzięki temu, ze jest konkurencja ceny narzędzi nie są na poziomie abstrakcyjnym i zaczynają ze sobą konkurować.

Ceny są na poziomie ustalonym przez rynek. Mówiąc prościej, tyle to kosztuje ile jest w stanie zapłacić klient. I tak było, jest i będzie. Jeśli chodzi o DELPHI vs. Lazarus chodziło mi przede wszystkim o to, że za DELPHI się słono płaci a za Lazarusa nie. Tzn. tak zakładam (pomijam już akcje typu support czy jakieś szkolenia albo dedyki za kasę). Zakładam również że to co oferuje Lazarus jest satysfakcjonujące aby robić oprogramowanie komercyjne ale w praktyce może być z tym problem, ze względu na niedociągnięcia, które są.

Podobnie można by porównywać MS Visual Studio vs. Sharp Develop, używam SharpDevelop 3.2 .NET 3.5 i to z powodzeniem. Jak na moje doświadczenia z Lazarusem, nie bardzo mam teraz chęci zabierać się za jakieś bardziej złożone projekty komercyjne na zlecenie (i tutaj chodzi mi właśnie o niedociągnięcia, co może stwarzać problemy). Kiedyś byłem tym tak zachwycony, że nie widziałem świata poza tym IDE, dopiero zapoznanie się z innymi technologiami daje tak naprawdę jakiś w miarę dobry obraz tego wszystkiego.

Jakby nie było, jeśli używasz DELPHI czy Visual Studio tu musisz naliczyć więcej za swoją robotę ze względu na to że opłacasz licencję, co do bezpłatnych narzędzi możesz po prostu celować w jakichś mniej zamożnych klientów. Te bezpłatne narzędzia są właśnie wybierane zapewne przez firmy nie dysponujące odpowiednim budżetem i tu masz rację, stosunkowo małym kosztem można wejść na rynek.

Wielu freelancerów właśnie narzeka na to rzekome psucie rynku i padają właśnie argumenty typu że ktoś ma GIMP-a to zrobi coś taniej. A prawda jest taka, że klienta który często nie zna się (bo nie musi) na tych technologiach i oprogramowaniu nie obchodzą faktyczne koszty poniesione przez wykonawcę.

0

@drorat1 Różnica którą musiałbym doliczyć za środowisko jest zaniedbywalna, ponieważ odpowiednio liczę sobie za poświęcony czas. Ale fakt - są tu kozacy co chcą pracę domową po dumpingowych cenach 50zł odrabiać, jak im się to opłaca, to ich problem. W dawnych czasach, gdy dystrybucje linuksa nie były tak jak obecnie rozpowszechnione i tak dopracowane (choć jeszcze im trochę brakuje), to kolega po bojach z linuksem na jednej mniej typowej konfiguracji stwierdził "Mówią że linux jest darmowy - a to nie prawda, trzeba płacić czasem". Oczywiście i darmowe narzędzia można sobie skonfigurować tak, że będą biły na głowę te kupione za ciężkie pieniądze, ale tu znowu - trzeba mieć dużą wiedzę, więc to się równoważy. A co by nie mówić, to w zawodzie programisty liczy się wiedza, więc to, że ktoś zarobi więcej dzięki swojej wiedzy jest jak najbardziej fair.

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