Jak napisać własny program?

Jak napisać własny program?
TC
  • Rejestracja:ponad 9 lat
  • Ostatnio:około 9 lat
  • Postów:6
0

Witam.

Moje pytanie jest może banalne , ale nie wiem jak zacząć. Czytam przeróżne kursy , książki ale w dalszym ciągu nie potrafię sam nic napisać. Znalazłem w internecie wypociny jakiegoś kogoś , kto stwierdził że siedzenie nad teorią to strata czasu. Ja sam wole praktyczne podejście , i tu proszę Was o pomoc. Powiedzmy ze chce napisać na początek zwykła grę tekstowa. Żadnej grafiki , tylko informacje. Od czego musze zacząć? Jak się do tego zabrać? Nie chodzi mi o gotowe rozwiązanie , a o tok myślenia. I jeszcze jedno pytanie. Skoro za dużo teorii jest be , to skąd mam wiedzieć co mi faktycznie jest potrzebne a co można pominąć i wrócić w razie potrzeby? Dzięki z góry

W0
" Żadnej grafiki , tylko informacje. Od czego musze zacząć? Jak się do tego zabrać? Nie chodzi mi o gotowe rozwiązanie , a o tok myślenia." - i znowu "powiedzcie mi, jak mam myśleć". Tak na poważnie - jeśli przeczytałeś chociaż jedną książkę dotyczącą podstaw Javy to powinieneś wiedzieć, jak stworzyć program tekstowy wypisujący i czytający znaki. Cała reszta to już projekt rozwiązania.
DK
  • Rejestracja:ponad 9 lat
  • Ostatnio:około 9 lat
  • Postów:13
0

IMHO, kodowanie jest jedną z tych pięknych dziedzin, gdzie teoria jest równie ważna, jak praktyka. Cieżko Ci będzie robić cokolwiek "praktycznie", nie mając teoretycznych podstaw. Dlatego "za dużo" teorii wcale nie jest "be". Twój sposób myślenia będzie ewoluował nie tylko poprzez praktykę, ale także i czytanie tego, co ktoś mądry napisał. Także moja rada - nie rezygnuj z książek i zacznij od pisania najprostszych programów, by w miarę upływu czasu pisać coraz bardziej zaawansowane. I druga rada: koduj, koduj, koduj. To trochę jak z przejechanymi kilometrami u początkującego kierowcy :)

0

Zacznij pisać własne wersje programów, które są w ksią<ort>rz</ort>ce, połączysz teorie z praktyką.

edytowany 1x, ostatnio: bogdans
Sarrus
Masz rację. W twoim przypadku proponuję słownik ortograficzny. Tam jest teoria, którą warto wdrożyć w praktyce.
Webowiec
Ty chyba zbyt wiele ksiąŻek nie przeczytałeś...
kate87
Oj się czepiacie :) Ja sporo czytam a głupie literówki i ortografy mi się też zdarzają. Nie mówiąc o interpunkcji która dla mnie jest ruską ruletką pomimo skończenia profilu humanistycznego w liceum :)
Sarrus
Rzadszych słów się raczej nie czepiam, ale robić błąd w takim wyrazie jak "książka" po prostu nie wypada.
kate87
Coś w tym jest zwłaszcza że każdy na jakimś etapie swojego życia korzysta z książek:)
TC
  • Rejestracja:ponad 9 lat
  • Ostatnio:około 9 lat
  • Postów:6
0

Teoria jest ważna , wiem. Nie chodzi o to ze nie chce się tego uczyć. Chodzi o to ze chce to zobaczyć w praktycznym programie a braki w teorii nadrabiać na bieżąco. Nie wiem po prostu jak zacząć. Otwieram Eclipse , tworzę klasy i co? Jestem ciekawy czy ktokolwiek rozumie o co mi chodzi :)

