PDA

Prikaži potpunu verziju : Programiranje - prvi koraci


bojannp
31.8.2016, 23:29
Kao što sam naveo u naslovu, želeo bih da pokušam da steknem neka znanja iz ove oblasti. Apsolutni sam početnik. Nemam predznanje. Nemam vremena ni za neki kurs. Jedino što imam je volja. Stoga mi treba mala pomoć.
Prvo što je potrebno jeste da izaberem jezik koji ću da učim. Iz nekog razloga krenuo bih C++, ali sam voljan da saslušam i vaše predloge i sugestije. Ako ne taj jezik, onda neki koji je takođe manje komplikovan i lakši na učenje.
Druga stvar je literatura. Za početak je najbitnije da je za početnike, da su osnovi pojmovi razunjivo objašnjeni kako bih mogao nešto i da skapiram. Video materijal, tutorijali, online knjige, žive knjige. Sve dolazi u obzir. Nije problem da nešto odem i kupim, jedno je bitno da je na našem jeziku.

Za početak toliko, a posle će mi verovatno trebati još dosta pomoći kako vreme bude odmicalo.

water wizard
31.8.2016, 23:51
nema baš neki izbor na našem jeziku, dodaj i engleski na listu za učenje

bojannp
1.9.2016, 0:26
Milsim da bih video materijale mogao da pratim bez problema na engleskom. Literaturu ne znam da li bih mogao u potpunosti da razumem pošto je svakako opširnija od video klipova, a ima i više nepoznatih termina.
Mada sam voljan pokušati.

deki20
1.9.2016, 9:48
Solidna: http://cet.rs/knjige/item/12866-c-opusteno

Može se naći dosta literature u .pdf-u na našem jeziku, npr. sa privatnih falukteta...Kvalitet ne bih komentarisao, ali sve to treba pregledati i odabrati...

Mickie
1.9.2016, 22:40
Knjige na engleskom od Dietela.

Jezik bilo koji popularan, Python, Java, C, C++. Nauci jedan pa predji na drugi pa se vrati na prvi pa predji na treci....

voodoo_
1.9.2016, 22:46
Ako radiš C++, onda najčešće radiš primarno C++ (i eventualno C), jer u toj tržišnoj niši ima posla samo za prekaljene stručnjake, a ti si malo zakasnio. To nije jezik gde možeš biti loš programer i uprkos tome baviti se tim poslom godinama. Ne kažem da ga možda nećeš savladati, ali je dosta rizično, tako da preporučujem da se okreneš Javi i Pythonu.

doctor
2.9.2016, 6:31
Java, Python, C#, Javascript - sve zavisi šta te interesuje.

U svakom slučaju mani se tutorijala i zbrzanih video klipova. Jedna dobra knjiga će ti oduzeti N vremena, tutorijal polovinu tog vremena ali ćeš iz dobre knjige uvek naučiti mnogo više. Poznavanje programskog jezika je samo vrh ledenog brega. Programski jezik visokog nivoa se recimo može savladati za mesec-dva a ono što je nezavisno od jezika su algoritmi, strukture podataka, OOP koncepti itd, i to je ono što te čini dobrim programerom.

Moja preporuka je da uzmeš C# za početak. Jednostavniji je od C++-a jer ti nudi veću fleksibilnost i manje brige o alokaciji memorije ali ti dozvoljava da upadneš i u "unsafe" kod gde možeš da barataš pointerima kao kod C++-a kada budeš dostigao taj nivo. Uz to, ta tehnologija ima ogromno tržište, .Net framework neće izumreti skoro, naučićeš OOP koncepte itd.

Početak će biti pakleno težak i moraćeš da radiš mnogo dok počneš da povezuješ stvari ali bez rada nema ništa.

Ono što bih ti najrealnije preporučio je da prvo radiš C, pa C++ pa C#. Sa C-om ćeš naučiti sintaksu i videti kako stvari funkcionišu na malo nižem nivou i savladaćeš osnovne koncepte programiranja kao i osnovne algoritme (sortiranje i slične bazične stvari). Sa C++-om ćeš pohvatati OOP koncepte i naučiti da ceniš fleksibilnost OOP-a i upravljanje memorijom. Sa C# ćeš imati prilike da se opustiš i kreneš u konkretnije kodiranje i shvatićeš kako je lepo kad neko (uglavnom :D) brine o memoriji umesto tebe. Nakon toga se dohvatiš Javascripta da vidiš kako izgleda jedan dinamični event-driven prototipski OOP skripting jezik. To je po meni neka optimalna putanja ako hoćeš da zaista naučiš nešto.

Da se ja pitam svi koji žele da se bave programiranjem bi morali da prođu osnove x86 asemblera, C sa osnovnim algoritmima i strukturama podataka, C++ i osnove OOP i struktura podataka pa tek onda Javu, C# ili bilo šta drugo i tek na kraju skripting jezike. Ovako samo postoji gomila zanatlija na tržištu koji su završili neki kurs tipa ITAkademija (lolčina) koja zna jedan jezik, jednu tehnologiju i šljaka za 300e mesečno u nekoj firmi koja se bavi outsorcingom i kuka kako ga gazda izrabljuje...

water wizard
2.9.2016, 6:36
Pa dobro to ako hoće u svaki šraf nek upiše fakultet pa nek doktorira informatiku, koji jedan jezik, dok nauči c# pa baze pa internet i ostala čudesa ima da mu prođe 3 godine, pa za te 3 godine će opet nešto novo i tako u krug. Evo baci pogled na oglase pa vidi šta se traži to uči

Pinstripe
2.9.2016, 10:50
Sad ste me demoralisali :D

Mickie
2.9.2016, 11:22
Ako se tako lako demoralises, neces daleko da doguras.

Ja ne mislim da moras da ucis asembler, mada ni to nije lose. Bitno je da pocnes od negde, jedan jezika za pocetak jedovoljan i to bilo koji, pa se ubaci u neki projekat ili pocni svoj i tu ce svasta nesto jos da se doda.

C# zaobidji, umesto njega razmatraj Javu. Ja sam poceo od cistog C, i to ti je zamena za asembler i odlican uvod u sve ostalo, lako ga je nauciti ali tesko savladati.

Mickie
2.9.2016, 11:24
I glupo je da gleda oglase, treba da uci ono sto ga zanima. Oglasi su tu danas, sledece godine ce biti neki drugi. Znanje razvijas u skladu sa svojim interesovanjima a posao trazis kada znas ono sta te interesuje i znas sta hoces da radis. Ako krojis sebe prema oglasima brzo ce ti dojaditi posao.

Pinstripe
2.9.2016, 11:29
Ja i razmišljam o Javi i počeo sam malo da je učim preko raspalog računara, monitora i pdf (koliko-toliko dok ne uzmem neku knjigu).
Nego opada mi moral jer sam skoro pa mator za to (28 godina) :D

water wizard
2.9.2016, 11:56
java se sad traži za mobilne aplikacije, mada je dosta bušna, ali dobro to ti je jedan derivat C pojednostavljeno ne moraš ručno da skupljaš đubre i slično :D U suštini sve je to slično kad naučiš jedno lako se preorjentišeš na drugo

Neutrino
2.9.2016, 13:43
C# zaobidji, umesto njega razmatraj Javu.C# je u svakom zamislivom i nezamislivom pogledu superiorniji programski jezik od Jave, da ne pričam o tome koliko je Visual Studio bolje razvojno okruženje od bilo čega što je do sada izašlo za Javu. Plus, sada kada su .NET i gomila drugih korisnih alata postali dostupni i na Linuxu ne postoj apsolutno ni jedan jedini razlog da se ne razmišlja o C#-u kao opciji.

Trendovi u IT industriji se brzo menjaju ali za sada ne postoje nikakve indikacije da popularnost i zahtev za C# developerima opada.
java se sad traži za mobilne aplikacije, mada je dosta bušna
Nije Java bušna već sandbox model koji se koristi za izvršavanje Java apleta i bangav sigurnosni model koji omogućava izvršavanje unsigned koda što svakim malim propustom u realizaciji sandboxa rezultuje mogućnosšću da kod koji se izvršava napusti sandbox. Najpoznatiji primer eksploatacije ovakvih propusta je Java plugin za browsere.

Što se C++-a tiče voodoo je već lepo napisao, developeri koji ga koriste su zverke koje imaju godine i godine iskustva iza sebe i bar neko formalno obrazovanje koje ih je na vreme usmerilo u kom pravcu da razmišljaju. Dakle, nije sporno da svako može da nauči bilo koji programski jezik ali postoji razlika između developera koji su naučeni da krpače kod do stanja u kojem prihvatljivo radi i developera koji zapravo svesno grade pravu arhitekturu koda i mogu u svakom trenutku da obrazlože zbog čega su doneli neku razvojnu odluku. Uspešne C++ developere skoro isključivo čini ova druga grupa.

doctor
2.9.2016, 18:54
C# je u svakom zamislivom i nezamislivom pogledu superiorniji programski jezik od Jave, da ne pričam o tome koliko je Visual Studio bolje razvojno okruženje od bilo čega što je do sada izašlo za Javu.

Apsolutno. Java mi se potpuno ogadila tokom studiranja, C# u kombinaciji sa VS predstavlja jedno deset puta bolje iskustvo u radu i produktivnosti u odnosu na bilo šta što ima dodirne tačke sa Javom.

bojannp
2.9.2016, 19:50
Ljudi, hvala na odgovorima.

Našao sam neki materijal na internetu na engleskom i baš zbog sam uzeo da čitam da vidim kakve su mi mogućnosti da učim sa tog jezika. I izgleda dosta bolje nego što sam mislio. Napravio sam i odštampao pdf fajlove pa dok čitam kada naletim na neku reč koju ne znam napišem prevod pored nje. Tako da ipak srpski nije jedina opcija. Ovaj sajt je u pitanju: http://www.learncpp.com/
Mislite li da je ovo adekvatno za početnika? Meni svakako deluje komplikovano pa nisam kompetentan da procenim, a ne bih da "preskačem lekcije", ako već može još da se uprosti.

Što se literature šta mislite o knjizi koju je preporučio Deki "c++ opušteno"?

Još želim da vas pitam ukoliko nekom nije problem da mi grubo predstavi razlike između C, C++ i C# jezika čisto da dobijem neku sliku o tome čemu koji služi?

Druga stvar koja me zanima, hipotetički, da li se programi u celini prave u jednom programskom jeziku ili se više delova pravi u više jezika pa se objedinjuju? Izvinjavam se ako je pitanje glupo. :to_care:

Guglao sam malo vezano za knjige od Dietela, čovek je napisao skoro 500 knjiga, svaka 5-6 mu je za c++. Na našem tržištu ih nisam našao, tako da ih treba poručiti iz inostranstva. Ako kako da izaberem odgovarajuću za svoj nivo kad se manje više sve zovu "C++ How to program"?

Picard
2.9.2016, 19:53
Za C# mnogo hvale ovu (https://www.amazon.com/C-Players-Guide-2nd/dp/0985580127/ref=dp_ob_title_bk) knjigu.

Zaobiđi C++ i fokusiraj se na C#.

water wizard
2.9.2016, 20:26
razlike između C, C++ i C# jezika čisto da dobijem neku sliku o tome čemu koji služi? C je stariji programski jezik sve radiš ručno, C++ je nadograđena verzija, a C# je microsoftova moderna verzija, ima mogućnosti i za web programiranje što je sad uglavnom ionako sve web, u suštini drag and drop sa povremenim zavlačenjem ispod haube, da moraćeš da razumeš šta se dešava u kodu.

Što se tiče knjiga kreni od nekih kraćih pa posle idi na neke od po 1000+ strana.. :D i vežbaj, vežbaj vežbaj da se malo uhodaš i vidiš na kakve sve probleme možeš da naiđeš, pa onda googlaj rešenje. Ako ne razumeš, probaj drugu knjigu

bojannp
2.9.2016, 20:46
Hvala. Sve će biti da ću vas poslušati i fokusirati se na C#.

Schnak3
2.9.2016, 23:06
Kao što sam naveo u naslovu, želeo bih da pokušam da steknem neka znanja iz ove oblasti. Apsolutni sam početnik. Nemam predznanje. Nemam vremena ni za neki kurs. Jedino što imam je volja. Stoga mi treba mala pomoć.
Prvo što je potrebno jeste da izaberem jezik koji ću da učim. Iz nekog razloga krenuo bih C++, ali sam voljan da saslušam i vaše predloge i sugestije. Ako ne taj jezik, onda neki koji je takođe manje komplikovan i lakši na učenje.
Druga stvar je literatura. Za početak je najbitnije da je za početnike, da su osnovi pojmovi razunjivo objašnjeni kako bih mogao nešto i da skapiram. Video materijal, tutorijali, online knjige, žive knjige. Sve dolazi u obzir. Nije problem da nešto odem i kupim, jedno je bitno da je na našem jeziku.

Za početak toliko, a posle će mi verovatno trebati još dosta pomoći kako vreme bude odmicalo.

Ja sam poceo od cistog C, i to ti je zamena za asembler

Nije.

Ako naucis asembler steci ces daleko bolji uvid u to kako zapravo racunar barata osnovnim aritmetickim operacija, kako su zapravo predstavljeni stringovi u memoriji i kako radi if/jump petlja. Ali sve lepo znati i potrebno je za neke stvari, ali uopste nije potrebno da bi zaradio pare.

