Kuidas alustada PHP-s programmeerimist nullist (ise). Miks paljud inimesed läbi kukuvad? Isiklik kogemus ... katse ja eksitus

Head päeva!

Tõenäoliselt tahaks igaüks meist, olles vaadanud filme häkkeritest ja lahedatest programmeerijatest, selles küsimuses vähemalt natuke aru saada. Ja ma märgin, et ei, ei ja nad esitavad mulle sarnaseid küsimusi (kuigi ma oskan programmeerida, pole ma kaugeltki professionaalne programmeerija. Ja IT-sfäärist kaugel olevatele inimestele ei saa seda üldse seletada ... ) .

Üldiselt on nüüd Internetis sellel teemal üsna palju erinevaid koolituskursusi, raamatuid ja artikleid. Kui ma aga proovisin (neilt keelt õppida) koodi esimestelt ridadelt "tere maailm!" PHP-s liikuda millegi tõsisema ja elus rakendatava juurde - miski ei töötanud! Nagu oleks nendes raamatutes mingi tühimik või tühjus: pole selge, kuidas minna mõnest funktsioonist juba põhitõdedest ja teadmistest millegi enama juurde ...

Aja jooksul õnnestus mul välja selgitada PHP oma lihtsa CMS-i kirjutamise tasemeni (CMS on saidi mootor)  ja üks artikkel aitas mind selles (kahjuks seda ressurssi võrgus enam pole, aga ma olen väga tänulik sellele autorile selle "löögi" eest soovitud suunas).

Selle artikli ja oma visiooni põhjal visandan selle märkuse neile, kes tahavad tõesti PHP-s programmeerima hakata, kuid neil ei õnnestu. Üldiselt on mul selle arvamuse kohta oma väga radikaalne arvamus, nii et siin ei leia te raamatute ja kursuste kohta nõuandeid - piisab vaid sellest, mida oma kogemuste põhjal täpselt teha ...

*

Kust alustada programmeerimist (PHP-s)

1. SAMM - hobi, soov mõne probleemi lahendamiseks

Võib-olla on kõige tähtsam mõne ülesandega "süttida" (ilma selleta on väga raske midagi uut uurida). Näiteks vajasin korraga väga (VÄGA!), Et PHP-skript saaks lugeda teatud tekstifaili ja lõigata sellest minu malli järgi mõned tükid. Ühelt poolt - kõik näib olevat lihtne, teiselt poolt - inimesele, kes pole kunagi isegi 2 koodirida iseseisvalt kirjutanud, on ülesanne äärmiselt keeruline!

Pidin selle esimese skripti ostma ... Kuid hiljem vajasin veel ühte sarnast (ja siis teist). Ja siin, siin, mind vaimustas PHP ... Muide, mõne õhtu pärast suutsin ise selliseid skripte kirjutada, olles tund või kaks kannatanud ...

Noh, üldiselt tahan üldiselt märkida, et kui programmeerimise vastu huvi pole, siis õppe kiiret alustamist reeglina lõpetatakse kiiresti. Ja ma kardan, et ükski kursus ja õpetaja seda ei paranda.

Kuni te ise koodi sisestama ei hakka ja näete, mida kuvatakse, mis on teie muutujates ja kuidas andmed neis mõne funktsiooni kasutamisel muutuvad, ei saa te programmeerimist alustada (see on puhtalt minu arvamus!). Ükski "nutikas" raamat ei aita sind.

Unistada on hea!

Muide, paljudel algajatel (ka mul endal üks kord) on üks suur viga: nad kulutavad palju aega ettevalmistamiseks, erinevate kursuste ja videote allalaadimiseks. Siis nad vaatavad seda kõike, uurivad seda, kirjutavad vihikutesse jne. Kuid nad ei tee kõige tähtsamat - nad ei hakka ise koodi sisestama ja jälgivad, kuidas see täidetakse ...

Okei, nüüd praktikale lähemal (lõpetan filosoofia).

2. SAMM - tööriistade Denwer, Open Server, Notepad ++, Total Commander installimine. Alusta!

