Jak pokierować nauką

0

Witam serdecznie.
Chciałbym zaczerpnąć rady od bardziej doświadczonych kolegów. Na studiach zacząłem uczyć się C++, bardzo spodobał mi się ten język i z wielką chęcią do niego siadałem, niestety z tego co zrozumiałem z internetu/od kolegów służy on głównie do programowania gier co mnie zniechęciło do kontynuacji, ponieważ nie czuję do tego "pociągu" i z pozytywnym myśleniem stwierdziłem że z innym językiem będzie podobnie mi się dobrze pracować i skoro aplikacje webowe są wszędzie to czas na język typowo pod nie.
Czar trochę prysł, odkąd zacząłem uczyć się C# i bawić się w ASP.NET zupełnie mi się nie spodobało, doszedłem do wniosku, że aplikacje webowe chyba w ogóle nie są dla mnie bo z frontem było jeszcze gorzej - przeraża mnie ilość frameworków i paczek i nie czuje żadnej radości przy programowaniu a raczej frustracje.
Kierując się ku sednu sprawy, uwielbiam algorytmy, uwielbiam cały dzień spędzić nad myśleniem nad rozwiązaniem danego problemu, uważam się też za nienajgorszego matematyka, czy mógłby ktoś mi polecić język oraz ścieżkę rozwoju gdzie mógłbym głównie skupić się na algorytmice/wymyślaniu ciekawych rozwiązań a jednocześnie żeby za rok/półtora dostać pracę. Oczywiście wiem, że nauka nowych rzeczy jest konieczna tylko czy mam słuszne wrażenie że w aplikacjach webowych jest jej ogrom? Chętnie wysłucham doświadczonych kolegów, w którą stronę iść jeśli nie w aplikacje webowe.

Z góry dziękuję za każdą odpowiedź.

4

Dobra to ja będę pierwszy: IMHO jeżeli zostaniesz programistą to ni cholery nie będziesz robił ciekawych, algorytmicznych rzeczy. Większość projektów w których pisałem to aplikacje / serwisy webowe gdzie nie ma absolutnie żadnej filozofii. Tylko walidacja, mapowanie, odpytanie serwisu dostawcy. Repeat. Co prawda miałem oferty do "futurystycznych" projektów typu: pisanie aplikacją kliencką na statkach/samochodach ale duża większość projektów to nudne odwzorowywanie biurokracji w systemie informatycznym. To tak wstępem uświadomienia.

Jeżeli chodzi o tech. w sumie też nie masz dużego wyboru bo większość roboty to: Java/C#/React/Angular repeat. Różnica jest taka że czasem chcą sam front, raz sam backend a raz both. Więc na twoim miejscu przeprosiłbym się z .NETem.

Pozbądź się swoich wyobrażeń, popatrz na oferty a wnioski nasuną się same.

4

Na studiach zacząłem uczyć się C++, bardzo spodobał mi się ten język i z wielką chęcią do niego siadałem

Żeby wykształcić dobry smak w doborze narzędzi, potrzeba wielu lat programowania. Ten błąd niech będzie Ci wybaczony.

Jeżeli lubisz algorytmy to:

  • Pozostanie na uczelni i robienie PHD (bardzo słaba kasa, dużo roboty)
  • Skończenie dobrej uczelni, dostanie się do Googla (pewnie będzisz klepał najnudniejsze rzeczy pod słońcem, ale raz na jakiś czas będziesz rekrutował innych i tam będą się pojawiać hardcorowe algosy)
  • Praca w jakimś niszowym startupie / firmie, jest sporo małych firm robotycznych, czy symulacji tkanin, czy syntezy głosu. Trudno się do takiej firmy dostać, ale to możliwe. Ale nawet tam ciekawa praca to będzie jakieś 10%, a reszta to nudny overhead...

Osobiście radzę wejść w systemy rozproszone, to jest stricte backend. Tam wiedza algosowska jest przydatna, ten obszar dosyć intensywnie się rozwija (np. algorytmy rozproszonego konsensusu).
Inna ciekawa działka to sztuczna inteligencja, to może być hit za 10 lat na rynku.

czy mógłby ktoś mi polecić język oraz ścieżkę rozwoju gdzie mógłbym głównie skupić się na algorytmice/wymyślaniu ciekawych rozwiązań a jednocześnie żeby za rok/półtora dostać pracę

Jak chcesz robotę na szybko to niestety tylko webdev, ewentualnie backend. Radzę poszukać po startup'ach jeżeli jesteś dobry z algo, nie będą wymagać znajomości bibliotek. Popytaj kolegów. Jak jesteś z wawy to pisz na priv, dam namiary na parę firm które mogą Ciebie zainteresować...

3

Multum pomocnych spostrzeżeń i cennych wskazówek znajdziesz tutaj: https://prog21.dadgum.com/ To nie jest mój blog, ale pozwolił na pewne rzeczy spojrzeć z innej perspektywy, wg mnie pozycja obowiązkowa jeśli przejmujesz się językiem / ramami.

