Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Savet nekome ko hoće da počne da uči programiranje

[es] :: Art of Programming :: Savet nekome ko hoće da počne da uči programiranje

Strane: < .. 1 2 3

[ Pregleda: 15709 | Odgovora: 48 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

DjoleReject
Djordje Knezevic
Zvezdara

Član broj: 85258
Poruke: 309
*.dynamic.sbb.rs.



+1 Profil

icon Re: Savet nekome ko hoće da počne da uči programiranje18.06.2009. u 16:56 - pre 180 meseci
Ove nejasnoce se vrlo lako resavaju novom definicijom programera: Programer je covek koji zivi od programiranja.

Znaci, dok ucis, dok ti je hobi i slicne zanimacije za zube, ne mozes se smatrati programerom. Tada si programer onoliko koliko sam ja moler. E, a ako nadjes budalu koja ce ti davati novac za prevlacenje dugmadi na formu i "Rad sa wizardima" ja ti zelim sve najbolje, jer je po teoriji evolucije i bolje da takav poslodavac propadne (sto ce po toj istoj teoriji morati ;) )

Naravno, drzavna preduzeca u kojima ti je teca direktor moram izuzeti iz definicije.
De si Deda...
 
Odgovor na temu

u_m
Urukalo Milan
PH

Član broj: 18631
Poruke: 889
*.cri.rs.

ICQ: 32554731
Sajt: https://milan.urukalo.com


Profil

icon Re: Savet nekome ko hoće da počne da uči programiranje18.11.2009. u 15:20 - pre 175 meseci
hajde kad vec savetujmo.. dajte i meni nekakav savet

imam ogromnih problema da se uklopim u OOP, nekako mi je stran i nepodnosljiv takav nacin razmisljanja.. ima li kakav savet kako najlakse ovo svladati? procitao sam 3-4 knjige/tutorijala i muka mi vise od polimorfizama i slicnih izraza.. cemu mi to sve sluzi kad sve mogu lepo da odradim i sa obicnom funkcijom, vec imam malenu biblioteku istih koje koristim i pozivam u projektima, isto kao sto bi koristio i klase, a ne trosim vreme na odrzavanje istih i nema nikakvih ogranicenja na koja moram da pazim

inace, dugo vremena koristim PHP, C .. a sad je doslo vreme da predjem na PHP5 i iskoristim sve njegove oop mogucnosti (krenuo sam sa codeigniter fw, ali.. to mi lici na ulizivanje nekom da uradi posao za mene, vise vremena izgubim dok shvatim kako sve radi, nego sto mi treba da napravim nesto), kao i c++, c#, java, sve to zelim da savladam, ali ovaj prvi korak me mnogo saplece..

.. imam osecaj da pred sobom imam sportski automobil sa super-mega funkcijama, ali od tolikih instrument tabli, lajt showa, ja ne mogu da nadjem gde da uguram kljuc i upalim ga

Kako svladati OOP i kako ja to mogu realno da iskoristim?

#include <music.h>
#include <beer.h>
#include <girls.h>
main(){ run(partytime);}
---------
Moj licni sajt
Moj wap sajt--offline
 
Odgovor na temu

Milos911
Serbia

Član broj: 219127
Poruke: 1230
*.telenor.rs.



+303 Profil

