Skocz do zawartości

Programowanie - co wybrać?


Recommended Posts

Cześć!

Potrzebuję Waszej pomocy, mianowicie.

Po krótce napiszę: Mam 30lat. Studiowałem informatykę w zarządzaniu, niestety zaocznie. Ze studiów nie wyniosłem (jak się domyślacie po zaocznych) zbyt wielkiej wiedzy. Więcej się nauczyłem samemu w domu.

Ponieważ życie nie zawsze układa się po myśli, musiałem zaprzestać nauki w kierunku i iść do pracy.

Aktualnie chciałbym wrócić do nauki programowania, a wyglądało to tak:

Studia zakończyłem z 8lat temu. Od tamtej pory nie miałem żadnej styczności z programowaniem.

Delphi - mam podstawy, ale zapomniane

C++ troszkę się uczyłem, ale nie powiem żeby to były kompletne podstawy.

Teraz tak, ponieważ tego wszystkiego jest od groma, nie wiem w którym kierunku mam pójść.

Od czego zacząć? Pomyślałem o Java (ale nie miałem styczności), bo wydaje mi się że jest to troszkę prostsze na początek. Później będzie mi łatwiej z np C++.

Proszę o jakieś podpowiedzi bo troszke błądzę :/

 

I odbiegnę od tematu, ponieważ mam pracę polegającą na pokonywaniu dużych odległości samochodem, chciałem Was zapytać czy znacie jakieś lekcje angielskiego, dobre lekcje angielskiego, które można wrzucić na krążek CD i słuchania i utrwalania podczas takowej jazdy autem?

 

Dziękuję bardzo za wszelkie uwagi i za zainteresowaniem się tematem.

Pozdrawiam

Wszystkiego dobrego Wam życzę :)!!

 

PS

Acha, jak wiecie ciąglę pracuję, także chciałem jeszcze zapytać czy generalnie uczyć się teorii łącząć od razu z praktyką (z książką przed PC), czy pierw wykuć na blachę najważniejsze komendy, itd i dopiero do kompa?

Mam nadzieję że nie porywam się na zbyt głęboką wodę, tymbardziej że chcę się uczyć wieczorami, ale uważam, że na naukę nigdy nie jest za późno ;)

Edytowane przez qwert
Link to post
Share on other sites

Zależy co chcesz pisać. Jeśli programy użytkowe to dobrym wyborem będzie C#, Java, jeśli gry to C++. Najlepszą metodą nauki jest p po prostu dużo pisać, bo z samej teorii dużo się nie nauczysz. Jeśli chcesz nauczyć podstaw to dobrze najpierw przerobić jakiś tutorial z internetu lub z książki.

Link to post
Share on other sites

Wydaje mi się, że żeby załapać się w środowisko gier jest/będzie zdecydowanie ciężej, niż do programów czy różnego rodzaju apletów, ale może jestem w błędzie. Chyba bardziej bym się skłaniał ku C# i Java, tylko teraz pytanie, od którego zacząć?

Link to post
Share on other sites

Zacznijmy od tego, że żaden kurs, żadna książka nie zrobi z ciebie dobrego programisty. Potrzebna jest praktyka, dużo praktyki, ale przede wszystkim programowanie musi być twoją pasją. I nie istnieje coś takiego, jak "wykucie komend na blachę". Jeśli do nauki programowania potrzebujesz "wykucia" czegoś, to odpuść sobie ten zawód :)

Osobiście preferuję metodę uczenia się, polegającą na samodzielnym rozwiązywaniu problemów. Czyli piszesz jakiś projekt i samodzielnie szukasz w necie rozwiązań problemów, które napotykasz. Z każdym projektem starasz się, aby wprowadzał coś nowego i bardziej ambitnego.

 

Proponuję przerobić krótki, wprowadzający kurs C# lub Java - nie są to skomplikowane języki, a jednocześnie są bardzo popularne w firmach IT. Oczywiście kurs praktyczny - przed kompem. W sieci jest mnóstwo dobrych tutoriali, ale głównie po angielsku. Po tym siadasz do jakiegoś projektu, np. prosta gra typu statki lub pacman.

Gdy już będziesz widział, że to jest to, co chcesz robić, będziesz musiał rozejrzeć się za jakimś stażem czy praktykami. Nikt nie weźmie cię do pracy bez żadnego doświadczenia, o ile nie jesteś studentem.

 

 

Taka jest moja opinia na ten temat, ale pewnie inne osoby będą miały jeszcze coś innego do dodania, a może nawet się ze mną nie zgodzą. Jak już pisałem w innym wątku, nie ma czegoś takiego, jak "przepis na informatyka". To jest kwestia dość indywidualna. Warunkami koniecznymi są jedynie wg mnie praktyka, pasja i znajomość j. angielskiego.


 

 

