Ako začať programovať v PHP od nuly (vy). Prečo veľa ľudí zlyháva? Osobná skúsenosť ... pokus a omyl

Dobrý deň!

Pravdepodobne každý z nás, ktorý sledoval filmy o hackeroch a skvelých programátoroch, by chcel v tejto veci aspoň trochu porozumieť. A všimnem si, že nie, nie, a kladú mi podobné otázky (hoci programovať viem, mám ďaleko od profesionálneho programátora. A ľuďom vzdialeným od IT sféry sa to vôbec nedá vysvetliť ... ) .

Všeobecne platí, že v súčasnosti existuje na internete pomerne veľa rôznych výcvikových kurzov, kníh a článkov o tejto téme. Keď som však sám skúsil (učiť sa jazyk od nich) z prvých riadkov kódu „ahoj svet!“ v PHP prejsť na niečo vážnejšie a použiteľnejšie v živote - nič nefungovalo! Akoby v týchto knihách bola medzera alebo prázdnota: nie je jasné, ako prejsť od úplných základov a znalostí niektorých funkcií k niečomu viac ...

Postupom času sa mi podarilo prísť na to, že PHP dokáže napísať svoj vlastný jednoduchý CMS (CMS je motorom stránky)  a pomohol mi s tým jeden článok (bohužiaľ tento zdroj už v sieti neexistuje, som však veľmi vďačný tomuto autorovi za tento „kop“ požadovaným smerom).

Na základe tohto článku a mojej vízie načrtnem túto poznámku pre tých, ktorí skutočne chcú začať programovať v PHP, ale zlyhávajú. Všeobecne mám na tento názor svoj veľmi radikálny názor, takže tu nenájdete rady týkajúce sa kníh a kurzov - stačí pohľad na to, čo konkrétne na základe vašich skúseností robiť ...

*

Kde začať programovať (v PHP)

KROK 1 - koníček, túžba vyriešiť nejaký problém

Asi najdôležitejšie je „zapáliť si“ nejakú úlohu (bez toho je veľmi ťažké študovať niečo nové). Napríklad som naraz naozaj potreboval (VEĽMI!) Aby skript PHP dokázal prečítať určitý textový súbor a vystrihnúť z neho niektoré kúsky podľa mojej šablóny. Na jednej strane - na druhej strane sa zdá byť všetko jednoduché - pre človeka, ktorý nikdy sám nenapísal ani 2 riadky kódu, je úloha nesmierne náročná!

Musel som si kúpiť tento prvý scenár ... Ale neskôr som potreboval ďalší podobný (a potom ďalší). A tu, tu, som sa nechal uniesť s PHP ... Mimochodom, po pár večeroch som mohol sám písať také skripty, pretože som hodinu alebo dve trpel ...

No, všeobecne, všeobecne, chcem poznamenať, že ak nie je záujem o programovanie, potom rýchle začatie štúdia spravidla dokončí rýchlo. A obávam sa, že to nijaké kurzy a učitelia neopravia.

Pokiaľ nezačnete sami písať kód a uvidíte, čo sa zobrazuje, čo sa nachádza vo vašich premenných a ako sa v nich dáta menia pri používaní niektorých funkcií, nemôžete začať programovať (je to čisto môj názor!). Žiadne množstvo „chytrých“ kníh vám nepomôže.

Je dobré snívať!

Mimochodom, veľa začiatočníkov (vrátane mňa raz) má jednu veľkú chybu: trávia veľa času prípravami, sťahovaním rôznych kurzov a videí. Potom si to všetko pozrú, naštudujú, zapíšu do zošitov atď. Nerobia však to najdôležitejšie - nezačnú sami písať kód a sledujú, ako sa vykonáva ...

Dobre, teraz som bližšie k praxi (končím s filozofiou).

KROK 2 - inštalácia nástrojov Denwer, Open Server, Notepad ++, Total Commander. Štart!

Na písanie svojich prvých skriptov a experimentov si nemusíte kupovať hostenie. Je oveľa lepšie použiť bezplatný lokálny webový server: Denwer alebo Open Server (osobne odporúčam Open Server, a tam vám ukážem, ako a čo robiť) . Mimochodom, ak si vyberiete  Open Server , na začiatok bude stačiť minimálna verzia (poznámka: na webe ich je len niekoľko a majú rôzne knižnice).