czysteskarpety
czysteskarpety
  • Rejestracja:około 10 lat
  • Ostatnio:ponad 4 lata
  • Lokalizacja:Piwnica
  • Postów:7697
0

nie prościej zobaczyć jak zbudowane są już gotowe proste programiki ? sam coś pozmieniaj, sam zobaczysz jak działają poszczególne funkcje, nikt raczej teraz nie siada i nie pisze od podstaw tylko opiera się na tym co już jest ;)


TC
  • Rejestracja:ponad 9 lat
  • Ostatnio:około 9 lat
  • Postów:6
0

Ale w książce są jakieś przykłady z matematyki które w moim mniemaniu są bezużyteczne. W przykładowym programie który ma wyświetlać kilka przycisków i jakieś dane , totalnie niepotrzebna jest mi silnia czy PI. Jak wdrożyć tak zdobyta wiedzę w praktyczny program?

kate87
One nie są bezużyteczne, one pokazują tok myślenia, Twój może być inny może doprowadzić do błędnych wyników, ale będzie. Nie nauczysz się tylko czytając kod, musisz wykorzystać go w praktyce, a najlepszym treningiem jest szukanie swoich rozwiązań kodu z książki i naprawianie bugów, błędów. Wtedy po jakimś czasie będziesz eliminował swoje błędy już na poziomie pisania a nie wtedy kiedy kompilator Ci podkreśli.
TC
  • Rejestracja:ponad 9 lat
  • Ostatnio:około 9 lat
  • Postów:6
0

Czysteskarpety masz może jakiś konkretny programik na myśli? Może to jest pomysł , bo kiedyś ściągnąłem kod zrodlowy jakieś gry ale była zbyt rozbudowana i się zgubiłem... jeśli masz dostęp do czegoś na czym mogę to pojąć , będę wdzięczny.

LukeJL
  • Rejestracja:około 11 lat
  • Ostatnio:minuta
  • Postów:8422
3

Powiedzmy ze chce napisać na początek zwykła grę tekstowa. Żadnej grafiki , tylko informacje. Od czego musze zacząć? Jak się do tego zabrać?

możesz zacząć od HelloWorlda, a potem go rozbudowywać.

Gra tekstowa wymaga tego, żeby program coś pisał, więc musisz i tak przerobić tutorial z HelloWorlda.

Po tym jak zrobisz program, który pisze HelloWorld, to możesz go wzbogacić o dodatkowe opcje, np. o opcję interakcji (czyli interaktywny HelloWorld - komputer pisze "jak się nazywasz", ty piszesz "Jan Kowalski", komputer odpisuje "cześć, Jan Kowalski").

Potem dalej to komplikujesz, dodając kolejne opcje, np. dodając "bazę danych" w grze (w cudzysłowie, bo tą "bazą" może być zwykła tablica czy inna struktura danych). Wtedy użytkownik coś będzie pisał, a komputer będzie sprawdzał to w tablicy.

I tak dalej, żeby to coraz bardziej rozbudowane było. (chociaż już pewnie na tym etapie mógłbyś zrobić prostą paragrafówkę).

Jednak, ponieważ jeszcze masz mało doświadczenia, w pewnym momencie dojdziesz do momentu, kiedy twój kod zacznie być tak chaotyczny, że sam się nie możesz w nim połapać. I jest to czas na... wyrzucenie wszystkiego/większośći tego co napisałeś i zaczęcie od nowa (to normalne, że najpierw pisze się prototyp a potem dopiero pisze się naprawdę).

Wtedy już będziesz mógł wyciągnąć pewne wnioski na ile teoria zgadza się z praktyką, co było dobrym pomysłem co złem. Wtedy też będziesz mógł lepiej zaprojektować program, i zrobić go lepiej następnym razem. Będziesz mógł też przewidzieć więcej problemów, które się pojawią przy okazji implementacji.

