Strona używa cookies (ciasteczek). Dowiedz się więcej o celu ich używania i zmianach ustawień. Korzystając ze strony wyrażasz zgodę na używanie cookies, zgodnie z aktualnymi ustawieniami przeglądarki.    X

Od czego zacząć programowanie?

Jeśli to czytasz to pozwól, że przejdziemy na Ty. Jestem Grzegorz, mam 17 lat i uczę się w Technikum Informatycznym. Będę tutaj przedstawiał zagadnienia związane z programowaniem jak i też takie luźne newsy, artykuły i poradniki.

Dobra, jeśli wstępik mamy za sobą to czas się wziąć do pracy. Nie zniechęcaj się widząc obszerność tego artykułu. Jest on tylko wstępem do tego co będzie potem ? …

Pytanie zawarte w tytule tego wpisu zadaje sobie wiele ludzi którzy chcą troszkę bardziej zagłębić się w działanie programów i komputera. Ba! Nawet mogę sobie dać głowę uciąć, że wszyscy o to pytają. Często też łączą to pytanie z innym: „Jakiego języka programowania warto się uczyć?”. Jeśli szukasz odpowiedzi na to drugie pytanie w tym artykule to możesz już od razu zamknąć przeglądarkę.

Dalej tu jesteś? Świetnie! No więc zacznijmy od tego drugiego pytania które nurtuje wielu z was. Jeśli myślałeś kiedyś o rozpoczęciu nauki programowania to pewnie pierwsze co zrobiłeś to zapytałeś wujka Google jakiego języka warto się uczyć. Wyświetliły Ci się pewnie linki do stron lub for na których ludzie „programiści” piszą różne zalety i wady języków programowania. Ja powiem tak. Nie zależnie od tego jakiego języka się będziesz uczył to musisz programowanie poczuć i zrozumieć, a nie bezsensownie przepisywać kod z książki za którą zapłaciłeś majątek, a nawet w połowie jej nie przeczytasz bo nie rozumiesz podstawowych zagadnień. W mojej szkole naukę rozpoczyna się od Pascala. Starego, dobrego, DOSowego Pascala. Spytasz DOSowego!?! Przecież to stary system którego nikt już dziś nie używa… Może i nikt lub prawie nikt go nie używa, ale jest on najlepszą podstawą do zrozumienia ogółu programowania. Ze swojego doświadczenia wiem, że te proste zagadnienia z programowania dzięki niemu bardzo łatwo wytłumaczyć i zrozumieć. Ostatnio z ciekawości zakupiłem książkę pt. „Ćwiczenia praktyczne c++” autorstwa Andrzeja Stasiewicza. Nie jest to na pewno książka dla początkującego, ponieważ tu nie są wytłumaczone wszystkie najmniejsze elementy języka. Niektóre rzeczy powinno się już wiedzieć, albo powinno się je wyszukiwać w Internecie. Przeczytałem tę książkę w 3 dni robiąc oczywiście pewne programy na komputerze. I co? Przecież nie znałem C++, nigdy w nim nic nie robiłem i pierwszy raz na oczy język widziałem, ale z tej książki jedyne czego nie zrozumiałem to konstruktory które odwołują się do klas które są dopiero w programowaniu obiektowym. Reszta zagadnień to tylko inaczej wyglądający kod i nic więcej! Ufff! Ale daleko wybrnąłem. No nic to teraz wróćmy się do pierwszego pytania!

Od czego zacząć programowanie? No więc najpierw wytłumaczmy co potrzebujesz do tworzenia programów. No więc musisz mieć komputer (bo bez tego raczej się nie obejdzie), trochę wiedzy i dużo kreatywności. Nie musisz się tu uczyć „na blachę” wszystkich schematów i skryptów. Wystarczy je zrozumieć. Np. sito Eratostenesa można napisać różnie, zależnie od wybranych pętli, ale o tym trochę później, przejdźmy dalej. Na komputerze musisz mieć kompilator czyli program który zamienia kod pisany na kod maszynowy / binarny. Kod pisany to taki który można odczytać i w większości składnie języków programowania opierają się o język angielski. Np. if – jeśli, return – zwróć, Begin – zacznij, break – przerwij itp. Kod binarny natomiast to taki który rozumieją maszyny i składa się on tylko z dwóch znaków 1 i 0. „Komputer to tylko kupa złomu, a my musimy ją nauczyć myśleć” i tego musimy się trzymać.

Tak w kwestii wytłumaczenia. Ten artykuł mówi o ogóle programowania i nie przedstawiam tutaj kompilatorów czy zasad typowych dla danego języka programowania. W przyszłości opublikuje też takie artykuły, ale ten taki nie jest ?

Już jesteśmy więc przygotowani sprzętowo, więc musimy zadbać o nasz mózg. Zacznijmy od tego z czego składa się program? Program składa się zazwyczaj z danych wejściowych, algorytmów i danych wyjściowych. Dane wejściowe w programie mogą być zapisane na stałe, ale to w 95% przypadkach nie ma sensu. Wyobraź sobie np. program kalkulatora w 100 wersjach. Pierwszy dodaje 1+1, drugi 1+2, trzeci 1+3 itd. Wiadomo, że lepiej jest zrobić jeden program kalkulatora do którego możemy wpisać sami te dane. Więc dane wejściowe to inaczej mówiąc te dane które użytkownik programu wpisuje do algorytmu ale nie ingerując w kod programu do którego zwykły laik nie ma dostępu. Algorytm to skrawek kodu który robi coś z danymi które otrzymał np. otrzymał a, b i h, i oblicza z nich pole trapezu. Algorytmu wysyła wynik na ekran komputera lub w inne wyznaczone miejsce i są to dane wyjściowe, które użytkownik otrzymuje bo zakończeniu wykonywania kodu.

Teraz na przykładzie. Tworzymy program do obliczenia pola trójkąta. Prosimy użytkownika aby wpisał on długości boków a i h. To są nasze dane wejściowe. Są one przesyłane do algorytmu który ze wzoru ah/2 obliczy pole trapezu. To pole trapezu jest naszą daną wyjściową.

Ogólną zasadę działania programów znamy więc zabierzmy się za ich konstruowanie. Więc jak zacząć? Po pierwsze musimy sformułować problem do rozwiązania czyli musimy się zastanowić co tak naprawdę ma robić nasz program. Później musimy problem zanalizować czyli zastanowić się jakie dane mogą być przydatne, czy które wzory matematyczne ułatwią nam zadanie. W wielu przypadkach tutaj trzeba zadawać wiele pytań bo przecież nie na wszystkim programista musi się znać np. Dostajesz w pracy zlecenie na program który ma za zadanie rozszyfrować czy wpisany związek chemiczny jest kwasem, solą, tlenkiem czy zupełnie innym typem związku chemicznego. Czysto teoretycznie załóżmy, że o tym nic nie wiesz. Więc musisz zdobyć informacje na temat jak zbudowany jest tlenek, kwas i sól, czym się wyróżniają, jak łatwo je rozpoznać itp. Zazwyczaj zadawanie takich pytań okaże się niezbędne w pracy z komputerem i to nie tylko przy programowaniu. Następnym naszym zadaniem będzie utworzenie algorytmu. Jest to chyba najcięższe i zarazem najważniejsze zadanie. Rozwinę je później lub w następnym artykule, zobaczę jak wyrobię się z czasem :D Następnie przystępujemy już do pisania programu na podstawie danego algorytmu który już stworzyliśmy. Gdy już się trochę wprawisz w pisaniu programów to nie będziesz musiał pisać na sucho schematów blokowych algorytmów, ale będziesz je tworzył przy pisaniu programu, więc jak widzisz to są podstawy i potem możesz niektóre rzeczy z którymi radzisz sobie lepiej omijać. Ostatecznym punktem opcjonalnym jest sporządzenie dokumentacji programu jeśli jest ona konieczna. Oczywiście przy tworzeniu aplikacji dla siebie omiń ten punkt bo przecież będziesz wiedział jak dany program działa ?

