Programerski kutak

Ма, јес'.... дал'је могуће да неко ко обећава брзо и лако знање о тако комплексној материји, за мало јачу, али разумљиву цену, обзиром да се ипак о профитабилној вештини ради... није искрен?
 
Ok, sada sam detaljnije pogledao: "Javascript Course Overview" za 2 meseca. To je tacno, dva meseca je dovoljno za Overview! Koliko da se povrsno upoznaju polaznici kursa.

Medjutim, ono sto me jako nervira, je sto ovi u instant skolama tvrde da ce od osobe koja nikada nije se bavila programiranjem u zivotu (ili je u skoli napisala tri programa u pascalu, za racunanje zbira, razlike i proizvoda dva broja) da napravi programere u odredjenom programskom/script jeziku! :evil:

Programiranje je, bre, zanat koji se uci jako dugo, najmanje godinu dana intenzivnog rada (ali bas intenzivnog - sto posto posvecenost) je potrebno da se stvori junior developer, koji moze da zapocne neku komercijalnu pricu. I, da, podrazumeva se da osoba ima odlicno znanje matematike, ili da je bar nekada bila odlicna iz matematike, i da ima minimum 120 IQ.
Svaki drugi sucaj bi zahtevao dosta vise vremena.
I to je sve, samo da se stvori junior, koji moze da negde u nekoj firmi zapocne strpljivo svoju pricu software developera, strpljivo i lagano....

Ove koji obecavaju programera da naprave za kratki period, treba pohapsiti!
 
Cao, zanima me vase misljenje o VISER-u kao skoli.. Oduvek se interesujem za racunare i softfer.. ali uglavnom ciljam na programiranje.. Zato me zanima kakvi su profesori u ovoj skoli i kakvo je samo programiranje, je l moze lepo da se nauci i izadje iz skole sa puno vise iskustva ? (ciljam na smer NRT)
Pozdrav ! :bye:
 
Nikad mi nista niste pomogli sto dovoljno govori o vama kakvi ste to programeri.Ovo vam je sansa da se ispravite- dobio sam source code necega koji se sastoji iz više delova i svi su npr. .bas ili .pas i sad kako da to iskompajliram preko Basica odnosno Pascala?
 
Nikad mi nista niste pomogli sto dovoljno govori o vama kakvi ste to programeri.Ovo vam je sansa da se ispravite- dobio sam source code necega koji se sastoji iz više delova i svi su npr. .bas ili .pas i sad kako da to iskompajliram preko Basica odnosno Pascala?

Zasto smatras da treba neko da resava tvoje probleme ovde? Godinu dana sam na krstarici, i aktivan na pdf-u programiranje, i ne secam se da si ikada ista pitao.

I ne ocekuj da ti neko da konacno resenje, ovo je forum, dobices smernice, a onda prati smernice i resi sam problem.
I smernice, bar one koje ja dajem ljudima ovde, uvek su univerzalne: rade za bilo koji programski jezik, bilo koju situaciju - to su globalna pravila koja treba da se znaju.
Sve ostalo su nijanse koje sam usput treba da skapiras - i tako postanes developer.

@pitanje:
Prvi nacin:
1. Da bi kompajlirao odredjeni source code, nebitno u kojem programskom jeziku je pisan, treba da imas instaliran na svom racunaru kompajler za taj programski jezik.
2. Treba da pronadjes koji od fajlova sadrzi, takozvanu, Main() funkciju, glavnu ulaznu funkciju u program.
3. Obicno postoji odredjena konzolna aplikacija, koju pokrenes, navigiras kroz filesystem do svog zeljenog source-coda, i otkucas odredjenu komandu kojom ces pokrenuti kompajliranje. Prilikom komande za kompajliranje, moraces da navedes ime fajla koji sadrzi Main() funkciju - jer odatle sve krece, i kompajliranje i izvrsavanje.
4. Obicno, preko te iste konzolne aplikacije, ces moci nakon kompajliranja, da zadas komandu i za pokretanje programa.

Drugi nacin:
Skoro svaki programski jezik ima napravljeno neko lepo visual-okruzenje (IDE), pa ako volis vise da radis tako nego u konzoli, onda pronadji za svoj programski jezik neko besplatno okruzenje (mozes i krekovano, kako ti volja), downloaduj i otvori te fajlove i kompajliraj ih. Moguce je da ces morati da kreiras empty projekat, pa da importujes te fajlove, i onda da pokrenes kompajliranje.

To su ti osnovni principi. Sad dalje, guraj sam.
 
Videli da vise ne pali kad dodju i traze sve na gotovo, pa im je sad taktika da pokusaju da ospore nase vestine (tako sto ce reci kakvi smo mi programeri ako ne znamo to sto pita), i onda ocekuju da cemo mi poleteti da se dokazujemo, i resicemo im problem.

EDIT:
Nego, da se manemo corava posla. Evo jedan mali problem za razmisljanje:

Dat je niz od n celobrojnih neoznacenih elemenata. Svi elementi osim jednog imaju svog para. Konstruisati algoritam linearne slozenosti za pronalazenje tog elementa bez para. Niz naravno nije sortiran. Algoritam treba da radi u mestu, odnosno prostorna slozenost je O(1).

Primer: za niz [3, 6, 8, 6, 9, 3, 8], algoritam vraca 9.

Resenje nije komplikovano, ali priznajem da nisam siguran da li bih dosao do toga samostalno.
Poprilicno sam se isfrustrirao kad sam video resenje :D
 