Czyli: dobrze jest zacząć od czegoś małego, potem dodając małymi krokami kolejne funkcje. Dobrze jest również nie mieć sentymentu do swojego kodu i jak trzeba to przepisać coś od nowa, albo przerobić (na tym etapie jeszcze nie masz z tym do czynienia, ale robiąc cokolwiek większego zrozumiesz co mam na myśli).


Gjorni
  • Rejestracja:około 12 lat
  • Ostatnio:około 3 lata
2
TvCc napisał(a):

Moje pytanie jest może banalne, ale nie wiem jak zacząć. [...] Powiedzmy ze chce napisać na początek zwykła grę tekstowa. Żadnej grafiki, tylko informacje. Od czego musze zacząć? Jak się do tego zabrać? Nie chodzi mi o gotowe rozwiązanie, a o tok myślenia.

Tok myślenia jest dość prosty. Podobnie jak w innych twórczych dziedzinach zwykle idea najpierw rodzi się w głowie. W Twoim przypadku niech będzie to gra tekstowa. Idea "gra tekstowa" jest jednak niczym więcej, jak prostym, nietkniętym blokiem marmuru. Żeby przekształcić go w "grę tekstową" musisz:

  1. Zobaczyć i przemyśleć: (i) ogólny kształt; (ii) szczegółowy kształt. To jest, musisz sobie odpowiedzieć na pytania "co ta gra ma robić", "jak ma to robić", "jak ma wyglądać", "jak się zachowywać", "w jaką funkcjonalność ma być wyposażona", "jakie informacje udostępnia, a o jakie prosi użytkownika" itd. Tworzysz schemat swojej aplikacji. Opracowujesz jej strukturę i zachowanie.
  2. Dobierasz narzędzia. Wybierasz język, API i rozwiązania, które są dopasowane do Twoich potrzeb.
  3. Zaczynasz rzeźbić. Najpierw główne, duże funkcjonalności, a potem coraz bardziej szczegółowe i wyspecjalizowane, pamiętając jednak o całości zaplanowanego aktu stworzenia.
  4. Weryfikujesz swoją pracę iście psychotycznie - testujesz, debugujesz, myślisz (<- najważniejszy aspekt programowania; nie klep na pałę; wszystko ma być przemyślane).
  5. Kontynuujesz cykl dłubania i testowania, aż monotonny, poszarzały blok nieciekawego kamulca zmieni się w iście zjawiskową, skrzącą się niczym cyrkon z czeluści Wezuwiusza, grę tekstową. O! Nazwij ją "Klątwa Wezuwiusza" i opisz przygodę z alternatywnej linii czasu przed kataklizmem w Pompejach. Wiesz, młody, butny etrusk wścibia nos tam, gdzie nie trzeba i dowiaduje się, że za wzmożoną aktywnością sejsmiczną góry stoją bogowie, którzy ostatecznie okazują się być cofniętymi w czasie illuminati.

Rozumiem Twój problem. Jednak zrozum, że sam musisz sobie wypracować "procedurę tworzenia". Każdy robi to troszkę inaczej, bo każdy z nas ma inny mózg (serio). Dlatego chyba nie ma co się zbyt długo rozwodzić nad poradami z cyklu "jak mam kodzić?" tylko podrzucić listę pomysłów na apkę i krzyknąć "nie pie$#%@#!, tylko zabieraj się za kodzenie, jeżeli chcesz kodzić, bo samo się nie zakodzi".

W/w lista:
http://www.linuxtrainingacademy.com/projects/


The quieter you become, the more you are able to hear.
edytowany 1x, ostatnio: Gjorni
J0
  • Rejestracja:ponad 9 lat
  • Ostatnio:prawie 8 lat
0

Może to głupie, ale zbuduj najpierw program programowania :)
Tak czy siak musisz mieć jakieś podstawy, żeby programować, czyli najpierw zaprogramuj siebie.