Wydaje mi się, że żeby załapać się w środowisko gier jest/będzie zdecydowanie ciężej, niż do programów czy różnego rodzaju apletów, ale może jestem w błędzie. Chyba bardziej bym się skłaniał ku C# i Java, tylko teraz pytanie, od którego zacząć?
 

Najprościej się załapać do pracy wg mnie jako webdeveloper lub mobile-developer (aplikacje mobilne). To jest taka działka która się ciągle rozwija.

 

A jeśli chodzi o wybór C# vs Java, to na ten temat można toczyć wielogodzinne wojny ;) Ja jestem programistą .NET, więc preferuję C# i uważam ten język za duuużo lepszy. Ale to tylko moje, trochę fanbojskie zdanie :D W rzeczywistości te dwa języki są bardzo podobne. Java jest trochę bardziej popularna ze względu na większą otwartość i Androida. "Siszarpa" lubią duże firmy i korporacje, które korzystają z rozwiązań Microsoftu.

  • Popieram 1
Link to post
Share on other sites

Temat praktyk czy stażu to troskzę odległa sprawa. Póki co, chciałbym się skupić na poznaniu tego środowiska.

Generalnie jest tak, że podoba mi się klimat programowania, a jedynie boje się że nie będę go ogarniał tak, jakbym chciał. To jest dla mnie największa przeszkoda i obawa.

Mogę się uczyć na podstawie własnych problemów wynikających w projektach, ale żeby te problemy napotykać, trzeba to wszystko już poznać. Nie sądzę abym na samym początku pisał "banalne" gry typu Pacman;P

I zapytam tak na wyrost...czy jeśli np podłapę dobrze powiedzmy Java, to dużym problemem będzie dołączenia C# pod kątem samych komend czy zasady pisania różnych app? Czy w ogóle jest sens czegoś takiego?

 

Dziękuję za odpowiedzi.

Cieszę się również, że żaden z Was nie napisał "olej to, jesteś za stary i przy pracy na etacie nauka zajmie kolejne 30lat" - za to dziękuję ponownie:D

Edytowane przez qwert
Link to post
Share on other sites

@qwert

 

Istotne jest, czego oczekujesz w ramach przekwalifikowania na programistę. Tzn., czy coś Cię konkretnie interesuje i chcesz to robić, czy chodzi tylko o łatwość zdobycia dobrej pracy.

 

Jeśli chodzi o polskie realia w dużych miastach, największe jest zapotrzebowanie na programistów aplikacji webowych. Portale typu pracuj.pl dosłownie w nich toną. Najwięcej ofert dotyczy JavyEE, drugie miejsce ma .NET. Podobnie też wyglądają zarobki. Osoby, które same po godzinach coś dłubią we własnych projektach, czytają i trenują, naprawdę mogą przebierać w ofertach. Oczywiście w każdej technologii można dostać fajną pracę, ale w JavieEE/.NET jest o wiele więcej dobrych ofert.

 

Co do angielskiego, podczas nauki i tak będziesz zmuszony do czytania dokumentacji, samouczków, blogów w tymże języku. Jeśli to się uda, w pracy pewnie też. Ewentualnie może być jeszcze potrzebne gadanie. Wtedy oglądanie programów dokumentalnych/wiadomości po angielsku mogą się przydać. Albo zapisać się do szkoły językowej na rozmówki z native-speakerem.

 

Popularnym tematem są książki. Tak czy nie? Tak. Są moim zdaniem niezbędne do zostania dobrym programistą. Ale te na poziomie zaawansowanym. Na start ogrom materiałów w sieci jest w zupełności wystarczający. Najpierw pojedyncze tutoriale, potem łączenie kilku w całość. Kiedy ma się już solidne podstawy, warto rozejrzeć się za książkami pisanymi przez samych autorów języka, w którym będziesz robił. Wtedy dobrze go zrozumiesz, poznasz różne kruczki i niuanse. Do tego jest kilka książek ogólnie o dobrych zwyczajach w programowaniu - np. "Clean Code" C. Martina.

 