Poredjenje: pretvori mala u velika slova u datoj recenici
asembler: 15 linija
C: 5-10
java: 1

Odluci se sta je tvoja motivacija- znanje ili pare. Na fakultetu se uce sledece stvari u manje-vise ovom redosledu (svaka se uci po 1 semestar):
1. cisti C i osnovni algoritmi
2. asembler i hardver racunara
3. objektno orijentisano programiranje (c++)
3. strukture podataka (c++) i baze podataka
4. java i/ili c#
5. objektno orijentisani obrasci

To je neka minimalna osnova. Ako hoces da zaradis pare bez preterano mnogo znanja predlazem da se bacis na web programiranje- java script je trenutno bas in, odnosno ne on nego framework-ovi zasnivani na njemu- Angular ili Ionic.

Programerima je programski jezik alat, bitno je znanje i nacin na koji razmisljas. Kada sam ovo napisao palo mi je ovo na pamet https://www.xkcd.com/505/

Picard
2.9.2016, 23:35
I pročitaj ovo:

https://www.vikingcodeschool.com/posts/why-learning-to-code-is-so-damn-hard

bojannp
2.9.2016, 23:44
Nije.

Ako naucis asembler steci ces daleko bolji uvid u to kako zapravo racunar barata osnovnim aritmetickim operacija, kako su zapravo predstavljeni stringovi u memoriji i kako radi if/jump petlja. Ali sve lepo znati i potrebno je za neke stvari, ali uopste nije potrebno da bi zaradio pare.

Poredjenje: pretvori mala u velika slova u datoj recenici
asembler: 15 linija
C: 5-10
java: 1

Odluci se sta je tvoja motivacija- znanje ili pare. Na fakultetu se uce sledece stvari u manje-vise ovom redosledu (svaka se uci po 1 semestar):
1. cisti C i osnovni algoritmi
2. asembler i hardver racunara
3. objektno orijentisano programiranje (c++)
3. strukture podataka (c++) i baze podataka
4. java i/ili c#
5. objektno orijentisani obrasci

To je neka minimalna osnova. Ako hoces da zaradis pare bez preterano mnogo znanja predlazem da se bacis na web programiranje- java script je trenutno bas in, odnosno ne on nego framework-ovi zasnivani na njemu- Angular ili Ionic.

Programerima je programski jezik alat, bitno je znanje i nacin na koji razmisljas. Kada sam ovo napisao palo mi je ovo na pamet https://www.xkcd.com/505/

Novac i budući posao mi nisu pokretački motivi za sve ovo. Jednostavno od kada sam bio klinac zanimalo me kako gomila tamo nekih fajlova proizvodi na ekranu okruženje u kom ja kontrolišem neki karakter sa kojim trčim, skačem, udaram, pucam i sve to u vizulno savršenom okruženju.
Neke druge životno odluke, izabrane i nametnute, mi nisu dozvolile da se tokom školovanja bavim ovom tematikom, pa sam tako išao u gimnaziju i na fakultet i sada radim posao koji nema dodirnih tačaka sa informatikom.

Sada imam malo slobodnog vremena, imam volju i nešto novca ako je potrebno da uložim da bih da tako kažem ostvario svoju želju i shvatio kako programi i igre funkcionišu.

Ako mi bude išlo dobro, možda to u budućnosti budem radio i zarađivao novac od programiranja. Bilo bi sjajno, kao što rekoh ali to mi za sada nije primarno.

Schnak3
2.9.2016, 23:53
Mali offtopic:

Mogu da predlozim Arduino kao platformu za igranje- ona nema veze sa hard core programiranjem ali mozes da napravis veoma kul stvari!

Za 50 eura iz Kine mozes da narucis 2-3 Arduina, 50 ak senzora i sve ostalo potrebno da krenes sa radom. Za rad sa Arduinom je potrebno manje znanja iz programiranja ali vise znanja iz elektrotehnike i elektronskih komponenti. Ali kada savladas te osnove, veoma brzo, par nedelja nakon starta, za 5-6$ da napravis npr ESP8266 modul da ti pali i gasi svetlo, kada ga ti kontrolises preko kucnog wi-fia.

doctor
3.9.2016, 3:50
Mani se C++-a. Ako ćeš već da se uhvatiš za jedan jezik uhvati se za C# i kad savladaš sintaksu i koncepte jezika uzmi u šake neke dobre knjige o algoritmima, OOP-u generalno i projektnim obrascima i vežbaj i implementiraj u C#. To znanje je nezavisno od jezika koji koristiš i neophodno je za rad.

Pinstripe
3.9.2016, 14:15
Ja sam 2009 poceo malo kod kuce da ucim C++ ali zbog posla nisam stigao i batalio. Krenuo sam skoro Javu i nekako je za mene totalnog pocetnika laksa nego bilo sta od C.

E sad, imam u planu ali pitanje je koliko je to izvodljivo, prvo bih naucio koliko god je moguce Javu pa bih presao na neki od C.

brano88
3.9.2016, 14:34
java se sad traži za mobilne aplikacije

Bogami, cesto posjecujem HelloWorld i mogu slobodno reci da je potraznja za developerima Java web aplikacija daleko veca od potraznje za developerima Java mobilnih aplikacija. Nije mi jasno zasto ljudi toliko forsiraju pricu o mobilnim aplikacijama kada je u pitanju Java.

voodoo_
6.9.2016, 10:13
Zato što se Android aplikacije najčešće pišu u Javi, a Android je dominantan OS na mobilnim uređajima :)

bojannp
18.9.2016, 18:41
Da iskoristim ovu temu da postavim jedno pitanjce. Oblast na kojoj sam zapeo zove se System Type, a deo koji mi nije jasan odnosi se na float, double i decimal types.

double pi = 3.14159265358979323846;
float anotherPi = 3.1415926f;
long aBigNumber = 39358593258529L;
ulong bigOne = 2985825802805280508UL;
decimal number = 1.495m;
itd

Uglavnom deo koji mi nije jasan odnosi se na ova slova koja stavljamo na kraju brojeva (f, l, ul, m). Zašto se stavljaju i koja je njihova uloga?

Schnak3
18.9.2016, 19:05
Da iskoristim ovu temu da postavim jedno pitanjce. Oblast na kojoj sam zapeo zove se System Type, a deo koji mi nije jasan odnosi se na float, double i decimal types.

double pi = 3.14159265358979323846;
float anotherPi = 3.1415926f;
long aBigNumber = 39358593258529L;
ulong bigOne = 2985825802805280508UL;
decimal number = 1.495m;
itd

Uglavnom deo koji mi nije jasan odnosi se na ova slova koja stavljamo na kraju brojeva (f, l, ul, m). Zašto se stavljaju i koja je njihova uloga?

Ja ovo prvi put vidim. Koji je ovo programski jezik? Verovatno nedvosmisleno kompajleru kazu koji su tip promenljive, mada on to sam zna po keyword-u ispred imena promenljive.

Procitaj Type safety and memory safety na https://en.wikipedia.org/wiki/Type_system
(https://en.wikipedia.org/wiki/Type_system)

voodoo_
18.9.2016, 20:50
Fora je da kompajler prepozna o čemu se radi i onda kad se literal ne koristi direktno uz deklaraciju sa eksplicitno navedenim tipom podatka. Ovde imaš primere:

http://en.cppreference.com/w/cpp/language/integer_literal

bojannp
18.9.2016, 21:47
U knjizi je jednostavnije objašnjeno nego što si sada ti to uradio. :) Znači, ništa te nisam razumeo. Pa ako ti nije teško, uporsti ga koliko god možeš, je l stvar se provlači kroz maltene svaku narednu oblast koju sam čitao pa mi je baš bitno da znam kada i zašto se koriste ta slova.

Strider
18.9.2016, 22:33
Pitanje, poceo sam da se interesujem za Python... malo zbog programiranja, a malo i zbog ideje da bih mogao da radim neku automatiku uz Raspberry Pi.

Neki sajtovi, linkovi, literatura za ucenje ? Skoro pa da sam potpuni pocetnik.

voodoo_
18.9.2016, 22:43
Evo primer sa brojevima u pokretnoj tački (kratko ću, kucam s tableta i neudobno je):
Double se čuva u osam bajtova, float se čuva u četiri. "Manji" tipovi se automatski kastuju u "veće", ali obrnuto ne važi. Pošto postoji više podtipova za vrednosti u pokretnoj tački (double i float), ako napišeš vrednost kao literal (npr. 1.23456789), kompajler podrazumeva da je to double, pa ako npr. u Javi kažeš:

float a = 1.23456789;

Dobićeš poruku da pokušavaš da spakuješ osmobajtni double u memorijsku lokaciju 'a' koja prima četvorobajtni float. Ali ako napišeš:

float a = 1.23456789f;

time si rekao kompajleru da je vrednost desno od zagrade jedan float i u kompajliranom izvršnom fajlu će zauzeti tačno četiri bajta, pa će tokom izvršavanja tu vrednost bez problema iskopirati u 'a'. Isto važi i za integere (short, običan, long, signed, unsigned). Nije obavezno da svuda stavljaš sufikse, ali ako hoćeš da imaš potpunu kontrolu nad time kako se tretiraju literalne vrednosti umesto da kompajler to radi, onda ih stavljaj.

Teva
22.9.2016, 16:35
C++ nikako nije jezik za učenje objektne paradigme, em što nije strogo objektno orjentisan, em što ima toliko mogućnosti koje jednostavno nisu namenjene za veliku većinu ljudi a posebno za one koji tek počinju da uče programiranje.

Od čega početi je ekstremno za*****o pitanje i nema konkretan odgovor, svako će da tera vodu na svoju vodenicu, iz 300 različitih razloga, što dobrih, što loših.

Ono što je zajedničko je da se krene sa proceduralnim jezikom tipa C, Paskal i slično, ne zbog nekog specijalnog razloga što je bolji od ovog ili onog, već zato što se tok programa mnogo lakše prati nego kod drugih jezika.

Nakon toga preći na neki STROGO objektno orjentisan jezik, Java il C#.

Nakon toga su već finese i fine tuning. (<- Ovaj korak se nikad ne završava).

Preskočio sam neke manje korake učenja kako računar zapravo radi, učenje algoritmike i slično, toga ima u nekoj meri u zavisnosti čime rešiš da se baviš tačno. Ja lično smatram da su to osnove, ali sreo sam dosta ljudi koji se "profesionalno" bave programiranjem a to nemaju pojma, pa ne forsiram toliko više.

Cilj nije naučiti jezik, cilj je naučiti ideje i koncepciju da bi sutra mogao te iste da prepraviš i iskoristiš da napraviš nešto novo.

Salieri
16.10.2016, 19:21
Pitanje za iskusne, a sta mislite za ucenje prvo pythona kao apsolutni pocetnik, negde sam cuo da je to isto dobra opcija? ili ipak kao sto kazete, osnove C, pa C#/java itd?

NIx Car
16.10.2016, 19:36
Mi smo osnove programiranja radili u pythonu. Python za pocetnike je po meni mac sa dve ostrice. On jeste dobar zato sto za malo koda dobijes ono sto zelis, naucis programersku logiku, ali opet ti ispod haube ne znas sta se desava. Na to su vecina kolega imale primedbu kada su se susrele sa C-om na kasnijim godinama. :)

doctor
17.10.2016, 17:04
Prvo C pa Python, da vidiš nešto od low-level stvari a onda da se upoznaš sa blagodetima scripting jezika. Posle C# i na konju si.
Možeš i odmah na C# ali poznavanje C-a je na neki način esencijalno, barem po meni. Svaki programer bi trebalo da zna šta se to dođavola dešava u pozadini :)

Mickie
17.10.2016, 18:56
I sta vi mislite kad nekom predlazete C#? Sta da radi sa njim? C# programera ionako ima viste nego sto treba, Windows Phone je propali abortus, na serverima dominitra Linux, jedino da pise WIndows desktop aplikacije a toga vec ima koliko oces. I nista ne poamaze sto je .NET portovan na Linux, niko ga ne koristi tamo, i dalje Java EE dominira, uz Pyton, Ruby, Nodejs i sve ostalo. Od kad ja nisam na ovom forumu nista se nije promenilo, i dalje samo Microsoftansko shillovanje, moracu opet da izbrisem ovaj bookmark.

I smesno je da neko prica da je C# moderna verzija C programskog jezika. Ustvari je kopija Jave bez onoga za sta je java napravljena. Portabilnosti. Baterijska lampa na solarni pogon. Nema svrhu uopste taj jezik, jedini razlog zasto se koristi je to sto Microsoft ima mnogo talaca... oni to zovu korisnici, ja ih zovem taoci.

brano88
17.10.2016, 19:58
I sta vi mislite kad nekom predlazete C#? Sta da radi sa njim?

Manje-vise, sve ono sto i Java developeri. :)

Schnak3
17.10.2016, 20:04
Windows Phone je propali abortus

Microsoft's Lumia line will be killed off in December, report claims (http://www.gsmarena.com/microsofts_lumia_line_will_be_killed_off_in_decemb er_report_claims-news-20442.php)

Jedan razlog manje da ljudi uce C#.

Sve više ljudi koristi iOS i Android, a framework-ovi sada web developerima omogućavaju da prave aplikacije za telefone (cordova, phonegap), nema razloga da neko sada kreće da uči C#.

voodoo_
17.10.2016, 20:13
C# je i dalje jedan od najlakših i najefikasnijih načina da se napiše klasična Windows desktop GUI aplikacija (za razliku od Jave), tako da ga ne bih tek tako otpisao.