Pre priamu voľbu kódu (textu) je vhodné použiť špeciálne. poznámkový blok so zvýraznením syntaxe. V tomto ohľade na mňa urobí dojem program Poznámkový blok ++. Jednoduchý, ľahký, bezplatný a pohodlný poznámkový blok (podstatne viac funkcií v porovnaní so vstavaným notebookom so systémom Windows).

Ahoj Svet! (Poznámkový blok ++)

No tiež by som odporučil použiť nejakého veliteľa. Je veľmi nepohodlné prechádzať rôznymi priečinkami v Prieskumníkovi a otvárať niekoľko súborov naraz (stratíte sa a zabudnete, čo sa kde nachádza). Odporučil by som zvoliť Total Commander (veľmi pohodlný a na funkcie bohatý veliteľ).

Prvý scenár: príprava!

1) Po stiahnutí a inštalácii OpenServera by ste mali mať na vybranom mieste na disku priečinok s rovnakým názvom - v mojom prípade je to „e: \ openserver5.2 \“ . Tento priečinok by mal obsahovať adresár „domén“ - musíte v ňom vytvoriť priečinok s názvom vášho webu (napríklad „my-site.ru“ - príklad nižšie).

Pamätajte si názov tohto priečinka, je to tento priečinok, ktorý bude treba pri písaní skriptov zadávať do adresného riadku prehliadača.

OpenServer - príklad vytvorenia „stránky“ (miestnej)

2) Ďalej vytvorte súbor „index.php“ v adresári „my-site.ru“ a zadajte do neho nasledujúce riadky:

ozvena „Hello World!“ ;

Ahoj Svet! Prvý „program“!

Uložte súbor.

Poznámka: ak niekto pracuje s php prvýkrát, venujte pozornosť príkazu „echo“ - znamená to, že v úvodzovkách bude zobrazené všetko, čo bude za ním.

3) Potom spustite OpenServer (alebo ho reštartujte, ak ste ho mali spustený). Zatvorte a znova otvorte svoje prehliadače. Je to nevyhnutné, aby OpenServer mohol zmeniť niektoré súbory vo vašom systéme Windows: aby sa vo vašom prehliadači otvorila naša vytvorená stránka „my-site.ru“.

OpenServer - spustí lokálny webový server

Všeobecne platí, že ak bol OpenServer úspešne spustený, na paneli by malo svietiť zelené začiarkavacie políčko (ak je červené alebo žlté, skúste ho reštartovať znova. V niektorých prípadoch ho musíte spustiť ako správca. V každom prípade červené začiarkavacie políčko ďalej nefunguje umožní ...) .

OpenServer - funkčný

4) V skutočnosti zostáva zadať do adresného riadku prehľadávača náš „ my-site.ru “ (bez úvodzoviek), ktorý zobrazí pozdrav z vytvoreného súboru index.php (pozri obrazovku nižšie).

Tvorba!

5) Upozorňujeme, že ak sme v prvom príklade okamžite zobrazili riadok textu, potom som v nasledujúcom príklade mierne zmenil kód. Spravidla sa pri vývoji skriptov zaoberáte premennými, ktoré môžu obsahovať rôzne údaje: reťazce, čísla atď.

Vytvorme jednu premennú ("$ p") a vložíme do nej náš text. Pozri príklad nižšie:

$ p = 'Hello World!';

echo $ p;

Prvá premenná

Ako je uvedené nižšie, výsledok bude rovnaký! Tých. prehľadávač vytlačí aj náš reťazec. Kód je však trochu odlišný: text je teraz obsiahnutý v premennej „$ p“, ktorú vypíšeme ...

Zobrazenie údajov z premennej

6) Ďalší ilustračný príklad uvedený nižšie. Tentokrát som vytvoril dve premenné „$ p“ a „$ p2“, potom som tieto reťazce zreťazil a vložil ich do premennej „$ p3“. Upozorňujeme, že riadky sú spojené pomocou jednoduchej bodky.

$ p = 'Hello World!';

$ p2 = 'To som ja!';

$ p3 = $ p. $ p2;

echo $ p3;