Jeśli ostatnio programowałeś 8 lat temu w Delphi, moim zdaniem nauka powinna iść takim tokiem:

  • Najpierw przypomnienie podstaw, żebyś nie myślał, jak napisać if'a i for'a. Jakieś sortowania i algorytmiczne problemy. Strona https://projecteuler.net/ zawiera wraz z rozwiązaniami sporo takich zadań, pierwsze są naprawdę banalne. Kilka można zrobić.
  • Potem ogarnąć, co to jest programowanie obiektowe. Koniecznie poczytać o dziedziczeniu. Napisać banalny program proszący o podanie x,y trzech punktów i sprawdzający, czy wyjdzie z nich trójkąt prostokątny.
  • Ciąg dalszy obiektowości. Poczytać co to jest polimorfizm (obowiązkowo przeciążanie metod). Do tego nauczyć się co to są kolekcje. Ogarnąć listę i mapę na początek. Napisać program bez interfejsu użytkownika o jakiejś firmie. Tak, żeby program jakoś zbierał (podane przez konsole lub wczytane z pliku) informacje o pracownikach (imię, nazwisko, pensja). Powinien on umieć policzyć średnią pensji, znaleźć pracownika o zadanym nazwisku, najwyższej/najniższej pensji
  • Nadal obiektowość. Poczytać coś o wyjątkach i typach generycznych i spróbować coś samemu wymodzić z ich wykorzystaniem
  • Programowanie ogólnie - wzorce projektowe. Na początek mogą się wydawać dziwne, ale fasada i obserwator są naprawdę proste. jak zrozumiesz, popatrz na kolejne - wizytator, adapter, strategia, łańcuch odpowiedzialności
  • Osobno przyjrzyj się wzorcowi singleton. Ma on kilka niuansów specyficznych dla wybranego języka programowania. Przy okazji czytania, co może pójść nie tak z singletonem, trafisz na mowę o programowaniu współbieżnym - podstawy można liznąć
  • Zagadnienie pod tytułem serializacja - zamienić jakiś obiekt na strumień, zapisać i potem go odtworzyć
  • Podstawy baz danych i SQL. Co to są JOIN, WHERE, GROUP BY, HAVING
W tym momencie Twoje ogólne pojęcie programowania obiektowego powinno być dobre. Tutaj należy się zdecydować na konkretną rzecz, którą chcesz robić.

 

Jeśli będą to aplikacje webowe, trzeba będzie co nieco poczytać o HTML i CSS. Z czasem też coś o JavaScripcie. Do tego podstawy protokołu HTTP, żeby wiedzieć, co to są POST i GET. W przypadku Javy dojdzie też duża liczba frameworków, które są używane firmach. Popularne to Spring i Hibernate. W .NET jest to chyba bardziej poukładane i nie ma takiego bałaganu w dostępnych narzędziach i rozwiązaniach.

 

Teraz czas na powrót do aplikacji o firmie i przerobić ją (przy użyciu wybranej technologii) tak, aby działała w przeglądarce internetowej. Na jednej stronie wyświetlanie pracowników. Na innych możliwość ich dodawania, edytowania i usuwania + jakieś pierdoły. Na tym poziomie zaawansowania aplikacji, info o pracownikach powinno być trzymane w bazie danych.

 

O aplikacjach webowych sporo info na start znajdziesz w moim pierwszym poście (klik) na tym forum (są tylko dwa :D). Potrafiąc naskrobać taką, nawet nie w pełni funkcjonalną, aplikację webową, pracę na junior developera znajdziesz z palcem w nosie.

 

Oczywiście, poza webówką jest masa innych dróg - gry, apki webowe, sterowniki. Jeśli jednak nie masz w tej chwili jakichś szczególnych upodobań, moim zdaniem, webówka to bezpieczny kurs.

 

 

I zapytam tak na wyrost...czy jeśli np podłapę dobrze powiedzmy Java, to dużym problemem będzie dołączenia C# pod kątem samych komend czy zasady pisania różnych app? Czy w ogóle jest sens czegoś takiego?

Jeśli dobrze podłapiesz jedną technologię, to dwa razy na tydzień będziesz miał telefon od łowców głów z ofertą pracy i nie będziesz miał ochoty na uczenie się czegoś od nowa. Lepiej będzie masterować wybraną technologię w celu zostania senior developerem / architektem oprogramowania. Oczywiście, wiele jest wspólnego w Javie i C#. Ale w samym standardzie. A w rzeczywistości standard to tylko narzędzie, które każdy z góry zakłada, że się zna. Gra się toczy o mechanizmy konkretnego języka oraz o biblioteki i frameworki używane przez daną firmę. A te potrafią się znacznie różnić. Nikt nie będzie na rozmowie kwalifikacyjnej sprawdzał, czy wiesz na pamięć, czym się różni składnia pętli for w pascalu i javie.

Edytowane przez Karister
  • Popieram 2
Link to post
Share on other sites
I zapytam tak na wyrost...czy jeśli np podłapę dobrze powiedzmy Java, to dużym problemem będzie dołączenia C# pod kątem samych komend czy zasady pisania różnych app? Czy w ogóle jest sens czegoś takiego?