Najlepiej sporządzić sobie listę potrzebnych informacji do dobrego programowania.

  1. Podstawy jakiegoś języka,
  2. Umiejętność debbugowania tych programów, trzeba umieć sobie jakoś radzić z błędami.
  3. Znajomość programowania obiektowego, w tym języku, w którym się programuje, wiedze teoretyczną jak i praktyczną. Każdy większy projekt jest obiektowo pisany, więc do programowania gier jest to najlepsze rozwiązanie, wszystko ładne i schludne.
  4. Algorytmy można zrobić w innej kolejności, dużo jest funkcji gotowych do rozwiązywania tych zadań więc nie trzeba koła na nowo tworzyć, ale warto wiedzieć jak one działają bo są interesujące.
  5. Można dodatkowo douczyć się assemblera, wystarczą podstawy będziesz wiedział jak działa procesor no i każdy program można podejrzeć w memonikach assemblera i wywnioskować jak on działa, no i możesz kraść pomysły w analityczny sposób.
  6. Dobrze wiedzieć jak działają różne pliki, graficzne, dźwiękowe, wykonywalne, tekstowe.
  7. Dobrze też liznąć jakiegoś API systemowego na którym pracuje system.
  8. No i jak interesuje cię grafika 2d i 3d to dobrze jest się z takową biblioteką zapoznać, bo na nowo pisać tą bibliotekę w asemblerze to może być bardzo czasochłonna czynność, a chyba lepiej się skupić na zadaniu.
  9. Na koniec dobrze sobie rozpisać na kartce, albo narysować problem jak byś go wykonywał czynność po czynności, żeby spełnił swoje zadanie i potem tylko przepisujesz na kod danego języka :)
    np. a) Pobierz liczbę od użytkownika.
    b) dodaj do niej 5
    c) wypisz etc.
    d) wyjdz
    Takie powierzchowne czynności.
    Później takie powierzchowne czynności rozbijasz na mniejsze, aż do rozbicia problemu :P

Tyle wiedzy wystarczy żeby samemu sobie radzić z każdym napotkanym problemem.
Ewentualnie zawsze możesz wiedzy różnej szukać na stronach jakiś uczelni, zazwyczaj udostępniają wiedzę studentom i za pomocą google można się do tego dobrać, a zawsze ładne pdf'y mają i są w łopatologiczny sposób napisane.
Ewentualnie videotutki na youtube etc.

edytowany 1x, ostatnio: J0ras
mr_jaro
  • Rejestracja:prawie 14 lat
  • Ostatnio:ponad 3 lata
  • Lokalizacja:Grudziądz/Bydgoszcz
  • Postów:5300
2
TvCc napisał(a):

Ale w książce są jakieś przykłady z matematyki które w moim mniemaniu są bezużyteczne. W przykładowym programie który ma wyświetlać kilka przycisków i jakieś dane , totalnie niepotrzebna jest mi silnia czy PI. Jak wdrożyć tak zdobyta wiedzę w praktyczny program?

Szczerze? Na przykładzie silni dowiadujesz się o rekurencji, która wbrew pozorom przydaje się w momencie kiedy nigdy byś nie pomyślał, że się przyda.


It's All About the Game.
J0
  • Rejestracja:ponad 9 lat
  • Ostatnio:prawie 8 lat
0

.

edytowany 1x, ostatnio: J0ras
Gjorni
elo zamiast bye byłoby bardziej na miejscu.
czysteskarpety
czysteskarpety
  • Rejestracja:około 10 lat
  • Ostatnio:ponad 4 lata
  • Lokalizacja:Piwnica
  • Postów:7697
0
TvCc napisał(a):

Czysteskarpety masz może jakiś konkretny programik na myśli? Może to jest pomysł , bo kiedyś ściągnąłem kod zrodlowy jakieś gry ale była zbyt rozbudowana i się zgubiłem... jeśli masz dostęp do czegoś na czym mogę to pojąć , będę wdzięczny.