Esimeste skriptide ja eksperimentide kirjutamiseks ei pea te hostimist ostma. Palju parem on kasutada tasuta kohalikku veebiserverit: Denwer või Open Server (mina soovitan isiklikult Open Serverit ja seal ma näitan teile, kuidas ja mida teha) . Muide, kui valite  Open Serveri , siis piisab alustamiseks minimaalsest versioonist (märkus: neid on saidil lihtsalt mitu, erinevate teekidega).

Koodi (teksti) otsevalimiseks on mugav kasutada spetsiaalset. süntaksi esiletõstmisega märkmik. Mulle on Notepad ++ muljet selles osas. Lihtne, kerge, tasuta ja mugav märkmik (oluliselt rohkem funktsioone võrreldes sisseehitatud Windowsi sülearvutiga).

Tere, Maailm! (Märkmik ++)

Noh, ma soovitaksin kasutada ka mingisugust komandöri. Exploreris on väga ebamugav navigeerida erinevates kaustades ja avada mitu faili korraga (eksite ära ja unustate, mis on kus). Ma soovitaksin valida Total Commanderi (väga mugav ja funktsiooniderikas komandör).

Esimene stsenaarium: ettevalmistus!

1) Pärast OpenServeri allalaadimist ja installimist peaks kettal valitud kohas olema samanimeline kaust - minu puhul on see "e: \ openserver5.2 \" . See kaust peaks sisaldama kataloogi "domains" - selles peate looma kausta oma saidi nimega (näiteks "my-site.ru" - näide allpool).

Jäta selle kausta nimi meelde, skriptide kirjutamisel tuleb see kaust sisestada brauseri aadressiribale.

OpenServer - näide "saidi" loomisest (kohalik)

2) Järgmisena looge kataloogis "my-site.ru" fail "index.php" ja sisestage sinna järgmised read:

kaja 'Tere maailm!' ;

Tere, Maailm! Esimene "programm"!

Salvestage fail.

Märkus: kui keegi töötab php-ga esimest korda, pöörake tähelepanu käsule 'echo' - see tähendab, et kõik, mis on pärast seda, kuvatakse jutumärkides.

3) Seejärel käivitage OpenServer (või taaskäivitage see, kui teil see töötab). Sulgege ja avage uuesti ka oma brauserid. See on vajalik selleks, et OpenServer saaks teie Windowsis mõnda faili muuta: nii et meie loodud sait "my-site.ru" avaneb teie brauseris.

OpenServer - käivitab kohaliku veebiserveri

Üldiselt, kui OpenServer käivitati edukalt, peaks teie salves põlema roheline märkeruut (kui see on punane või kollane, proovige see uuesti taaskäivitada. Mõnel juhul peate selle käivitama administraatorina. Igal juhul peab punane märkeruut ei tööta enam võimaldab ...) .

OpenServer - töötab ja töötab

4) Tegelikult jääb brauseri aadressiribale tippida meie " minu-site.ru " (jutumärkideta) ja see näitab loodud index.php- faili tervitust (vt allpool olevat ekraani).

Töötab!

5) Pange tähele, et kui esimeses näites kuvasime kohe tekstirea, siis järgmises näites muutsin koodi veidi. Reeglina on skriptide väljatöötamisel tegemist muutujatega, mis võivad sisaldada erinevaid andmeid: stringe, numbreid jne.

Loome ühe muutuja ("$ p") ja paneme oma teksti sellesse. Vaadake näidet allpool:

$ p = 'Tere maailm!';

kaja $ p;

Esimene muutuja

Nagu allpool näidatud, on tulemus sama! Need. brauser prindib ka meie stringi. Kood on siiski veidi erinev: nüüd sisaldab tekst muutujat "$ p", mille me väljastame ...

Muutuja andmete kuvamine

6) Teine illustreeriv näide allpool. Seekord lõin kaks muutujat "$ p" ja "$ p2" ning ühendasin need stringid ja panin need muutujasse "$ p3". Pange tähele, et jooned on ühendatud lihtsa punktiga.

$ p = 'Tere maailm!';

$ p2 = 'See olen mina!';

$ p3 = $ p. $ p2;

kaja $ p3;

Teine näide (kaks muutujat)