Co to jest algorytm? Regułkowo to: szczegółowy przepis określający rodzaj i kolejność działań niezbędnych do uzyskania wymaganych wyników na podstawie danych wejściowych. Należy podkreślić, że opracowany algorytm musi uwzględniać wszystkie możliwe przypadki jakie mogą się zdarzyć podczas obliczeń. Prościej to po prostu kawałek kodu, opisu słownego który mówi nam jak rozwiązać dany problem. Jednak regułka ma w sobie coś ważnego. „Należy podkreślić, że opracowany algorytm musi uwzględniać wszystkie możliwe przypadki jakie mogą się zdarzyć podczas obliczeń.” Tutaj trzeba uważać. Np. gdy prosisz użytkownika o wprowadzenie przedziału liczbowego z którego program ma wypisać tylko te które są liczbami parzystymi. No więc użytkownik wpisuje jako początek przedziału 10, a jako koniec 5. Program się rozsypuje. Trzeba więc zrobić pewne zabezpieczenia przed takimi sytuacjami, ale to tylko wzmianka reszta potem.

Dobra, jednak czas mnie nagli, a muszę jeszcze to przeczytać, skorygować to i tamto a potem opublikować, więc przepraszam jeśli chciałeś więcej. Będzie jutro, Ew. pojutrze :] Jeśli jednak jesteś bardzo spragniony wiedzy to poszukaj w Internecie już coś o schematach blokowych algorytmów, blokada początku i końca przedziału (pisałem o tym wcześniej) oraz poczytaj o zmiennych i ich typach w Pascalu bo na nim się będę opierał czy się komuś to podoba czy nie :P. Na dziś to koniec. Mam nadzieję, że pierwszy mój artykuł na tym blogu Cię nie rozczarował i jesteś zadowolony z czasu który poświęciłeś na jego czytanie… Pozdrawiam
 

Komentarze

0 nowych
kubut   17 #1 05.04.2011 23:41

Wpis porusza dobrą tematykę, jednak trochę nazbyt śpieszyłeś się z pisaniem. Lepiej, jeśli rozbiłbyś to na 2-3 wpisy, ale napisał je powoli i obszernie. Przeciętny gość, chcący nauczyć się programować nie zrozumie z tego wpisu prawie nic. Nie chodzi tu o błędy, czy brak logiki-ja zrozumiałem wszystko bez większych problemów, ale dlatego ze już to wiem. Wpis ma trafiać do początkujących, którzy tego nie wiedzą, a napisany jest jak przypomnienie. To taka moja rada na przyszłość, bo zapowiada się ciekawie, szkoda żebyś powielał błędy wielu poradników i używał nazbyt skomplikowanych sformułowań. Wolniej i obszerniej :) A na tworzenie algorytmów poświęć minimum jeden oddzielny wpis. Z doświadczenia wiem, ze wielu moich znajomych którym tłumaczyłem co to są algorytmu, nie potrafiło tego zrozumieć na przykładzie matematycznym czy też (o zgrozo) programistycznych. Spróbuj podać algorytm na (przykładowo) zrobienie herbaty. "Weź czajnik, nalej wody, włącz czajnik. Czy woda się zagotowała? Jeśli nie to czekaj, jeśli tak to weź czajnik i zalej herbatę" itd.
Co do zrozumienia samej idei języka, to fajnie uczy się na pseudo-języku. Zamiast instrukcji C++, Pascala czy Assemblera (ta... :P) ustalasz własne-"wyświetl", "wczytaj", "jeśli" itp. Dopiero później radze przejść do nauki któregoś z języków. Omów też ogólny podział języków (żeby nikt nie wrzucił Javy, Pascala i PHP do jednego worka)... Oczywiście to są moje porady, jako początkujący programista szukałem takich właśnie poradników, teraz gdy komuś pomagam zrozumieć programowanie staram się takie rzeczy przekazać. Powodzenia :)

przemo_li   11 #2 06.04.2011 09:28

Temat od dobre strony napoczęty.

Tylko się nie zgodzę z wymogami na start. Komp nie jest potrzebny. A zachwalanie DOSowego Pascala powinno być karalne.

Zakładając poziom licealny są lepsze narzędzia (np. taki które można LEGALNIE uruchomić w domu).

Plus za wskazanie najważniejszego elementu nauki programowania, czyli tworzenia modeli przedstawiającego programowanie. (A nie modelu naszego pierwszego języka).

  #3 06.04.2011 12:08

zależy zależy i jeszcze raz zależy... co chcesz pisać i jak?

Aplikacje www czy programy stand-alone a może jakieś programy wbudowane do urządzeń? Każda z tych dziedzin to kopalnia wiedzy do zdobycia i inne podejście do tematu. Druga kwestia wywodząca się z pierwszej to pytanie czy chcesz pisać liniowo czy obiektowo?
Przyjmijmy założenie że idziemy z trendem czyli wszystko jest w przeglądarce. Zakładam też że chcesz dla kogoś pracować przynajmniej przez jakiś czas więc w grę wchodzi tylko to co używają wszyscy i tutaj odpowiedź na Twoje pytanie:

php+html+css+java script, VBscript, java, asp, c#, pyton, ruby

Zanim podejmiesz dacyzje popatrz na ogłoszenia na jakimś portalu, to jest chyba ważniejsze niż to który język jest lepszy!!!

  #4 06.04.2011 12:45

Ciekawe jak uruchomisz DOSowego Pascala pod Windows 7/Vista 64-bit?

TestamenT   11 #5 06.04.2011 14:05

Do uruchomienia programów i gier na ten zacny system jakim jest DOS można użyć emulatora DOSBox

walker13150   4 #6 06.04.2011 15:15

Czekam na kolejne części :)

  #7 06.04.2011 15:37

na studiach nauke programowania zaczynałem od assemblera a potem C niby poto aby poznać ideę programowania... Jaki jest tego sens? Programowanie liniowe mam tak zakodowane w głowie że przesiadka na obiektówke to dla mnie koszmar...

kuba144   5 #8 06.04.2011 16:05

W sumie nie pomyślałem, że mógłbym zacząć podobny cykl.
Zgadzam się z wcześniejszymi komentarzami, że mimo wszystko chyba trochę za szybko i wszystko na raz.

Mogę podpytać z jakiej jesteś szkoły (miasto)? :>

iluzion   5 #9 06.04.2011 16:10

@misi0misi0

"Zanim podejmiesz dacyzje popatrz na ogłoszenia na jakimś portalu, to jest chyba ważniejsze niż to który język jest lepszy!!!"