Nie ma problemu, żeby poznać jeden z tych języków, a następnie pisać dobrze w drugim. Znam osoby, które początkowo pisały w C#, a teraz piszą w Javie, albo na odwrót. Warto jednak w miarę szybko się zdecydować, bo frameworki różnią się już dużo bardziej, a to właśnie poznawanie frameworku jest najbardziej czasochłonną rzeczą w trakcie nauki.

 

 

 

Mogę się uczyć na podstawie własnych problemów wynikających w projektach, ale żeby te problemy napotykać, trzeba to wszystko już poznać. Nie sądzę abym na samym początku pisał "banalne" gry typu Pacman;P

Pacman w najprostszej postaci nie jest jakiś mega skomplikowany. Dostaliśmy go jako projekt na drugich zajęciach z C#. Kod, który większość z nas napisała był potwornie zły (wstydziłbym się go teraz komukolwiek pokazać), ale działał i pisząc go drugi raz nie popełniłbym już tych samych błędów. Nie znajdziesz rozwiązań, póki nie poznasz problemów, a nie poznasz problemów, póki ich nie napotkasz.

 

 

 

Cieszę się również, że żaden z Was nie napisał "olej to, jesteś za stary i przy pracy na etacie nauka zajmie kolejne 30lat" - za to dziękuję ponownie:D

Nigdy nie jest za późno, ale nie oszukujmy się - im później tym trudniej. Firmy wolą inwestować w młode osoby i w ich wypadku nie mają nic przeciwko braku doświadczenia. Dużo łatwiej też się dostać na praktyki w czasie studiów, ponieważ firmy współpracują z uniwersytetami. No i oczywiście młodszej osobie mogą zaoferować niższą stawkę. Mimo wszystko życzę powodzenia, oby się udało :)

Edytowane przez Luki91
Link to post
Share on other sites

@Karister

No chłopie, aż mi ciarpki z przerażenia się pojawiły :D

Dlaczego się chce przekwalifikować? Otóż zawsze wiedziałem, że wszelkie kwestie IT będą dobrym wyborem, ale nie spodziewałem się, że aż w takim tempie będzie się to wszystko rozwijało. W trakcie studiów rozpocząłem pracę w budowlance i tak już zostało. Myślę, że jest to ostatnia chwila, żeby pomyśleć nad powrotem do zagadnień, z którymi mialem styczność czy na studiach, czy po prostu podczas moich przygód z Delpim. A wiadomo, że dobra praca też by się przydała. Zdaję sobie sprawę, że nie pojmę tego w rok, ale podobno cierpliwość popłaca:)

Dzięki za szczegółowy opis, na pewno skorzystam krok po kroku.

Wtrącając w środek Twojej wypowiedzi na temat HTML, CSS, JavaScript - co nie co wiem. Kiedyś i nawet nie tak dawno temu klepałem stronkę więc to i owo sobie przypomniałem:) Także jest to pewien krok do przodu.

Jeśli chodzi o angielski to wiem, że książki, filmy, dokumenty itd, ale chodzi mi o nie marnowanie czasu podczas samej jazdy. Może to nie ślęczenie przy czytaniu czy tłumaczeniu czezgoś, ale zawsze jakaś dodatkowa opcja na szybszą naukę. Ile by się nie zapamiętało to zawsze to mały krok naprzód.

Ogólnie troszkę tego jest, dużo ciężkiej i mozolnej pracy przede mną, ale mam pozytywne nastawienie.

Czy możecie jeszcze podpowiedzieć o jakichś tutorialach, co by nie grzebać po www i selekcjonując co jest dobre a co nie?


@Luki91

Wiem, że w młodych lepiej itd, ale tak jak napisałem wcześniej, życie nie zawsze idzie po swojej myśli.

Wszystko w sumie nie jest skomplikowane, jeśli to coś się umie, albo dobrze orientuje w temacie. Żeby coś ćwiczyć musisz wiedzieć jak się za to zabrać, nie jestem w stanie i nikt chyba nie jest, kto jest zielony z danego tematu i nagle odpalić kompa i zacząć klepać jakieś aplikacje i na dodatek doszukiwać się w nich błędu:) Na wszystko potrzeba jest trochę czasu no i wiedzy głównie.

Podejrzewam, że mam przed sobą dużo więcej pracy niż myślę, ale jeśli (odpukać) nic nie stanie na drodze, będzie dobrze:)

 

Acha koledzy mam jeszcze jendo pytanie a w zasadzie dwa:)

1. Poznałem kiedyś gościa, który po prostu zrozumiał Delphi - zawsze wiedział co zrobić - czy Java, C# itd można zwyczajnie zrozumieć?