Neutrino
17.10.2016, 20:24
I smesno je da neko prica da je C# moderna verzija C programskog jezika. Ustvari je kopija Jave bez onoga za sta je java napravljena.Postoji veoma dobar razlog zbog kojeg C# nema neke stvari koje Java ima. Svako ko je imao bilo kakvog dodira sa obe platforme koje prevazilazi pisanje običnog "Hello world" programa će ti reći da je C# napravljen da izleči neke bolesti koje Java vuče bukvalno od kad postoji.
Od kad ja nisam na ovom forumu nista se nije promenilo, i dalje samo Microsoftansko shillovanje, moracu opet da izbrisem ovaj bookmark.Pa s obzirom da ti je svaki post od početka do kraja kmečanje o Windows-u siguran sam da nikome nećeš nedostajati. Mislim da bi bolje utrošio vreme kad bi se vratio da završiš započeti viši tečaj Linux zilotizma. Čuo sam da sada na početku kursa dele perike i bradu inspirisane Stalmanom :D
Sve više ljudi koristi iOS i Android, a framework-ovi sada web developerima omogućavaju da prave aplikacije za telefone (cordova, phonegap), nema razloga da neko sada kreće da uči C#.Da, zato je C# među trenutno pet najkorišćenijih programskih jezika na svetu (pored Jave, JavaScripta, PHP-a i Pythona). Nemam nameru da ponavljam ono što sam X puta do sada rekao. C# se itekako traži, posebno u korporativnim okruženjima, i nema ni najmanjeg znaka da će se bilo šta menjati u doglednoj budućnosti. Ako i dođe do njegovog rasula sam C# je takav da omogućava veoma lak prelazak na nešto drugo.

Oggy
17.10.2016, 20:36
Microsoft's Lumia line will be killed off in December, report claims (http://www.gsmarena.com/microsofts_lumia_line_will_be_killed_off_in_decemb er_report_claims-news-20442.php)

Jedan razlog manje da ljudi uce C#.

Sve više ljudi koristi iOS i Android, a framework-ovi sada web developerima omogućavaju da prave aplikacije za telefone (cordova, phonegap), nema razloga da neko sada kreće da uči C#.

Da li si znao za:
https://www.xamarin.com/ ?

Neutrino
17.10.2016, 21:02
Da li si znao za:
https://www.xamarin.com/ ?Xamarin je odličan primer kako izgleda kada ozbiljna kompanija preuzme u svoje ruke propali projekat (Mono) koji se godinama razvlačio do granice potpune neupotrebljivosti i onda ga integriše u svoje redove i napravi nešto što je zapravo izuzetno korisno.

Razvoj softvera danas je dosta drugačiji nego što je nekada bio. Pored toliko transpilera i virtuelizacionih tehnologija praktično više nije ni bitno koji programski jezik se koristi. Ali nemojte da se zavaravate nekakvim poluinformacijama - Microsoft ekosistem je još uvek itekako jak.

Schnak3
17.10.2016, 21:04
C# je i dalje jedan od najlakših i najefikasnijih načina da se napiše klasična Windows desktop GUI aplikacija (za razliku od Jave), tako da ga ne bih tek tako otpisao.

Najlakši, i najlepši način. Baš sam skoro skidao skidao sa nuget-a neki material design dodatak. U par minuta sam dobio aplikaciju koja moderno izgleda.

Da, zato je C# među trenutno pet najkorišćenijih programskih jezika na svetu (pored Jave, JavaScripta, PHP-a i Pythona). Nemam nameru da ponavljam ono što sam X puta do sada rekao. C# se itekako traži, posebno u korporativnim okruženjima, i nema ni najmanjeg znaka da će se bilo šta menjati u doglednoj budućnosti. Ako i dođe do njegovog rasula sam C# je takav da omogućava veoma lak prelazak na nešto drugo.

Ne pričamo o tome šta treba da senior u C# trenutno uradi, pričamo o tome šta totalni početnik treba da uradi. Trenutni C# developeri će uvek imati posao, kao što su sada i dalje dobro plaćeni Fortran programeri. Dok osoba koja krene da uči C# od nule postane kompetentna za posao takmičiće se sa osobama koje imaju 1-2 decenije iskustva u C#.

Da li si znao za:
https://www.xamarin.com/ ?

Znam, mada sam zaboravio u trenutku pisanja prošlog posta. Znam samo jednu osobu koja je radila u Xamarinu i rekao mi je da ne vidi prednost jer i dalje delovi neki delove aplikacije moraš da napišeš u native kodu. Nisam to proveravao jer me Xamarin ne interesuje.

Neutrino
17.10.2016, 21:16
Ne pričamo o tome šta treba da senior u C# trenutno uradi, pričamo o tome šta totalni početnik treba da uradi. Trenutni C# developeri će uvek imati posao, kao što su sada i dalje dobro plaćeni Fortran programeri. Dok osoba koja krene da uči C# od nule postane kompetentna za posao takmičiće se sa osobama koje imaju 1-2 decenije iskustva u C#.Poenta je da apsolutni C# početnik može bez problema za mesec-dva dana da se osamostali i počne da piše kompletne C# aplikacije. Takvo je okruženje, takvi su alati, takva je tehnologija (.NET) - sve je podređeno brzom učenju i razvoju. Sve ostalo (tzv. iskustvo) se svodi na učenje veština kao što su prilagođavanje rada u timu, integracija sa načinom na koji tim radi, konvencije itd.

Schnak3
17.10.2016, 21:39
Poenta je da apsolutni C# početnik može bez problema za mesec-dva dana da se osamostali i počne da piše kompletne C# aplikacije. Takvo je okruženje, takvi su alati, takva je tehnologija (.NET) - sve je podređeno brzom učenju i razvoju. Sve ostalo (tzv. iskustvo) se svodi na učenje veština kao što su prilagođavanje rada u timu, integracija sa načinom na koji tim radi, konvencije itd.

Osoba koja poznaje osnove programiranja (algoritmi, baze podataka, OO) će za 2 meseca da nauči bilo koji programski jezik- dal bio C#, Javu ili Objective-C/Swift za iOS (za web neće moći, tu treba džumle tehnologija).

NIx Car
17.10.2016, 23:37
Postoji veoma dobar razlog zbog kojeg C# nema neke stvari koje Java ima. Svako ko je imao bilo kakvog dodira sa obe platforme koje prevazilazi pisanje običnog "Hello world" programa će ti reći da je C# napravljen da izleči neke bolesti koje Java vuče bukvalno od kad postoji.

Upravo ovo. Po mom misljenju C# je daleko 'lepsi' od Jave iako su jako slicni.

Nemojte zaboraviti da se C# koristi i u Unity-u, a Unity je svakim danom sve popularniji :)

korisnickoime
17.10.2016, 23:44
Ustvari je kopija Jave bez onoga za sta je java napravljena. Portabilnosti.

Morao sam :)

http://i.imgur.com/TMLdod9.jpg

Neutrino
18.10.2016, 0:27
Pa valjda "on BOTH genders" :D Ja znam samo za dva.

Schnak3
18.10.2016, 0:32
Pa valjda "on BOTH genders" :D Ja znam samo za dva.

SAHvLAJ-5aQ

brano88
18.10.2016, 19:32
Po mom misljenju C# je daleko 'lepsi' od Jave iako su jako slicni.

*Kasljuc, kasljuc*! Disclaimer: Java developer ovdje.

Da li je to uopste bitno? Jeste, Java nema "properties", nema LINQ, neispravni generici itd. Ali cinjenica je da oba programska jezika rade posao. Enormni su projekti izgurani s njima. Mozda nesto mozes efikasnije da odradis u C# u odnosu na Javu i obrnuto. Evo, reci mi, zasto su Kafka, Elasticsearch, Cassandra, Hadoop, Jenkins... odradjeni u Javi a ne u C#-u? Da li to znaci da je Java bolja od C#-a? Da li to znaci da se ti alati nisu mogli napisati u C#-u? Naravno da ne. I koja je poenta svog to prepucavanja kad malo-malo dodje baja recimo sa Groovy-jem, Python-om ili cim vec, i rijesi specifican problem elegantnije i od jednih i drugih. Kao sto rece jedan moj kolega, bivsi C# developer: "To ti je isto kad klinci kazu: Moj tata je jaci od tvog tate."

Neutrino
19.10.2016, 5:24
Evo, reci mi, zasto su Kafka, Elasticsearch, Cassandra, Hadoop, Jenkins... odradjeni u Javi a ne u C#-u?Zato što C# dolazi uz teret koji neki projekti prosto ne mogu ili ne žele da nose - Microsoft okruženje. Da nije njega Java, kao antikvitet koji već skoro punu deceniju stagnira, bi odavno imao više razloga za brigu.

doctor
19.10.2016, 16:29
Kad se već diskutuje o C#-u mene jako interesuje jedna stvar: šta to trenutno Microsoft radi sa open-sourceovanjem delova .Net frameworka? Čitao sam skoro neki relativno veliki članak na tu temu i malo mi je jasnije ali i dalje mi nije jasna jedna stvar: da li planiraju da razviju multiplatform .Net programiranje sa podrškom za sve jezike ili će jednostavno samo taj Core.Net biti open-source sa pratećim Asp.Net?

Ne razumem na šta ciljaju i šta žele tačno da postignu.

Neutrino
19.10.2016, 18:13
To samo Microsoft zna (a možda čak ni oni).

doctor
20.10.2016, 7:04
Pa tako realno i deluje, kao da nemaju pojma šta rade. Hteli bi da ih open source zajednica zgotivi ali da se ne otvore previše nego onako, malo.

Mislim, lepi su im potezi sa VS Community Edition i VS Code i ovo open sourceovanje ali avaj kad je ono najbitnije i dalje ograničeno na Windows i zatvoreno...

brano88
20.10.2016, 11:43
I da je cilj portabilnost .NET-a, taj zadatak ce biti tesko ostvariv. Recimo, da bi portovali WPF, prvo ce morati naci nacin kako da portuju ili izbace iz igre DirectX. Znaci, tesko da ce VS ikada postati multiplatformski alat.