W tym wieku człowiek zwykle jeszcze kilka razy zmienia zainteresowania;) Na dodatek od nauki do praktyki jest daleka droga. Kolega uczył się na studiach głównie Javy (ze względu na popularność), a teraz pracuje jako programista ABAP. Poza tym w Polsce zbyt dużego zróżnicowania ofert pracy nie ma. Póki takie myślenie się nie zmieni to wybór będzie ograniczony do tych kilku języków. Szkoda... a może tak jest lepiej?

Grzesieq94   2 #10 06.04.2011 17:50

Ufff... Nie myślałem, że będzie tyle komentarzy :D No to tak...

Przepraszam jeśli wpis jest długi, ale wydawało mi się, że powinienem zawrzeć to wszystko co napisałem... Wpis może wygląda jak przypomnienie a nie artykuł dla początkujących i za to też sorki. Spróbuje się poprawić w następnym artykule i nie będę się z nim tak spieszył ;) Dla mnie niektóre rzeczy wydają się oczywiste bo je po prostu potrafię. Rzeczywiście zapomniałem do kogo skierowany jest artykuł. Wybaczcie mi za niektóre błędy, ale to mój pierwszy artykuł w życiu na jakimkolwiek blogu.

Co do używania pseudo języka nie chciałbym go wprowadzać. Widziałem wiele pseudo kodów i naprawdę bardzo niewiele mi one wytłumaczyły. Mogę pisać podstawowe pomysły algorytmów w taki sposób jak pisał kubut w stylu włącz czajnik, zalej herbatę itp., ale całości algorytmów wolałbym pisać w danym języku żeby czytelnik mógł sobie go zmodyfikować, odpalić itd.

Dalej, bez komputera trochę ciężko jest nauczyć się programowania. Trzeba przecież jakoś kod wykonywać w kompilatorze, który nie tylko wykona napisany program, ale także pokaże nam popełnione błędy.

Co do DOSowego Pascala to ja na nim chciałem się oprzeć, ponieważ ja też od niego zaczynałem. W dodatku wiele przykładów zrozumiałem właśnie na tym języku i wydaje mi się on budową dużo prostszy od np. C++ który jest bardziej rozbudowany. Co do uruchamiania Pascala na nowych komputerach. Po pierwsze jest DOSbox. Po drugie można zainstalować DOSa jako drugi system. Po trzecie jest wiele kompilatorów które da się zainstalować na nowych komputerach takie jak FreePascal dla Windowsa czy Lazarus IDE dla Linuxa. W dodatku sam oficjalny kompilator Pascala da się uruchomić na Windowsie Vista czy 7. Nie napiszę jak bo niestety ja tych systemów nie używam ;) Dodam jeszcze, że są one jak najbardziej legalne i darmowe :D Jeśli jednak ktoś nie chce używać Pascala (który w dzisiejszym świecie się nie przydaje) będę pisał programy w Pascalu i C++...

W dodatku napiszę jeszcze, że skupiam się bardziej na programach wykonywalnych na komputerze, a nie aplikacji internetowych. Choć zasady programowania i tak są dosyć podobne...

kuba144 jestem z Gliwic ;]

I na koniec: Dzięki za komentarze. Pomogą mi one wykluczenie błędów w pisaniu na przyszłość i podejdę do tych artykułów troszkę od innej strony ;)

Xelosu   4 #11 06.04.2011 18:05

Większość książek o programowaniu jakie czytałem powiela jeden i ten sam błąd. Rozpoczyna naukę od "witaj świecie", opisie kodu komend, struktur języka, typów danych, strumieni, operatorów.
Niestety wpis ten również nie jest wolny od tego błędu.

Natomiast w programowaniu naj, naj ważniejsza jest umiejętność tworzenia algorytmów. A tego można się nauczyć na kartce papieru nie widząc komputera na oczy.

Programowanie to nic innego jak tłumaczenie (za pomocą języka programowania) algorytmów stworzonych przez programistę na język zrozumiały dla komputera.
Dlatego, nauka programowania == nauka tworzenia algorytmów.

Często gęsto, w fachowych książkach też, miesza się naukę programowania z nauką języka programowania. I nic dziwnego, że ludziom się kiełbasi. Jakby mnie uczyli na raz Hiszpańskiego i ekonomi(po Hiszpańsku) to też by mi się poknociło.

Mam również poważne zastrzeżenie co do tego stwierdzenia:
"Oczywiście przy tworzeniu aplikacji dla siebie omiń ten punkt(dokumentacja) bo przecież będziesz wiedział jak dany program działa ?"
Nie wiem skąd u nas w narodzie taka chęć do robienia na przekór. Ktoś mądry stara się wpajać dobre nawyki, a każdy tylko patrzy jakby na skróty..
Ciekaw jestem co powiesz, jak napiszesz pierwszy program > 20k linijek kodu i będzie trzeba go zmodyfikować po 6 miesiącach..

Grzesieq94   2 #12 06.04.2011 18:18

Xelosu co do tej dokumentacji to nie myślałem o tak dużych aplikacjach. Przy tak dużych projektach oczywiście, że dokumentacja będzie przydatna, ale przy mniejszych programach nie ma to sensu...

  #13 06.04.2011 18:23

Wpis średni. Moim zdaniem autor nic ciekawego nie wniósł, a tekst strukturą nie przypomina nawet poradnika. Opisałbym go "długim wstępem", bo niedoświadczone osoby raczej sobie odpuszczą przy tym tekście.
Liczę na konkrety (opisy ciekawych programów i oczywiście kody źródłowe).

Nie rozumiem, dlaczego niemal wszyscy komentują Turbo Pascala. Jeżeli boicie się o licencję lub kompatybilność z systemem operacyjnym, WYBIERZCIE FREE PASCAL.
Polecam.

Mateusz2598   3 #14 06.04.2011 18:52

@zxt (niezalogowany)

Sam posiadam Win7 x64, korzystam z Lazarus IDE (x64) i nie ma najmniejszych problemów z uruchomieniem Pascalowego DOS-a.

  #15 06.04.2011 19:10

@Xalosu
"Większość książek o programowaniu jakie czytałem powiela jeden i ten sam błąd".
Też jestem tego samego zdania. Pełno jest tego typu książek. Zaczynają się typami danych - kolejno odlicz: typ całkowity, typ zmiennoprzecinkowy, ... . Potem pętle: instrukcja for, potem instrukcja while, itp., itd.
Coś jak uczenie się języka np. Hiszpańskiego przez wkuwanie słówek. Super, każde słówko się zna na pamięć, ale... dogadać się nie można.

  #16 06.04.2011 19:57

Człowieku! Z nieba mi spadłeś z tym artykułem. Wybieram się do technikum informatycznego, badania zrobione i już niedługo będę składał papiery. Trzymaj tak dalej.

  #17 06.04.2011 21:42

Zgadzam się całkowicie z Xelosu. Na początku trzeba zapoznać się z algorytmami, a dopiero później nauczyć się programować. Nie rozumiem tego bezsensownego parcia na pascala, który i tak dawno zszedł na bok i powoli umiera. Obecnie prawie wogóle nie powstają duże aplikacje napisane w pascalu.