icon Re: Savet nekome ko hoće da počne da uči programiranje18.11.2009. u 16:27 - pre 175 meseci
Vidis i ja sam imao slican problem. Onda sam na lynda.com nasao odlican tutorial (PHP with MySQL Beyond the Basics) pomocu koga sam shvatio osnove oop-a. A pre toga sam citao gomilu tutoriala u kome sam nalazio debilne primere tipa zamislite da je klasa automobil i da se svaki njegov deo definise pomocu metoda u njoj. Glupost. Moj savet: Odgledaj tutorial i onda pocni da pises neku ultrakomplikovanu skriptu. I shvatices zasto je oop pristup bolji :) Evo jednog primera :):
Napises database klasu. U odradis i query-je, konekciju, proveru gresaka... i onda gde god hoces pises naprimer $database->query("uradi to i to"). I onda vise ne brines o tome. Ako bude neka greska automatika uradi sve, obavesti te o gresci, upise je u neki fajl.... Ma sve. A kod ti je milion puta citljiviji. Naravno mozes ovo da uradis i samo sa funkcijama, ali zamisli da radis sa jos dve-tri osobe. Pa onaj tamo mora da gleda sta si gde pozvao, da trazi funkcije, bezveze gubi veme. Ovako sa oop svako moze da se snadje za sec...
Valjda si razumeo sta sam hteo da ti kazem :) Obavezno pogledaj onaj onaj tutorial (ako ne mozes da nadjes posalji mi privatnu poruku), i veruj mi bice ti mnogo jasnije zasto je oop ogromna prednost :)
 
Odgovor na temu

dakipro
Dalibor Jovic
Web Developer
Bergen, Norway

Član broj: 31848
Poruke: 1792
91.148.88.*

Sajt: norway.dakipro.com


+190 Profil

icon Re: Savet nekome ko hoće da počne da uči programiranje19.11.2009. u 08:15 - pre 175 meseci
Recimo jedan konkretan i praktican primer - Placanje na sajtu.
Imas deo koji se na primer obraca procesing serveru za pocetak sesije, rezultat vraca neki session ID koji ti trebas da cuvas negde i koristis prilikom slanja payment podataka. Onda imas metode (kazi ga operacije) gde ti trebas poslati opis proizvoda (dimenzije, opis, tezina, kolicina...), cenu, detalje o kartici, billing info (10 podataka), shipping info (10 podataka). Sad shipping info i tezinu treba poslati i shipping servisu koji ce ti izracunati koliko ce te iznositi DHL usluga recimo, i to Over Night Delivery. Kako bi to izgledalo bez oop, pa pises jedan po jedan deo redom, i sve to u kodu koji vrsi placanje. Onda klijent kaze, super je Shop, ali ja hocu da mogu da naplatim i membership na sajtu, znaci nema ga proizvod, nema shipping, nema pola infoa od gore, ok, ti to iskopiras sve u users modul, sredis, i naplacujes membership.. a onda, naravno, klijent kaze: super je ovo, ali ovo radi samo sa karticama, ja hocu i paypal da dodam kao procesor za kartice. I posle ti kaze, aj sad sve to prebaci u DEMO mod, da mogu da testiram a da mi ne skida pare, a tu se recimo koristi drugi url koji kontaktiras za sesiju. I onda nastaju problemi, jer ti sve imas linearno u kodu.
Sad resenje, oop pristup naravno.
Napravis klasu za Authorize.net procesor, onda napravis klasu za paypal procesor, i napravis svoju klasu koja extenduje jednu od te dve, dinamicki, zavisi sta je selektovao krajnji korisnik. I ti u kodu imas liniju:
$myPaymentHandler->connect(); - gde ce tvoja klasa koja je nasledila bilokoju od ovde 2 (50 ako treba) da tacno zna sta treba da uradi, jer njena mother klasa ima definisane metode. Sama ce u sebi da setuje Session Id (ukoliko ga koristi, ako ne, nista se ne desava, tebe to u operativnom sloju ne zanima sta ce koja klasa da uradi, na tebi je da pozoves to za svaki slucaj, ili stavis u konstruktor da se samo pozove) onda ti napravis za svaku klasu metodu koja kaze:
$myPaymentHandler->setBilling($mojNizSaPodacima); - opet ista prica, ti imas uniformni niz, formatiran kako tebi odgovara, a svaka klasa ima drugacije formatiran zahtev, ali tebe to ne zanima, to ce svaka klasa sebi da resi.
Onda kazes ->setShipping($nizSaShippingInfo); - skontao si sablon vec
na kraju kazes ->setCCInfo($nizSaCCInfo);
i na kraju kazes ->process();
Onda svaka klasa zna sta treba da radi, kako da handluje rezultate, gde da smesti greske koje je dobila, kako da parsira te greske, koje flegove da setuje za slucaj greske uopste itd....
Ti posle samo pitas
if($myPaymentHandler->error_exists){
$error_info = $myPaymentHandler->human_readable_error;
}