2. Pomimo tego co napisał Luki91, że nie można wykuwać na blachę - czy mimo wszystko pewne rzeczy powinno się wykuć? Jakieś teorie, żeby wiedzieć co z czym ugryźć czy tego typu rzeczy same w sobie się zrobią jasne? Kiedy jaką petlę zastosować itd?

Edytowane przez qwert
Link to post
Share on other sites

Zdaję sobie sprawę, że nie pojmę tego w rok, ale podobno cierpliwość popłaca:)

Akurat zaryzykowałbym stwierdzenie, że w rok siedząc po 3-4h dziennie da się to ogarnąć na tyle, by startować na junior developera. W sumie ciężko to ocenić, ale rok to sporo czasu.

 

Jeśli chodzi o angielski to wiem, że książki, filmy, dokumenty itd, ale chodzi mi o nie marnowanie czasu podczas samej jazdy.

Znajdź na Youtube jakiś dokument, wykład, cokolwiek gadanego. Jest masa sposobów w necie na jego darmowe pobranie. Nagraj i słuchaj w samochodzie. W najgorszym wypadku pewnie można znaleźć w internecie słuchanki maturalne i je nagrać. :P Ale lepiej coś technicznego. Może jakiś videotutorial? Na Youtube też jest ich pełno.

 

Czy możecie jeszcze podpowiedzieć o jakichś tutorialach, co by nie grzebać po www i selekcjonując co jest dobre a co nie?

Nie, bo tutoriale sa do konrektnych technologii, a nikt nie wie, na co się zdecydujesz. Do Googla wklepujesz po angielsku co i w czym chcesz zrobić i doklepujesz tutorial.

Przykład 1.

Przykład 2.

Przykład 3.

Jednym z Twoich problemów będzie ocenienie, który tutorial jest dobry, a który nie. Z czasem trafisz na blogi pisane przez znanych autorów, które powszechnie uznawane są za dobre. Dla Javy tacy autorzy to na przykład MkYong, BalusC, Vogella. Ja, znajdując tutorial w sieci, oceniam go tak:

  • Czy są obrazki pokazujące choć z grubsza listę kroków i efekt końcowy
  • Czy jest do pobrania działający kod wynikowy
  • Czy dużo ludzi w komentarzach ma problemy z ukończeniem tutoriala
edit:

 

Pomimo tego co napisał Luki91, że nie można wykuwać na blachę - czy mimo wszystko pewne rzeczy powinno się wykuć? Jakieś teorie, żeby wiedzieć co z czym ugryźć czy tego typu rzeczy same w sobie się zrobią jasne? Kiedy jaką petlę zastosować itd?

Nie, nie wkujesz. Czytasz tuorial by go zrozumieć i wiedzieć, czemu robisz tak, a nie inaczej. Nie czytasz go, by zakuć listę kroków, by coś osiągnąć. To trzeba czuć, a to przychodzi z praktyką. Dlatego po przeczytaniu o czymś, powinieneś pisać mały programik, który to wykorzystuje. Zakuwasz może ewnetualnie mechanizmy języka. Na przykład, że w Javie w metodach tworzone są kopie referencji do obiektu ale nie kopia samego obiektu. Albo, że w Javie są Checked Exceptions, a w C# ich nie ma. Albo, że w Javie nie ma multiple dynamic dispatch, a w nowym C# jest. Ale widzisz, to jest zakute kilka pojęć, a na temat tego, co za nimi się kryje, można wywalić essej na kilkadziesiąt stron. I ich nie zakujesz, tylko zrozumiesz.

Edytowane przez Karister
  • Popieram 1
Link to post
Share on other sites
Poznałem kiedyś gościa, który po prostu zrozumiał Delphi - zawsze wiedział co zrobić - czy Java, C# itd można zwyczajnie zrozumieć?

 

Nie można. TRZEBA :P Programowanie TRZEBA zrozumieć. Jeśli programowania nie rozumiesz, przestań programować. Musisz rozumieć, co się dzieje z twoim kodem, musisz rozumieć, co robi dany algorytm, jaka jest hierarchia klas. Nie ma innej drogi. Naturalnie, to nie przychodzi w tydzień albo dwa. Właśnie po to jest praktyka i pisanie projektów.

 

 

 

Żeby coś ćwiczyć musisz wiedzieć jak się za to zabrać, nie jestem w stanie i nikt chyba nie jest, kto jest zielony z danego tematu i nagle odpalić kompa i zacząć klepać jakieś aplikacje i na dodatek doszukiwać się w nich błędu:)

 

Nie chodzi o doszukiwanie się błędu. W programowaniu problemy i błędy przychodzą same.

Piszesz kod, wywala jakiś błąd, wpisujesz go do google i szukasz rozwiązania. Od tego momentu wiesz, jak daną rzecz napisać.