jakie konkretnie to możesz sam poszukać
ja może dodam na przykładzie javascriptu, że tutki nie były dla mnie zbyt pomocne, oglądałem, czytałem, nic to w sumie nie dawało, tylko suche dane do wpisywania
z czasem sam pościągałem proste skrypty, (typu tylko dołącz do head czy body) zainstalowałem wamp managera i zmieniałem wartości, sprawdzałem funkcje, zobaczyłem jak poprawnie pisać kod, dodawać komentarze, odnośniki itp. jak czegoś nie wiedziałem to doczytywałem
potem zabrałem się za "grubsze" czyli kilka plików, html+css+js, też poprawne dodawanie do wordpress za pomocą wp_enqueue_script() i wp_enqueue_style() i inne magiczne cuda :)
jakbym miał się rzucić na wejście na skrypty na kilkaset linijek to też bym się zniechęcił
;)


Kliknij, aby dodać treść...

Pomoc 1.18.8

Typografia

Edytor obsługuje składnie Markdown, w której pojedynczy akcent *kursywa* oraz _kursywa_ to pochylenie. Z kolei podwójny akcent **pogrubienie** oraz __pogrubienie__ to pogrubienie. Dodanie znaczników ~~strike~~ to przekreślenie.

Możesz dodać formatowanie komendami , , oraz .

Ponieważ dekoracja podkreślenia jest przeznaczona na linki, markdown nie zawiera specjalnej składni dla podkreślenia. Dlatego by dodać podkreślenie, użyj <u>underline</u>.

Komendy formatujące reagują na skróty klawiszowe: Ctrl+B, Ctrl+I, Ctrl+U oraz Ctrl+S.

Linki

By dodać link w edytorze użyj komendy lub użyj składni [title](link). URL umieszczony w linku lub nawet URL umieszczony bezpośrednio w tekście będzie aktywny i klikalny.

Jeżeli chcesz, możesz samodzielnie dodać link: <a href="link">title</a>.

Wewnętrzne odnośniki

Możesz umieścić odnośnik do wewnętrznej podstrony, używając następującej składni: [[Delphi/Kompendium]] lub [[Delphi/Kompendium|kliknij, aby przejść do kompendium]]. Odnośniki mogą prowadzić do Forum 4programmers.net lub np. do Kompendium.

Wspomnienia użytkowników

By wspomnieć użytkownika forum, wpisz w formularzu znak @. Zobaczysz okienko samouzupełniające nazwy użytkowników. Samouzupełnienie dobierze odpowiedni format wspomnienia, zależnie od tego czy w nazwie użytkownika znajduje się spacja.

Znaczniki HTML

Dozwolone jest używanie niektórych znaczników HTML: <a>, <b>, <i>, <kbd>, <del>, <strong>, <dfn>, <pre>, <blockquote>, <hr/>, <sub>, <sup> oraz <img/>.

Skróty klawiszowe

Dodaj kombinację klawiszy komendą notacji klawiszy lub skrótem klawiszowym Alt+K.

Reprezentuj kombinacje klawiszowe używając taga <kbd>. Oddziel od siebie klawisze znakiem plus, np <kbd>Alt+Tab</kbd>.

Indeks górny oraz dolny

Przykład: wpisując H<sub>2</sub>O i m<sup>2</sup> otrzymasz: H2O i m2.

Składnia Tex

By precyzyjnie wyrazić działanie matematyczne, użyj składni Tex.

<tex>arcctg(x) = argtan(\frac{1}{x}) = arcsin(\frac{1}{\sqrt{1+x^2}})</tex>

Kod źródłowy

Krótkie fragmenty kodu

Wszelkie jednolinijkowe instrukcje języka programowania powinny być zawarte pomiędzy obróconymi apostrofami: `kod instrukcji` lub ``console.log(`string`);``.

Kod wielolinijkowy