Tulemus on ennustatav ...

Töötab ...

Pange tähele, et kiiremaks mõistmiseks ja valdamiseks on soovitatav kõikides näidetes käsitsi sõita.

3. SAMM - ülesande osadeks jaotamine. Iga sammu silumine

Võib-olla on see programmeerimise alustamiseks kõige olulisem samm, selle nimel alustasin seda artiklit ...

Ükskõik kui keeruline on teie ülesanne, mida soovite lahendada, võib selle tingimuslikult jagada kolmeks etapiks:

  1. algandmete hankimine (andmesisestus);
  2. andmete teisendamine;
  3. andmete väljund: ekraanile või lihtsalt muutujale. (vt allpool olevat ekraanipilti: jagasin artikli ühe näite tinglikult nendeks kolmeks sammuks, nii et oleks selge, millega tegemist)

Millisteks etappideks saab skripti jagada

Reeglina on andmete hankimise ja teisendamise etapid kõige raskemad  . Ja paljudel algajatel pole aimugi, kuidas 100-realine kood kirjutada, ilma et nad end segadusse ajaksid või eksiksid.

Tegelikult näete iga koodirea järel, mis teil muutujates on. Ja järk-järgult, lisades korraga ühe koodirea ja vaadates, kuidas muutujad muutuvad, viige need soovitud vormi (ja lahendage probleem!). Selleks on PHP-l suurepärased funktsioonid "var_dump ($ p);" ja "print_r ($ p);".

Ja algajatele soovitan neid kogu aeg kasutada! Jah, just nii on programmeerimine mõnikord nii igav asi ...

Vaatlen allpool toodud näidet.

Kujutage lihtsalt ette, et te ei tea, mis teil on muutuja "$ p3" (allpool toodud näites näete koodis olevat rida ja teoreetiliselt peaks see seal olema. Kuid keerukamas reaalses probleemid - seda ei juhtu alati, muutuja võib nõutava rea ​​asemel sisaldada täielikku segadust ...).

Niisiis, muutuja muutuja nägemiseks sisestage selle järele lihtsalt käsk "var_dump ($ p3);" (ja salvestage fail).

Var_dump näide

Selle tulemusena näete brauseris (lehe värskendamisel), et kuvatakse "string (31) ....". Need.  var_dump ütles teile andmetüübi (string - string) ja selle stringi pikkuse (31 tähemärki). See on pikkade programmide (skriptide) silumisel väga kasulik!

string (31)

Näiteks määrasin enne väärtust "var_dump ($ p3);" väärtuseks $ p3 väärtuseks 1. Tulemus on erinev (vt allpool).

Kui lisate muutujale numbri

Keskmine (1)

Näide: tekstifaili lugemine ja esimese lause lõikamine

Kõike, mida ma ülalpool kirjutasin, selgitatakse hästi näitega. Näitena võtsin lihtsa ülesande: avage tekstifail, leidke selles esimene punkt (st lause lõpp) ja lõigake kõik faili algusest kuni selle punktini.

Ühelt poolt võib see tunduda keeruline neile, kes pole kunagi PHP-d teinud. Teisalt, jagades ülesande komponentideks ja kasutades silumist (var_dump), saate kirjutada veelgi keerulisemaid asju ...

Seega on loogiline jagada see ülesanne mitmeks etapiks:

  1. loe tekstifail muutujaks;
  2. leida tekstifailist punkt (st teada saada selle seerianumber, näiteks 35. märk);
  3. lõika ära nöörijupp: esimesest tähemärgist punktini (selle järjekorranumbrini).
  4. tulemuse kuvamine ekraanil.

1) Faili lugemine stringiks

Tekstifailina - võtsin selle artikli teksti ja panin selle faili "text.txt", mille kopeerisin kausta "e: \ openserver5.2 \ domains \ my-site.ru \" (see on , pange see kõrvale "index.php" -ga).

Järgmisena peate leidma esimese komponendi lahendamiseks funktsiooni: faili muutujaks lugemine. Siin aitab "Google" palju: selline päring nagu "PHP faili lugemine" teeb oma töö ja aitab leida funktsiooni  file_get_contents () - seda me kasutamegi!