Piszesz aplikację, chcesz wyświetlić dane w postaci grafu, nie masz pojęcia jak to zrobić, więc szukasz. I znajdujesz, następnym razem wystarczy że zajrzysz jak to zrobiłeś poprzednim razem.

Edytowane przez Luki91
Link to post
Share on other sites

Przejrzałem kilka stron i powiem szczerze, że w polskich wydaniach jakiekolwiek kursy nie są zbyt ciekawe, dlatego próbuję z książką Clean Code:) Zobaczymy jak to będzie wyglądało.

Natrafiłem przypadkiem na program Eclipse, który podobno też jest potrzebny, ale nie bardzo wiem o co z nim chodzi i czy faktycznie zawracać sobie nim głowę?

Link to post
Share on other sites

Clean Code jest książką ogólnie o programowaniu i dobrych nawykach. Nie uczy ona konkretnej technologii od A do Z. Do Javy możesz sobie rzucić okiem na "Praktyczny kurs Java" Marcina Lisa. Z tego, co pamiętam książka porusza to, co ważne na początku, a autor nie zakłada, że czytający coś wie na start.

 

Eclipse to IDE, czyli środowisko programistyczne często wybierane przy pracy z Javą. Inne popularne to NetBeans oraz IntelliJ IDEA (płatne). Bez tego nie ruszysz.

Link to post
Share on other sites

Nie. :P Tak tytułem ogólnego wstępu:

Aplikacje napisane w Javie nie są bezpośrednio kompilowane do bytekodu wykonywanego przez procesor. Bytekod Javy odpalany jest przez wirtualną maszynę (JVM), która dalej komunikuje się z procesorem kompa w celu wykonania programu. Telefon komórkowy może mieć inną implementację JVM, dekoder telewizji cyfrowej inną, a komputer jeszcze inną. Jedne będą oferować bogatszy, a inne uboższy zestaw obsługiwanych instrukcji. I na przykład stary Android nie obsługuje standardowej funkcji .isEmpty() do sprawdzania, czy łańcuch znaków jest pusty. Więc program, który z niej korzysta wykona się bez problemu na Androidzie 2.3, a na Androidzie 2.1 radośnie poinformuje, że aplikacja uległa awarii i nastąpi jej zamknięcie. :)

 

Więc, wracając do tematu, na swoim Windowsie potrzebujesz:

  • Środowiska uruchomieniowego Javy (JRE), które zawiera w sobie JVM, żeby odpalić cokolwiek napisanego w Javie
  • Zestaw bibliotek programistycznych Javy (JDK), żeby w niej programować. JDK zawiera kompilator Javy. Przy okazji, wydaje mi się, że instalując JDK, od razu na kompa trafia JRE wraz z JVM
Mając te rzeczy, możesz w notatniku napisać program, skompilować go z linii poleceń i wszystko będzie śmigać.

Jednak, jak wiadomo, notatnik jest narzędziem dośc ubogim i szybko się okaże, że przydałoby się kilka dodatkowych udogodnień. :) Z pomocą przychodzi IDE, które:

  • koloruje i podpowiada składnię
  • pozwala przeszukiwać pliki
  • wyświetla różne diagramiki
  • pozwala jednym kliknięciem skompilować i włączyć program oraz go debugować
  • dba o strukturę plików i folderów
  • zaznacza błędy w kodzie
  • oferuje jeszcze milion innych rzeczy.
Nie jest to więc coś niezbędnego do stworzenia programu. IDE nic nie dorzuca. Natomiast znacznie ułatwia pracę. Edytowane przez Karister
Link to post
Share on other sites

Wszystko kolorowo :P

Program Witaj Świecie - i błąd przy kompilacji.

Wszystko zrobione tak jak powinno i pokazuje się error.

Ciekawe, że pliki z programami nie mogą być zapisane w ścieżce typu C:\Program Files\...

Pierwszy problem rozwiązany:D

Jeden mały krok w programowaniu, ogromny krok dla ludzkości:D

 

@Karister

Aaaa no to już wszystko jasne hhyhyhy Dzięki!!

Czyli w teorii PHPDesigner też by się nadał, pod warunkiem, że obsługuje treści kodu Javy. W tym właśnie klepałem stronkę www:)

Edytowane przez qwert
Link to post
Share on other sites

Ciekawe, że pliki z programami nie mogą być zapisane w ścieżce typu C:\Program Files\...

Pewnie spacja spowodowała trudności. Windows potrafi nastarczyć traumatycznych problemów ze spacjami, pojedynczymi (') i podwójnymi (") cudzysłowami oraz z ukośnikiem (\) w drugą stronę, niż używa cały świat (/). :D

Link to post
Share on other sites

No właśnie spacja nie jest sprawcą. Nadałem nazwę katalogu "app java" bezpośrednio w C:\ i wszytko gra:)