Teva
21.10.2016, 21:09
Ma kakva crna portabilnost, dal je realno da će sami sebi da skaču u usta. Cela priča sa otvaranjem cisa (C#) je marketing.

MS nema razloga da izlazi u open sors jer ima već pogolemu bazu korisnika i to se neće promeniti skoro. Posebno što ruku na srce, C# i T-SQL i server mu, Office i još neki proizvodi MSa koji nisu Windows, su stvarno dobri.

VS je majstorski alat za razvijanje pod Winom, ne vidim što bi uopšte oslobađali sve to na opensors kad je jedan od veoma bitnih razloga razvoja na Windowsu zapravo i taj VS.

zokocx
26.10.2016, 11:27
Kad se već diskutuje o C#-u mene jako interesuje jedna stvar: šta to trenutno Microsoft radi sa open-sourceovanjem delova .Net frameworka? Čitao sam skoro neki relativno veliki članak na tu temu i malo mi je jasnije ali i dalje mi nije jasna jedna stvar: da li planiraju da razviju multiplatform .Net programiranje sa podrškom za sve jezike ili će jednostavno samo taj Core.Net biti open-source sa pratećim Asp.Net?

Ne razumem na šta ciljaju i šta žele tačno da postignu.

Ma kakva crna portabilnost, dal je realno da će sami sebi da skaču u usta. Cela priča sa otvaranjem cisa (C#) je marketing.

Nije marketing nego to je već relanost.

Pošto sam u tim vodama i pomno pratim šta se dešava probaću da odgovorima kratko i jasno.

Nije open-sourceovanjem delova nego celog frameworka ali ne ovog do sada .NET (poslednja verzija 4.6.2), nego "novog" .NET Core (v 1.0).
Zašto pišem novog pod navodnicima, jer oni su uzeli stari ponovo ga napisali da bude portabila za sve platforme (Windows, Unix, MacOS) i neke delove izdvojili (jer recimo manipulacija registrijem nije dostupna u Linuxu) tako da samo uzimaš šta ti treba, tu je novi kompajler (Roslyn), bolji JIT i još dosta toga, ostalo je sve manje više isto, ko je radio u do sadašnjem .NET isto može i u ovom da uradi na skoro isti način.
Bukvalno može konzolna aplikacija u par koraka da se prepravi da bude web aplikacija.
Naravno pošto je sve otišlo u cross platform, na nekim stvarima posebno koje su platform specific se još radi npr. WinForms, WPF, WCF (server side), Entiry Framework Core (nije još production ready).

A ono što je zajedničko i sa starim spakovali su pod tvz. .NET Standarad, e ovo je malo teže za shvatiti, ali to je buklvano set framework API-ija koje određena verzija .NET-a (starog ili Core) implementiraju a svako ko piše neku biblioteku (nuget) treba da gađa veziju .NET Standard koja mu treba i time će se obezbediti da i u budućnosti njegova biblioteka bude radila i na novoj verziji .NET-a. (Core ili stari).

Meni je ovo bila odlična vest, mnogo mi prija što MS tehnologija ide u tom smeru, jos sa VS Code ili VS Community može svašta da se napravi.
Lako je napraviti web aplikaciju sada i hostovati je na Linux-u.

Svako može doprinesti .NET Core ili nekom njegovom stack-u (compajler, ASP itd.)
https://github.com/dotnet/core

Što se Jave tiče tu ne znam ništa, znam da nika ne bi prelazio u taj tabor :D, jedini što znam da bih morao neke stvari da zaboravim da postoje ili da ih zakomplikujem (npr. LINQ, ako je to istina).

gradjanin
27.10.2016, 12:34
Pozdrav svima!

Polako samostalno učim programiranje, kodiranje, skriptovanje, šta li već. Trenutno sam na frontend web (js) a krenuo sam u sve ovo pre oko godinu i po sa Pythonom.

Imam neke svoje projekte (ništa ekstra složeno), ali mi je dosadilo da radim "domaće zadatke" od kojih možda hoću a možda i neću imati neke koristi. Cilj mi je da dosegnem entry level, i da se zaposlim negde kao junior programer. Konkretno polje rada mi i nije toliko bitno, kao ni jezik u kojem bih radio, mada mi je interesantniji rad na rešavanju algoritamskih problema nego front end development.

Na osnovu raznoraznih članaka koje sam pročitao, poslodavci imaju jasnu predstavu kako bi jedan dobar junior kandidat trebao da izgleda po pitanju tehničkog znanja i stepena sposobnosti za rešavanje problema. Buzzword su neki "ozbiljniji projekti" koje bi kandidat trebao da ima za sobom, bilo lični bilo komercijalni.

Ono što me konkretno zanima jeste - kakvi se to projekti računaju u ozbiljnije? Šta to poslodavci zapravo žele da vide u portfoliju, a što bi demonstriralo odgovarajući nivo znanja?

Naravno, pri tome mislim na stvari koje bi odgovarale entry levelu/junioru. Čini mi se da bi rad na takvim aplikacijama mogao da bude veoma dobar način da popunim znanje, kao i da kroz praksu saznam šta to sve treba da znam.

Recimo za JS, python, C# - bilo za web nebilo, potpuno mi je svejedno. Ako neko ima predstavu o tipu projekta koji bi odgovarao gorenavedenom za bilo koje polje i bilo koji jezik, molim ga da napiše.

Dakle, trebaju mi primeri aplikacija dovoljne složenosti za tako nešto, nezavisno od polja i jezika.

Unapred vam hvala na vremenu i odgovorima!

Schnak3
27.10.2016, 12:47
Budi aktivan deo zajednice za neki open source softver. To znaci da ucestvujes na razvijanju nekog softvera preko Git Hub-a. Mislim da je to ogroman plus.

Neutrino
27.10.2016, 12:55
Ne traže poslodavci bilo kakvu specifičnu vrstu portfolia već dokaz da si sposoban da ispratiš projekat od početka do kraja. Kreni sa bilo kakvim projektom koji je pogonjen zdravom idejom, nebitno da li tako nešto već postoji ili ne, i ti već imaš plus u oku ozbiljnijih poslodavaca.

gradjanin
27.10.2016, 14:05
Budi aktivan deo zajednice za neki open source softver. To znaci da ucestvujes na razvijanju nekog softvera preko Git Hub-a. Mislim da je to ogroman plus.

Ovo mi je već reklo par ljudi, tako da ću dati šansu ovom pristupu na nekih mesec dva nakon što se malo podsetim Pythona ili savladam osnove c#, python sam već pola pozaboravljao jer ga nisam koristio skoro godinu dana. Hvala ti!

Ne traže poslodavci bilo kakvu specifičnu vrstu portfolia već dokaz da si sposoban da ispratiš projekat od početka do kraja. Kreni sa bilo kakvim projektom koji je pogonjen zdravom idejom, nebitno da li tako nešto već postoji ili ne, i ti već imaš plus u oku ozbiljnijih poslodavaca.

E vidiš, to "bilo kakav" mi je prilično mutno jer ne znam kako se šta kotira. Sa moje tačke gledišta - "bilo kakve" projekte već imam, evo nekih od njih ovde: http://my-works.esy.es/ Sve frontend, doduše.

Pored toga imam i kojekakvih algoritama i sitnih igrica što mi leži po kompu al su to u glavnom "školski" projekti, iako rađeni samostalno pa mi je bilo bez veze da ih postavljam tamo.

Sad, pretpostavljam da to nije dovoljno za posao, pa verovatno čak ni za praksu negde jer sam praksu i tražio sa ovim.

Najviše bih voleo da mogu lepo napraviti klon Facebooka, ali mislim da to nije projekat koji bi odgovarao junior nivou već je dosta žešće, i bez prethodnog rada na prostijim stvarima i bar nekog real world iskustva teško da bih bilo šta postigao u neko dogledno vreme.

Pitanje koje sam postavio sam postavio tako kako jesam jer nemam predstavu šta bi bio sledeći korak, a hteo bih da to bude nešto što spaja "lepo i korisno", iliti da bude dobar način da utrošim vreme i energiju. Zato sam se i obratio vama ovde, da bih imao jasniju predstavu gde se otprilike nalazi entry level bar. A bez veze mi je da spamujem ljude sa prijavama dok ne budem siguran da imam nešto kvalitetno da ponudim.

zokocx
27.10.2016, 23:32
Budi aktivan deo zajednice za neki open source softver. To znaci da ucestvujes na razvijanju nekog softvera preko Git Hub-a. Mislim da je to ogroman plus.

Ovo mislim da je malo teže za nekog početnika/juniro-a, ali ako misli da može nek proba u svakom slučaju može nešto da nauči.

Ne traže poslodavci bilo kakvu specifičnu vrstu portfolia već dokaz da si sposoban da ispratiš projekat od početka do kraja. Kreni sa bilo kakvim projektom koji je pogonjen zdravom idejom, nebitno da li tako nešto već postoji ili ne, i ti već imaš plus u oku ozbiljnijih poslodavaca.

Ovo ti je najbolji savet, pravi poslodavac će shvatiti da ti vrediš ako mu pokažeš da te interesuje posao i da se stalno usavršavaš, a to kakvi su to projekti i koje veličine nije toliko bitno.

Ja sam recimo imao prilike da odlučim o izboru početnika kad su tražili nove zaposlene u prošloj firmi, i svakakvih ima likova, koji recimo nisu znali šta su servisi (web), radili CRUD pešice (ADO.NET) ili ne znaju šta je sql injection i kako ga sprečiti.
Sve dok nisu se pojavila dva lika koji su pokazali neki školski projekat koji su hteli da prodaju ali nisu uspeli, a to bio neki običan web shop sa CMS-om možda malo više od deset stranica sve ukupno, kad sam video da kapiraju neke koncepte, da su išli u pravom smeru i upotrebili pravilno neke tehnologije odmah sam tražio da ih uzmu.

Neutrino
28.10.2016, 3:50
Budi aktivan deo zajednice za neki open source softver. To znaci da ucestvujes na razvijanju nekog softvera preko Git Hub-a. Mislim da je to ogroman plus.U teoriji ovo zvuči super ali u praksi rad na open source projektima i nije baš neka preporuka za poslodavca. Razlog je veoma jednostavan - poslodavac želi da proceni sposobnosti kandidata a ne zajednice okupljene oko projekta. Učestvovanje u open source projektima skoro isključivo znači pojedincu jer će tako naučiti kako funkcioniše timski rad, što recimo može da bude jedan, i verovatno jedini, plusić za poslodavca.

gradjanin
28.10.2016, 9:04
Prethodni post mi je iz nekog razloga završio na moderaturi.

a to bio neki običan web shop sa CMS-om možda malo više od deset stranica sve ukupno, kad sam video da kapiraju neke koncepte, da su išli u pravom smeru i upotrebili pravilno neke tehnologije odmah sam tražio da ih uzmu.

E ovo je već nešto konkretno, upravo sam na tako nešto i mislio pod "primer". Jer ovako "bilo šta" su mi bili sitni projekti tipa tetris, iks oks i štatigajaznam.

Dakle full sajt sa back i front endom. Web shop mi je ionako bio na TODO listi, al tek krećem sa server side, tačnije zalećem se zbog node vs ruby vs django trileme.

Schnak3
28.10.2016, 12:05
U teoriji ovo zvuči super ali u praksi rad na open source projektima i nije baš neka preporuka za poslodavca. Razlog je veoma jednostavan - poslodavac želi da proceni sposobnosti kandidata a ne zajednice okupljene oko projekta. Učestvovanje u open source projektima skoro isključivo znači pojedincu jer će tako naučiti kako funkcioniše timski rad, što recimo može da bude jedan, i verovatno jedini, plusić za poslodavca.

Sopstveni projekti + rad na nekom open source projektu + postavljivanje svojih projekata na GitHub. Zadnja stavka je izuzetno zeznuta jer morate veoma kvalitetan kod da napišete jer ne znate ko će to u budućnosti da gleda. Ja nikako da išta izbacim na GitHub da bude javnog tipa jer uvek mislim da kod može da se poboljša :D (BitBucker je ima besplatne privatne repozitorijume)

Na intervjuima za početnike ionako idu klasična pitanja o algoritmima, bazama i projektnim obrascima.

Mada lično mislim da je početniku baš teško da se uključi u aktivan razvoj bilo kog softvera jer maltene morate da znake kako skoro ceo proizvod funkcioniše, što već zahteva znanje nekog junior programera.

Ne znam koliko poslodavci gledaju to neko socijalno angažovanje programera u vidu GitHub ili Stackoverflow profila. Ja trenutno na Stackoverflow-u 90% reputacije sam dobio editovanjem tudjih pitanja i komentara jer ili nisam dovoljno brz pri odgovaraju ili ne znam odgovor.

brano88
29.10.2016, 20:09
Ne znam koliko poslodavci gledaju to neko socijalno angažovanje programera u vidu GitHub ili Stackoverflow profila. Ja trenutno na Stackoverflow-u 90% reputacije sam dobio editovanjem tudjih pitanja i komentara jer ili nisam dovoljno brz pri odgovaraju ili ne znam odgovor.


Zapravo... neki poprilicno (http://www.yegor256.com/2014/10/29/how-much-do-you-cost.html). Stavise, u kompaniji Jegora Bugajenka visina plate zavisi od reputacije na SO-u (poslednji paragraf blog posta). :)

Neutrino
30.10.2016, 1:12
Da, Stackoverflow je izuzetno popularan metod za brzo procenjivanje kandidate jer zajednica profesionalaca, koja se međusobno ocenjuje, odrađuje posao umesto poslodavca.

Inače, brzina odgovora uopšte nije bitna na Stackoverflow-u. Mnogo je bitnije napraviti kvalitetan, koncizan odgovor jer brzi odgovori možda dobiju nešto više poena na početku dok su vidljivi u feedu ali kvalitetni odgovori dobijaju mnogo više poena na duge staze.

player1
30.10.2016, 2:44
C je stariji programski jezik sve radiš ručno, C++ je nadograđena verzija, a C# je microsoftova moderna verzija, ima mogućnosti i za web programiranje što je sad uglavnom ionako sve web, u suštini drag and drop sa povremenim zavlačenjem ispod haube, da moraćeš da razumeš šta se dešava u kodu.

Sustinska razlika je da je C klasican proceduralni jezik, C++ stariji objektno orjentisani jezik koji je direktna nadogradnja C-a, i tako prilicno kabast, a C# je Microsoftov odgovor na Javu, i kako se rade moderni OO jezici.

Teva
31.10.2016, 15:44
A šta je moderni OO jezik?

Paladin
3.11.2016, 23:09
Naletio sam na ovo kada je u pitanje poznavanje programiranja pa možda vam bude zanimljivo

https://cdn2.omidoo.com/sites/default/files/imagecache/full_width/images/bydate/201506/thumbnail.jpg

Mickie
5.11.2016, 22:02
Pozdrav svima!

Polako samostalno učim programiranje, kodiranje, skriptovanje, šta li već. Trenutno sam na frontend web (js) a krenuo sam u sve ovo pre oko godinu i po sa Pythonom.

Imam neke svoje projekte (ništa ekstra složeno), ali mi je dosadilo da radim "domaće zadatke" od kojih možda hoću a možda i neću imati neke koristi. Cilj mi je da dosegnem entry level, i da se zaposlim negde kao junior programer. Konkretno polje rada mi i nije toliko bitno, kao ni jezik u kojem bih radio, mada mi je interesantniji rad na rešavanju algoritamskih problema nego front end development.

Na osnovu raznoraznih članaka koje sam pročitao, poslodavci imaju jasnu predstavu kako bi jedan dobar junior kandidat trebao da izgleda po pitanju tehničkog znanja i stepena sposobnosti za rešavanje problema. Buzzword su neki "ozbiljniji projekti" koje bi kandidat trebao da ima za sobom, bilo lični bilo komercijalni.

Ono što me konkretno zanima jeste - kakvi se to projekti računaju u ozbiljnije? Šta to poslodavci zapravo žele da vide u portfoliju, a što bi demonstriralo odgovarajući nivo znanja?

Naravno, pri tome mislim na stvari koje bi odgovarale entry levelu/junioru. Čini mi se da bi rad na takvim aplikacijama mogao da bude veoma dobar način da popunim znanje, kao i da kroz praksu saznam šta to sve treba da znam.

Recimo za JS, python, C# - bilo za web nebilo, potpuno mi je svejedno. Ako neko ima predstavu o tipu projekta koji bi odgovarao gorenavedenom za bilo koje polje i bilo koji jezik, molim ga da napiše.

Dakle, trebaju mi primeri aplikacija dovoljne složenosti za tako nešto, nezavisno od polja i jezika.

Unapred vam hvala na vremenu i odgovorima!

Kad neko kaze ozbiljan projekat, misli na ovaj projekat sa kojim se sad batrga i za koji mu treba dodana radna snaga da ga zavrsi... Prosto nijedan poslodavac nece da ti kaze evo imam jedan neozbiljan projekat, dodji prijavi se da ti dam posao. Ja sam razne "ozbiljne projekte" zavrsavao u roku od jednog vikenda.

Sta mozes da uradis da pokazes da si spreman za ozbiljne projete? Za C# neznam, tamo verovatno i nema nista ozbiljno, za Python mogu da ti kazem sta da uradis. Uzmi neku Python 2 open source biblioteku koja jos nije portovana na Python 3. Nesto sto ti koristis, sto ti je zanimljivo i sto znas, Uzmi i portuj u Python 3. To ti je prilicno ozbiljan projekat, mnogo ce tu stvarcica novih da se pojavi, verovatno zavisi na neke druge delove i biblioteke, moraces da razgovaras na mailing listi sa maintainerima te druge biblioteke.. a poslodavci na mailing listama love talente. Gledaj da bude nesto sto se koristi, i sto dosta kompanija koristi. Ali ako uzmes nesto preveliko, nikad neces da ga zavrsis. Nemoj odma da se zaletis da portujes OpenStack na Python 3 :)

Kad uradsi par takvih projekata, dokazao si da znas dobro Python 2 i Pyhon 3, imas neoborivi dokaz u svom porfoliju da si radio ozbiljne projekte. Sad ako neko hoce nesto jos ozbiljnije, neka precizira ti ces posle ovog iskustva imati dovoljno znanja da sredis i to. Ako si izabrao neki popularan projekat i jos resio brdo bagova u njemu, neka kompanija koja to koristi bice vrlo zainteresovana da te zaposli da puno vreme resavas one probleme koji njima najvise smetaju.

Neutrino
5.11.2016, 22:24
Ma baš će neko portovanje Python 2 biblioteka u Python 3 da smatra ozbiljnim poslom pored gomile konvertora koji to rade automatski.

Twisterzemun
6.11.2016, 0:41
Za C# neznam, tamo verovatno i nema nista ozbiljno...

Svasta, koja glupost...

Šta to poslodavci zapravo žele da vide u portfoliju, a što bi demonstriralo odgovarajući nivo znanja?

Ono sto je poslodavcima najbitnije je da:


Budes timski igrac
Ne plasis se novih izazova
Ne plasis se unapredjivanja svog znanja


To su osobine koje moras da imas i to im je, uglavnom, najbitnije.

Sto se tice gradjenja portfolia preko open source projekata za pocetnike, izvoli pa biraj sta ti se dopada https://github.com/MunGell/awesome-for-beginners.

Nemoj se stresirati puno u vezi toga, iskoristi te projekte zbog sebe. Da vidis gde stojis u odnosu na druge, naucis neke nove trikove i vidis kako se od prilike radi na projektima gde ima vise ljudi, sto ce ti puno pomoci u malo vecim firmama.

Srecno!

Mickie
6.11.2016, 14:08
Ma baš će neko portovanje Python 2 biblioteka u Python 3 da smatra ozbiljnim poslom pored gomile konvertora koji to rade automatski.

Da konvertori rade posao, sve bi vec bilo portovano. A nije, cak deceniju posle izlaska Python 3 gomila velikih i vaznih projeketa i dalje se muci sa Python 3 podrskom. Malo je komplikovanije od toga. Konvertori rade za trivijalne projekte, i sve sto je moglo konvertorom vec je portovano. A on moze da proba da usavrski konvertor pa da portuje njime, i to nije lak zadatak.

Mickie
6.11.2016, 14:18
Svasta, koja glupost...



Svasta, i ja to kazem kad citam ovde price o C#. Po pricama ovde nekih forumasa ja sam stekao da je to programski jezik za lezilebovice koji sluzi da nikad ozbiljno ne moras da zasuces rukave. Preporucuju ga po defaultu svakom ko hoce da uci bilo kakvo programiranje jer je "najlaksi". Ja zato bezim dalje od njega i nikom ga ne preporucujem.

NIx Car
6.11.2016, 15:30
Po cemu si zakljucio da C# nije za ozbiljne projekte :facepalm :facepalm I javu takodje preporucuju pocetnicima u programiranju i python takodje, pa opet ne mozes reci ni za jedan od ta 3 da su neozbiljni....

Mickie
6.11.2016, 15:54
Po tome sto ga guraju svima pod nos, a kad nesto guraju svima pod nos to je obicno smece. Mislim da je Linusov rant o C++ u slucaju C# jos vise tacan.

>
> When I first looked at Git source code two things struck me as odd:
> 1. Pure C as opposed to C++. No idea why. Please don't talk about portability,
> it's BS.

*YOU* are full of bullshit.

C++ is a horrible language. It's made more horrible by the fact that a lot
of substandard programmers use it, to the point where it's much much
easier to generate total and utter crap with it. Quite frankly, even if
the choice of C were to do *nothing* but keep the C++ programmers out,
that in itself would be a huge reason to use C.

In other words: the choice of C is the only sane choice. I know Miles
Bader jokingly said "to piss you off", but it's actually true. I've come
to the conclusion that any programmer that would prefer the project to be
in C++ over C is likely a programmer that I really *would* prefer to piss
off, so that he doesn't come and screw up any project I'm involved with.


Samo promeni C++ na C# i C na Javu ili nesto drugo. Proguglaj da nadjes ceo rant.

player1
6.11.2016, 16:51
Svaki jezik ima svoju svrhu.

Ako bi hteo da napravim drajver koristio bih C, windows aplikaciju C#, a serversku aplikaciju Javu.

C++ mozda ako bih hteo da pravim sopstveni game engine.

Mickie
6.11.2016, 16:59
Pa u tome i jeste problem, ovde ljudi pocetnici dodju pitaju sta da uce, a vi svi odmah pretopstavite da oni hoce samo da pisu Windows desktop aplikacije i po defoltu preporucujete C#. Cak i kad pomenu Android, web servise, cloud ili IoT, svi opet C# C# C#.. Ja mislim da ni Microsoft forum nije grdji po tom pitanju, mada nisam bio tamo, nisam imao zasto tamo da zalazim. Ali mislim da se tamo bar poneki put zaebu da preporuce F#, ovde ni to. :opanachke

Neutrino
6.11.2016, 17:41
Da konvertori rade posao, sve bi vec bilo portovano. A nije, cak deceniju posle izlaska Python 3 gomila velikih i vaznih projeketa i dalje se muci sa Python 3 podrskom. Malo je komplikovanije od toga. Konvertori rade za trivijalne projekte, i sve sto je moglo konvertorom vec je portovano. A on moze da proba da usavrski konvertor pa da portuje njime, i to nije lak zadatak.Sad ću da ti ispričam jednu priču. U blizini Kraljeva postoji vojni, sada delom i civilni, aerodrom Lađevci. Vojska tu drži jedan simulator "Galeba" koji služi za trening pilota. Sistem se sastoji od tri međusobno povezana računara - jedan koji je zadužen za navigacione mape, drugi koji kontroliše hidauliku na najnižem nivou i treći koji sinhronizuje ova druga dva računara i radi glavnu simulaciju. Ovaj računar koji je zadužen za hidrauliku još uvek radi na MS-DOS-u 6.22. Kada sam pitao glavnog inženjera zašto ne pređu na nešto savremenije dobio sam odgovor da je sistem toliko integrisan i pun međuzavisnosti da se niko ne usuđuje da uradi tako nešto niti realno postoji bilo kakav razlog da se bilo šta menja kad cela šklopocija zapravo radi. Kada sistem prestane da radi prosto će ga zameniti novim i to je to. Nema nepotrebnog gubljenja vremena na nešto što je po svim stadardima uveliko zastarelo već se vreme, energija i novac štede prelaskom na novi sistem kada za to dođe vreme.

E pa ista stvar je i sa Pythonom koji je prepun nekakvih magičnih biblioteka i metoda za koje nije bitno da znaš tačno kako funkcionišu već samo da završavaju posao koji treba da rade. I sada ti trebaš nekome ko već ima razvijenu kodnu bazu u Pythonu 2 da prodaš priču kako iz nekih skoro potpuno nebitnih razloga treba da pređe na Python 3 i skrši pola međuzavisnosti koje iz čistog nedostatka motivacije i potrebe još uvek nisu konvertovane u Python 3? Python 2.7 je poslednja verzija "dvojke" čija je podrška 2015. godine produžena za još pet godina upravo zbog te inertnosti i nedostatka potrebe da se bilo šta menja. Kada sat (https://pythonclock.org/) odzvoni 2020. godine gro novih projekata koji su između 2015. i 2020. godine startovani u Pythonu 3 će već činiti zaokruženu bazu za sve buduće Python projekte bez potrebe da se sada vreme i novac ulaže u bespotrebnu konverziju projekta koji su odavno zastareli.
Po pricama ovde nekih forumasaI tu leži tvoj glavni problem - izvlačiš zaključke na osnovu nekakvih priča sa foruma. RAD (Rapid Application Development) je odavno postao standard u softverskoj industriji gde je vreme = novac. C# je zato i zamišljen kao alat koji eliminiše gomilu nepotrebnog boilerplate koda (*cough* Java *cough*) i omogućava da projekat napreduje daleko većom brzinom nego kada bi se koristio neki drugi alat (namerno sam upotrebio reč "alat").

I na kraju, do pre par godina da me je neko pitao koji bih jezik preporučio početnicima moj odgovor bi skoro sigurno bio C kao nešto što pomaže pojedincu da shvati kako računar zapravo funkcioniše. Ali onda sam iskustvom stečenim tokom podučavanja drugih shvatio da se u tom slučaju uvek pojavi problem motivacije jer sredstvo za učenje mora da bude sposobno da motiviše na dalji rad time što prikazuje konkretne rezultate. C# je tu poprilično dobra startna platforma jer .NET omogućava brzu vizuelizaciju rezultata i uz to se i dalje drži veoma modernog pristupa razvoja aplikacije. Da li to znači da ostale alate (opet namerno koristim reč "alate") treba zapostaviti? Ne. Dobrog programera čini sposobnost da alat prilagodi projektu i za to je apsolutna prednost želja i volja da se nauči sve što pojedincu dođe ruku. Bitno je da ne treba biti isključiv samo zato što neko ima lični problem sa kompanijom koja proizvodi alat.

brano88
6.11.2016, 18:13
Sad ću da ti ispričam jednu priču. U blizini Kraljeva postoji vojni, sada delom i civilni, aerodrom Lađevci. Vojska tu drži jedan simulator "Galeba" koji služi za trening pilota. Sistem se sastoji od tri međusobno povezana računara - jedan koji je zadužen za navigacione mape, drugi koji kontroliše hidauliku na najnižem nivou i treći koji sinhronizuje ova druga dva računara i radi glavnu simulaciju. Ovaj računar koji je zadužen za hidrauliku još uvek radi na MS-DOS-u 6.22. Kada sam pitao glavnog inženjera zašto ne pređu na nešto savremenije dobio sam odgovor da je sistem toliko integrisan i pun međuzavisnosti da se niko ne usuđuje da uradi tako nešto niti realno postoji bilo kakav razlog da se bilo šta menja kad cela šklopocija zapravo radi. Kada sistem prestane da radi prosto će ga zameniti novim i to je to. Nema nepotrebnog gubljenja vremena na nešto što je po svim stadardima uveliko zastarelo već se vreme, energija i novac štede prelaskom na novi sistem kada za to dođe vreme.

Pravo u srz! Ono sto dosta developera ne razumije je da musteriju interesuje poslovna vrijednost koju stvara softver a ne to da li ces ti koristiti NodeJS, Ruby, Python ili sta vec. Sjecam se dobro podsmijeha na vijest u kojoj je pisalo da americka nuklearna postrojenja koriste softver star 30 i vise godina. Je li radi provjereno? Radi. Hvala bogu, nismo dozivjeli armagedon zbog neke greske u softveru. Zasto ga mijenjati novim i u praksi neprovjerenim softverom.

C# je zato i zamišljen kao alat koji eliminiše gomilu nepotrebnog boilerplate koda (*cough* Java *cough*) i omogućava da projekat napreduje daleko većom brzinom nego kada bi se koristio neki drugi alat (namerno sam upotrebio reč "alat").

Znam da si C# advokat, ali budi malo objektivan. U poslednjih 5 godina alati za Java development su znatno uznapredovali. Java, ne bas toliko. Ali iskreno, meni ta "verbosity" nikad nije smetala. I sam se sjecam setup-a Spring projekta. Pola sata! I to ako sve ide glat! Danas, 5 minuta.

P.S. Hvala development timu Rails-a. :)

Mickie
6.11.2016, 18:38
Neutrino, ti stvarno mislis da ja to ne znam? Znam da ogromni broj kompanija jos koristi COBOL i da nece da menja, da MicroFocus zaradjuje ogromne pare na COBOL alate.. .ali to nije ono o cemu sam ja pisao i ti namerno izvrces da proturis tvoju Microsoftansku C# pricu.

Radi se o tome da portovanje Python 2 biblioteka u 3 nije da bi neciji stari kod naterao silom da predje na Python 3. Ko nece da python 3 moze da ostane na dvojci zauvek. Biblioteka se portuje zato sto jos mnogo novih projekata se danas zapocinju u Python 2, a kad neko pita sto niste poceli u Pyhon 3, kazu nismo imali tu i tu bibliteku za Python 3. I stvarno nema, nema nista slicno. E zbog toga razne kompanije cak daju bounty da se biblioteke portuju u Python 3. A to sto ce neko sve jedno da nastavi da koristi Python 2 to nije bitno, svako radi sta mu se prohte. Glavno je da Python 3 ne manjka sto se tice biblioteka.

A portovanje nije samo uzmem biblioteku i promenim print u print() nego u nekim slucajevima napises potpuno novi kod, napravis potpuno novi projekat pod novim imenom a staru biblioteku uzmes samo kao referentni dizajn prema kome se tvoj projekat ravna.

Mickie
6.11.2016, 18:45
I kako C# moze da motivise pocetnika kad si prakticno vezan za Windows i ako ga koristis izolovan si od svih novih tokova, i moblnih i serverskih. Meni sa Javom, pythonom, Rubijem i C nikad nije bila problem motivacija, a ni sada kad ucim Ceylon. Za C# nemam motivaciju ni da procitam clanak o njemu na Wikipediji. Jedino sto procitam o C# je od dosadnih Microsoft evangelista koje na forumima poput ovog, i to je dovoljno da mi se smuci.

Teva
6.11.2016, 18:47
Kao kad pitaš stolara koji je materijal najbolji da napraviš baštenski sto...

Sve ima svoje mesto pod suncem i postoji razlog zašto je to tako.

Sve zavisi šta ti kad treba, ako ću da pišem drajver ili kernel naravno da ću da uzmem C, jer je za embeded i dalje majka. Ako pišem serverčinu koja će da obrađuje pitaj Boga koliko podataka i da vrši jaka izračunavanja naravno da ću koristiti C++, pre Jave i C# jer je duplo brži a pre C-a jer pruža veći nivo apstrakcije. Ako ću da pravim sajt onda ću da koristim JS i PHP. Ako radim mat prototajping i izračunavanja Matlab i Octave. Ako pišem aplikaciju koju treba brzo da razvijem bez neke bitne potrebe za jakim performansama i izračunavanjem Java/C#.

To drndanje oko toga koji je jezik bolji zavisi od toga pod kakvim okolnostima gledaš. Sam Linus je bio u pravu (kažem bio jer se cpp dosta promenio od tog njegovog izlaganja), jer cpp nije za embeded kolko god se ljudi trudili da ga ubace tamo, još crnje bi bilo koristiti C# za to.

Schnak3
6.11.2016, 18:51
Kada neki početnik bude čitao ovu temu jedino će da zaključi da koji god programski jezik odabere ima da pogreši.

Twisterzemun
6.11.2016, 18:57
I kako C# moze da motivise pocetnika kad si prakticno vezan za Windows i ako ga koristis izolovan si od svih novih tokova, i moblnih i serverskih.

Okej je da ne volis neku tehnologiju i da se tebi licno ne svidja rad u njoj, ali nemoj da siris dezinformacije.

https://www.microsoft.com/net/core#windows
http://www.mono-project.com/
https://www.xamarin.com/

Neutrino
6.11.2016, 18:59
Znam da si C# advokat, ali budi malo objektivan.Ne kažem da Java nije napredovala ali još uvek vuče neke odvratne repove od ranije.

I da, iako možda zvučim kao C# advokat ja zapravo veoma malo koristim C# u poslednih godinu-dve dana. Glavni razlog je fokus na neke alternativne full-stack tehnologije tipa node.js itd.
I kako C# moze da motivise pocetnika kad si prakticno vezan za Windows i ako ga koristis izolovan si od svih novih tokova, i moblnih i serverskih. Meni sa Javom, pythonom, Rubijem i C nikad nije bila problem motivacija, a ni sada kad ucim Ceylon. Za C# nemam motivaciju ni da procitam clanak o njemu na Wikipediji. Jedino sto procitam o C# je od dosadnih Microsoft evangelista koje na forumima poput ovog, i to je dovoljno da mi se smuci.
Taman sam hteo da ti izdeklamujem poveću listu softvera koja zapravo radi to što ti tvrdiš da ne postoji kad me čovek preteče.

Tvoj problem Mickie je što ti prosto mrziš Microsoft ekosistem i onda pokušavaš, nažalost veoma neinformisanim i netačnim, informacijama da ga po svaku cenu nacrniš. I dok mržnju sa jedne strane i mogu da razumem apsolutno ne razumem zašto trošiš toliko vremena i energije na nešto što očigledno toliko mrziš. Okreni se stvarima koje poznaješ (recimo taj Python) i pusti ljude koji zapravo nešto znaju o Microsoft ekosistemu da govore o onome u šta se razumeju.

Dreamfall
6.11.2016, 22:40
Ja sam ceprkao malo po C++, radio sam Python neki programcic za vodjenje licnog invertara prodavnice namestaja za komsiju (licna upotreba, nije za firmu) i konacno sada raduckam po Javi i kao apsolutni pocetnik mogu da kazem da mi Python najbolje legao zbog pitke sintakse. C++ sam radio i epski fejlovao kada je krenulo nesto ozbiljnije gradivo, a Java mi bas lezi, lici mi pomalo na C++. Sto se tice alata, Eclipse mi mnogo prijatniji za koriscenje od Code::Blocks - a koji sam koristio za C++ . Paskal i Delphi ne racunam da sam radio, jer je to bilo nesto sitno u srednjoj. PHP sam odgledao 2 tutorijala i skontao sam da nije to za mene :kreza:

Eto, misljenje nekog pocetnika, malo da promesamo temu. :D

doctor
6.11.2016, 23:12
Kako vas više ne mrzi da pišete na temu C vs C++ vs C# vs Java vs Python za početnike...

Sve je to prilično individualno, meni je recimo C# izgledao apsolutno strašno kao početniku, C++ mi je bio nejasan a C legao kao šamar budali. Pre toga sam pokontao osnove u BASIC-u i posle pokrpio low-level znanje sa maaalo assemblera. Posle toga sam video malo Jave, malo C#-a i skontao stvari.

Znam ljude koji su krenuli sa C#, naučili se brdu stvari u njemu, legao im je blago apstraktan način razmišljanja i sirovo kodiranje bez preterano razumevanja o tome šta se dešava "ispod".

Kolega sa faksa nije mogao da se po'vata ni sa C-om kako treba dok nije video assembler.

Znam i ljude koji ne žele da vide dalje od skripting jezika jer jednostavno ne žele da rade sa jezicima nižeg nivoa.

Početniku treba preporučiti jezik koji je negde "između", jezik koji zahvata sve ono što je potrebno da se stvori solidna osnova za rad gde će taj neko koji počinje moći da oseti i lepotu low-level upravljanja memorijom ali i udobnost u radu sa garbage collectorom bez razmišljanja o memoriji a da pritom može da krene sa "konkretnijim" stvarima i da jezik ima sintaksu koja se ne razlikuje preterano od drugih jezika. Danas je taj jezik C#.

Koriste se moderni OOP koncepti, C-like sintaksa, kapiranje osnovnih stvari nije toliko teško, konzolne aplikacije se prave bez komplikovanog procesa bootstrapovanja aplikacije i gubljenja po menijima, pruža mogućnost da iskoristiš onoliko znanja koliko ga imaš (niko te ne tera da koristiš "komplikovane" stvari da bi napravio nešto što radi, možeš pešaka), jezik ima mogućnost "unsafe" rada gde mogu da se koriste pointeri i upravlja memorijom. Tranzicija na GUI rad u C# je brza i relativno bezbolna i početnik može da iskoristi ono što je naučio da pravi aplikacije koje imaju GUI. Dakle, jezik pruža mogućnost napredovanja različitim tempom, kako kome odgovara.
Uz sve to, znanje C#-a se neverovatno isplati i to je automatski investicija u budućnost.

Da se ja pitam, "jezik za početnike" bi bio C pa bi se pravio dalji progres radom u x86 asembleru i C#-u. Ali činjenica je da za proučavanjem C-a nema potrebe niti bi početnika trebalo odmah bacati u te vode. Bitnije je da se odmah uhvati u koštac sa OOP-om i pohvata gomilu apstraktnih koncepata i fora kroz rad kao i da nauči osnovne algoritme. Onaj koga programiranje zaista interesuje će u toku procesa učenja a i nakon toga uvek želeti da zna još i naučiće.

galebns
7.11.2016, 0:29
Meni ovo lici na prepucavanje koji je bolji motor (u autu), da l' BMW, da l' Mercedes, da l' Renault, da l' Fiat... Hocu da kazem, svi se prodaju k'o pleva i zgrcu pare ;)

Mickie
7.11.2016, 1:18
Pa o tome govorim od pocetka, preporucivati bilo koji jezik pocetniku je nezahvalno a pogotovu imati default preporuku C#-za-sve je suludo ukoliko te MSFT ne placa da dajes takve preporuke. Ako te niko ne placa onda si ili fanboj ili mnogo pokvaren tip.

Ja kad me neko pita koji programski jezik da uci, nikad ne dajem preporuke nego pitam jel imas android telefon. Normalno svako ima, pa je sledeca recenica "daj ga ovamo". Instaliram mu aplikacije Solo Learn i slicne za SVE SVE SVE jezike koje mogu da se setim i koje ima u Play prodavnici... ako mogu da stanu u telefon. Pa nek on resava one kvizove dok negde ceka ili kad gluvari, nek sam izabere jezik koji mu lezi. Nema leba da mu ja kazem sa uci Javu, Python, Ruby, C. Mozda se ne snadje ni sa jednim od tih a mozda mu Haskell recimo legne, a ja Haskell pojma nemam, kako da mu preporucim? Bolje nek on krene da ga uci pa nek posle uci mene.

Neutrino
7.11.2016, 3:28
Dobro skapirali smo, mrziš Microsoft i obožavaš da pričaš o stvarima o kojima nemaš pojma. The End.

Mickie
7.11.2016, 12:19
. Sam Linus je bio u pravu (kažem bio jer se cpp dosta promenio od tog njegovog izlaganja), jer cpp nije za embeded kolko god se ljudi trudili da ga ubace tamo, još crnje bi bilo koristiti C# za to.

Ona prica je u vezi git version control system, ne Linux kernela. Apsolutno je moguce da se implementira VCS u C++ ili C#. Imas Monotone u C++, a verovatno ima nesto i u c#, mrzi me da trazim. Znaci prica je za upotrebu jezika u aplikaciji, ne u kernelu.

zokocx
7.11.2016, 12:27
Evo lepo za početnika neka uči Pascal i Delphie.

Tako će možda zamrzeti programiranje, ako mu se recimo smuči IDE ili sintaksa jezikam ili mu drugar/poznanik kaže da time neće € zaraditi.

Realno i da krene da čeprka po BASIC-u u programu od 10 linija i da se zeza sa GOTO naredbom i skonta kako se izvršava program, i posle mu neko kaže da je to loše ili sam shvati, i još više se zaninteresuje da krene na pravi put, bolje je nego da čita ovakva prepucavanja.

Ja sam i Javu radio na faksu, i malo PHP, i C# WinForms sam portovao na Mono i pokretao na Linuxu (Ubuntu), ali realno bolje je kad vidiš neki rezultat na ekranu kad nešto iskoči kad odbije koliko toliko opisnu grešku šta ne valja i koju kad ubacis u google možeš da čitaš kako ga drugi rešavaju.
Najgore za početnika je kad ga sama osnova "alat" prikaca u zid i ne zna kako dalje.

Teva
7.11.2016, 23:07
Ona prica je u vezi git version control system, ne Linux kernela. Apsolutno je moguce da se implementira VCS u C++ ili C#. Imas Monotone u C++, a verovatno ima nesto i u c#, mrzi me da trazim. Znaci prica je za upotrebu jezika u aplikaciji, ne u kernelu.

Istu priču je pričao i za pisanje kernela u C++-u. Lik je prilično teške stvari rekao protiv cpp-a a opet u njemu pisao najnoviji projekat. Cpp je sad skroz drugačiji jezik nego što je bio.

http://harmful.cat-v.org/software/c++/linus

Msm meni je recimo mnogo trulo kad daju ljudima da uče OO paradigmu u Cppu. Jezik je suviše dopustljiv za učenje OO paradigme, msm gde ćeš da učiš na jeziku koji ima high-level mehanizme za koje svuda piše koristi ako baš znaš šta radiš, a da ne pričamo što postoji i brdo low-level stvari koje možeš da uradiš da probiješ iole razuman OO dizajn.

Učiti OO dizajn na tehnologiji gde je sve moguće je veoma rizično i gotovo sigurno vodi do razvijanja nekih navika koje nisu baš najčistije, znam iz iskustva xD

Mickie
8.11.2016, 12:39
Znam da Linus mrzi C++ i nece da ga vidi ni u kernelu ni u gitu, ali onaj rant se odnosi na nekog ko je hteo da ubaci C++ u git, ne u kernel. Ima drugi rant za kernel. Ja ist o ne volim C++, mislim da je sve natrpano tamo bez reda i nema cist i promisljen dizajn. Svidja mi se Rust na primer ali nisam imao kad da ga ucim. Poceo sam da ga ucim dok jos nije bio 1.0 i onda su polomili nesto i sve mi se pokvarilo sto sam radio, ja popravio oni u novij beti promenili opet, pa sam batalio. Posle kad je izaso 1.0 nije bilo vise lomljave, ali ja vise nisam imao vremena zbog drugih obaveza. Sad mi je Ceylon prioritet za ucenje, ne mogu da ucim dva jezika u isto vreme.

brano88
8.11.2016, 14:49
Trenutno stanje ovog thread-a:

http://img.michaeljacksonspictures.com/wp-content/uploads/2014/08/popcorn-blank.gif

Sad mi je Ceylon prioritet za ucenje, ne mogu da ucim dva jezika u isto vreme.

Brate mili gdje nadje Ceylon od svih JVM programskih jezika? Cak se ljudi neckaju i oko upotrebe Scale koja je mnogo "zrelija" i ima jaci ekosistem. A sta tek reci za Ceylon. Ja jos nisam sreo nekoga ko ga koristi u produkciji.

Mickie
8.11.2016, 16:12
Ceylon je mnogo upotrebljiviji nego Scala veruj mi. Scala je vec 15 godine next-big-thing i niko je ne koristi i nikad i nece po mom misljenju. Probao sam I Scalu, ali sam posle nekoliko dana zakljucio da nikad nece biti korisna za nista ozbiljno, nije pravoljena za produkciju nego kao lista zelja profesora kompjuterske nauke. Ima sve sto mozes da zamislis, pa dodje kao JVM C++ samo na steroidima. Zato je svaki netrivijalni program u Scali mnogo teze odrzavati, moras da znas ceo jezik koji je ogroman a to niko ne moze bez citanja uputstva svako malo. Mislim da ne postoji veci bloat jezik od Scale. Jednostavno Scala ne staje u glavu prosecnog programera. A nadprosecan opet mozda nece Scalu da koristi iz nekih drugih razloga.

Cejlon sa druge strane je od pocetka pisan za produkciju i za timski rad i lako citanje koda. Ja vec citam kod bez problema iako ga ucim tek nekoliko nedelja i to ne svaki dan nego kad imam vremna i raspolozen sam. Namerno ne podrzava vecinu onoga sto Skala podrzava, umesto toga ima Union i intersection tipove koje kad savladas (ja nisam jos skroz ali vec razumem vecinu stvari zasta sluze) mozes da vrlo brzo pises module koji se mogu upotrebljavati u velikom broju projekata bez da ista promenis. Modularan je od pocetka. I naravno, podrzava ga kompanija koja zna sta treba za produkciju. Red Hat. Jezik izasao tek 2011, a mislim da vec ima vise korisnika nego Scala.

Ne kazem da Scala ne valja nista, nije lako napraviti takav monster od jezika tako da svaka cast zenevskom univerzitetu, ali jednostavno mislim da nikad nece da postane mnogo koriscena jer nikom ne treba novi C++ na JVM.

brano88
8.11.2016, 21:46
Ceylon je mnogo upotrebljiviji nego Scala veruj mi.

Nemam ja tebi sta da vjerujem kada ja radim sa Scalom u kompaniji gdje potraznja za Scala developerima raste. Naravno, Scala gubi smisao kada je upotrebis klasicne CRUD MVC aplikacije... jer pobogu, za takve stvari imamo Javu, C#... Ali dapace, ti si "probao" Scalu pa tako zakljucio da je taj programski jezik - "bloat". I naravno, zasto bih ja vjerovao svojim ocima, Zalandu, Twitteru, LinkedInu, Simensu... i gomili drugih nasih musterija kad imam tebe da me prosvijetlis. :)

Teva
8.11.2016, 22:10
@Mickie, mož' da pričaš ti šta oćeš, al C++ je i dalje institucija, kao što je i C. Rust, ovo ono, ne može da zameni C u životu u sistemskom programiranju, pa sve da čita misli :D

Neće niko da zameni C++/C bar još 10 godina sigurno a i više veruj mi. Isto važi i za Scalu


Trideset šest novih jezika i svi su next big thing, šio mi ga Đura..

Mickie
9.11.2016, 0:09
Stoji da C++ nece biti zamenjen u skorije vreme. Ne kazem ja da C++ ne valja i da ga treba po svaku cenu menjati, ja kazem da se meni ne svidja i mrzi me da ga ucim, ali ne toliko kao C#. Za C nisam pricao nista u ovoj temi, sacu da kazem da mi je to omiljeni jezik nedao bog da ga nesto zameni.

sto se tice scale, jednostavno mislim da je Ceylon bolji jezik za prakticne stvari i meni vise odgovara. Potraznja za Scalom raste evo 15 godina od kada se pojavila, i sve po 100% godisnje, prvo bio jedan, skala programer, pa dva pa cetri, i dalje raste ogromnom brzinom od 100%, fastest growing veruj mi. Salu na stranu ako si nasao posao da radis u sa Scalom, ja mogu samo da ti cestitam jer ti je upala sekira u med. Scala programera je malo pa su zato dobro placeni, zato samo napred.

Schnak3
9.11.2016, 0:56
Za sta se Scala koristi i koliko je to placen posao?

brano88
9.11.2016, 10:36
Za sta se Scala koristi i koliko je to placen posao?

Scalu mozes da koristis i za obicne web aplikacije recimo s Play! framework-om. Medjutim, licnog sam misljenja da je to korak unazad i krajnji "overkill". Pored toga, najvise se koristi uz Spark. Zatim za reaktivne aplikacije i asinhronu obradu podataka (Akka). Obicno, za goli backend. Iako imas i neke interesantne Scala tehnologije tipa ScalaJS koja se kompajlira u JavaScript.
Mane: Jako je tesko "upasti" u Scala projekte.
Koliko je dobro placena? Prosudi sam:

http://stackoverflow.com/research/developer-survey-2016#technology-top-paying-tech

Dreamfall
9.11.2016, 14:01
Posto vidim da se na ovu temu sjatilo puno strucnjaka,rekoh da pitam nesto sto me zanima vec neko vreme :dzavo:

Koji programski jezik bi po vasem misljenju bio najbolji za razvoj vestacke inteligencije (AI)?

Mislim na pravu vestacku inteligenciju, ne na onaj crap iz video igara ;) Moj ortak koji je C# programer kaze da su aktuelni programski jezici previse primitivni za takav zadatak. Da li se vi slazete?

doctor
9.11.2016, 16:40
Verovatno bi najbolje legao neki funkcionalni jezik ali u principu ne bi trebalo da te izbor jezika sputava, sve što treba je da prilagodiš algoritme i strukture podataka.

Teva
9.11.2016, 19:26
Posto vidim da se na ovu temu sjatilo puno strucnjaka,rekoh da pitam nesto sto me zanima vec neko vreme :dzavo:

Koji programski jezik bi po vasem misljenju bio najbolji za razvoj vestacke inteligencije (AI)?

Mislim na pravu vestacku inteligenciju, ne na onaj crap iz video igara ;) Moj ortak koji je C# programer kaze da su aktuelni programski jezici previse primitivni za takav zadatak. Da li se vi slazete?

Python se najviše koristi za takve stvari. Po mom mišljenju Octave/Matlab za prototajping i C++ za pravu realizaciju, jer ipak treba to da leti :D

doctor
10.11.2016, 1:23
Mislim na pravu vestacku inteligenciju, ne na onaj crap iz video igara ;)

