ugrás a tartalomhoz

Iskola

Pallosi Péter · 2011. Dec. 5. (H), 15.39
Üdvözletem,én beadtam egy főiskolába a jelentkezésem de most halasztok 1évet mert nem tudok semmit,(webprogramozói szakra)
php-ről már hallottam de nem nagyon ismerem mindenki azt mondja hogy a php-nál a biztonság a fontos,ez mennyire igaz és mit értenek az alatt hogy biztonság hogy lehet egy kódot biztonságossá tenni?
2.Körülbelül mennyire nehéz ez a webprogramozás tapasztalatokat kérnék elsősorba!
 
1

1, a biztonság annyira

Hidvégi Gábor · 2011. Dec. 5. (H), 15.58
1, a biztonság annyira fontos, amilyen érzékeny adatokkal dolgozol (általában nagyon); a biztonságossá tétel azt jelenti, hogy mindenki csak ahhoz férhessen hozzá, amihez jogosultsága van
2, nem nehéz, de kell pár év tapasztalatszerzés, mire belejössz
2

Miért?

TeeCee · 2011. Dec. 5. (H), 16.17
Miért halasztasz? Nem azért adtad oda a jelentkezésed, mert ott megtanítanak rá? Nem tanítanak jól?

Szerintem a PHP megtanulható lazán - továbbmegyek: bármelyik nyelv megtanulható könnyen - ha gyakorolsz...

A PHP-t én könnyűnek tartom a többihez képest (javascript, pascal, delphi, c/c++). Sokszor ezzel oldok meg apróbb problémákat, könnyen és gyorsan lehet vele szinte bármit megoldani, mert gyárilag egy csomó mindent tud a kiterjesztések által. (Képszerkesztéstől kezdve a PDF-generálásig)
3

Jó ötletnek tünt!

Pallosi Péter · 2011. Dec. 5. (H), 16.37
Hát igen most már rá jöttem,majd szeptembertől kezdek addig is beszereztem egy-két könyvet oktató anyagot!
4

Halasztani nem jó,

Pepita · 2011. Dec. 6. (K), 02.34
de a programnyelvek - szerintem - nemannyira könnyen tanulhatók, főleg ha rossz sorrendben tanulják őket.
Előbb célszerű "számítógépül" tanulni, aztán vmi proc.közeli nyelven (leginkább assembly), jöhet egy magasabb szintű OOP, de még mindig egy szál helyi gépre vonatkoztatva, aztán kis (helyi) hálózatos alkalmazás, utána web. Itt pedig a sorrend: HTML, HTML, HTML, CSS, js, php/ajax/akármi_szerveroldal. Ha jó sorrendet tartasz, majdnem mindegyik nyelv "könnyű" lesz.
(Megj.: nekem pont a delphi/objectpascal a legkönnyebb...)
5

Sorrend

MadBence · 2011. Dec. 6. (K), 02.57
Én elsőre PHP-JS vonalon indultam el, azóta már túl vagyok a C, C++, Java nyelveken, és szerintem is az alacsony szintű nyelvekkel érdemes kezdeni, ha érteni is szeretnéd, hogy hogyan fog a programod futni. Hiába könnyű a PHP, tapasztalataim szerint túl sok benne a magic, azaz szegény programozó leírja ezt meg ezt, mert azt mondták neki, hogy az márpedig úgy működik, és kész. Ellenben pl C-ben igenis érteni kell, hogy mi az a pointer, satöbbi.
(azért az assembly-vel vitatkoznék, hogy mennyire jó dolog. nyilván azzal lehet megérteni csak, hogy mit is csinál a processzor valójában, de most egy webprogramozónak bőven elég, ha tudja, hogy a PHP alatt ott a C, az hogyan működik)
6