Ja zaczynałem od C++ i uważam że ten język jest najlepszy na start ponieważ większość współczesnie używanych języków w ma wiele wspólnych cech z tym językiem i jego protoplastą C.

Razi   5 #18 06.04.2011 22:24

ukradłeś mi temat:/ Tyle że ja chciałem zniechęcić napaleńców, którzy tylko straciliby czas pisząc super wirusy-szatdałny i pytali po forach jak się pisze boty i dodatki do gier.

@Xelosu: programowanie, a algorytmika to 2 różne sprawy. Algorytmika to rozwiązywanie problemów, a programowanie to zapis tego rozwiązania.

budda86   9 #19 06.04.2011 22:45

@Grzesieq94

Wpis jest niezły, chociaż miejscami nieco chaotyczny, wydaje mi się, że starasz się upchnąć zbyt wiele rzeczy na raz. Pisz dalej, z pewnością z czasem nabędziesz lekkości pióra i będzie Ci szło coraz lepiej.

Spróbuj np. tak: napisz coś, zrób korektę, odłóż całość na dobę i przeczytaj jeszcze raz. Bardzo pomaga wychwycić niedociągnięcia, których się nie widzi pisząc coś "na gorąco".

Ale oczywiście oceniam pozytywnie, czekam na dalsze części.

Parę drobnych uwag:

"Przy tak dużych projektach oczywiście, że dokumentacja będzie przydatna, ale przy mniejszych programach nie ma to sensu"

Owszem, przez pierwsze dwa tygodnie ;) a potem siadasz do takiego "prostego" kodu i okazuje się, że szybciej będzie napisać pewne rzeczy od początku niż zrozumieć, co się w tym kodzie dzieje.

Jeśli dopiero zaczynasz programować, to wyrób sobie nawyk umieszczania w kodzie masy komentarzy - im więcej, tym lepiej. Bardzo pomaga, no i można z nich automatycznie generować dokumentację ;) Docenisz to przy większych projektach.

„Komputer to tylko kupa złomu, a my musimy ją nauczyć myśleć” i tego musimy się trzymać.

No, z tym myśleniem to ciutkę przesadziłeś ;)

"Na komputerze musisz mieć kompilator czyli program który zamienia kod pisany na kod maszynowy / binarny"

Jeśli chcesz pisać w językach kompilowanych, owszem. Jeśli chcesz pisać w języku interpretowanym (skrypty bashowe, php js, python itd.) - nie.

"Wyobraź sobie np. program kalkulatora w 100 wersjach."

Tylko w 100? Mój kumpel zrobił na zaliczenie grę w kółko i krzyżyk z komputerem, opartą na chyba kilku tysiącach ifów...

"opracowany algorytm musi uwzględniać wszystkie możliwe przypadki jakie mogą się zdarzyć podczas obliczeń"

Sprawdzanie poprawności danych wejściowych niekoniecznie należy do samego algorytmu. Możesz np. napisać algorytm wyszukujący z założeniem, że na wejściu dostaniesz dane posortowane. A co się stanie, jeśli dostaniesz nieposortowane - to już Cię nie interesuje.

@misi0misi0

"php+html+css+java script, VBscript, java, asp, c#, pyton, ruby"

słowo "VBscript" powinien wykropkować jakiś filtr cenzurujący ;) (żarcik)

Fazid   3 #20 07.04.2011 00:31

@budda86
"Jeśli dopiero zaczynasz programować, to wyrób sobie nawyk umieszczania w kodzie masy komentarzy - im więcej, tym lepiej. Bardzo pomaga, no i można z nich automatycznie generować dokumentację ;) Docenisz to przy większych projektach."

W żaden sposób nie można się z tym zgodzić - zazwyczaj jest wręcz przeciwnie. Pomijając sytuacje wyjątkowe, jak dokumentacja publicznego API, zdaje się, że istotę komentarzy dobrze opisują dwa cytaty:
"Czytelny kod nie wymaga komentarzy" oraz "Obecność komentarzy zawsze sygnalizuje nieporadność programisty", Robert C. Martin

@Autor
Z jednej strony nie chcesz pisać o samym języku i uważasz, że na początku nie powinno się na to zwracać uwagi, z drugiej strony pierwsze, co robisz, to zalecasz czytelnikowi zapoznanie się ze składnią Pascala. Dodajmy, że czytelnikowi, który nie miał nigdy w życiu styczności z programowaniem, bo jak rozumiem, to jest target Twojego artykułu/cyklu. Nieścisłość? W mojej ocenie, tak.

Poza tym - przemyśl o czym właściwie chcesz pisać. Chcesz opisywać już istniejące algorytmy? Bo takie plany można byłoby wywnioskować z tekstu i Twoich komentarzy w dyskusji. Jeśli tak, to pytanie - po co? Jest multum stron internetowych, z których można się takich rzeczy nauczyć, bardziej ambitni sięgną do literatury, chociażby nieśmiertelnego Cormena. Opisywanie algorytmów napotyka dość istotną przeszkodę - te już istniejące są wielokrotnie opisane, przetworzone i wytłumaczone przez innych i tak na prawdę nie jesteś w stanie dorzucić nic od siebie. A blog powinien być wyrazem Twoich teorii, Twoich przemyśleń, Twojego podejścia do tematu i Twojej twórczości. Opisu istniejącego algorytmu nigdy nie będzie można zakwalifikować do tych kategorii.

O czym masz zamysł pisać zdradzasz się w dwóch miejscach - w samym tekście, wspominając sito Erastotenesa, do którego obiecujesz wrócić z szerszym opisem oraz w jednym z komentarzy, gdzie stwierdzasz "ale całości algorytmów wolałbym pisać w danym języku żeby czytelnik mógł sobie go zmodyfikować, odpalić itd". Moim zdaniem, takie opracowania nie będą miały żadnej przyszłości.

Zobacz, że pod tym tekstem masz mnóstwo komentarzy. Dlaczego? Bo postawiłeś kilka tez, które są dyskusyjne i, co nawet ważniejsze, Twoje - np. tą o komentarzach bądź o wyborze pierwszego języka. A o czym będzie można dyskutować, jeśli przedstawisz np. jakiś algorytm sortowania? No cóż...

budda86   9 #21 07.04.2011 00:51

@Fazid

No nie wiem, mi trudno jest zgodzić się z Tobą - być może jestem po prostu nieporadnym programistą. Spod moich palców wychodzi tyle kodu, że fizycznie nie jestem w stanie zapamiętać wszystkiego, co napisałem, zwłaszcza jeśli było to kilka miesięcy temu. Nad projektem pracuje wiele osób, często nie pamięta się, czemu jakaś konstrukcja się w kodzie znalazła (bo klient potrzebował czegoś specjalnego, bo trzeba było zrobić zaślepkę, bo musiało być kompatybilne z wersją sprzed paru lat). Często trzeba poprawić coś napisanego przez osobę, która już nie pracuje, lub przejąć od takiej, która właśnie odchodzi. Być może w algorytmie sortującym z podręcznika informatyki teoretycznej komentarze są zbędne, ale w życiu niestety rzadko zdarza się tak piękny i czysty kod. Przynajmniej takie jest moje zdanie.

Fazid   3 #22 07.04.2011 01:42