Taj "crap iz video igara" nije nimalo naivan i jednostavan za implementirati, kreni od običnih pathfinding algoritama, neće ti biti lako. Ubaci u formulu predviđanje situacija, adaptaciju na promenu stanja sistema i eto ti žurke.

Ti verovatno misliš na neuronske mreže i trenutni progres koji se tu postiže ali imaj na umu da je takvom AI neophodan kvalitetan i ogroman trening i to i dalje nije ni blizu "prave veštačke inteligencije", vidiš i sam dokle smo došli. Neće "pravi AI" uskoro. Možda kroz 10-20 godina dobijemo neku osnovnu formu AI-ja koji se dobro snalazi sa "ljudskim" problemima ali trenutno nas koče dostupni resursi, treba mnogo više sirove snage hardvera za rešavanje problema AI-a.

water wizard
10.11.2016, 2:22
za 10-20 godina mi više nećemo da budemo najinteligentniji na planeti i razlika će samo da se povećava, ne sećam se gde sam pročitao ali otprilike ide ovako jednog dana će kompjuteri da budu pametni kao ljudi pa za 2 godine će biti duplo pametniji, pa za još 2 4x itd i na kraju će samo da ubrzaju proces umesto godine biće jedan, dan, sat, minut... svakom mobilnom su danas dostupni svi podaci preko interneta tj sve znanje ovoga sveta, što će reći da je tvoj mobilni već pametniji od tebe :D