Muide, selles osas soovitan kataloogi //php.net (suurepärane abimees!).

$ p = file_get_contents ('text.txt'); // loe fail muutujaks

var_dump ($ p);

Lugesime faili muutujaks

Selle tulemusena näeme, kui kõik on õigesti sisestatud, muutuja "$ p" sisu: see sisaldab pikka teksti (rida). Kui see teie puhul nii pole, tehti kuskil viga ...

string (1278)

Tegelikult on need meie esialgsed andmed. Nüüd peame leidma artiklist esimese punkti (".").

2) Leia punkti sümbol

Üldiselt on PHP-l stringidega töötamiseks palju funktsioone. Selle näite esimese punkti leidmiseks otsustasin kasutada " strpos (); ". Allpool ei anna ma skripti koodi täisteksti, kuid pöörake siiski tähelepanu funktsioonile endale ja sellele, millise muutuja lisasin var_dump (see, milles peaks esinema punkti järjekorranumber, see tähendab "$ t", ja muutuja "$ p" - oleme juba esimeses etapis silunud, see sisaldab teksti).

$ t = strpos ($ p, '.');

kus: $ p - muutuja, milles otsime soovitud sümbolit;

"." - see, mida me otsime.

Punktotsing

223 on sümbol, see on punkt. Me leidsime ta üles!

3) Lõika joon punktini

Stringide kärpimiseks on PHP-l selline funktsioon nagu substr (). Selle kasutamine on väga lihtne, näitan teile näite:

$ s = substraat ($ p, 0, $ t);

Kus:

$ p - string, millest me lõikame;

0 - alguse algusmärk (soovitud tüki algus);

$ t on järjestuslik lõpumärk (soovitud tükikese lõpp). Meie näites leidsime selle punkti.

Selle tulemusena näeb kogu kood välja selline:

$ p = file_get_contents ('text.txt'); // loe fail muutujaks

$ t = strpos ($ p, '.'); // otsi $ p rea esimene punkt

$ s = substraat ($ p, 0, $ t); // lõika string 0-st märgist punktini

var_dump ($ s);

Katkesta liin

Pange tähele, et muutsime selle sammu järel muutujat ka  jaotises "var_dump ($ s);". ... Seega näeme, et meie string on muutunud väikeseks, ainult 223 tähemärki. Lahendasime probleemi praktiliselt, palju pole jäänud ...

Lõika ära!

4) Probleem on lahendatud!

Üldiselt asendades "var_dump" sõnaga "kaja" - saame lahendatud näite. Nüüd kuvatakse brauseris tekstifaili esimene lause "my-site.ru" avamisel.

Skript on valmis!

Pange tähele, et "kaja" ei prindi andmetüübi üksikasju. Näete lihtsalt joont ...

Ettepanekut kärbiti

4. SAMM - uus väljakutse ...

Nagu võite ette kujutada, on ülaltoodud näite ülesanne vaid piisk meres! Muidugi võiks seda lahendada ühel real ja elegantsematel viisidel (kõik ülaltoodud on vaid näide, et näidata olemust ja seda, kuidas saab liikuda, et luua sadade ridadega skript ja see lahendab palju keerulisemaid probleeme).

Muidugi saate otsida mitte ainult punkti, vaid ka teatud sümbolite järjestusi, pilte, silte jne. Saate lugeda mitte ainult faili (st hankida sealt algandmed), vaid ka teiste saitide lehti, lugeda kasutaja praegust URL-i, hankida andmeid kasutaja täidetud vormilt jne.

Seega jagades ühe suure ülesande mitmeks keskmiseks ja keskmise keskmise väikseks ning väiksed koodiridadeks ja spetsiifilisteks funktsioonideks (millest igaüks käsitsi läbite ja silute) - saate lahendada ka väga suured ülesanded probleeme. Jah, isegi kui see on esialgu kõver ja kaldus, kuid peamine on see, et teete seda ise ja teil on huvi jõuda õppimise teatud tasemeni.

Veelgi enam, iga uue reaga - teie kogemused, arengukiirus ja oskused pumbatakse üles. Ja kui jah, siis võib-olla kirjutasin need read põhjusega ...