@budda86
"(bo klient potrzebował czegoś specjalnego, bo trzeba było zrobić zaślepkę, bo musiało być kompatybilne z wersją sprzed paru lat). Często trzeba poprawić coś napisanego przez osobę, która już nie pracuje, lub przejąć od takiej, która właśnie odchodzi."

Właściwie sam tutaj napisałeś odpowiedź na wszystko :) Tak, jak wspomniałem wyżej, stosowanie komentarzy jest uzasadnione w szczególnych przypadkach, których Ty wymieniłeś kilka. I bardzo słusznie. Ale poniekąd (co nie zawsze jest faktycznie winą programisty) to jest właśnie objawem takiej "nieporadności" - chociażby ze względu na wymagania technologii bądź środowiska czy też po prostu wymagań klienta nie jesteś w stanie/nie umiesz/nie masz czasu dostarczyć lepszego rozwiązania i stosujesz takie, które trzeba opatrzyć komentarzem, doskonale zdając sobie sprawę z jego ułomności. To jest jakaś forma nieporadności, choć czasem zupełnie nieintencjonalnej.

Okazuje się, że faktycznie większość sytuacji, w których aż Cię palce mrowią, żeby napisać komentarz, można sprowadzić do takich, które można rozjaśnić za pomocą lepszej implementacji. Oczywiście zostaje jakiś tam procent sytuacji, które wymagają opisu w języku naturalnym (o których mowa wyżej), ale to powinna być zdecydowana mniejszość.

Cytując Cię ponownie:
"Jeśli dopiero zaczynasz programować, to wyrób sobie nawyk umieszczania w kodzie masy komentarzy - im więcej, tym lepiej"

Widziałem kiedyś źródła jednego średnio początkującego programisty, który zdawał się wykorzystywać takie podejście do komentarzy. Komentował absolutnie wszystko, czy to było potrzebne, czy nie, faktycznie nie zwracając uwagi na lepszą jakość kodu, widocznie kierując się zasadą, że nie potrzebna mu czysta implementacja, skoro ma komentarze i może sobie na ich podstawie określić "co jest do czego". Z tego wynikały dwie konsekwencje:
- implementacja była strasznej jakości i była faktycznie "zasłaniana" przez komentarze,
- programista musiał utrzymywać aktualny nie tylko kod, ale również komentarze - dwa razy tyle pracy, w końcu te drugie były zaniedbywane, stały się nieaktualne i nie pasowały do zmienionego kodu, a niewiele jest rzeczy gorszych niż wprowadzający w błąd komentarz.

Moim zdaniem więc - dużo komentarzy, szczególnie na początku to zła praktyka. Komentarze rozleniwiają, odciągają Cię od czytania kodu, nie pozwalają wyrabiać w sobie umiejętności rozumienia źródeł... Komentarze same w sobie nie są złe, ale są wyjątkowo często nadużywane i wykorzystywane do celów, do których nie powinny. A powinny być stosowane bardzo świadomie i jedynie w uzasadnionych przypadkach.

Konkluzja: Zgadzam się w całości z Twoją drugą wypowiedzią. Natomiast ta pierwsza zdecydowanie może prowadzić do fatalnych praktyk i bardzo złych nawyków.

Xelosu   4 #23 07.04.2011 08:02

@Razi
Wikipedia:
"Powszechnie uważa się, że pierwszym programistą w historii była Ada Lovelace. W październiku 1842 roku jako pierwsza wyraziła ona algorytm w formie instrukcji przeznaczonych do wykonania na komputerze"
Xelosu:
"Programowanie to nic innego jak tłumaczenie (za pomocą języka programowania) algorytmów stworzonych przez programistę na język zrozumiały dla komputera."

Chyba jasne, że nie da się tłumaczyć czegoś czego się samemu nie rozumie. Przykro mi jeśli to nie jest "ścisłe", ale język naturalny nie jest ścisły.

@Fazid
Oczywiście, przesada w każdą stronę jest nie dobra. Komentować należy jedynie te fragmenty kodu, które nie są oczywiste.

nintyfan   10 #24 07.04.2011 08:56

Troszeczkę nie masz racji. Co do polecania DOS-a do rozpoczęcia nauki programowania, to jest to zły pomysł. Jakbyś przeszedł z Pascala na Assemblera i programowania w trybie rzeczywistym, to pewnie więcej czasu by Ci to zajęło niż przejście z Pascala do Assemblera pracującego w trybie chronionym. Natomiast co do samego Pascala, to jeżeli nie odwołujemy się bezpośrednio do pamięci, i nie wywołujemy przerwań, nie bawimy się rejestrami, a jedynie korzystamy z bibliotek standardowych(runtime), to możemy bez problemu programować programy pracujące w każdym systemie operacyjnym i na każdym sprzęcie posiadającym kompilator tego języka.

Nauka algorytmów i odpowiedniego sposobu myślenia jest w porządku. Jednak jeżeli chcesz nauczyć ludzi algorytmów, to najlepiej uciec od pozostałych aspektów. Wiadomo, że języki z garbage collectorem mogą się nie nadać do omówienia pewnych zagadnień związanych z algorytmami(tzn. omówisz, ale powstaną problemy z przetestowaniem programów), jednak rzucanie ludzi na głęboką wodę, w stylu C, też nie jest dobre.

Sidhmor   7 #25 07.04.2011 10:39

Według mnie, do nauki programowania nadają się (z tych znanych mi języków) tylko dwa - pascal i C. Z całą pewnością odradzam rozpoczęcie nauki od języków obiektowych, takich jak JAVA czy C#, bo chociaż są one wg. mnie wspaniałymi, wydajnymi narzedziami to jednak zbyt dużo upraszczają, a zrozumienie podstaw jest podstawą:P Poza tym obiektowość (chociaż później bez niej nie można się obejść), na samym początku przytłacza.

Ktoś kto dobrze opanuje C (nie jest to obszerny język), będzie miał doskonałą podstawę do nauki C++, albo właśnie któregoś JAVY czy C#.

Przestrzegam także nad rozpoczęciem nauki od PHP - tam się nie ma czego uczyć:P Jeden wielki bałagan, tyle że dosyć popularny... bądź co bądź nie jest to język do nauki, bo nawet nie nauczy się na nim człowiek dobrze, co to jest typ danych:D

kubut   17 #26 07.04.2011 12:02

Prawda jest taka, ze gdy ktoś opanuje język C++, opanuje bez większych problemów całą gamę innych języków. Po Pascalu opanuje...hm... Delphi?

  #27 07.04.2011 12:10

@Grzesieq94

W każdym projekcie musza być komentarze a do większych też stosowna dokumentacja, kto tego nie rozumie to znaczy ze nie napisał nigdy więcej niż kilka pętelek.

  #28 07.04.2011 12:18

@Sidhmor

Ja jestem ciekaw jak bym teraz pisał gdybym nauke zaczynał od Javy a nie od C...

Teraz wszędzie jest obiektów-ka, do pracy poszukują przede wszystkim ludzi od Javy C++ C# nie lepiej odrazu na głęboką wodę? Przecież na początku głupie pętelki wydają się trudne wiec nie lepiej od razu zacząć obiektów-kę?

budda86   9 #29 07.04.2011 23:58

@Fazid