Dreamfall
10.11.2016, 3:34
Taj "crap iz video igara" nije nimalo naivan i jednostavan za implementirati, kreni od običnih pathfinding algoritama, neće ti biti lako. Ubaci u formulu predviđanje situacija, adaptaciju na promenu stanja sistema i eto ti žurke.

Ti verovatno misliš na neuronske mreže i trenutni progres koji se tu postiže ali imaj na umu da je takvom AI neophodan kvalitetan i ogroman trening i to i dalje nije ni blizu "prave veštačke inteligencije", vidiš i sam dokle smo došli. Neće "pravi AI" uskoro. Možda kroz 10-20 godina dobijemo neku osnovnu formu AI-ja koji se dobro snalazi sa "ljudskim" problemima ali trenutno nas koče dostupni resursi, treba mnogo više sirove snage hardvera za rešavanje problema AI-a.

Znam da je i AI u igrama komplikovano napisati, pokusao sam (bezuspesno :kreza: ) da odradim neki prost AI u UnrealScript-u, kasnije i u C++ :kreza:

Hvala svima na odgovorima :alealeee:

zokocx
10.11.2016, 12:35
za 10-20 godina mi više nećemo da budemo najinteligentniji na planeti i razlika će samo da se povećava, ne sećam se gde sam pročitao ali otprilike ide ovako jednog dana će kompjuteri da budu pametni kao ljudi pa za 2 godine će biti duplo pametniji, pa za još 2 4x itd i na kraju će samo da ubrzaju proces umesto godine biće jedan, dan, sat, minut... svakom mobilnom su danas dostupni svi podaci preko interneta tj sve znanje ovoga sveta, što će reći da je tvoj mobilni već pametniji od tebe :D