A tak ode mnie, rzeczy jakie chciałbym dodać to:

  1. Pozyskiwanie wymagań i ich weryfikacja jest ważniejsza od tego niż to jak kodujesz. Niezależnie gdzie pracujesz czy to korpo, średnia, mała czy nawet własna firma. Jeśli wiesz CO należy zrobić i DLACZEGO jesteś w stokroć lepszej sytuacji niż osoba, która koncentruje się na pytaniu JAK.

Osoba, która jest zdolna do robienia tego co inni jej wyznaczą - podkreślam niezaleznie od języka! - będzie na marginesie, będzie wymiennym pionkiem, nigdy nie wykorzysta potencjału jaki w niej drzemie.

  1. Praca nie jest straszna. Bądź po prostu leniwy, pozwól tematom dojrzewać, zapanuj nad własnym temperamentem, a szybko zorientujesz się, że nie trzeba tak ciężko pracować, aby dobrze zarabiać. Nie rób od zera, bo klienci i tak nie docenią wkładu. Po prostu działaj tak, aby Twój interes i interes ludzi dookoła był na plus. W pracy nie pisz od zera algorytmów, korzystaj z tego co w boju zostało sprawdzone. Zamiast wymyślać projekt, weź ramy, które pozwolą Ci 80% pracy wykonać poświęcając na to 20% czasu. Jeśli możesz przesuwać się szybciej do przodu, wtedy łatwiej jest się skoncentrować na punkcie 1) Przy czym tutaj zaznaczam, każda droga na skróty ma pewne wady i trzeba nauczyć się z tym żyć, trzeba wiedzieć jak obchodzić pewne ograniczenia.

  2. Sorry, ale oprogramowanie to szczegół. Klienci bardzo rzadko płacą za oprogramowanie, w rzeczywistości chodzi im o coś innego. Oprogramowanie to bardziej dźwignia dla czyjegoś biznesu, który już wcześniej miał miejsce, a z oprogramowaniem to chodzi o działanie na szerszą skalę. Jak chcesz tworzyć, wymyślać i zarabiać musisz zatem uwzględnić coś jeszcze.

  3. Jak nauczysz się czytać klientom w myślach, odpowiadać na ich potrzeby, sprzedawać im swoje pomysły. Wówczas będziesz niepowstrzymywalny. Możesz kodować w czym tylko chcesz, bo jak klient kupuje to go nie interesuje w czym tam sobie piszesz. Jak robisz coś co jest potrzebne, wówczas sam sobie tworzysz sobie miejsce pracy w którym jest tak zajebiście.

3
Zdezorientowany napisał(a):

Witam serdecznie.

Chciałbym zaczerpnąć rady od bardziej doświadczonych kolegów. Na studiach zacząłem uczyć się C++, bardzo spodobał mi się ten język i z wielką chęcią do niego siadałem, niestety z tego co zrozumiałem z internetu/od kolegów służy on głównie do programowania gier co mnie zniechęciło do kontynuacji,

C++ służy do pisania rzeczy, które mają być szybkie (m.in. właśnie gier). Jednak C++ jest jednocześnie dość archaiczny jak i dość rozdmuchany.
No bo czym jest C++? To tak jakbyś wziął C (które się określa mianem "przenośnego assemblera", bo pisanie w C jest dość niskopoziomowe. Ale dzięki temu szybkie) i zaczął dorzucać do tego C różne rzeczy typu OOP czy inne. I tak przez kilkadziesiąt lat dorzucają te rzeczy już. Więc wiele osób czuje niechęć do tego retro-futurystycznego języka i nawet do tworzenia wysokowydajnych rzeczy wybierają inne języki niż C++.

czy mógłby ktoś mi polecić język oraz ścieżkę rozwoju gdzie mógłbym głównie skupić się na algorytmice/wymyślaniu ciekawych rozwiązań a jednocześnie żeby za rok/półtora dostać pracę

Widzę kilka opcji:

  1. Hobbystycznie. Bo to najłatwiej robić hobbystycznie. Wtedy robisz coś, co cię interesuje i nie martwisz się, czy znajdziesz pracę, czy za to dostaniesz hajsy itp. Wtedy robisz coś nudnego i łatwego za hajsy, a ambitne rzeczy robisz w swoim wolnym czasie. Wadą jest taka, że ciągle jednak robisz nudne rzeczy.
  2. Kompromis. Czyli próbujesz jakoś się dopasować z rynkiem i idziesz w popularne działki programowania (tj. takie do których jest dużo ofert pracy), ale które wymagają choć trochę myślenia (tylko jest ryzyko, że i tak będziesz zawiedziony i że rzeczy, które obiecywali, że będą ambitne, będą okazywały się zwykłym klepaniem, tyle, że w "ambitnej" dziedzinie).
  3. Robisz własny biznes, własne produkty(np. aplikacje, które wykorzystują algorytmy albo kursy, na których będziesz ludzi uczył algorytmów itp.). Tylko tu jest trudność - jak to zrobić, żeby ktoś kupował.
0

Dziękuję bardzo wszystkim za ich opinie i konstruktywne odpowiedzi.

0

niestety z tego co zrozumiałem z internetu/od kolegów służy on głównie do programowania gier co mnie zniechęciło do kontynuacji

szczerze, jak tak patrzę na firmy które według mnie robią fajne rzeczy, to jest do nich mnóstwo ofert wymagających C++ i bynajmniej nie są to gierki.

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