Dodaj fragment kodu komendą . Fragmenty kodu zajmujące całą lub więcej linijek powinny być umieszczone w wielolinijkowym fragmencie kodu. Znaczniki ``` lub ~~~ umożliwiają kolorowanie różnych języków programowania. Możemy nadać nazwę języka programowania używając auto-uzupełnienia, kod został pokolorowany używając konkretnych ustawień kolorowania składni:

```javascript
document.write('Hello World');
```

Możesz zaznaczyć również już wklejony kod w edytorze, i użyć komendy  by zamienić go w kod. Użyj kombinacji Ctrl+`, by dodać fragment kodu bez oznaczników języka.

Tabelki

Dodaj przykładową tabelkę używając komendy . Przykładowa tabelka składa się z dwóch kolumn, nagłówka i jednego wiersza.

Wygeneruj tabelkę na podstawie szablonu. Oddziel komórki separatorem ; lub |, a następnie zaznacz szablonu.

nazwisko;dziedzina;odkrycie
Pitagoras;mathematics;Pythagorean Theorem
Albert Einstein;physics;General Relativity
Marie Curie, Pierre Curie;chemistry;Radium, Polonium

Użyj komendy by zamienić zaznaczony szablon na tabelkę Markdown.

Lista uporządkowana i nieuporządkowana

Możliwe jest tworzenie listy numerowanych oraz wypunktowanych. Wystarczy, że pierwszym znakiem linii będzie * lub - dla listy nieuporządkowanej oraz 1. dla listy uporządkowanej.

Użyj komendy by dodać listę uporządkowaną.

1. Lista numerowana
2. Lista numerowana

Użyj komendy by dodać listę nieuporządkowaną.

* Lista wypunktowana
* Lista wypunktowana
** Lista wypunktowana (drugi poziom)

Składnia Markdown

Edytor obsługuje składnię Markdown, która składa się ze znaków specjalnych. Dostępne komendy, jak formatowanie , dodanie tabelki lub fragmentu kodu są w pewnym sensie świadome otaczającej jej składni, i postarają się unikać uszkodzenia jej.

Dla przykładu, używając tylko dostępnych komend, nie możemy dodać formatowania pogrubienia do kodu wielolinijkowego, albo dodać listy do tabelki - mogłoby to doprowadzić do uszkodzenia składni.

W pewnych odosobnionych przypadkach brak nowej linii przed elementami markdown również mógłby uszkodzić składnie, dlatego edytor dodaje brakujące nowe linie. Dla przykładu, dodanie formatowania pochylenia zaraz po tabelce, mogłoby zostać błędne zinterpretowane, więc edytor doda oddzielającą nową linię pomiędzy tabelką, a pochyleniem.

Skróty klawiszowe

Skróty formatujące, kiedy w edytorze znajduje się pojedynczy kursor, wstawiają sformatowany tekst przykładowy. Jeśli w edytorze znajduje się zaznaczenie (słowo, linijka, paragraf), wtedy zaznaczenie zostaje sformatowane.

  • Ctrl+B - dodaj pogrubienie lub pogrub zaznaczenie
  • Ctrl+I - dodaj pochylenie lub pochyl zaznaczenie
  • Ctrl+U - dodaj podkreślenie lub podkreśl zaznaczenie
  • Ctrl+S - dodaj przekreślenie lub przekreśl zaznaczenie

Notacja Klawiszy

  • Alt+K - dodaj notację klawiszy

Fragment kodu bez oznacznika

  • Alt+C - dodaj pusty fragment kodu

Skróty operujące na kodzie i linijkach:

  • Alt+L - zaznaczenie całej linii
  • Alt+, Alt+ - przeniesienie linijki w której znajduje się kursor w górę/dół.
  • Tab/⌘+] - dodaj wcięcie (wcięcie w prawo)
  • Shit+Tab/⌘+[ - usunięcie wcięcia (wycięcie w lewo)

Dodawanie postów:

  • Ctrl+Enter - dodaj post
  • ⌘+Enter - dodaj post (MacOS)