i to ispises na sajtu gde je potrebno. Peace a cake
Slican primer mozes koristiti za razne oblasti, recimo pravis klasu koja salje SMS, bilo preko clickatela, bilo preko nekog drugog servisa. Klasa za parsiranje .csv fajlova, samo par metoda pozoves, ne zanima te sta se ispod dogadja i koji se princip obrade koristi. Klasa koja crta mape, oces gmaps, oces yahoo, oces bing, ti samo setujes par metoda sa dimenzijama, lokacijama i markerima, metoda za search, ne zanima te koja klasa gde salje requests i odakle dobija rezultate.
A posle, ako treba prosiriti ili izmeniti nesto, ti imas to samo na jednom mestu da uradis, veoma praktican metod rada.

 
Odgovor na temu

jablan

Član broj: 8286
Poruke: 4541



+711 Profil

icon Re: Savet nekome ko hoće da počne da uči programiranje21.11.2009. u 21:33 - pre 175 meseci
Citat:
u_m: imam ogromnih problema da se uklopim u OOP, nekako mi je stran i nepodnosljiv takav nacin razmisljanja..

Jedno od rešenja za tvoj problem je i da počneš da koristiš neki čisti OO jezik. Onda ćeš, hteo ne hteo, morati da koristiš objekte i metode na svakom koraku pa ćeš lakše i ukapirati čemu služe i za šta su zgodni. Znači, maneš se primera tipa "automobil je klasa" i "payment processor je klasa", nego pođeš od toga da je npr. svaki broj objekat:

>> 5.times{ puts 'elitesecurity' }
elitesecurity
elitesecurity
elitesecurity
elitesecurity
elitesecurity
=> 5


i toga da je npr. svaki string objekat:

>> 'elitesecurity'.capitalize
=> "Elitesecurity"


I onda ćeš kroz nekoliko meseci rada videti da je mnogo logičnije da npr. funkcija za kapitalizaciju stringa bude zapravo metod klase String, a ne neka funkcija koja lebdi ko zna gde i koju možeš da pozoveš za promenljivu bilo kog tipa i gledaš kako ti se program raspada... ;)
 
Odgovor na temu

Eurora3D Team
Nebojsa - Programer & Vodja tima
Beograd

Član broj: 120376
Poruke: 900
*.dynamic.sbb.rs.



+7 Profil

icon Re: Savet nekome ko hoće da počne da uči programiranje16.04.2010. u 21:09 - pre 170 meseci
Kao sto kaze jablan sve su objekti posmatrano kroz OOP
Nije to nista komplikovano.
Pogledaj ekran (prozor, dugme, lista itd.)
To su sve objekti ako bi gledali na OOP nacin (realno nisu jer su programirani u C-u ne u C++u).
Za svaku vrstu objekta imas neki sablon (klasu). Npr. svako dugme ima ivice, tekst itd. Objekti se prave iz sablona(klase), ali tako da svaki mozes da napravis drugacije, npr. svaki ima tekst ali moze da ima drugaciji tekst...


[Ovu poruku je menjao Eurora3D Team dana 16.04.2010. u 22:20 GMT+1]
 
Odgovor na temu

Goran Rakić
Beograd

Član broj: 999
Poruke: 3766

Sajt: blog.goranrakic.com


+125 Profil

icon Re: Savet nekome ko hoće da počne da uči programiranje16.04.2010. u 21:26 - pre 170 meseci
Citat:
Eurora3D Team: To su sve objekti ako bi gledali na OOP nacin (realno nisu jer su programirani u C-u ne u C++u).