Żeby się zapoznać w ogóle z tym wszytkim oglądam sobie tutorial na YT, tylko coś mi się zdaje, że troszkę to za szybko leci.

Lekcja 1 - instalka jdk i eclipse

Lekcja 2 - pierwszy program Witaj świecie

Lekcja 3 - Pierwszy kontakt z Eclipse i ponownie Witaj świecie + otworzenie i kompilacja obu programów

Lekcja 4 - Zmienne i typy danych

Czy przed Lekcją4, nie powinno się troszkę bardziej popraktykować?

No dobra, posprawdzałem jak się dodaje komentarze, aby kompilator je pomijał. Ile można wierszy wpisać do wyświetlenia i gdzie to robić i jak, ale wg mnie dalej jest się zieloną gugułą :P Chyba, że to taki ogólnikowy przedsmak i w chwili dotarcia do bardziej poważnych rzeczy zaczną się schody w postaci tłumaczenia wszytkiego po kolei. Nie chce przeskakiwać i później wracać do materiału bo to może bardziej zaszkodzić.

PS Czy ta książka to jest gdzieś dostępna;)?

 

PS

Jeżeli mam:

 

public class WitajSwiecie
{        
    public static void main(String[] args)
    {        
        System.out.println("Witaj Świecie");
        System.out.println("Co się stanie?");
        System.out.println("Można tutaj dowolną ilość wierszy dać");
        System.out.println(Math.pow(2, 3)); //pow=potęgowanie
        System.out.println(Math.sqrt(9.8)); //sqrt=pierwiastek
        System.out.println(Math.sqrt(625.0)); ->jak tutaj w wierszu obok wyrzucić na ekran co oznacza funkcja sqrt

    }    
    
}


/*W takie znaczki wchodzi komentarz wieloliniowy*/
// W takie znaczki wchodzi jednoliniowy

Edytowane przez qwert
Link to post
Share on other sites

System.out.println(Math.sqrt(625.0)); ->jak tutaj w wierszu obok wyrzucić na ekran co oznacza funkcja sqrt

System.out.println(Math.sqrt(625.0) + " pierwiastek(625) = 25");
albo

System.out.print(Math.sqrt(625.0));
System.out.println(" pierwiastek(625) = 25");

Poza tym, kilka linii możesz wświetlić pojedynczą instrukcją, używając znaku nowej linii: 

System.out.println("linia1\nlinia2\nlinia3");
Link to post
Share on other sites

@Karister

Nie skumałem na początku i myślałem że źle zrozumiałeś, ale to ja źle zrozumiałem:P

Czy te dwa pierwsze zapisy różnią się czymś więcej od tego że pierwszy wyołuje z 1komendy a drugi z dwóch? Ma to jakieś znaczenie? Spowalnia proces wyświetlania któryś z nich?

Dzięki

 

W ostatnim przykładzie co rozumiesz jako linia? Tzn czym trzeba ją zastąpić albo jakoś zdefiniować bo wyświetla jak po prostu linia.

Edytowane przez qwert
Link to post
Share on other sites

Linia tekstu wyświetlana w konsoli. Masz 4 instrukcje:

System.out.println("Można tutaj dowolną ilość wierszy dać");
System.out.println("Wiersz1");
System.out.println("Wiersz2");
System.out.println("Wiersz3");

Możesz to samo osiągnąć przy pomocy tylko jednej:

System.out.println("Można tutaj dowolną ilość wierszy dać\nWiersz1\nWiersz2\nWiersz3");

Jedno i drugie wyświetli

Można tutaj dowolną ilość wierszy dać
Wiersz1
Wiersz2
Wiersz3
Dwa sposoby na to samo, żaden nie jest gorszy ani lepszy. Ale stosowanie '\n' w celu podzielenia tekstu na kilka linii przyda się wiele razy.
Link to post
Share on other sites

http://javastart.pl/ przerób przykłady z tej strony :) A potem wymyślaj sobie programy do napisania. 
Co do sposobu nauki, każdy uczy się inaczej. Na początku najpierw czytałem rozdział czy coś potem robiłem. Skończyło się na tym, że w trakcie pisania szukam i czytam :P 
Jeśli chodzi o IDE to ja preferuję NetBeans. Bardziej przypadł mi do gustu. Ale nie chcę robić wody z mózgu. Na sprawdzanie co się woli przyjdzie czas. Gdybyś miał z czymś problem to możesz na pw pisać ;) 
Bym zapomniał, dokumentacja, niemal biblia :P Gdy nauczysz się z niej korzystać życie stanie się łatwiejsze.
http://docs.oracle.com/javase/7/docs/api/
http://docs.oracle.com/javase/8/
http://docs.oracle.com/javase/tutorial/