Można napisać in-place merge sort tak, żeby oglądający to matematyk doznał ekstazy, a każdy znak krzyczał "jestem ideałem". Ale tak naprawdę bycie programistą to bardziej rzemiosło, niż sztuka. W projekcie, gdzie masz tony połączeń bazodanowych z mapowaniem relacyjno-obiektowym, popaprane GUI (bo klient takie chce i koniec dyskusji), jeszcze jakieś RMI, i to wszystko ciągle modyfikowane, bez komentarzy zginiesz. Po prostu tego się nie będzie dało rozwijać - zwłaszcza, jeśli nad kodem pracuje więcej osób.

Oczywiście, jak słusznie zauważył Xelosu, we wszystkim trzeba zachować umiar. Masz rację, że przesadziłem pisząc o "masie komentarzy", źle się wyraziłem. Wydaje mi się jednak, że komentarze pomagają podczas uczenia się - na początku tego wszystkiego "nie czujesz", nie widzisz na pierwszy rzut oka do czego służą pewne konstrukcje. Poza tym nikt nie pisze od razu dobrego kodu - siłą rzeczy, sporo konstrukcji będzie nieporadnych, i dlatego będą wymagać komentarza.

Oczywiście masz rację pisząc o dążeniu do tworzenia dobrego i przejrzystego kodu, a moją intencją nie było stwierdzenie, że komentarze mogą to zastąpić. Wydaje mi się, że doszliśmy do porozumienia?

budda86   9 #30 08.04.2011 00:15

A propos pierwszego języka... Ja się uczyłem programować w języku Visual Basic, i to nie żadnym .netowym, ale Microsoft Visual Basic 6.0 (lata temu). Niektórzy mówią, że język programowania i Visual Basic to jak wiersz i wiersz biały. Jest naprawdę popaprany. Mam kumpla, który z kolei pierwsze kroki stawiał w PHP. Obydwaj wyszliśmy na ludzi :)

Wydaje mi się, że każdy język może być pierwszym, ale jeśli można dokonać świadomego wyboru, to lepiej wybrać coś bliższego rzeczywistości - bo później będzie łatwiej.

Moim skromnym zdaniem Java jest całkiem niezła na początek. Jest obecnie najpopularniejszym językiem programowania na świecie*, ma składnię w miarę podobną do c++. Jest językiem obiektowym, ale przecież nie trzeba tej obiektowości na początku wykorzystywać (chociaż ja uważam, że jednak się powinno). I ma fajną obsługę wyjątków, dzięki czemu nawet nowicjusz łatwo znajdzie linijkę, w której coś spaprał.

A tak w ogóle, to polecam na początek rysowanie schematów blokowych algorytmów i pisanie w pseudokodzie. Jeśli się załapie o co w tym wszystkim chodzi, to nauczenie się konkretnego języka jest już tylo kwestią czasu**, aczkolwiek języków archaicznych typu Pascal bym się nie uczył i tak - lepiej ten czas poświęcić na coś, co się naprawdę przyda.

_______________________
* http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html
** Chyba, że to Ruby. Wtedy potrzeba jeszcze trochę więcej czasu.

nintyfan   10 #31 09.04.2011 20:11

@Sidhmor | 07.04.2011 10:39 :
Przypomniałeś mi, że swój własny system generowania stron statycznych, który jest napisany w Bashu, powinienem wymienić na DJango. Tak to jest. Na początku potrzebujemy coś na teraz, więc w parę chwil to sobie zakodujemy, ale później i tak potrzebujemy rozwiązania bardziej wszechstronnego.

nintyfan   10 #32 09.04.2011 20:18

Co do pomysłu artykułów, to dobrym pomysłem wydaje się wprowadzić podstaw automatów.
Świetnym pomysłem jest też wprowadzenie obsługi debugera - jednak, co ważne, to byłaby to raczej nauka obsługi konkretnego narzędzia.

  #33 10.04.2011 12:27

Trzeba nauczyć się myśleć jak maszyna,która robi wszystko po kolei w kilku krokach,tak działa komputer,algorytm programu jest zapisem tych kroków
np. mamy do dodania kilka liczb i jakbyśmy to zrobili ?,potrzebujemy zmiennych suma,czynnik i,n do liczenia przebiegów w pętli
Najpierw podajemy ile tych liczb ma być
Begin
Write ('Podaj ile liczb');
Read(n)
For i:=1 to n do Begin
Writeln ('podaj',i,'liczbę);
Read (czynnik);
suma:=suma+czynnik;
end;
Writeln ('Suma wynosi ',suma);
end.

  #34 10.04.2011 14:11

Myśle ze najłatwiej jednak zacząć jest korzystając z czyjegoś doświadczenia - np. darmowego kursu "programowanie w c#" na portalu http://virtualstudy.pl/ .Kurs tam trwa 6 miesięcy,jest całkowicie darmowy, prowadzony przez programistów i co najważniejsze - jest również zapisywany,wiec mozna sobie go później obejrzeć jeszcze raz.

Draqun   9 #35 10.04.2011 16:30

Chciałbym skomentować programowanie bez pomocy komputera.

Zaczynając studia na Politechnice białostockiej miałem zajęcia z programowania w C w postaci
2 godziny wykładu
2 godziny ćwiczeń - zeszyt-tablica
2 godziny laboratoriów z pracą na komputerze
wiele godzin w domu z pracą w trybie debugowania :)

Dziś studiuję na Politechnice Koszalińskiej (po co skracać studia to taki piękny okres :P) gdzie podejście jest inne. Na początek
2 godziny wykladów
1 godzina laborek tygodniowo.

Szczerze? Do du*y z taka pracą. Nie tylko, że ludzie nic nie rozumieją tak i nie potrafią nic napisać. Pomimo, że na PB nie byłem Asem tutaj świecę jako przykład dla kolegów, a to dlatego że 6 godzin zajęć tygodniowo to moim zdaniem minimum. Poza tym jakość projektów jaka była prezentowana na PK a ta na PB jest wręcz kosmicznie różna. Tutaj ja ludziom musiałem pokazać, że pewne rzeczy można robić na listach (pokazując w ogólę co to są listy i ich ideę) niż jakieś śmieszne zabawy z tablicami i plikami.

Do samego autora tekstu.

Proponuję zacząć naukę od PHP
- potem masz i łatwiej z nauką C/C++/C#
- na pewno znajomość PHP nikomu nie zaszkodzi
- jest to naprawdę przyjemnę
- dobry kurs PHP kosztuje 10 zł (w empiku kursy te można nabyć za takową cenę z dobrymi przykładami)
- jak szkoda ci dychy - pełno tego w sieci.

Ew. Jak chcesz napisz mi na GG 4782571 to podeślę ci mailem kilka rozdziałów programowania w C, jakie pisałem ludziom ode mnie z roku aby zrozumieli o co chodzi. Kurs nie jest czymś wielki - zaledwie kilkanaście stron (pewnie go tutaj opublikuję w najbliższym czasie) ale przekaże ci trochę wiedzy na początek w prosty i zrozumiały sposób.

  #36 10.04.2011 16:31

Zaczynając naukę programowania najważniejsze jest chyba aby umieć sobie zwizualizować co tak właściwie się pisze, dlatego polecam zapoznać się z programem scratch ;P

TomaszK-Poz   8 #37 10.04.2011 23:54

Od czego zacząć: napiszę na podstawie własnych męczarni.