Dostupno znanje != Inteligencija

Mickie
10.11.2016, 13:00
Tebi DreamFall treba machine learning, to koliko sam imao prilike davidm rade u R, Pythonu, i Javi, tim redom. Ja se nisam sa tim ozbiljno petljao, mali mi je spooky da ucim kompjuter da bude pametniji od mene. Mada verovatno nije tesko nauciti ga da bude pametniji od mene :rofl:

PS: Ko sto neko vec rece, nije toliko bitan jezik. Ali samo ako pises od nule, a to niko ne radi. U ova tri imas najvise biblioteka koje mozes da iskoristis.

Schnak3
6.12.2016, 1:33
Microsoft je portovao osnovu C# za Linux (sve osim GUI-a). Veoma lako se pokrece na Linux-u i zapravo radi.

https://www.microsoft.com/net/core#linuxubuntu

DiplomiraniDuduk
17.1.2017, 15:15
Živimo u vreme engleskog jezika – svidelo se kome ili ne.
Naročito u oblasti računarstva, ko god ne zna engleski – nema tu šta da traži.
Kao i uvek, nađe se još poneki fosil, poput mene (73 god.), koji ne zna engleski a hteo bi da nauči nešto iz te oblasti.
Nekada se koristio računarski jezik BASIC. Zahvaljujući uputstvima dobijenim uz (tadašnje) kompjutere savladao sam ga i koristio za svoje potrebe. (Napominjem, ne profesionalno!) Uputstva su bila toliko dobra i detaljna, da ih je čovek mogao pratiti i bez znanja jezika!
Da objasnim šta znači „za moje potrebe“. Pravio sam program(čić)e pomoću kojih su deca vežbala matematiku.
Izgledalo je to približno ovako: računar zada dva broja i traži zbir. Dete treba da ukuca zbir. Ako je odgovor tačan, prethodni zadatak se briše i izlazi novi. Ako je odgovor netačan, izlaze reči „nije tačno“ i isti zadatak se ponavlja. Nakon određenog broja tačnih odgovora, program se zaustavlja i ispisuje: „Sada si dovoljno uvežbao.“
Razume se bilo je i složenijih operacija a pravio sam i program(čić) za učenje engleskog.
Slične zadatke, gotove, nisam našao na internetu.
Nažalost, na savremenim računarima taj se jezik više ne može koristiti.
Zato sam odlučio da naučim savremeniji jezik koji se koristi sada. Izabrao sam PYTHON jer sam ocenio da je lak za učenje. Neko je već pomenuo: programiranje se uči iz knjiga. Tutorijali mogu biti samo podsetnici.
Istina je da je zaista lak za učenje!
Nažalost, meni i sličnima to ne znači mnogo. Knjiga na našem jeziku, namenjena početnicima, iako ima mnogo stranica i mnogo teksta, u suštini je veoma štura. Komande su više pomenute nego objašnjene.
Cela je knjiga zasnovana na igricama – one su primeri pojedinih programa. Pošto nemam nameru da programiram igrice, vrlo mršava pomoć.
Pokazalo se da kod izbora programskog jezika sama činjenica da li je jezik „lak“ ili „težak“ ne znači mnogo. Više znači koliko ima učeniku dostupne literature, sa jasnim objašnjenjima – naročito za početnike.
Prema tome, ko hoće da nauči nešto iz programiranja „za svoju dušu“, ne treba da pita koji je jezik lak ili težak. Treba da pita koji jezik ima dovoljno dostupne literature na onim (govornim) jezicima koje on zna.

