Cześć.
Chciałbym podążyć ścieżką programisty i mam pytanie do bardziej doświadczonych ode mnie, mianowicie którą wybrać?
Zaczynam od zera i zastanawiam się nad udziałem w bootcampie. Rozważam tematykę python + django lub java. Co byście mi doradzili w kwestii wyboru, jakie macie opinie na temat tych języków.
Na mój wybór na pewno będą składać się 3 czynniki.
1. Gdzie łatwiej znaleźć pracę na start
2. Ile można średnio zarobić na początek i po pierwszych 5 latach
3. Który wybór umożliwi mi szersze perspektywy aby dalej się rozwijać, nie chcę się zamknąć w pewnych ramkach
Zapraszam do dyskusji :)
Python, C++ i Javascript są chyba najczęściej używane, w większych miastach znajdziesz mnóstwo ofert pracy z tymi językami. Wybierz ten, który najbardziej Ci odpowiada. Z tego co czytałem, to lepiej nie zaczynać od C++, bo może być trudny dla nowicjuszy, ewentualnie wcześniej ogarnąć C, na którym C++ bazuje. Jeśli angielski nie jest problemem, to na Sololearn czy innym Codeacademy masz całkiem dobre kursy. Ja od niedawna też zacząłem się bawić w programowanie i na start wybrałem właśnie Javascript, z tym że ja uczę się z jakiejś książki dla początkujących. Więcej nie chcę mówić, bo póki co to sam jestem zielony. Powodzenia w każdym razie.
Jak tylko "czytałeś" czy słyszałeś to po co się wypowiadasz? Zamiast pomóc to zaszkodzisz taką gadką.
Właśnie od C++ powinno się zaczynać, najlepszy do nauki podstaw programowania. Javascript to już wyższa szkoła jazdy, na początek to byłoby za duże bagno (i swoją drogą jest tym bagnem). A tak poznać co to metody, klasy, funkcję, dziedziczenie itp. na C++, a później rozglądać się co bardziej pasuje.
Jak tylko "czytałeś" czy słyszałeś to po co się wypowiadasz? Zamiast pomóc to zaszkodzisz taką gadką
Mam te informacje z pierwszej ręki, nie pisałbym czegoś, czego nie jestem pewien.
Javascript to już wyższa szkoła jazdy, na początek to byłoby za duże bagno
Fake news tygodnia. Język do pisania interfejsu stron internetowych jest według ciebie trudniejszy od języka do backendu?
Wiesz miałem styczność z tym i tym. Javascript jest w tym problematyczny, że słabo intuicyjny i słabo czytelny. Oczywiście po pewnym czasie można się przyzwyczaić, ale jeśli znasz już podstawy programowania to będzie o wiele łatwiej, niż zaczynać się uczyć od zera. I niech przemówi też fakt, że nawet na studiach podstawy zaczyna się od C++. Java, C#, C (no ten to bardziej w przemysłowych zastosowaniach, więc w sumie jego nie liczę, bo też bardzo podobny do C++) i PHP są dużo później.
Kolega z tym zaawansowanym javascriptem to chyba raczy żartować ;D
A juz że nieintuicyjny i słabo czytelny?????
Przecież nawet deklaracji typu nie ma, jest chyba najmniej wymagający ze wszystkich
Dobra, ja się już nie udzielam bo chyba mi się coś popierzyło. Do tego pół dnia walczę ze stroną, która mam do zrobienia.
Swoją drogą zna ktoś może jakiś fajny skrypt na galerię obrazów na stronie, która to będzie ściągać obrazy z innej strony (głównie z chmury googla). Próbuje ogarnąć coś samemu, ale póki co korzystam głównie z Ajaxa i samego phpa, w celu pobrania zdjęć bezpośrednio z serwera. Bardziej biegły jestem co prawda w C#, ale w sumie robienie stron też jest zabawne.
Po pierwsze te 3 języki są używane do zupełnie innych rzeczy a sam javascript jest do niczego ponieważ współpracuje z backendem, htmlem. Po drugie javascript sam w sobie jest bardzo prosty, dużo prostszy od języków typu C, C++ bo jest dynamicznie typowany i ma wbudowane dużo gotowych funkcji, a trudne są frameworki javascripta typu React i Angular, do tego jeszcze Ajax. To jest wyższa szkoła jazdy javascriptu. Po trzecie do nauki podstaw programowania dobry jest prawie każdy język. Ja zaczynałem od C++ w szkole średnej (liceum, mat fiz inf) i nie było za trudno.
Chciałbym tylko sprostować, że JavaScript to cholernie wymagający język i mówienie, że to "język do pisania interfejsu stron internetowych" czy "najmniej wymagający ze wszystkich" może miało sens, ale w ubiegłym wieku ;) Po pierwsze nawet nie wiecie ile apek z których korzystacie ma w całości lub częściowo back-end w Node.js (Uber, LinkedIn, GitHub, eBay, PayPal), że nie wspomnę o aplikacjach które są napisane w JS (wszystko na Electronie, od WhatsAppa przez Slacka po edytory typu Atom czy Visual Studio Code).
Sam ekosystem jest tak ogromny (nr 1 na StackOverflow od zawsze, nr 1 na GitHub od zawsze - więcej projektów, niż w Javie i Pythonie razem wziętych, C++ na szóstym miejscu), że każdy znajdzie coś dla siebie - back, front, typowanie ;) maviozo (TypeScript).
Wejście w JS na sensownym poziomie jest bardzo trudne co odzwierciedlają zarobki, jeśli wydaje Wam się inaczej to żyjecie faktami sprzed powstania Google Maps, to mniej więcej ten moment w którym skończyła się zabawa a zaczęło się wielkie "wow" i ssanie ;)
Ogólnie nie polecam zaczynania przygody z kodowaniem od JS czy PHP (nawet tego nowego), bardzo łatwo się w tym pisze ZŁY KOD i bardzo trudno o dobry. Plus JSa nie ma co ruszać bez bardzo dobrej znajomości HTML a i CSS też by wypadało, a jak CSS to Sass/Stylus/Less, a jak preprocesor to trzeba to skompilować gulpem, ale jak projekt duży to już lepiej WebPackiem (...). Naprawdę współczuję nowym devom, kiedyś wszystko było takie proste ;)
Zanim zaczniesz pytać o zarobki napisz prosty kalkulator w czymkolwiek. "Programowanie" to nie jazda widlakiem, tego nie nauczysz się od tak sobie po prostu. Oczywiście każdy, nawet ktoś bez jakichkolwiek umiejętności "matematycznego" myślenia może zostać gościem od prostych skryptów.
Dziękuję wam za opinię. Czy ktoś w temacie jest w stanie porównać codzienną pracę w obszarze java, a python pod kątem posta [1]?
Po znajomości pewnie się coś trafi, zwłaszcza jak chodzi o początkujące firmy, ale wiadomo, że lepiej skończyć tę polibudę.
Jeśli ma się już doświadczenie w branży, to firmy informatyczne nie zwracają uwagi na wykształcenie.
Bez doświadczenia trzeba mieć coś, co przykuje uwagę w CV. Może to być ukończony staż lub jakiś certyfikat. Warto też załączyć link do swoich projektów programistycznych (najpopularniejsza strona do pokazywania takich kodów to GitHub).
pracuje w agencji marketingowej, ktora ma biura w 4 krajach, zatrudniamy roznych ludzi, rowniez programistow, raczej nikt na dyplomy nie patrzy jak zrobilas jakis fajny projekt/masz solidny github albo jestes blyskotliwa na rozmowie. prezes i cto nie ma wyzszego wyksztalcenia, obslugujemy klientow od 1b do 40b rocznego przychodu
Z ciekawości: Z jakiej profesji zamierzasz się przekwalifikować?
@DanuelX, proszę przestań pleść bzdury i powielać mit o niebywałych zdolnościach potrzebnych do programowania.
Oczywiście, myślenie w sposób przyczynowo-skutkowy i bardzo ściśle logiczny, czy jak wolisz "matematyczny" się przydaje ale bez przesady, jak operator widlaka ma głowę na karku to jest w stanie posiąść odpowiednią wiedzę.
Wiadomo, studia czy wykształcenie pomagają, nie twierdzę że nie.
Wg mnie grunt to wybór odpowiedniego środowiska które Ci pomorze w składni, np jakbym miał się uczyć gołego C++ to chyba bym odpuścił:)
W tym momencie mam pracę analityczną, pracuję w excelu na tabelach przestawnych, czasem dodam od siebie jakieś proste makro. Jestem z wykształcenia ekonomistą. Początkowo miałem wizję ścieżki w kierunku Data Science do czego bardziej przydałby się Python. Przeglądając różne fora i strony (a również oferty pracy) widzę, że jest duże parcie na Javę i nie wiem czy może to byłby właściwy kierunek. Oczywiście zawsze mogę się szkolić kolejnych środowisk programistycznych ale wybór tego właściwego, pierwszego języka na pewno trochę napędzi tą karierę.
Myślę, że jak poświęcisz na naukę trochę czasu, to spokojnie będziesz w stanie się przekwalifikować
Żonglowanie danymi jak w tabelach przestawnych to duża część pracy programisty.
Myślę, że lepiej zacząć od samodzielnej nauki - robiąc kursy internetowe na stronach typu Coursera, edx, Udacity.
Jak się trochę wkręcisz to możesz pomyśleć o bootcampie, ale nie wiem czy nie lepiej zapisać się na jakieś studia - pracodawca od razu będzie na Ciebie inaczej patrzył, nawet jak będziesz „tylko” studentem.
Ale nie wiem czy są jakieś sensowne studia podyplomowe, które by uczyły programowania od podstaw.
Java jest bardzo popularnym językiem, w szczególności w dużych korporacjach, które lubią zatrudniać początkujących i czasami organizują wręcz specjalne programy, w których jesteś normalnie zatrudniony, ale oczekują głównie od Ciebie, żebyś się szybko poduczył, a niekoniecznie od razu dawał dużą wartość firmie.
Na ekonomii jakieś podstawy matematyki miałeś, więc masz dobry grunt do nauki programowania.
Nie myśl w kategorii języka programowania, bo dla doświadczonego programisty język jest bez znaczenia. Nowy język ogarniasz w dwa tygodnie, a w godzinę jesteś w stanie pisać bardzo dobry kod, aczkolwiek nie używając konstrukcji specyficznych dla danego języka.
Języki zarządzane jak Java są w teorii przystępniejsze, ale w praktyce i tak powinieneś wiedzieć w jaki sposób zamieniają kod źródłowy na język maszynowy. Java i jej podobne mają niski próg wejścia, ale w pewnych zastosowaniach okazują się bardzo wymagające, bo nie dają takiej wolności jak C/C++. W takich sytuacjach po prostu używa się różnych środowisk np. pisze się małe pluginy w natywnych językach, które przetwarzają kluczowe fragmenty kodu wymagające maksymalnej wydajności i świetnej optymalizacji.
Myślę, że w Twoim przypadku najlepszym wyjściem to po prostu kontynuowanie swojej obecnej kariery i nauka programowania tak, by automatyzowała Twoją pracę. Jeśli masz dobrych przełożonych, możesz dostać awans na stanowisko, gdzie będziesz zajmował się dalszą automatyzacją.
Dobre zarobki programistów w biznesie wynikają po prostu z faktu, że jeden jest w stanie zastąpić nawet kilkudziesięciu pracowników biurowych.
Excel też jest świetnym środowiskiem do automatyzacji i bardzo dobrą ścieżką kariery. Trudno nawet wyznaczyć górny limit umiejętności w tym środowisku.
Głównym czynnikiem wpływającym na zarobki pracownika jest to ile generuje dla firmy przychodu.
Możesz uczyć się na razie programowania strukturalnego w byle jakim języku co da ci podstawy ale musisz zastanowić się prędzej czy później co chciałbyś robić. Backend, gry, frontend, jest tego masa. Być może lepiej wybrać coś i uczyć się języka, który jest używany w tej dziedzinie którą wybierzesz. Może to ci trochę pomoże:
U mnie wyglądało to tak:
1. Mam wykształcenie w biologii molekularnej, ale na pewnym etapie zainteresowała mnie analiza danych.
2. Napisałem kilka prostych programideł w Pythonie, które mi w tym pomogły, uznałem, że to fajna zabawa i że właściwie mogę to robić na co dzień.
3. Poszukałem sobie firmy biotech/farma, która miała dział, zajmujący się analizą danych, automatyzacją itp. (nie podam nazwy, ale dużo ci tego nawet w Polsce).
4. Wybrałem sobie stanowisko, gdzie programowanie jest "nice to have", a nie chlebem powszednim.
5. Szkoliłem się dalej, przez kolejny rok, wykonując dość przyjemną i lekką robotę, a tak naprawdę, 90% poświęcając na pisanie różnych narzędzi, robienia e-learningów.
6. Uznałem, że jestem gotowy do formalnego przeskoczenia na programistę (tak naprawdę miks programowania narzędzi oraz osobno, rzeczy typowo pod Data Science).
7. Akurat prowadzili program dla ludzi chcących się przekwalifikować, ale z jakąś tam minimalną wiedzą z programowania. Trwał on kilka miesięcy i oczywiście skorzystałem, zdałem egzamin i włala. Całość zabawy od pomysłu do realizacji trwała ok. rok.
Większość ludzi w moim zespole to osoby o Twoim profilu. Ekonomiści, którym znudziło się liczenie tych samych rzeczy w banku.
Zainteresuj się sektorem biotechnologicznym/farmaceutycznym. One po całości leżą i kwiczą, jeśli idzie właśnie o automatyzację, narzędzia i rozwiązania. Stoją dopiero na przedsionku cyfryzacji, zatem nie musisz mieć pięciu lat doświadczenia w architekturze oprogramowania, żeby zwojować tam naprawdę dużo, w przeciwieństwie (tak mi się przynajmniej wydaje), do np. branży IT, gdzie poziom implementacji technologii jest setki razy większy i też więcej wymaga się na starcie. No ok, tam też pewnie masz jakieś stanowiska juniora, więc może trochę przesadzam.
Poza tym, możesz na swój sposób się wyróżniać, bo jednak masz jakieś wykształcenie i metody obliczeniowe, statystyczne, znasz. Wiele z tego, co się uczyłeś, możesz zaaplikować przy jakichś bazach danych, analizie, raportowaniu, trochę mniej przy automatyzacji, ale to kwestia poznania środowiska i charakterystyki problemów.
Uważam, że mój sposób był dość łatwy. Na pewno się da, ale jak to osiągniesz, zależy wyłącznie od Ciebie. Można też siedzieć w domu, po godzinach i budować sobie portfolio na gicie, ale tego nie robiłem :D. Niektórzy mieli takie podejście.
Pięknie, gratzy.
Jakie technologie i plany na przyszłość? Jak oceniasz różnicę między tym co robisz teraz a tym co robiłeś przed IT (brzmiało mega ciekawie)?
Wybrałem sobie stanowisko, gdzie programowanie jest "nice to have", a nie chlebem powszednim.
No o to właśnie chodzi. Wykorzystaj swoje dotychczasowe doświadczenie i szukaj pracy tam, gdzie się wprowadza automatyzacje.
Mała ciekawostka:
https://store.steampowered.com/app/375820/Human_Resource_Machine
Jak przejdziesz tę grę samodzielnie, to jesteś lepszym programistą niż połowa tych co klepią w Javie.
https://store.steampowered.com/app/370360/TIS100/
Przejście tego jest w zasadzie równoznaczne z licencjatem z informatyki na dobrej uczelni.
https://store.steampowered.com/app/92800/SpaceChem/
A tutaj nie ma co prawda takiego zwyczajnego programowania, ale gra wspaniale uczy wszystkich wyzwań w programowaniu wielowątkowym.
Tylko nie myśl, że te gry są łatwe. One są piekielnie trudne na koniec.
Bonus: https://store.steampowered.com/app/504210/SHENZHEN_IO/ a to dla tych co chcą spróbować swoich sił w konstrukcji i oprogramowywaniu systemów wbudowanych.
Te gry to najlepszy sposób, by przekonać się czy programowanie jest dla Ciebie. Jak nie możesz się od nich oderwać, to jesteś idealnym kandydatem na programistę.
No i jeszcze to: https://store.steampowered.com/app/427520/Factorio
Też bezpośrednio nie o programowaniu, choć masz tam najróżniejsze bramki logiczne i ludzie budowali w tym funkcjonalne procesory z wyświetlaczami itd.
Factorio dobrze oddaje to jak funkcjonuje programowanie obiektowe, gdzie odpowiedni plan budowy pozwala tworzyć funkcjonalne i łatwo rozszerzalne struktury.
Wiesz ze programowanie wcale nie jest takie super jak sie wydaje? ;)
https://www.youtube.com/watch?v=HluANRwPyNo
Haha, myślę że takie oczekiwania vs rzeczywistość można zrobić w każdym zawodzie
ogolnie, to sprawdz te 2 linki: (edit: nie moge wstawiac linkow)
learnprogramming subreddit
google github kamranahmedse developer roadmap
1. Webdev.
2. 3000 / 20 000 (mocno uśredniając, 20k jak już będziesz kozakiem, ale za 5 lat to może być w sumie mała kasa, już dziś zdarza mi się dawać fajnym juniorom 8-9k netto na b2b, jak dostaniesz robotę za 3k to pół roku zmienisz na taką za 6 zakładając, że będziesz pracował i się rozwijał a nie pierdział w stołek, w tej chwili w Warszawie śmiało przebijasz 10k na b2b po roku)
3. JS jest o tyle uniwersalny, że teraz pisze się w tym wszystko, ale zobacz mój drugi komentarz, ja bym na pewno łapał szlify i podstawy w czymś innym. Java też nigdy nie umrze jeśli chcesz być "programistą" a nie "koderem" ;)
Dziękuję wam wszystkim za merytoryczne odpowiedzi w wątku. Po przejrzeniu tysiąca portali, przeczytaniu waszych komentarzy i wysłuchaniu innych osób podjąłem decyzję że będę się trzymał swojego pierwotnego planu i ukierunkuję się na Data Science. Zaczynam naukę od Python i R. Do tego, tak jak sugerowaliście zapisuję się na studia podyplomowe zamiast kończyć kursy i dołożę pracę w domu.
Let the game begin
Pięknie, gratzy.
Jakie technologie i plany na przyszłość? Jak oceniasz różnicę między tym co robisz teraz a tym co robiłeś przed IT (brzmiało mega ciekawie)?
Odpiszę tutaj :).
Jeśli chodzi o technologie, to te bazy danych stoją na SAS, którego zresztą używam do jakichś przekształceń itd. Ma zaimplementowanego SQLa, więc wszystkie transformacje i manipulacje robię w tym. Przy analizach eksploracyjnych, Python i R, z większym naciskiem na to pierwsze.
Liczenie odbywa się na klastrach serwerów, co jest krokiem do przodu w porównaniu do sytuacji sprzed powiedzmy 2 lat, gdzie liczono wszystko na stacjonarkach. Do wizualizacji najczęściej używamy jakichś paczek z R, kolega próbuje forsować D3.js, żeby było bardziej interaktywnie. Ja pewnie pozostanę przy R na jakiś czas, bo czeka mnie jeszcze opanowanie podstaw C++. Musimy napisać pewnego rodzaju wtyczkę, która zawierałaby model, radzący sobie z niekompletnymi danymi (w oparciu o teorię zbiorów przybliżonych). W sumie nikt nie ma pojęcia, czy to zadziała akurat tutaj, ale żeby to było szybkie, najlepiej to okodować w czymś szybkim ;).
Pracuję też od czasu do czasu nad różnymi prostszymi narzędziami - ot, żeby koleżanka nie musiała porównywać dwóch tabelek, tylko żeby zrobił to za nią skrypt. Jeśli zaś idzie o tematy, które najczęściej katuję, to optymalizacja gradientów, redukcja wymiarów danych, optymalizacja predykcji itp.
Czy jestem zadowolony? Jest fajnie, naprawdę fajnie. To jest coś takiego, co pobudza moje szare komórki do pracy, a to dla mnie chyba jest dość ważne :D. Jak pracowałem naukowo, miałem tego sporo, ale ścieżka kariery coraz bardziej przypominała "menadżerowanie projektowe" (a jeszcze się napierdzę w stołek) i trochę nie chciałem jeszcze w to iść. W nauce robiłem mega ciekawe rzeczy, a analiza danych była jakimś tam urywkiem. Tak więc uznałem, że w zasadzie czemu nie spróbować. Najwyżej wrócę do laboratorium. Ale wkręciłem się, jestem szczęśliwy, mózgownica pracuje, rozwiązuję problemy, efekt widzę natychmiast. Często moja praca oszczędza innym wiele roboty, czasami ma pozytywny wpływ na wiele innych czynników.
A plany na przyszłość? Dalej się uczyć :). To w sumie lubię w tym najbardziej. A że wielkie gunwo jeszcze umiem, to przez najbliższe parę lat zajęcia mi nie zabraknie.
PATORIKKU - Miłej zabawy!
Ten wątek to typowy zbiór łączący porady ignorantów z pokładami głębszej ignorancji osób z jakimś realnym doświadczeniem.
Pierwszego nie trzeba tłumaczyć, drugie polega na tym, że większość osób ma bardzo nikłą samoświadomość i samokrytycyzm i spędziwszy parę lat nad jakąś dziedziną, całkowicie wyrzuca z pamięci trudności jakie napotykało na początku. To jest jedno z najbardziej smutnych zjawisk - bo jest podstawą hipokryzji i arogancji.
I tak, gość od lat zajmujący się matematyką wyższą będzie polecał osobie w liceum, chcącej przygotować się wstępnie do studiowania rachunku różniczkowego i całkowego, zaawansowany tekst Rudina z analizy matematycznej, chociaż sam swego czasu miał problemy ze zrozumieniem dopełnienia do kwadratu. Analogicznie, gość, który uczy się 5 języka z rzędu będzie twierdził, że wystarczą na to 2 tygodnie, chociaż początkowo zajęło mu to na podstawowym poziomie ponad rok, a i obecnie gdyby miał sięgnąć po raz pierwszt np. po C++, to by po tych dwóch tygodniach mógł co najwyżej płakać nad własna głupotą.
Niektóre z tekstów nadają się wprost do kabaretu, jak np. wywody nad wyższą szkołą jazdy w postaci wysokopoziomowej javyscript w stosunku do niskopoziomowego, stosowanego w najbardziej zaawansowanych dziedzinach programowania C++.
A ja właśnie napisałem w C++ kalkulator i chodzę taki dumny, jakbym co najmniej obkodował jądro systemu.
@Minas Morgul -- Pisałeś w podręcznikowy sposób na stosie z odwróconą notacja polską, czy w formie prostego parsera. Bo bardzo ciekawym zagadnieniem informatycznym (w przeciwieństwie do klepania standardowych apek w javascript) są automaty skończone, gramatyki formalne, tworzenie własnych interpreterów i kompilatorów i języków. Coś takiego uczy tego, czym u podstaw jest programowanie jako sama matematyczna idea. Nikt od nikogo rzecz jasna nie wymaga, by mając na celu zostanie programistą, był z miejsca specem od computer science, w szczególności, że współcześne masę rzeczy się po prostu "klepie" i z tego też można przyzwoicie zarobić. Ale nie nazwałbym programistą kogoś, kto chociażby z czystej ciekawości nie liznął takich zagadnień.
Pisząc o prostym parserze miałem na mysli tzw. top-down, recursive-descent parser. Najczęściej właśnie to rozwiązanie, albo rozwiązanie ze stosem stosuje się w przypadku prostych kalkulatorów pisanych jako wprawka. Przy tym rozwiązanie ze stosem, moim zdaniem, mniej się intuicyjnie uogólnia. Jest zbyt konkretne.
@VirtualSpace - Oczywiście stos z ONP, bo o tym poczytałem najpierw i znalazłem przykłady. Mój "Hello World" w C++ powstał 3 dni temu, także jeszcze sporo przede mną. Jeszcze WSZYSTKO przede mną :).
Ja nawet nie do końca jestem pewien, czy C++ gdziekolwiek, kiedykolwiek wykorzystam profesjonalnie (spróbuję! :), ale zacząłem się uczyć bardziej dla własnej wiedzy. Zarządzanie pamięcią, działanie kompilatorów, zrozumienie kilku podstawowych koncepcji w informatyce.
Myślę, że wiedzieć tego nie zaszkodzi. W mojej pracy, programowanie można porównać do... hmm... budowania protokołu od A do Z. W zasadzie tak jak napisałeś - klepanie, korzystanie z bibliotek. Gorzej, gdy dostępne biblioteki nie przewidują sposobu rozwiązania problemu ;).
Tak więc na razie jestem klepaczem, ale dociekliwym. Nawet gdy klepię, staram się wiedzieć, co jest kompilowane w jakiej kolejności, co jest na wejściu, co na wyjściu, jak pogodzić zużycie pamięci z operacjami procesora itd. itp. Ale bez podstaw informatyki nie jest to takie oczywiste.
Tak więc mam nadzieję, że wybór C++ i przyswajanie sobie różnych koncepcji, przy jego użyciu będzie dobrym krokiem do przodu.
Przy tym, w zgodzie z moim pierwszym postem, kierując swoje uwagi do początkujących - wpierw poświęćcie naprawdę dużo czasu na dobre zrozumiene, chociażby np. instrukcji warunkowych - jak można nimi manipulwać stawiając różne warunki, jak dzialają w różnych kombinacjach, czy da się, czy nie da się ich w konkretnym wypadku uprościć itp. a dopiero potem myślcie o pisaniu jakiegokolwiek kalkulatora. Bo na nawet taki if - else, ma swoją głębię poznawczą i nauka zmyślnego manipulowania tą struktura może zająć trochę czasu. Czego oczywiście doświadczone bubki z przerostem ego, często wam nie powiedzą.
I właśnie o to mi chodzi.
Umiem UŻYWAĆ if else, pętli takich, śmakich i owakich, ale wszystko na razie robię na czuja. Działa, ale czuję, że nie do końca wiem, jak ;).
Ale mam zamiar się w końcu dowiedzieć.
@Minas Morgul -- Zawodowo każdy jest klepaczem w 99% sytuacji (niestety, bo to potrafi deprymować), poza jakimis skrajnymi wyjątkami w isntytucjach naukowych, topowych firmach inwestycyjnych, NASA, naprawdę wartych tego miana start-upach (których prawie nie ma) itp. Wszystko się rozchodzi o to, jak sam do tego podchodzisz. Czy to Cię fascynuje i masz ciekawość poznawczą, czy dasz się zgasić monotonii codziennosci. Także, czy potrafisz zachować własne poczucie wartości i odkrywać coś dla siebie, czy zaczniesz płakać do poduszki, że nie jesteś kolejnym geniuszem, których można policzyć na palcach jednej ręki. Widać, że należysz do tej pierwszej kategorii. Niestety właśnie pycha i arogancja niektórych, jakże często fałszywa, bo swoje rozumienie okupili tysiącami godzin pracy, potrafi to w ludziach zgasić. Nie znoszę takich ludzi. Powodzenia.
Dzięki, o, a powiedz mi jeszcze - czy kojarzysz może jakieś materiały lub książkę(książki), które dawałyby jakiś w miarę przeciętny przekrój?
Mogą być po angielsku. Temat mnie ostatnio bardzo interesuje i z chęcią bym poczytał o tym coś więcej. Cokolwiek, co wykorzystuje C++ i dotyka różnych koncepcji w informatyce (by się z nimi oswoić na przykładach).
Niestet, C++ wyszło z mody. Nie ma co się dziwić, większość współcześnie wykorzystywanych rozwiązań nie wymaga tak niskopoziomowej wiedzy. Ale, moim zdaniem, dla siebie warto po nią sięgnąć. Nie ma też, i chyba nigdy nie było książek, które uczą np. przemyślnego wykorzystania instrukcji warunkowych. Takie rzeczy podłapujesz czytając kod innych, pisząc własny, mając cały czas na myśli logikę tych operacji. Warto na pewno sięgnąć do książek o algorytmach, bez względu na język.
Jeśli zaś chodzi o książki o komilacji i parsowaniu, które to zagadnienia są blisko związane z samą ideą języków programowania, to jest parę pozycji, które mogę polecić, aczkolwiek czasem zupełnie pozbawionych kodu:
Klasyk: Compilers: Principles, Techniques, and Tools, Aho, Ullman inni
Bardzo przystępnie podane podstawy teoretyczne od strony praktycznej (ale bez programowania):
Parsing Techniques: A Practical Guide - Grune i Jacobs
Książka pełna kodu (Java), pokazująca też jak można go porządkować we współsnych językach obiektowych:
Writing Compilers and Interpreters: A Software Engineering Approach - Ronald Mak
Z innych np.:
Engineering: A Compiler - Keith Cooper
PS. Nie marnuj pieniędzy kupując kota w worku. Skorzystaj z faktu, ze w Polsce, jak nie wysyłasz, możesz pobierać (poza oprogramowaniem). Znajdź adres library genesis (zresztą, podam: gen-lib-rus, zamiast myślników kropki; i na koniec po kropce dajesz ec), ściągnij ebooki, oceń. Większość podręczników jest mało warta, a drugie tyle jest nic nie warta dla Ciebie, bo ci nie będzie leżeć.
Właśnie zauważyłem, że retoryka poniosła mnie w nonsens. Większość i drugie tyle oznaczałoby razem, że nie tylko każdy podręcznik do niczego się nie nadaje, ale że nie nadaje się więcej, niz ich jest.
Hahah, nie przejmuj się! Od tego mamy w mózgu heurystykę :D.
W każdym razie jeszcze raz dzięki. Z mądrych rad warto skorzystać :)