Trzeba zacząć od wyboru co chce się robić: www czy aplikacje desktopowe. A może mikrokontrolery - albo telefony.
Później wybrać narzędzia i znane biblioteki - te standardowe, o stabilnej pozycji. I tego sie uczyc.

Wbrew pozorom w programowaniu nie jest najważniejszy język. Najważniejsze to struktura programu; wzorce projektowe; biblioteki i niuanse.

Bazę danych obsłużysz w C++, C#, VB i czymś tam jeszcze, ale musisz wiedziec, co ta baza potrafi robić. Kod programu napiszesz w C++....a nawet asemblerze jak masz za dużo czasu ALE jezeli napiszesz go zle, to pogubisz się w nim a jak klient będzie chciał coś dołożyć/zmienić to leżysz. Nie przetestujesz jak nalezy, pominiej cos, zapomnisz i koniec.

Przygotuj się na dużo samodzielnego dochodzenia co - jak i dlaczego, bo dużo przykładów w necie to proste przykłady a diabeł tkwi w szczegółach. Czytaj dużo dokumentacji i spędzaj kupę czasu na debugowaniu i rozpoznawaniu co tkwi w tej czarnej skrzynce.

Jak swoje projekty mógłbym napisać w różnych językach, ale nie zliczę czasu i nerwów z powodu np. Firebirda 2.1 i transakcji w NET czy obsługi wierszy danych w Ado.NET. Albo strata kupe czasu bo checkbox po otrzymaniu fokusa sam sie zaznacza...

Zainteresuj się też technikami prowadzenia projektów - zasada 80/20 czy iteracje. Zainteresuj się technikami testowania oraz automatyzacji oraz kontroli wersji. To zaprocentuje. Nie zaniedbuj kultury fizycznej i higieny pracy (dobry fotel), zarabisty monitor, klawiatura i szybka maszyna. Jak prowadzisz projekt od poczatku - inwestuj w dokumentacje projektu. Do pisania kodu zasiadaj jak juz bedziesz wszystko wiedzial i mial rozrysowane, jak bedziesz wiedzial co ma powstawac i w jakiej kolejnosci i jak to testowac.

Osobiście uważam, że w tych czasach jest gorzej - namnożyło się jezyków; urządzeń/platform, że nie wiadomo w co inwestować IOS czy WP7 czy Android czy NET czy JAVA etc. ASP PHP czu RUBY. Kiedys bylo prosciej.
Czyli przygotuj sie na trudne wybory.
Zycze wytrwalosci i zdrowia.

TomaszK-Poz   8 #38 11.04.2011 02:15

Jeszcze dodam:
Przyjmij sobie taki skromny projekt (WWW lub desktop)
- lista produktów
- lista kontrahentów
- zapis do bazy
- wydruk paru raportów, eksport do pdf i arkusza kalkulacyjnego
- lista operatorów z uprawnieniami
- wysyłka maili w przypadku awarii softu
- plik pomocy (F1)

Zrób to, zamknij/schowaj na miesiąc i wróć. Popatrz, co zrobiłeś źle. Posadź kogoś nieobeznanego, niech powie, czy soft jest łatwy w obsłudze.

Wydaje się proste, ale łatwo nie będzie.

TomaszK-Poz   8 #39 11.04.2011 02:19

Jeszcze uwaga odnośnie nauczania informatyki w szkołach nie związanych z informatyką. Za moich czasów (10-15 lat temu) było DO BANI !
Jakieś PASCALE, Borland klik + wpisz coś, komendy dosowe.
Zamiast: zaawansowane funkcje (skrypty) arkusza kalkulacyjnego czy proste bazy w Akces czy szybkie wyszukiwanie informacji etc. Czyli pierdy zamiast wykorzystanie możliwości komputera dostępnych dla zwykłego użytkownika.
Dopiero w prawy wykorzystałem QBasic czy skrypty w CorelDraw.

Dobra, wracam zarabiać na chleb...

gregory003   6 #40 11.04.2011 09:54

@misiOmisiO @TomaszK-Poz
Ale o czy wy mówicie? To, jeśli dobrze zrozumiałem miał być wstęp do kursu programowania dla początkujących, tak zupełnie od zera. Więc po co już teraz deklarować co chce się robić (chociaż fakt, warto mieć jasno postawiony cel a nie: "Nauczę się programować i jakoś to wykorzystam"). W każdym razie nie ma sensu już teraz stawiać sobie za cel pisanie aplikacji webowych czy oprogramowywanie urządzeń, bo to trochę wyższa szkoła jazdy. Najpierw trzeba wyłożyć podstawy.
Poza tym, poza wyborem odpowiedniego języka (jeśli appy webowe to PHP lub Java, jeśli urządzenia najlepiej asembler) nie ma żadnej różnicy w podejściu do programowania na etapie początkującego.

Nie wiem dlaczego wiele osób poleca C. To prawie taki sam trup jak Pascal. Tym bardziej że w C++ nikt do obiektowości nie zmusza, ani na początku, ani później i spokojnie można się bez tego obejść. A C wcale łatwiejszy nie jest, powiedziałbym nawet że ze względu na swoją "surowość" (względem C++) jest nawet trudniejszy.

  #41 11.04.2011 15:04

Błagam, oszczędźcie sobie tego Pascala. Dajcie już spokój, nie męczcie trupa. Pascal jest przestarzały i na dobrą sprawę nie nadaje się do niczego i uczy złych nawyków. Nie wiem skąd ciągle ten pęd żeby zaczynać od Pascala.

TomaszK-Poz   8 #42 11.04.2011 23:50

@gregory003
Czy C to trup - nie powiedzialbym. Uwazam, ze wlasnie teraz wazne jest, aby sobie odpowiedziec: pisze dla WWW czy pisze dla desktopu. Bo te wszystkie petle, rekurencje, if i inne to sa proste rzeczy i powtarzalne w roznych jezykach. A schody zaczynaja sie dalej. Gdy chetny dojdzie do wniosku, ze pisze WWW i wybierze ASP.NET, wtedy pojawia sie wyrazenia x=> x+2 czy m = n ?? "default".
Lub inaczej - co mu po nauce jakis suchych wyrazen czy akademickich przykladow w konsoli ?
Lepiej zrobic cos konkretnego - prosta strona, prosta aplikacja. Brzmi nudnie, ale poczatkujacy dobrze sie przy tym napoci. Wlasnie przez niuanse, upierdliwe drobiazgi. Bo teoretycznie, w glowie, to wszystko dziala, a w kompie zawsze jest jakis problem.
Pisales:
"Poza tym, poza wyborem odpowiedniego języka (jeśli appy webowe to PHP lub Java, jeśli urządzenia najlepiej asembler) nie ma żadnej różnicy w podejściu do programowania na etapie początkującego."
Wybor jezyka praktycznie implikuje srodowisko pracy, a srodowisko implikuje problemy. Piszac w JAVA nigdy nie spotka sie z problemem, ktory moze wystapic piszac dla kontrolera (np. przerwanie z powodu zmiennej na granicy slowa maszynowego) Piszac w Javie bedzie bardzo trudno przejsc na kontrolery.
Generalnie zaczalbym od wybrania co chce robic, pozniej wybrania standardu narzedzi w tym zakresie i nastepnie realizacji jakichs prostych projektow. Nauka reszty przyjdzie w trakcie.
Prawdziwe zrozumiemie (i niekiedy rozczarowanie) czym np. jest JAVA czy NET przyjdzie z praktyka.

  #43 12.04.2011 18:05