Poslednja izmena:
Evo u nimu. Resenje je prosto. Samo brises duplikate iz hash tabele. Hash tabela ima kompleksnost upita O(1) konstantna kompleksnost, tako da je algoritam O(n) (linearna komplesknost), posto bar jednom moras da prodjes ceo niz.
############################################################
import Tables
proc solve[T](data:seq[T]):T =
__if data.len == 0 : raise newException(Exception,"data len is zero")
__if data.len == 1 : return data[0]
__var tmp = initTable[T,int]()
__for i in 0..data.high :
____tmp.mgetOrPut(data,0) += 1
____if tmp[data] >1 :
______tmp.del(data)
__for i in tmp.keys :
____return i
let input = @[3, 6, 8, 6, 9, 3, 8]
echo solve(input)

edit: ne znam kako da ubacim indentaciju, space-ove mi pojede pa ne izgleda kako bih hteo ;(
_ je space. nim je kao python, indentacija je bitna
 
Poslednja izmena:
Sto se tice vremenske slozenosti, jasno je da ce biti linearna, ali je prostorna slozenost i dalje problem.
Resenje mora da ima prostornu slozenost O(1), a hash tabela ce imati otprilike O(b - a), gde su a i b opsezi brojeva u nizu. Moze se desiti da ima i manje, ili vise, sve zavisi od same implementacije mape, ali u svakom slucaju prostorna slozenost nece biti konstantna, vec ce na neki nacin biti zavisna od ulaza :)

Postoji resenje linearne slozenosti koje ima konstantnu prostornu slozenost. :)
 
Poslednja izmena:
"a hash tabela ce imati otprilike O(b - a), gde su a i b opsezi brojeva u nizu"

Ma jok. Upit u hash tabelu uopste ne zavisi od velicine niza. Da je tako upit bi bio O(n) a ne O(1). Hash tabela ti je prosti niz koji mapira hash f-ja u indeks ;)

edit:
samo jos pitanje: to tvoje resenje ne zavisi od tipa niza? Tj radi za stringove i bilo kakve objekte koje imaju definisanu operaciju jednakosti? Jer ovo moje resenje radi upravo za bilo koji tip ;)
i jos jedna stvar, na sta mislis kad kazes `prostorna slozenost O(1)`, to prvi put sad vidim? Big O oznacava kompleksnost operacija, to nikako ne mogu da povezem sa prostorom ;p
edit2:U stvari mislim da sad kapiram na sta si mislio ;) Ti u stvari zelis da se pronadje broj, tako da se ne koristi nikakav dodatni niz sa strane, vec da se operacije izvedu nad datim nizom,
sa eventualnim koriscenjem prostih varijabli ;)? Jel to?
 
Poslednja izmena:
E upravo tako :) Znam da je upit konstantan - u pogledu vremena (uglavnom, sto zavisi od izbora hash funkcije i razresavanja kolizije prilikom inserta, u opstem slucaju), ali memorija koju zauzima hash za odredjeni niz nije konstantna :)
Dodatni prostor mora da bude konstantan, nikako ne sme da zavisi od ulaza :)

A sto se tice big O, moze da se odnosi i na asimptotsku vremensku i na prostornu slozenost, to je matematicka notacija :)

Zaboravio sam da napomenem da su elementi iskljucivo celobrojni (unsigned npr), to sam nekako podrazumevao zbog test primera koji sam naveo, pa sam zaboravio, trebalo je da naglasim, izvinjavam se :D
Recimo da je ta cinjenica kljucna za dolazak do resenja :D

Uzgred, uopste nevezano za ovaj zadatak, da li ste znali da rekurzivno resenje ne moze da ima prostornu slozenost O(1)? :)
Osim ukoliko se ne radi o repnoj (tail) rekurziji koja moze biti optimizovana.
 
Poslednja izmena:
"A sto se tice big O, moze da se odnosi i na asimptotsku vremensku i na prostornu slozenost, to je matematicka notacija "

Heh, do sad nikad nisam video da Big O oznacava prostornu. One learns something new every day ;)

"Zaboravio sam da napomenem da su elementi iskljucivo celobrojni (unsigned npr), "

To sam i pretpostavio, jer ne vidim resenje kako si opisao inace ;)

"Uzgred, uopste nevezano za ovaj zadatak, da li ste znali da rekurzivno resenje ne moze da ima prostornu slozenost O(1)? "

Rekurzija ,ukoliko ne moze da se pretvori u petlju, svakako zahteva bar return adresu na steku ;)
 
I posle jos dva sata sam konacno resio ;)
Stos je u tome da se ponavlja tacno dva puta ;)
Radi se u sumi ali kojoj? Isprobavao sam sve moguce i nemoguce sume i jednacine i na kraju mi pade na pamet da operacija koja ponistava duplikate u sumi je xor ;)
Znaci radi se o xor sumi nad datim nizom...
############################################
proc solve(data:seq[int]):int =
__if data.len == 0 : raise newException(Exception,"data len is zero")
__if data.len == 1 : return data[0]
__result = data[0]
__for v in 1..data.high :
____result = result xor data[v]
var input = @[30,6,8,1,4,30,745,8,4,1,6]
echo solve(input)
 
Ajoj nemam sad vremena, probacu preko vikenda ;)

edit:
1. da li elementi mogu biti negativni? pretpostavljam onda da je broj predtsavljen u drugom komplementu?
2. da li se elementi mogu ponavljati?
 
Poslednja izmena:

Back
Top