Iný príklad (dve premenné)

Výsledok je predvídateľný ...

Tvorba...

Upozorňujeme, že pre rýchlejšie pochopenie a zvládnutie sa odporúča riadiť všetky príklady ručne.

KROK 3 - rozdelenie úlohy na jednotlivé súčasti. Ladenie každého kroku

Možno je to najdôležitejší krok pre začatie programovania, kvôli ktorému som začal tento článok ...

Bez ohľadu na to, ako náročná je vaša úloha, môžete ju podmienene rozdeliť do troch etáp:

  1. získanie počiatočných údajov (zadávanie údajov);
  2. transformácia údajov;
  3. dátový výstup: na obrazovku alebo iba do premennej. (pozri snímku obrazovky nižšie: Jeden z príkladov článku som podmienečne rozdelil do týchto troch krokov, aby bolo jasné, o čo ide)

Na aké fázy možno skript rozdeliť

Fázy získavania a transformácie údajov sú spravidla najťažšie  . A veľa začiatočníkov vôbec netuší, ako napísať 100-riadkový kód, bez toho, aby sa v nich pomýlili alebo sa pomýlili.

V skutočnosti môžete po každom riadku kódu vidieť, čo máte v premenných. A postupne, postupne pridávaním jedného riadku kódu a sledovaním toho, ako sa premenné menia, ich privedieme do požadovanej formy (a vyriešime problém!). Preto má PHP úžasné funkcie „var_dump ($ p);“ a „print_r ($ p);“.

A pre začiatočníkov ich odporúčam používať stále! Áno, presne tak je programovanie niekedy taká nudná vec ...

Nižšie uvediem príklad.

Len si to predstavte, neviete, čo máte v premennej „$ p3“ (v kóde v príklade nižšie vidíte riadok, ktorý je do nej načítaný, a teoreticky by tam mal byť. Ale v zložitejších skutočných problémy - to sa nestane vždy, premenná môže namiesto požadovaného riadku obsahovať úplný neporiadok ...).

Takže, aby ste videli, čo sa v premennej nachádza, stačí za ňu vložiť príkaz „var_dump ($ p3);“ (a súbor uložiť).

Príklad Var_dump

Vo výsledku sa v prehliadači (pri obnovení stránky) zobrazí text „string (31) ....“. Tých.  var_dump vám povedal dátový typ (reťazec - reťazec) a dĺžku tohto reťazca (31 - znakov). To je veľmi užitočné pri ladení dlhých programov (skriptov)!

povrázok (31)

Napríklad ako „var_dump ($ p3);“ som nastavil $ p3 na 1. Výsledok je iný (pozri nižšie).

Ak do premennej pridáte číslo

Int (1)

Príklad: čítanie textového súboru a orezávanie prvej vety

Všetko, čo som napísal vyššie, bude dobre vysvetlené na príklade. Ako príklad som si vzal jednoduchú úlohu: otvoriť textový súbor, nájsť v ňom prvý bod (t. J. Koniec vety) a vystrihnúť všetko od začiatku súboru po tento bod.

Na jednej strane sa to môže javiť ako ťažké pre tých, ktorí nikdy nerobili PHP. Na druhej strane, rozdelením úlohy na komponenty a použitím ladenia (var_dump) môžete písať aj zložitejšie veci ...

Je teda logické rozdeliť túto úlohu do niekoľkých etáp:

  1. načítať textový súbor do premennej;
  2. vyhľadať bod v textovom súbore (t. j. zistiť jeho sériové číslo, napríklad 35. znak);
  3. odrezať reťazec: od úplne prvého znaku po bod (na jeho radové číslo).
  4. zobraziť výsledok na obrazovke.

1) Čítanie súboru do reťazca

Ako textový súbor - vzal som text tohto článku a vložil som ho do súboru „text.txt“, ktorý som skopíroval do priečinka „e: \ openserver5.2 \ domains \ my-site.ru \“ (to je , vložte vedľa „index.php“).

Ďalej musíte nájsť funkciu na vyriešenie prvého komponentu: načítanie súboru do premennej. Tu veľmi pomáha „Google“: dopyt ako „PHP čítanie súboru“ robí svoju prácu a pomáha nájsť funkciu  file_get_contents () - to je to, čo používame!