Ako tako posmatraš onda objekti uopšte ne postoje. Objektna paradigma nije vezana za specifični jezik, iako neki jezici mogu da imaju sintaksičke olakšice za rad ili da u svojim osnovnim bibliotekama poštuju tu paradigmu ili ne.
http://sr.libreoffice.org — slobodan kancelarijski paket, obrada teksta, tablice,
prezentacije, legalno bez troškova licenciranja
 
Odgovor na temu

deerbeer
Beograd

Član broj: 174418
Poruke: 1189
*.mbb.telenor.rs.



+395 Profil

icon Re: Savet nekome ko hoće da počne da uči programiranje16.04.2010. u 22:19 - pre 170 meseci
Sav realni svet oko tebe je Objektno Orijentisan :D
Evo na primer :
Klasa Covek - instance coveka tj. objekti klase covek su npr .svi clanovi na ovom forumu .

Klasa covek ima public readonly propertije ili "private" promenjljive kao sto su visina, tezina ,
broj godina koje vaze za svaku instancu-coveka ponaosob i ne mogu se menjati iz spoljnog sveta
(npr .jedan covek ne moze promeniti visinu , i tezinu drugog) vec te promenljive se menjaju iskljucivo u okviru instance coveka.

Klasa covek ima takodje i svoje private zasticene promenjljive koje opet mogu da budu klase/objekti sa svojim funkcijama
kao sto su unutrasnji organi (srce ,mozak pluca, bubrezi , zeludac)
koji su takodje nedostupni spoljnom svetu ali u specijalnom slucaju doktorima i hirurzima jesu :D

Covek ima i svoje public metode na raspolaganju (jedi(), radi() , spavaj() itd ) koje mogu da se pokrenu pod uticajem spoljnog sveta
Decu teramo da jedu i spavaju , a moramo da radimo da bi imali da kupimo hranu odecu itd...
Recimo da metod jedi( ) moze posredno menjati unutrasnje organe tj .stanje instance coveka , ako se prejede ili pojede nesto pokvareno .:)

Ako napravis klasu Automobil mozes izvesti slicne zakljucke .
Private promenljive ili public property : model, tezina ,kubikaza ,konjska snaga , broj cilindra, broj vrata itd.
public metode gas() , koci() , kvacilo(), okreni_volan (), promeni_brzinu () pokrecu se iz spoljnog sveta pod uticajem instance coveka .
i menjaju unutrasnje stanje objekta (gas upumpava gorivo u cilindre , klipovi se pokrecu, a takodje i tockovi) .


E onda kreces da povezujes klase Automobil i Covek i gradis njihovu medjusobnu zavisnost.
Ne mozes nikad opisati bas sve slucajeve iz realnog sveta iz ova 2 primera, ali neku aproksimanciju mozes da napravis.

Primera u realnom svetu ima milion samo prepusti masti na volju i kao sto ti rece @jablan uzmi neki ozbiljan OOP jezik
(C#, Java, C++ itd) i kreni da vezbas ...


Viva lollapalooza
 
Odgovor na temu

Eurora3D Team
Nebojsa - Programer & Vodja tima
Beograd

Član broj: 120376
Poruke: 900
*.dynamic.sbb.rs.



+7 Profil

icon Re: Savet nekome ko hoće da počne da uči programiranje17.04.2010. u 00:26 - pre 170 meseci
Citat:
Goran Rakić: Ako tako posmatraš onda objekti uopšte ne postoje. Objektna paradigma nije vezana za specifični jezik, iako neki jezici mogu da imaju sintaksičke olakšice za rad ili da u svojim osnovnim bibliotekama poštuju tu paradigmu ili ne.

U svakom slucaju C nije neki sretan primer eksplatisanja pomenute paradigme :)
U tom smislu ...
 
Odgovor na temu

[es] :: Art of Programming :: Savet nekome ko hoće da počne da uči programiranje

Strane: < .. 1 2 3

[ Pregleda: 15709 | Odgovora: 48 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.