(azért az assembly-vel vitatkoznék...

Pepita · 2011. Dec. 6. (K), 04.33
Lehet, hogy neked van igazad és én vagyok túl "öreg"...
Mégis azt gondolom, hogy a "legjuniorabb" fejlesztőnek is tudnia kell, hogy műxik egy sima asztali PC. Nem annyira hardver, legalább szoftverszinten. Épp elég baj van abból, hogy a magyar Júzer még a windows súgót sem tudja, hogy létezik.
Az oprendszerekről nem is beszéltem, de ez úgyis tantárgy lesz neki főiskolán/egyetemen.
13

Assembly

MadBence · 2011. Dec. 6. (K), 14.49
Jó dolog tudni, hogy van (hozzáteszem, én maximum valami pszeudoassembly nyelven tudnék assembly programot írni), de az egyszeri ember ha megírja a C kódot, nem hiszem, hogy nekiállna pl kézzel kioptimalizálni a kódot (vagy egyáltalán megnézni, hogy mire is fordult le). Bőven elég tudnia, ha tudja, hogy a fordító ott mindenféle okosságokat csinál, és valamit kiköp a végén.

Na, csak azt akarom mondani, hogy (szerintem) nem kell assebly-mágusnak lennie az embernek ahhoz, hogy jó kódot tudjon írni.
7

Középiskola...

H.Z. v2 · 2011. Dec. 6. (K), 08.32
Én még egy Hámán Katónak nevezett suliban kezdtem tanulni.
(hát nem mostanában volt... :-((( )
Már akkor is assembly-vel indítottak és el nem tudom mondani, mennyire hálás lehettem az ötlet kiagyalójának.
(jó, az R20-as assembly "valamivel" egyszerűbb volt, mint a mostani prociké :-) )
Mikor architektúrát váltottam és elkezdtem PC-vel foglalkozni, még tartott az ifjonti lelkesedés és valamennyire megismertem a 8086-os PC-k belsejét is. A köv. váltásnál (VAX-Alpha vonulat) már kimaradt. Elég gázos volt, így utólag visszagondolva. Pedig akkor már nem programoztam.
Szóval +1 pont az assembly mellett.
9

Annyit még hozzátennék, hogy

Hidvégi Gábor · 2011. Dec. 6. (K), 11.23
Annyit még hozzátennék, hogy semmiképp sem javasolnám programozásban a manapság népszerű keretrendszerekkel való kezdést, mert azok is rengeteg folyamatot elrejtenek a felhasználó elől, ami megnehezíti a megértést.

Más: mit tudnál ajánlani C/C++ úton való elinduláshoz? Valami jó tutorial, akármi?
10

K&R könyv

Poetro · 2011. Dec. 6. (K), 13.08
A Brian Kernighan és Dennis Ritchie (RIP) féle könyv szerintem nagyon jó, ráadásul egy érdekes szemlélettel vezeti be a nyelvet. Mindenképpen kötelező olvasmány szerintem, mert egy esetleg érdekesebb megközelítést nyújt a problémákhoz, és azt, hogy miért is működnek a dolgok úgy, ahogy.
11

Köszönöm, meg fogom nézni.

Hidvégi Gábor · 2011. Dec. 6. (K), 13.38
Köszönöm, meg fogom nézni. Nagyon érdekel, hogy mennyivel gyorsabb kódot lehet készíteni C-ben, mint PHP-val, és ez mennyivel több munkával jár.
12

Sokkal

Poetro · 2011. Dec. 6. (K), 14.20
Sokkal (2-90-szer, de még a medián is 44-szeres) gyorsabb kódot lehet írni C alatt, mint PHP alatt (még JavaScript is gyorsabb, mint a PHP). És természetesen meg kell ismerni egy halom másik függvénytárat, mivel maga a C nyelv nem túl sok eszközt tartalmaz, azokat kívülről kell használni (libpng, libjpeg stb.)
14

Miért?

MadBence · 2011. Dec. 6. (K), 14.54
Valaki nem tudja véletlenül, hogy miért is ilyen lassú szegény? A (böngészők miatt kialakult) versenyhelyzet tényleg ennyire ösztönzi a JS-fejlesztőket, hogy gyorsabb és gyorsabb motort írjanak? (Tehát a PHP is lehetne sokkal gyorsabb, csak el van kényelmesedve, mert nincs konkurencia?)
15

Szerintem belejátszhat az is

Hidvégi Gábor · 2011. Dec. 6. (K), 15.33
Szerintem belejátszhat az is a lassúságba, hogy a változóknak nincs típusa, ezért jóval több ellenőrzés és konverzió kell a kódba. Meg persze a konkurencia hiánya is, nyilvánvalóan.

Szerintetek mit ír ki a következő kódrészlet?
<?php
  print 0 == 'nemnulla' ? 'igaz' : 'hamis';
?>
17

false?

H.Z. v2 · 2011. Dec. 6. (K), 15.53
false?
20

Az túl triviális lenne : )

Hidvégi Gábor · 2011. Dec. 6. (K), 16.45
Az túl triviális lenne : ) Mindenesetre érdekes.
21

Az a poén, hogy számomra az

H.Z. v2 · 2011. Dec. 6. (K), 16.58
Az a poén, hogy számomra az tűnt triviálisnak, amit poetro írt, ezért tippeltem rá, hogy beugratós kérdés. ;-)
18