Link to post
Share on other sites

@Karister

A, już rozumiem:) No przyda się z pewnością jak wszystko zresztą.

 

@Mistic92

Widziałem ten kurs właśnie na necie, natomiast co do pozostałych linków to grubsza afera bo sam angielski, ale to powoli.

Tak jak w tym kursie jest:

Jaka będzie ogólna definicja konstruktora domyślnego (bezparametrowego) dla poniższej klasy:

class Person

  {

     String firstName;

     String lastName;

   }

 

czym jest konstruktor domyślny? Czym bezparametrowy? Czym jest class a czym public class? itd

Właśnie tego typu rzeczy mnie męczą, bo nie wiem jak z nich korzystać i jak się w ogóle za to zabrać.

Wskazaliście drogę, ale dalej jestem w martwym punkcie.

Przerobiłem zadanie z WitajŚwiecie, pokombinowałem trochę z tekstem i nie wiem czy jechać dalej, czy wyszukiwać nowe i dalej to utrwalać na tym samym poziomie.

Link to post
Share on other sites

public, private, protected, static, class są słowami kluczowymi Javy (nie tylko, np. C# też je ma) związanymi z obiektem i klasą, które są zagadnieniami związanymi z programowaniem obiektowym:

http://math.hosted.pl/math_2/programowanie_obiektowe/3Klasy.pdf

http://www.nauka-programowania.pl/J1.PDF

http://icis.pcz.pl/~roman/wyklad4.pdf

 

Z góry zaznaczam, ze nie czytałem powyższych .pdf, ale poświęciłem nieco ponad dwie minuty na ich przeglądnięcie. :P Dodatkowo poszukaj sobie coś o konstruktorze kopiującym (głęboka kopia obiektu).

 

Najpierw powinieneś potrenować używanie funkcji. Napisz funkcję, która przyjmuje jako argumenty dwie liczby i zwraca (słówko return) ich sumę. Albo zwraca większą z nich.

 

Potem jako ćwiczenie napisz program, w którym:

  • Zdefiniujesz klasę Punkt, która:
    • zawiera konstruktor Punkt(int x, int y). Będzie potrzebne słówko kluczowe this.
    • zawiera pusty konstruktor Punkt(){}
    • zawiera pola prywatne x, y typu int. Napisz dla nich settery i gettery
    • posiada funkcję obliczOdleglosc(int x, int y). x i y to wspolrzedne jakiegos innego punktu. Będzie potrzbne słowo kluczowe this.
    • posiada funkcję obliczOdleglosc(Punkt inny). Poznasz, co to jest przeciążanie metod
  • Zdefinujesz klase Program, w której będzie metoda startowa public static void main(String[] args). W niej:
    • Stwórz obiekt typu Punkt przy pomocy konstruktora przyjmującego x i y.
    • Stwórz drugi obiekt typu punkt przy pomocy konstruktora bezargumentowego. Ustaw jego x i y przy pomocy setterów
    • Wyświetl odległość między tymi punktami, korzystając z wcześniej zdefiniowanej funkcji obliczOdleglosc(Punkt inny)
    • Wyświetl odległość któregoś z powyższych punktów do punktu (0, 0), korzystając z wcześniej zdefiniowanej funkcji obliczOdleglosc(int x, int y)
Link to post
Share on other sites

Chińszczyzna:P

Pierw te pdf, później reszta. Pierw mam problem z wywołaniem byle zdania na ekranie a tu nagle wyznaczanie punktów i ich odległości :D

 

 

 

Najpierw powinieneś potrenować używanie funkcji. Napisz funkcję, która przyjmuje jako argumenty dwie liczby i zwraca (słówko return) ich sumę. Albo zwraca większą z nich.

 

Co do końca znaczy "przyjmuje jako argumenty"? Przyjmuje w sensie losowym sama aplikacja?

Link to post
Share on other sites

Dołącz do dyskusji

Możesz dodać zawartość już teraz a zarejestrować się później. Jeśli posiadasz już konto, zaloguj się aby dodać zawartość za jego pomocą.

Gość
Odpowiedz w tym wątku...

×   Wklejono zawartość z formatowaniem.   Usuń formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Odnośnik został automatycznie osadzony.   Przywróć wyświetlanie jako odnośnik

×   Przywrócono poprzednią zawartość.   Wyczyść edytor

×   Nie możesz bezpośrednio wkleić grafiki. Dodaj lub załącz grafiki z adresu URL.

  • Ostatnio przeglądający   0 użytkowników

    Brak zarejestrowanych użytkowników przeglądających tę stronę.

×
×
  • Dodaj nową pozycję...