Niisiis, seadke uued ülesanded ja jätkake: otsige funktsioone sammhaaval, muutke muutujaid, lahendage samm-sammult väikesed probleemid. Peamine on mitte jääda raamatute ja koolituskursuste külge - enne kui ise seda tegema hakkad, ei õpi sa ...

Mida nad ei räägi raamatute ja kursuste reklaamimisel

Tavaliselt lubavad nad teile nädala või kuu jooksul programmeerimise õpetada (maksimaalselt 2), lubavad suuri palkasid ja kõrget staatust. Kuid nad unustavad täielikult lisada mõned olulised asjad, mida ma ütlen allpool ...

1) Raske silmade koormus

Terve päev istumine ja koodi sortimine, muutmine jne. pole kaugeltki sama, mis terve päev filmi vaadata, toolil lõõgastuda. Ärge uskuge mind - proovige Wordi või Exceli dokumenti (umbes võrreldavat) läbimõeldult redigeerida vähemalt pool päeva.

2) Vajadus pidevalt õppida

Tänapäeval peate paljudel ametitel alati õppima, kuid programmeerijad - kümme korda rohkem! Üldiselt liigub IT-sfäär igal aastal hüppeliselt, lihtsalt hoidke sellega sammu (pidage meeles, et umbes 10 aastat tagasi hakkas Internet ilmuma ainult linnades ja nüüd räägitakse ka külades bitcoinidest. .) ...

3) Istuv töö

Kui paljudes piirkondades saate veeta osa oma tööpäevast kusagil "jalutades", siis programmeerija töökoht on ainult arvutis ja mitte kusagil mujal ... Sellest hoolimata hakkab see eluviis aja jooksul tervist mõjutama: tagasi, käed, õlad, silmad ... - päeva lõpuks hakkavad nad väga väsima.

4) Tavaliste programmeerijate palgad pole alati suured

Kuni kogemuste omandamiseni ei saa te tõenäoliselt palju rohkem kui muudes tegevusvaldkondades. Minu arvates on selles valdkonnas liiga kõrgete palkade ajastu möödas (möödas?). Kuid heade spetsialistide töö selles valdkonnas on hästi tasustatud!

5) Igav on lahendada teiste inimeste probleeme ...

Kui olete huvitatud oma idee programmeerimisest ja "tõlkimisest", ei tähenda see sugugi, et teiste inimeste probleeme oleks huvitav lahendada - see pole sugugi sama! Mõnikord muutub koodi sisse kaevamine nii igavaks ja halliks ... et isegi "ulgumine" (ma arvan, et kõik ei saa neist ridadest aru) .

PS : Kas peaksite praegusest tööst loobuma ja proovima saada programmeerijaks?

Väga populaarne küsimus ... Eriti mõnede programmeerijate kategooriate väga kõrgete palkade taustal.

Kohe viskamine - kindlasti mitte (vähemalt minu seisukoht). Mis iganes see on ja mida iganes te otsustate, tõhusalt treenida, aju koormata ja midagi uut õppida - inimene on võimeline mitte rohkem kui 2–2,5 tundi päevas (see on tõesti nii, saate seda ise kontrollida - isegi nädalavahetusel saab rohkem). Niisiis, oma uue käsitöö õppima asumiseks - on täiesti võimalik nikerdada tund hommikul või õhtul tööpäeva lõpus, kusagil osa puhkepäevast "varastada".

Kui õnnestub, saate mõne kogemuse jne. - võite proovida puhkust võtta ja saada tööd praktikandina (võib-olla poole kohaga), vaadata, kas kõik meeldib ja teha trenni ...

Samuti pole üleliigne, et vihmase päeva jaoks on rahaline "padi", vastasel juhul ei tea kunagi, äkki ei vasta uus töökoht ootustele. Vähemalt ei vii see lähenemine teid raskesse eluolukorda, kui midagi valesti läheb ...

*

Noh, selle kohta lõpetan oma "käsiraamatu". Kui teil on selle teema kohta täiendusi või kriitikat, on need teretulnud (kommentaarid on avatud).

Kõike paremat!