Mimochodom, v tomto ohľade odporúčam adresár //php.net (skvelý pomocník!).

$ p = file_get_contents ('text.txt'); // načíta súbor do premennej

var_dump ($ p);

Načítali sme súbor do premennej

Výsledkom je, že ak je všetko zadané správne, uvidíme obsah premennej „$ p“: bude obsahovať dlhý text (riadok). Ak to tak nie je váš prípad, niekde sa stala chyba ...

povrázok (1278)

V skutočnosti sú to naše počiatočné údaje. Teraz musíme v článku nájsť prvú bodku („.“).

2) Nájdite symbol bodu

Všeobecne má PHP veľa funkcií pre prácu s reťazcami. Aby som našiel prvý bod v tomto príklade, rozhodol som sa použiť „ strpos (); “. Ďalej neuvádzam celé znenie kódu skriptu, venujte však pozornosť samotnej funkcii a tomu, akú premennú som pridal do var_dump (tej, v ktorej by sa malo nachádzať poradové číslo bodu, teda „$ t“, a premenná „$ p“ - v prvom kroku sme už ladili, obsahuje text).

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

kde: $ p - premenná, v ktorej hľadáme požadovaný symbol;

„.“ - ten, ktorý hľadáme.

Hľadanie bodu

223 je symbol, to je bod. Našli sme ju!

3) Vyrežte čiaru k bodu

Na orezávanie reťazcov má PHP funkciu ako substr (). Je to veľmi jednoduché, ukážem vám to na príklade:

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

Kde:

$ p - reťazec, z ktorého budeme rezať;

0 - radový znak začiatku (začiatok požadovanej časti);

$ t je radový koncový znak (koniec požadovaného bloku). V našom príklade je to bod, ktorý sme našli.

Vo výsledku bude kompletný kód vyzerať takto:

$ p = file_get_contents ('text.txt'); // načíta súbor do premennej

$ t = strpos ($ p, '.'); // hľadaj prvý bod v riadku $ p

$ s = substr ($ p, 0, $ t); // prerezáva reťazec od 0-ho znaku po bod

var_dump ($ s);

Odrežte čiaru

Upozorňujeme, že po tomto kroku sme zmenili aj premennú v  „var_dump ($ s);“. ... Vidíme teda, že náš reťazec je malý, má iba 223 znakov. Problém sme prakticky vyriešili, veľa už neostáva ...

Odrezať!

4) Problém je vyriešený!

Všeobecne platí, že nahradenie výrazu „var_dump“ výrazom „echo“ - dostaneme vyriešený príklad. Prvá veta z textového súboru sa teraz zobrazí v prehliadači pri otvorení súboru „my-site.ru“.

Scenár je pripravený!

Upozorňujeme, že výraz „echo“ netlačí podrobnosti údajového typu. Vidíte iba čiaru ...

Návrh bol prerušený

KROK 4 - nová výzva ...

Ako si dokážete predstaviť, úlohou v príklade vyššie je iba kvapka v mori! Dalo by sa to samozrejme vyriešiť jedným riadkom a elegantnejšími spôsobmi (všetko, čo je uvedené vyššie, je len príkladom, ktorý ukazuje podstatu a to, ako sa môžete pohnúť k vytvoreniu skriptu so stovkami riadkov, ktorý rieši oveľa zložitejšie problémy).

Samozrejme môžete vyhľadávať nielen bod, ale aj sekvencie určitých symbolov, obrázkov, značiek atď. Môžete si prečítať nielen súbor (tj. Získať z neho počiatočné údaje), ale aj stránky iných webov, prečítať aktuálnu adresu URL používateľa, získať údaje z formulára, ktorý používateľ vyplní atď.

Teda rozdelením jednej veľkej úlohy na niekoľko stredných a stredných na niekoľko malých a malých na riadky kódu a konkrétnych funkcií (každú z nich manuálne prejdete a odladíte) - môžete vyriešiť aj veľmi veľké úlohy. problémy. Áno, aj keď je to spočiatku krivé a šikmé, ale hlavné je, že to robíte sami a budete mať záujem dosiahnuť určitú úroveň v učení.