U svetlu svega ovoga, postavljam pitanje:
koji programski jezik ima dovoljno literature za početnike na našem jeziku sa jasnim i detaljnim objašnjenjima?

galebns
18.1.2017, 0:36
Samo zelim da kazem, nadam se da cu i ja sa 73 godine biti ovako bistar i zeljan znanja kao vi. Duboko postovanje!
Sretno!

LoneWolf
18.1.2017, 1:21
U svetlu svega ovoga, postavljam pitanje:

koji programski jezik ima dovoljno literature za početnike na našem jeziku sa jasnim i detaljnim objašnjenjima?


Ja vam kao laik mogu predložiti Visual Basic Studio za učenje jezika Visual Basic: još uvijek se široko koristi a dovoljno je "lako savladiv" i vizuelno prijemčiv u smislu da se odmah vidi ono na čemu se radi (ima aktivan prozor finalnog izgleda programa, dio u kojem se kodira/programira i dio iz kojeg pozivate posebne buduće aktivne elemente (dugmad na koju se klika - buttone, "kutije sa tekstom" - textbox, i druge aktivne komponente koje se koriste u programima a pozivaju iz dinamičkih biblioteka - tzv. DLL

Sigurno će se javiti neko s više iskustva, ja sam malo učio sa interneta a malo prerađivao "tuđi" otvoreni kod koji su dijelili ljudi sa većim znanjem i željom da ga prenesu.

water wizard
18.1.2017, 2:45
literatura je malo zastarela jer dok se prevede na srpski pa dok se odštampa prođe par godina.. a nije baš ni jeftino. Bez poznavanja engleskog će to teško da ide jer je najlakše tražiti rešenje na internetu kada imate neke nedoumice zašto i kako, ovako možete samo da radite primere iz knjige eventualno da malo primenite to što ste naučili.

Picard
18.1.2017, 12:29
Samo zelim da kazem, nadam se da cu i ja sa 73 godine biti ovako bistar i zeljan znanja kao vi. Duboko postovanje!
Sretno!
Auuu, ja mislio da je čovek '73. godište, kad ono ...:eek:
Respect.

DiplomiraniDuduk
18.1.2017, 15:12
Samo zelim da kazem, nadam se da cu i ja sa 73 godine biti ovako bistar i zeljan znanja kao vi. Duboko postovanje!
Sretno!Verujem da ćeš biti i bolji! Granice starosti se neprekidno pomeraju. Kada tvoja generacija dođe u te godine više se neće ni smatrati starima. :)


Sigurno će se javiti neko s više iskustva, ja sam malo učio sa interneta a malo prerađivao "tuđi" otvoreni kod koji su dijelili ljudi sa većim znanjem i željom da ga prenesu.Budi ljubazan pa navedi literaturu koju si koristio. Da vidim mogu li da je nabavim.


Auuu, ja mislio da je čovek '73. godište, kad ono ...:eek:
Respect.Godište je 1943. :)
Nećemo cepidlačiti za "tričavih" 30 godina.:)

LoneWolf
18.1.2017, 17:40
Verujem da ćeš biti i bolji! Granice starosti se neprekidno pomeraju. Kada tvoja generacija dođe u te godine više se neće ni smatrati starima. :)





Budi ljubazan pa navedi literaturu koju si koristio. Da vidim mogu li da je nabavim



Ovdje imate dosta dobrih resursa:
http://tutoriali.org/

Koristio sam i sajt Planet Source Code, iako je na engleskom on sadrži veliku bazu gotovih ili polugotovih "programa" koji su zapravo otvoreni za dalju obradu (izvorni kod je otvoren i ljudi ga razmjenjuju otvoreno).

Takođe, imate i knjige na našem u izdanju Mikro knjige:
http://www.mikroknjiga.rs/store/prikaz.php?ref=86-7555-130-4

Možda je bolja preporuka da nađete "naše" tutorijale na Youtube-u pa da učite gledajući video, tako se ne izlažete troškovima jer pretpostavljam da je ionako teško živjeti od penzije. Ako pronađem PDF knjigu na našem jeziku poslaću vam.

analayzer
18.1.2017, 19:26
Imate i ovde par komada samo pogledajte skroz do kraja i drugu stranicu jer je malo "mešano" sa izdanjima u "pripremi". http://knjige.kombib.rs/oblasti-knjiga-165-1

Schnak3
7.2.2017, 23:08
Krenuo sam da ucim Python. Za sada mi je misljenje da je ovo veoma los programski jezik za pocetnike


for count in [1, 2, 3]:
print(count)
print(count)
print('Kraj.')Da pocnemo od toga sto telo petlje oznacava, \t odnosno tab karakter! Ova petlja daje izlaz


1
1
2
2
3
3
Kraj.Sa druge strane radio sam malo u ASP.NET Core. Odusevljen sam jer mozete u C# da napisete API koji radi na Linux serveru, ne morate da pisete u PHP ili node.js. Mnoge biblioteke nisu podrzane, ali moze da se nadje ponesto za .NET Core. Posto ovo nije potpuni .NET, odnosno C#, nisu sve funkcionalnosti podrzane, neke se malo drugacije zovu ali skoro sve radi. Podrska za thread-ove je odlicna.

voodoo_
8.2.2017, 0:01
U pajtonu je "telo" sve što je uvučeno istim brojem znakova. Ne mora tab, može i jedan, dva, tri spejsa, nije bitno.


for i in [1, 2, 3]:
for j in [1, 2, 3]:
print(i, j)


Ima to svoje prednosti, na primer nema divljanja sa izborom stilova uvlačenja (tabovi ili spejsovi) i pozicioniranja vitičastih zagrada. Sav pajton kod deluje manje-više isto, dok sličan C/C++ kod može biti napisan na najmanje tri načina.

A što se tiče početnika, njima je svejedno. Zapravo ovako u pajtonovskom minimalističkom stilu je mnogo čitljivije u odnosu na C/C++, a naročito u odnosu na Javu gde je 80% koda boilerplate a 20% radi nešto korisno. U pajtonu otkucaš prototip nekog algoritma očas posla, a u Javi izgubiš triput više vremena dok ispoštuješ sve konstrukte.

doctor
8.2.2017, 0:14
...a naročito u odnosu na Javu gde je 80% koda boilerplate a 20% radi nešto korisno...

Naježio sam se od same pomisli na ovo. So true. Trebalo mi je vremena da skontam da ja zapravo Javu i enterprise sektor ne mogu da smislim.

DiplomiraniDuduk
8.2.2017, 11:25
Sebe smatram početnikom iako sam nekada koristio BASIC. Osnovni mi je problem neznanje engleskog.

Mislim da Python nije teško pratiti, ako bi naredbe bile detaljno objašnjene.

Literatura na našem jeziku je suviše štura i ne opisuje naredbe u celosti. Daje samo neke primere konkretne primene.

Sada mi je problem što kada koristim recimo naredbe

import random
.....
a = random.randint(1, 100)

nakon uključenja zadaci počinju uvek istim brojem. Koju naredbu da zadam da bi slučajno izabrani broj uvek bio drugi. Video sam nešto vezano za vreme ali ne mogu da nađem gde je to.

voodoo_
8.2.2017, 11:56
Prethodno treba da se inicijalizuje random generator koristeći tzv. seme, koje može biti bilo koja vrednost i trebalo bi da bude svaki put drugačija vrednost (ako se ne navede, koristi se trenutno vreme na računaru).

random.seed()
a = random.randint(1, 100)

DiplomiraniDuduk
16.10.2018, 20:37
Uspeo sam da napravim jednostavan program za uvežbavanje sabiranja za osnovce - zahvaljujući i pomoći sa ovog foruma. :)
Izgleda nekako ovako:

import random
kont=0
zbir = 101
while zbir > 100 or zbir<1:
.....a = random.randint(1, 100)
.....b = random.randint(-100, 100)
.....zbir = a + b
.....if zbir > 100 or zbir<1:
.........continue
.....while kont<5:
.........print('Koliko je ',a, end=' ')
.........if b>0: print('+', end=' ')
.........print(b, '=', end=' ')
.........unos = input()
.........unos = int(unos)
.........if unos == zbir:
.............print('Tačno\n')
.............kont=kont+1
.............if kont>5:print('\a')
.............zbir = 101
.............break

.........else:
.............print('Netačno')
.............continue

Problem je što kada se završi program prosto nestaje sa ekrana.
Hteo bih da nakon završetka program obriše zadatke i ispiše recimo: "Dobro si uradio." i da to stoji sve dok se ne ukuca određena reč, recimo "kraj", pa da se tek onda izgubi sa ekrana.
Pošto nisam uspeo da uvlačim tekst na drugi način stavljao sam tačkice. Njih u programu, naravno, nema. :)
Unapred hvala na svakom odgovoru! :)

Patrick
30.10.2018, 1:02
Naježio sam se od same pomisli na ovo. So true. Trebalo mi je vremena da skontam da ja zapravo Javu i enterprise sektor ne mogu da smislim.


Jel može neko da mi objasni to oko boilerplate-a u Javi (može i neki link ka primeru) i kako to onda može drugačije da bude? Nije mi jasno, a ne sad da ovo pitam što ne verujem ili da branim Javu. Znači pitam kao neko ko ima manje iskustva od vas. Da li to sve može može toliko kraće da bude napisano, ako već manje od pola koda ne radi nešto korisno? Zašto onda tako nije napravljeno?
I šta je "enterprise sektor"? Java EE?
Za potrebe objašnjavanja: znam C, C++, Javu, C#, a Python nisam učio. (Planiram kad imam vremena obavezno.)

voodoo_
30.10.2018, 11:34
Boilerplate postaje problem s porastom koda i nije tako očigledan u kratkim programima, ali npr. gledaj sledeći C++ konstruktor:

Objekat(int a, int b = 0, int c = 0) {
this->A = a;
this->B = b;
this->C = c;
}

Javin ekvivalent bi bila četiri konstruktora:

Objekat(int a) {
this.A = a;
this.B = 0;
this.C = 0;
}

Objekat(int a, int b) {
this.A = a;
this.B = b;
this.C = 0;
}

Objekat(int a, int c) {
this.A = a;
this.B = 0;
this.C = c;
}

Objekat(int a, int b, int c) {
this.A = a;
this.B = b;
this.C = c;
}

Suštinski, kad god jezik ili kompajler traže da im sve "nacrtaš" umesto da neke stvari sami prokljuve, boilerplate kod će rasti.

E sad, Java je neke stvari rešavala u novijim verzijama (npr. u Javi 8 možeš da uz argument zakačiš @NotNull anotaciju čime se forsira da argument ne sme da bude null, pa ako imaš gomilu metoda koje ne smeju da rade sa null vrednostima, na početku njihovih tela izostavljaš zamorne "if (vrednost == null)" pitalice).

Drugi primer za rešavanje boilerplate koda je takozvani Builder pattern, gde metode nekog objekta vraćaju referencu na taj isti objekat, pa možeš da napraviš lanac poziva tipa:

Objekat o = Objekat.Builder.setA(5).setC(20).setD(15).build();

umesto da implementiraš mnogo verzija konstruktora, ili da radiš pešački nakon kreiranja objekta čime rizikuješ da programer zaboravi da pozove neki setter i ostavi objekat nepotpuno inicijalizovanim

Objekat o = new Objekat();
o.setA(5);
o.setC(20);
o.setD(15);

Ima gomila boljih primera na internetu, guglaj "java how to avoid boilerplate"

Patrick
30.10.2018, 22:59
Hvala. Super su primeri, shvatio sam.

Čitaću još o ovome, sad vidim u kom smeru da guglam.


Samo da proverim:

Treći Java konstruktor je višak (greškom si ga napisao) ili ne? U C++ primeru bi konstruktor koj prihvata dva integera inicijalizovao a i b. A i Java bi prijavila grešku jer ima dva različita (int, int) konstruktora? Ili ja grešim? :kreza:

voodoo_
31.10.2018, 9:59
U pravu si, kucao sam na poslu na brzinu :kreza:

Dreamfall
6.11.2018, 14:29
Imam jedno pitanje,a vidim ova tema je najaktivnija u ovom podforumu pa rekoh da pitam ovde.

Elem,uhvatila me neka paranoja oko lozinki i keylogger-a pa sam ispisao python skripte koje koriste Selenium WebDriver(chrome webdriver) za automatski login na sajtove.Skripte se nalaze u zakljucanom folderu i interesuje me koliko je to bezbednije od kuckanja ili browser-ovog pamcenja sifri? :confused:

primer skripte za sk forum



from selenium import webdriver
from selenium.webdriver.common.keys import Keys
import os

dir = os.path.dirname(__file__)
driver_loc = dir + "/chromedriver.exe"
driver = webdriver.Chrome(driver_loc)

driver.get("https://www.sk.rs/forum/")
driver.maximize_window()
username = driver.find_element_by_id('navbar_username')
username.send_keys("#korisnicko ime")
username.send_keys(Keys.TAB)
password = driver.find_element_by_id('navbar_password')
password.send_keys("#lozinka korisnika")
password.send_keys(Keys.ENTER)
driver.implicitly_wait(30)
driver.find_element_by_xpath('//*[@id="f51"]/div[1]/a').click()