Igaz

Poetro · 2011. Dec. 6. (K), 15.55
Azt írja, ki, hogy igaz, ezzel szemben a
<?php
  print 0 === 'nemnulla' ? 'igaz' : 'hamis';
?>
pedig azt, hogy hamis. Ezért van például a JavaScript-ben jó ideje az ajánlás, hogy amennyiben nem szükséges, ne használjuk a == operátort, helyette === az ajánlott. És természetesen JavaScript-ben is kb. annyira van típus egy változónak mint PHP-ban.
16

Verseny

Poetro · 2011. Dec. 6. (K), 15.45
Ugye a böngészők közötti versenyben az is a jó, hogy született 5 különböző JavaScript motor: Fx SpiderMonkey-TraceMonkey-JägerMonkey, Chrome V8, IE Chakra, Opera Carakan, Safari SquirrelFish, amik mind különböző alapokon működnek, de ugyanannak a specifikációnak felelnek meg. Ezzel szemben a PHP-hoz egyetlen ténylegesen működő motor van (Zend Engine), a többi részben eltér a "specifikáció"-tól. Ezek a Project Zero, a HipHop, a Quercus/Resin illetve a Phalanger. Ezek más VM-ekre illetve más nyelvekre fordítják le a PHP kódot, ezért lehetnek vele problémák, főleg ha valamilyen modult, vagy újabb szolgáltatást szeretnénk igénybe venni.

Ráadásul a PHP egy igazán "nagy" rendszer a JavaScripttel szemben, amiben nem sok minden van (a DOM ugye a böngésző része, nem a JavaScript-é). Szóval míg a JavaScript-ben van beépítve kb. 1 tucat objektum (Array, Boolean, Date, Function, JSON, Math, Number, Object, RegExp, String, meg pár hiba típus), és ezeknek pár tucat metódusa, addig a PHP jóval szerteágazóbb. Ezért is nehéz hozzá egy jó VM-et csinálni, ami lefedi az összes szolgáltatást. Ha megnézed például a V8 forrását, az mindössze 14Mb, ugyanakkor az 5.3.6-os PHP 152Mb!
22

Sok a "feljebbvaló"

Pepita · 2011. Dec. 7. (Sze), 20.11
Lassú php:
Gép (proci, RAM, stb.)
Van egy op.rendszer.
Alatta egy szerver (pl. apache).
Ezalatt egy php értelmező/fordító (interpreter!).
Ezalatt a forráskód.

Példa egy assembly-re:
Gép.
Op.r. (akár dos).
Progi, ami közvetlenül végrehajtható utasításokból áll.

Ezért lassú a php.
24

A meglepődésem leginkább a

MadBence · 2011. Dec. 7. (Sze), 23.34
A meglepődésem leginkább a PHP-JS sebességkülönbsége miatt van. Nyilván nem vitatom azt, hogy egy C gyorsabb, mint bármilyen interpreteres nyelv :-)

Ellenben ha futtatok egy php kódot, és egy javascriptet (apache, böngésző nélkül, parancssorból), akkor is kb 10x gyorsabb lesz az utóbbi. Mindkettő interpreteres nyelv.

(Amúgy pl a C is ugyanúgy közvetlenül végrehajtható utasításokból állnak, tehát nem emiatt gyors az assembly, hanem mert kézzel ki lehet optimalizálni)
25

Ebben biztos vagy?

pp · 2011. Dec. 8. (Cs), 10.33
„Amúgy pl a C is ugyanúgy közvetlenül végrehajtható utasításokból állnak, tehát nem emiatt gyors az assembly, hanem mert kézzel ki lehet optimalizálni”

Én azért megnézném, hogy mikor írsz kézzel kioptimalizált kódot assemblyben ami jobb egy megfelelően paraméterezett C fordítónál, amikor egy C fordító sok száz emberévnyi tapasztalat formájában tartalmaz rommáoptimalizát kódokat.

Nem beszélve arról, hogy az összes processzorra meg kéne írnod az assembly-t, míg a C-t csak újra kell forgatnod.

Ennek a C/asm vitának akkor volt értelme amikor nem voltak normális C fordítók és nem jöttek ki évente új processzorok.

pp
26

Rendben, ez sántít tényleg, a