S každou ďalšou líniou budú navyše čerpané vaše skúsenosti, rýchlosť vývoja a zručnosti. A ak áno, možno som tieto riadky napísal z nejakého dôvodu ...

Stanovte si teda nové úlohy a pokračujte: hľadajte postupne funkcie, meňte premenné, krok za krokom riešte malé problémy. Hlavnou vecou nie je zavesiť sa na knihy a školiace kurzy - kým to nezačnete robiť sami, nenaučíte sa ...

O čom nehovoria v reklame na knihy a kurzy

Zvyčajne sľubujú, že vás naučia programovať za týždeň alebo mesiac (maximálne 2), sľubujú vysoké platy a vysoké postavenie. Úplne však zabudnú pridať pár dôležitých vecí, ktoré poviem nižšie ...

1) Silné namáhanie očí

Celý deň sedieť a triediť kód, upravovať ho atď. zďaleka nie je to isté ako pozerať film celý deň a relaxovať v kresle. Neverte mi - skúste aspoň pol dňa premyslene upravovať dokument vo formáte Word alebo Excel (zhruba porovnateľný).

2) Potreba neustále sa učiť

V dnešnej dobe sa v mnohých profesiách musíte vždy učiť, ale programátori - desaťkrát viac! Všeobecne platí, že všeobecne platí, že IT sféra kráča každý rok míľovými krokmi, len držte krok s tým (pamätajte, asi pred 10 rokmi sa internet začal objavovať iba v mestách a teraz dokonca aj na dedinách hovoria o bitcoinoch .. .) ...

3) Sedavé zamestnanie

Ak v mnohých oblastiach môžete stráviť časť svojho pracovného dňa niekde „prechádzkami“, potom je programátorské pracovisko iba pri počítači a nikde inde ... Tento spôsob života napriek tomu časom začína ovplyvňovať zdravie: späť, ruky, plecia, oči ... - do konca dňa začnú byť veľmi unavené.

4) Platy bežných programátorov nie sú vždy vysoké

Kým nezískate skúsenosti, s najväčšou pravdepodobnosťou ich nedostanete oveľa viac ako v iných oblastiach činnosti. Podľa môjho názoru éra príliš vysokých platov v tejto oblasti pominula (pominula?). Práca dobrých odborníkov v tejto oblasti je však dobre zaplatená!

5) Je nuda riešiť problémy iných ľudí ...

Ak máte záujem programovať a „pretaviť“ svoju myšlienku do reality, vôbec to neznamená, že bude zaujímavé riešiť problémy iných ľudí - nie je to vôbec to isté! Niekedy je rýpanie sa v kóde také nudné a sivé ... že dokonca „vytie“ (myslím si, že nie každý pochopí tieto riadky) .

PS : Mali by ste opustiť svoje súčasné zamestnanie a pokúsiť sa stať programátorom?

Veľmi populárna otázka ... Najmä v dôsledku veľmi vysokých platov niektorých kategórií programátorov.

Hádzať všetko hneď - určite nie (teda aspoň môj názor). Nech už je to čokoľvek, a nech sa už rozhodnete čokoľvek, efektívne cvičiť, zaťažovať mozog a učiť sa niečo nové - človek je schopný nie viac ako 2-2,5 hodiny denne (je to tak, môžete to skontrolovať sami - dokonca aj na víkend dokáže viac). Takže, aby ste sa začali učiť svoje nové remeslo - je celkom možné si na konci pracovného dňa vybojovať hodinu ráno alebo večer, niekde „ukradnúť“ časť voľného dňa.

Ak uspejete, získate nejaké skúsenosti atď. - môžete skúsiť čerpať dovolenku a zamestnať sa ako stážista (možno na polovičný úväzok), zistiť, či sa vám všetko páči a zacvičiť si ...

Rovnako nebude nadbytočné mať finančný „vankúš“ na upršaný deň, inak nikdy neviete, zrazu nová práca nesplní očakávania. Prinajmenšom vás tento prístup neprivedie do zložitej životnej situácie, ak sa niečo pokazí ...

*

No a v tomto dokončujem svoj „manuál“. Ak máte k téme alebo kritike nejaké dodatky, sú vítané (komentáre sú otvorené).

Všetko najlepšie!