NRN   9 #44 13.04.2011 02:21

@up (anonim),
Kurs Xiona rzeczywiście wart jest polecenia, teoretycznie nawet dla początkujących. Ja bym tutaj jednak polemizował z pewnymi jego elementami dość... kontrowersyjnymi i mylącymi, uczącymi złych nawyków.

W mojej opinii, podstawowa nauka C++ to:
1. Symfonia C++
2. Pasja C++
3. Uzupełnienie serwisami cplusplus.com i cppreference

@autor,
Owszem, Pascal jest bardzo dobrym "wstępem" do programowania. I tylko wstępem. Nie polecam poświęcania mu więcej, niż paru miesięcy. Dlaczego? Nauczymy się w nim pisać liniowo i strukturalnie, ale o obiektowości możemy pomarzyć. Owszem, FreePascal (o tym za chwilę) pozwala na korzystanie ze składni Object Pascala, ale to nadal tylko namiastka tego typu programowania.

Kolejna sprawa, to dobór środowiska i kompilatora. Jest tego do wyboru, do koloru, chociażby:
- "już darmowy", konsolowy, Borland Pascal w wersji bodaj 5
- OpenSource'owy, również konsolowy, FreePascal IDE (z kompilatorem FreePascal)

Tworzone w Pascalu aplikacje działają pod Windows 7, nie widzę więc przeszkód w programowaniu w tym systemie.

---

Nie chcę Cię zniechęcać, ba, zamierzam Cię zachęcić do dalszego pisania. Ale żeby się nie okazało, że powoduje Tobą słomiany zapał i fascynacja nowopoznaną dziedziną informatyki. Po Twoim tekście, który z punktu widzenia polonisty byłby odrobinę wątpliwy, choćby ze względu na wielokrotne (i to pod rząd) rozpoczynanie zdań przez "No więc (...)", widać, że niewiele jeszcze wiesz, ale próbujesz swoją pasją zarazić innych. I bardzo, bardzo dobrze! Ćwicz, doskonal się, i informuj o efektach. Ale odradzam Ci uczenia siebie i innych, niesprawdzonych, a już w ogóle, niepoprawnych nawyków i metod działania.

A tak przy okazji. Gdy zaczynałem liceum, tak samo jak Ty pałałem miłością do programowania. Odkąd jestem na studiach, miłość ta przeradza się w coś zgoła odmiennego, rzekłbym, antagonistycznego wręcz. Oby Ciebie coś takiego nigdy nie spotkało ;)

Grzesieq94   2 #45 18.04.2011 13:39

@up Mam nadzieję, że nic takiego mnie nie spotka...

I sorki, że tak długo zwlekam z nowym artykułem, ale teraz tępią nas bo za niedługo matury więc niższe klasy potem oleją... Obiecuję, że w tym tygodniu pojawi się artykuł o algorytmach ;)

  #46 11.08.2011 15:27

A ja Ci mówie sprawdź jakieś języki funkcyjne, bo ponoć facebook był pisany w Erlang'u. Pozdrawiam.

  #47 14.07.2012 13:13

W kwesti wyboru języka programowania.
Osobę która do perfekcji opanowała excela też można
nazwać programistą no ale na ile tak naprawdę można zaprogramować w ten sposób.
A no tyle na ile excel pozwoli podobnie jest z językami wysokiego poziomu.
Szybkość i wygoda pisania kodu nie mogą być jedynymi warunkami wyboru języka.
Osoby decydujące się na języki wysokiego poziomu muszą być świadome tego
że jakby to napisać dają się "skanalizować" i mogą tyle zaprogramować na ile
system kanalizacyjny na to pozwala.
Albo żeby inaczej to zilustrować jedziemy na wycieczkę do Afryki i mamy
do wyboru rower+wyboista droga (programowanie niskopoziomowe ) albo rower+droga
w postaci dużej równiutkiej betonowej rury , która leci nad dolinami
przechodzi przez góry. Ale jest jeden warunek przez całą drogę nie możemy
tej rury opuścić (programowanie wysokopoziomowe).Tutaj każdy
musi sobie wyliczyć plusu i minusy obu dróg , która droga nas bardziej rozwinie
jako człowieka i programistę.
Ważne są predyspozycje osobowe np:czy jesteś niepoprawnym bałaganiarzem.
I tak trzeba znać parę języków aby sobie czasami tę drogę skrócić
(wysokopoziomowe). A czasami nie ma wyjścia głaz zagradza całą drogę i trzeba
(przekuć się) sięgnąć do rejestrów procesora albo poprosić o pomoc kolegę co
zna asemblera arm danej rodziny cpu a nie koniecznie zna c++,jave.
Ocenić swoje możliwości zdecydować co chcemy programować.Czy programować
urządzenia czy robić softy użytkowe dla ludzi. I najlepiej w czymś się
wyspecjalizować.
Często ważniejszym celem są zarobki a nie samo programowanie. Jeżeli tak
to kto znajdzie skarb? Ktoś kto szuka skarbu na wygodnej ale wydeptanej ścieżce
prze milion innych poszukiwaczy czy ktoś kto szuka gdzie inni jeszcze nie szukali
...:-)
Programowanie to innowacyjność możliwość projektowania , tworzenia ,zrobienia
czegoś z niczego im mniej form szablonów,gotowców, bibliotek tym większa szansa
na coś nowego na rozwój i większa szansa np: że ktoś korzystając z dobra twojej
pracy odkryje nowy lek na nieuleczalną chorobę albo przewidzi trzęsienia
ziemi itp.
Dlaczego Polacy ją światowej jakości programistami ?Bo zawsze mieliśmy super
sprzęty dysponowaliśmy najlepszymi programami wspomagającymi nauczanie ? Nie !!!!!!

Pozdrawiam.

  #48 02.06.2013 18:34

Biedulku przeczytac troche o językach programowania. Jest ich troszkę. Niestety nie wszystkie są tak proste.
Przeczytaj coś o haskell-u, simuli czy nawet prostym Icon-ie zrozumiesz, jak niewiele wiesz o jezykach nie ze wzgledu na zapis, ale na forme działania, forme rozwiązywania problemów.

To co piszesz jest fajne, ale mowi o jakis wymyslonych językach lub o jakiś językach dla ludzi, ktorzy nie chca sie ich uczyc a potrzebuja zgrabnego wrapera dla zmiennych.

Drogi czytelniku, po przeczytaniu tekstu przyjmij, ze autor mowic ci o przedszkolu i nie przejmuj sie, ze nie wychynal z piaskownicy.

  #49 03.02.2014 21:58

Jest wiele dróg, którymi może podążać programista, jak wspomniano w komentarzach wcześniej, można skupiać się na aplikacjach desktopowych, www czy zająć się mikrokontrolerami. Do tego dochodzą aplikacje mobilne na różne platformy. Najważniejsze to skupić się na konkretnej rzeczy, żeby nie starać się uczyć wszystkiego naraz.

Zapraszam jeżeli ktoś chciałby wymienić się doświadczeniami
http://michalzakrzewski.com/