MadBence · 2011. Dec. 8. (Cs), 11.26
Rendben, ez sántít tényleg, a gcc az -O3 kapcsolóval tényleg olyanokat művel, hogy inkább meg sem próbálom megérteni. Meg nyilván amióta out-of-order végrehajtás is van, azóta már megint egy dologgal kevesebbel kell foglalkozni. A nem túl sok assembly ismeretem alapján csak annyit tudok mondani, hogy pl ha C-ben használod a register módosítót, az nem biztos, hogy fordítás után regiszter lesz. (és akkor most így kb ki is merültek az ötletek, ami az assembly optimalizálási lehetőségeket illeti :) )
Tényleg, akkor most hogy is áll az assembly-vs-c? :)
27

Pontosítsunk

Pepita · 2011. Dec. 8. (Cs), 17.24
1. Assembly-ben nem utólag optimalizálunk, hanem eleve - képességeinkhez mérten - optimális kódot írunk. Összehasonlításnak az iskolai oktatók azt szokták tenni, hogy pl. írjunk programot, ami elszámol 3-asával 0-10002-ig, ezt nézzük meg a különböző nyelveken, mekkora programkódot ill. futásidőt eredményez. (A kettő ált. egyenes arányban van.) Nem szidom a C-t (Isten ments), de mint a magasabb szintű nyelvek általában, ez is csak bizonyos keretek között tud optimalizálni. Hozzáteszem: ezek a keretek ma elegendőek, arról az előnyről nem is beszélve, hogy jóval szélesebb körben alkalmazható a kész program.

2. Másik procira másik progi. Hát azt csak akkor, amikor már rendszert fejlesztesz, egyébként ha a "spéci" utasításokra van szükséged, már rég egy magasabb szintű nyelvet választasz.

3. Egy magasabb szintű (OOP) nyelv mindig rendelkezik egy hátránnyal "alacsonyabb" társaival szemben: meghatározott keretek közti, "optimalizált" memóriamodellel működik. Sok nyelvben megtalálható a mutatóra-mutató-mutatójának-mutatója, ami végén (akár 15 mutató után) van csak a hasznos adat. Pl. Assemblyben meg ott, ahova te raktad.

4. Én elsősorban "csak" tanulás miatt javallom Assemblyt, a procik (alap)működését így lehet (kell) jól megérteni. Itt is hagyatkoznék a puszta real módra.

Üdv. Pepita
19

Ezekkel az

pp · 2011. Dec. 6. (K), 16.37
Ezekkel az összehasonlításokkal, mindig az a probléma, hogy a következtetést nem a megfelelő irányba szokták használni.

Az, hogy C-ben gyorsabb kódot lehet írni, nem jelenti azt, hogy ha C-ben írsz valamit az gyorsabb lesz.

Érdemes lenne mellétenni az implementálás sebességét is, mert hiába lesz gyorsabb egy kód C-ben, ha azalatt az 1 év alatt amíg összerakják az alkalmazást már nem is lesz rá szükség. :)

pp
28

Érdemes lenne mellétenni az

Hidvégi Gábor · 2011. Dec. 8. (Cs), 17.39
Érdemes lenne mellétenni az implementálás sebességét is
Gondolom, hogy ez csak a rendelkezésre álló függvénykönyvtár kérdése.
23

Érdekes

Pepita · 2011. Dec. 7. (Sze), 20.15
Ebben a listában már nincs is Assembly.
Kár, igen vinné a pálmát!
8

Ízlések és pofonok

tisch.david · 2011. Dec. 6. (K), 10.33
Kedves Péter!

Abszolút átérzem a bizonytalanságodat; én is ugyanezekkel küzdöttem, amikor az ELTE programtervező matematikus szakára jelentkeztem. Így visszatekintve azt mondhatom, hogy a programozás valóban könnyebben ment azoknak, akik már az egyetem előtt értettek hozzá, de sok gyakorlással és szorgalommal menet közben behozható volt ez a hátrány.

A PHP programozás szerintem viszonylag könnyű, de a szép programozási stílus elsajátításához sok önfegyelem és jó tanár/olvasmányok szükségesek. Minden területnek meg van a maga Achilles sarka, a webprogramozásnak ez a biztonság. A jó tanár/olvasmányok itt is segítenek.

A programozási nyelvek is olyanok, mint az élő nyelvek; egy nyelvcsaládon belül minél több nyelvet ismersz, annál könnyebb lesz egy újabbat elsajátítani. A C-szerű nyelvek ismerete segíti például a PHP tanulását, ezzel együtt én mondjuk PHP-ban szeretek programozni, C-ben meg nem. Ismerj meg sok nyelvet, és döntsd el, hogy Neked melyik tetszik, melyik áll közel a stílusodhoz, és mélyedj el abban! A többit majd hozza az élet. ;)

Üdv:

Dávid