Занимљиво

Како започети програмирање у ПХП-у од самог почетка (самостално). Зашто многи људи пропадају? Лично искуство ... покушаји и грешке

Добар дан!

Вероватно би свако од нас, гледајући филмове о хакерима и кул програмерима, желео да бар мало разуме ову ствар. И приметићу да не, не, и они ми постављају слична питања (мада знам да програмирам, али далеко сам од професионалног програмера. А људима који су далеко од ИТ сфере, ово се никако не може објаснити ...).

Генерално, сада постоји неколико различитих курсева, књига и чланака на ову тему на Интернету. Међутим, када сам и сам покушао (научио језик од њих) из првих редова кода "здраво свете!" у ПХП-у да се пређе на нешто озбиљније и применљивије у животу - ништа није успело! Као да у овим књигама постоји одређена празнина или празнина: није јасно како од самих основа и знања неких функција прећи на нешто више ...

Временом сам успео да схватим ПХП до нивоа писања сопственог једноставног ЦМС-а (ЦМС је покретач веб страница) и један чланак ми је у томе помогао (нажалост тај ресурс више не постоји на мрежи, међутим, веома сам захвалан том аутору на овом „ударцу“ у правом смеру).

На основу тог чланка и моје визије, скицираћу ову белешку за оне који заиста желе да започну програмирање на ПХП-у, али они не успевају. Генерално, имам своје врло радикално мишљење о овом погледу, тако да овде нећете наћи савете о књигама и курсевима - само погледајте шта тачно треба радити на основу вашег искуства ...

*

Где започети програмирање (у ПХП-у)

КОРАК 1 - хоби, жеља да се реши неки проблем

Можда је најважније „запалити се“ неким задатком (без овога је врло тешко проучити нешто ново). На пример, једно време ми је заиста било потребно (ВРЛО!) Да би ПХП скрипта могла да прочита одређену текстуалну датотеку и да из ње исече неке делове према мом предлошку. С једне стране - чини се да је све једноставно, с друге - за особу која никада није самостално написала 2 линије кода, задатак је изузетно тежак!

Морао сам да купим ову прву скрипту ... Али касније ми је требао још један сличан (а затим још један). И ево, ево, занео сам се ПХП-ом ... Иначе, после неколико вечери већ је било могуће самостално писати такве скрипте, трпећи сат-два ...

Па, уопште, генерално, желим да приметим да ако не постоји интересовање за програмирање, онда брзо започињање студије, по правилу, брзо и завршетак. И бојим се да то неће поправити ниједан курс и наставници.

Док не почнете сами да куцате код и не видите шта је „приказано“, шта је у вашим променљивим и како се подаци мењају у њима када користите неке функције, не можете започети програмирање (ово је чисто моје мишљење!). Ниједна количина „паметних“ књига вам неће помоћи.

Добро је сањати!

Иначе, многи почетници (укључујући и мене једном) имају једну велику грешку: проводе много времена припремајући се, преузимајући разне курсеве и видео записе. Онда све то погледају, проуче, запишу у свеске итд. Али они не раде оно најважније - не почињу сами да куцају код и гледају како се извршава ...

Добро, сада ближе пракси (завршавање филозофије).

КОРАК 2 - инсталирање Денвер, Опен Сервер, Нотепад ++, Тотал Цоммандер алата. Почетак!

Не морате да купујете хостинг да бисте писали своје прве скрипте и експерименте. Много је боље користити бесплатни локални веб сервер: Денвер или Опен Сервер (Ја лично препоручујем Опен Сервер и овде ћу вам показати како и шта треба радити) ... Иначе, ако одлучитеОтворите сервер - тада је за почетак довољна и најнижа верзија (напомена: на веб локацији их је само неколико, са различитим библиотекама).

За директно бирање кода (текста) погодно је користити специјално. бележница са истицањем синтаксе. Импресиониран сам Нотепадом ++ у овом погледу. Једноставна, лагана, бесплатна и згодна бележница (знатно више функција у поређењу са уграђеном Виндовс бележницом).

Здраво Свете! (Нотепад ++)

Па, такође бих препоручио употребу неке врсте команданта. у Екплореру је врло незгодно кретати се кроз различите фасцикле и отварати неколико датотека одједном (изгубите се и заборавите шта је где). Препоручио бих да одаберете Тотал Цоммандер (врло згодан и свестран командант).

Прва скрипта: припрема!

1) Након преузимања и инсталирања ОпенСервер-а, на изабраном месту на диску требало би да имате фолдер истог имена - у мом случају то је "е: \ опенсервер5.2 \" ... Ова фасцикла треба да садржи директоријум „домени“ - у њој треба да направите фасциклу са именом ваше веб локације (на пример, "ми-сите.ру" - пример доле).

Запамтите име ове мапе, она ће бити потребна за унос у траку за адресу прегледача приликом писања скрипти.

ОпенСервер - пример креирања „веб локације“ (локално)

2) Затим креирајте датотеку „индек.пхп“ у директоријуму „ми-сите.ру“ и у њу унесите следеће редове:

ецхо 'Хелло Ворлд!' ;

Здраво Свете! Први „програм“!

Сачувајте датотеку.

Напомена: ако неко први пут ради са пхп-ом, обратите пажњу на команду 'ецхо' - то значи да се све након њега прикаже у наводницима.

3) Затим покрените ОпенСервер (или га поново покрените ако је покренут). Такође затворите и поново отворите прегледаче. То је неопходно како би ОпенСервер могао да мења неке датотеке у вашем Виндовс-у: тако да ће се наша креирана страница „ми-сите.ру“ отворити у вашем прегледачу.

ОпенСервер - покреће локални веб сервер

Генерално, ако је ОпенСервер успешно покренут, зелено поље за потврду треба да светли у вашој фиоци (ако је црвена или жута, покушајте да га поново покренете. У неким случајевима га морате покренути као администратор. У сваком случају, црвена заставица вам неће омогућити да наставите да радите ...) .

ОпенСервер - покренут и покренут

4) Заправо остаје да откуцамо наш " ми-сите.ру "(без наводника) и приказаће поздрав из генерисане датотеке индек.пхп (погледајте снимак екрана испод).

Извођење радова!

5) Имајте на уму да ако смо у првом примеру одмах приказали ред текста, онда сам у следећем примеру мало променио код. Када развијате скрипте, по правилу имате посла Променљиве , који може садржати разне податке: низове, бројеве итд.

Направимо једну променљиву („$ п“) и ставимо у њу наш текст. Погледајте пример испод:

$ п = 'Здраво свете!';

ецхо $ п;

Прва променљива

Као што је приказано доле, резултат ће бити исти! Они. прегледач ће такође исписати наш низ. Међутим, код је нешто другачији: сада је текст садржан у променљивој "$ п", коју излазимо ...

Приказивање података из променљиве

6) Још један илустративни пример у наставку. Овог пута сам креирао две променљиве „$ п“ и „$ п2“, а затим сам спојио ове редове и ставио их у променљиву „$ п3“. Имајте на уму да су линије повезане једноставном тачком.

$ п = 'Здраво свете!';

$ п2 = 'Ја сам!';

$ п3 = $ п. $ п2;

ецхо $ п3;

Још један пример (две променљиве)

Резултат је предвидљив ...

Извођење радова...

Скрећем вам пажњу на чињеницу да се за брже разумевање и савладавање препоручује увођење свих примера ручно.

КОРАК 3 - рашчлањивање задатка на његове компоненте. Отклањање грешака у сваком кораку

Можда је ово најважнији корак за покретање програмирања, због њега сам и започео овај чланак ...

Без обзира на то колико је тежак ваш задатак који желите да решите, он се условно може поделити у три фазе:

  1. добијање почетних података (унос података);
  2. трансформација података;
  3. излаз података: на екран или само на променљиву. (погледајте снимак екрана испод: Условно сам поделио један од примера чланка у ова три корака, тако да је јасно о чему се ради)

На које фазе се може поделити скрипта

По правилу су фазе најтеже. пријем и трансформација података ... Многи почетници немају појма како можете да напишете код од 100 редова, а да се у њима не збуните или погрешите.

У ствари, после сваког ретка кода можете погледати шта имате у променљивим. И постепено, додајући по један ред кода и гледајући како се променљиве мењају, доведите их до жељеног облика (и решите проблем!). Због тога ПХП има дивне функције "вар_думп ($ п);" и "принт_р ($ п);".

А за почетнике препоручујем да их стално користе! Да, баш тако, програмирање је понекад тако досадно ...

У наставку ћу размотрити пример.

Замислите само, не знате шта имате у променљиви „$ п3“ (у коду, у примеру испод, видите линију која је учитана у њу, и у теорији би требало да буде тамо. Али у сложенијим стварним проблеми - то се не дешава увек, променљива може садржати потпун неред, уместо потребног реда ...).

Дакле, да бисте видели шта се налази у променљивој, само уметните наредбу „вар_думп ($ п3);“ након ње (и сачувајте датотеку).

Пример вар_думп

Као резултат, у прегледачу (приликом освежавања странице) видећете да се приказује „стринг (31) ....“. Они. вар_думп рекли су вам тип података (стринг је низ) и дужина овог низа (31 је знак). Ово је врло корисно при отклањању грешака у дугим програмима (скриптама)!

стринг (31)

Као пример, пре „вар_думп ($ п3);“ доделио сам вредност 1 променљивој $ п3. Резултат је другачији (види доле).

Ако променљивој додате број

Инт (1)

Пример: читање текстуалне датотеке и исецање прве реченице

Све што сам горе написао, било би добро објаснити примером. Као пример узео сам једноставан задатак: отворио сам текстуалну датотеку, пронашао прву тачку у њој (односно крај реченице) и пресекао све од почетка датотеке до ове тачке.

С једне стране, то може изгледати тешко некоме ко никада није радио ПХП. С друге стране, рашчлањивањем задатка на његове компоненте и коришћењем отклањања грешака (вар_думп), можете писати још сложеније ствари ...

Дакле, логично је овај задатак поделити у неколико фаза:

  1. чита текстуалну датотеку у променљиву;
  2. пронаћи тачку у текстуалној датотеци (тј. сазнати њен редни број, на пример, 35. знак);
  3. одсећи комад жице: од првог знака до тачке (до његовог редног броја).
  4. приказати резултат на екрану.

1) Читање датотеке у низ

Као текстуалну датотеку - узео сам текст овог чланка и ставио га у датотеку „тект.ткт“, коју сам копирао у фасциклу "е: \ опенсервер5.2 \ домаинс \ ми-сите.ру \" (Мислим, стави поред "индек.пхп").

Даље, морате пронаћи функцију за решавање прве компоненте: читање датотеке у променљиву. Овде „Гоогле“ много помаже: упит попут „Читање ПХП датотеке“ носи се са својим задатком и помаже у проналажењу функције филе_гет_цонтентс () - користимо га!

Иначе, с тим у вези, препоручујем директоријум //пхп.нет (сјајан помагач!).

$ п = филе_гет_цонтентс ('тект.ткт'); // читање датотеке у променљиву

вар_думп ($ п);

Читамо датотеку у променљиву

Као резултат, ако је све правилно унето, видећемо садржај променљиве „$ п“: садржаће дугачак текст (ред). Ако ово није случај, негде је дошло до грешке ...

низ (1278)

Заправо, ово су наши почетни подаци. Сада треба да пронађемо прву тачку („.“) У чланку.

2) Пронађите симбол тачке

Генерално, ПХП има пуно функција за рад са стринговима. Да бих пронашао прву тачку у овом примеру, одлучио сам да узмем „ стрпос (); ". Испод не дајем пуни текст кода скрипте, међутим, обратите пажњу на саму функцију и на коју променљиву сам додао вар_думп (она у којој треба да се појави редни број тачке, тј. „$ т“, и променљива „$ п“ - већ смо у првом кораку отклонили грешке, садржи текст).

$ т = стрпос ($ п, '.');

где је: $ п - променљива у којој тражимо жељени симбол;

'.' - онај кога тражимо.

Претраживање тачака

223 је симбол, ово је тачка. Пронашли смо је!

3) Пресеци линију до тачке

За обрезивање низова, ПХП има функцију попут субстр (). Користити га је врло једноставно, показаћу вам пример:

$ с = субстр ($ п, 0, $ т);

Где:

$ п - низ од којег ћемо пресећи;

0 - редни карактер почетка (почетак жељеног дела);

$ т је редни крајњи знак (крај жељеног дела). У нашем примеру, ово је тачка коју смо пронашли.

Као резултат, комплетни код ће изгледати овако:

$ п = филе_гет_цонтентс ('тект.ткт'); // читање датотеке у променљиву

$ т = стрпос ($ п, '.'); // тражимо прву тачку у линији $ п

$ с = субстр ($ п, 0, $ т); // исећи низ од 0-тог знака до тачке

вар_думп ($ с);

Прекини линију

Имајте на уму да смо променили и променљиву у "вар_думп ($ с);" ... Дакле, видимо да је наш низ постао мали, само 223 знака. Практично смо решили проблем, није остало много ...

Одрезати!

4) Проблем је решен!

Генерално, замена "вар_думп" у "ецхо" - добијамо решен пример. Сада, када отворите „ми-сите.ру“ у прегледачу, приказује се прва реченица из текстуалне датотеке.

Сценарио је спреман!

Имајте на уму да „ецхо“ не штампа детаље о типу података. Видиш само црту ...

Предлог је пресечен

КОРАК 4 - нови изазов ...

Као што можете да замислите, задатак у горњем примеру је само кап у мору! Наравно, могло би се решити у једном реду и на елегантније начине (све што је горе приказано само је пример који показује суштину и како можете кренути да бисте креирали скрипту са стотинама редова и која решава много сложеније проблеме) .

Наравно, можете тражити не само тачку, већ и секвенце одређених симбола, слика, ознака итд. Можете читати не само датотеку (тј. Добити почетне податке из ње), већ и странице других веб локација, прочитати тренутну УРЛ адресу корисника, добити податке из обрасца који корисник попуњава итд.

Тако, делећи један велики задатак на неколико средњих, а средњи на неколико малих, а мали у редове кода и одређене функције (од којих ћете сваку ручно проћи и отклонити грешке), можете решити чак и врло велики проблеми. Да, чак и ако је у почетку криво и косо, али главно је да ћете то учинити сами и имаћете интерес да достигнете одређени ниво учења.

Штавише, са сваком новом линијом - ваше искуство, брзина развоја и вештине биће повећане. А ако је тако, можда сам ове редове написао с разлогом ...

Дакле, поставите нове задатке и наставите: тражите функције корак по корак, мењајте променљиве, корак по корак решавајте мале проблеме. Главно је да се не вешате око књига и курсева - док сами не почнете да радите, нећете научити ...

О чему не говоре у рекламама за књиге и курсеве

Обично обећавају да ће вас научити програмирању за недељу или месец дана (највише 2), обећавају велике плате и висок статус. Међутим, они потпуно заборављају да додају неколико важних ствари, што ћу рећи у наставку ...

1) Тешко напрезање очију

Седећи по цео дан и пролазећи кроз код, уређујући га итд. - ово је далеко од истог као гледање филма по цео дан, опуштање у фотељи. Не верујте ми - покушајте бар пола дана да замишљено уредите Ворд или Екцел документ (отприлике упоредив).

2) Потреба за сталним учењем

Данас у многим професијама увек морате учити, али програмери - десет пута више! Генерално, генерално, ИТ сфера напредује сваке године великим корацима, само наставите с тим (сетите се, пре 10 година Интернет је почео да се појављује само у градовима, а сада чак и у селима говоре о битцоинима .. .) ...

3) Седентарни рад

Ако у многим областима део радног дана можете провести негде у „шетњи“, тада је радно место програмера само за рачунаром и нигде више ... Такав начин живота, с временом, почиње да утиче на здравље: леђа, руке, рамена, очи ... - до краја дана почињу да се јако умарају.

4) Плате обичних програмера нису увек високе

Док не стекнете искуство, највероватније нећете добити много више у односу на друге области деловања. По мом мишљењу, ера превисоких зарада у овој области пролази (пролази?). Међутим, рад добрих специјалиста у овој области је добро плаћен!

5) Досадно је решавати туђе проблеме ...

Ако вас занима програмирање и „превођење“ ваше идеје у стварност, то уопште не значи да ће бити занимљиво решавати туђе проблеме - ово уопште није исто! Понекад копање по коду постане толико досадно и сиво ... да чак и "завијање" (Мислим да неће сви разумети ове редове).

ПС: Да ли бисте требали да напустите тренутни посао и покушате да постанете програмер?

Веома популарно питање ... Нарочито у светлу врло високих плата неких категорија програмера.

Напуштање свега одједном дефинитивно није (барем моје становиште). Шта год да је, и шта год да одлучите, да ефикасно вежбате, оптеретите мозак и научите нешто ново - особа је способна да траје највише 2-2,5 сата дневно (то је заиста тако, можете сами проверити - чак и на викенд може више). Дакле, да бисте почели да учите свој нови занат - сасвим је могуће да на крају радног дана изделате сат времена ујутру или увече, негде да бисте „украли“ део слободног дана.

Ако успете, стећи ћете неко искуство итд.- можете покушати да узмете годишњи одмор и запослите се као приправник (можда пола стопе), видите да ли вам се све допада и вежбајте ...

Такође, неће бити сувишно имати финансијски „јастук“ за кишни дан, иначе никад не знате, одједном нови посао не испуњава очекивања. Барем вас овај приступ неће довести у тешку животну ситуацију ако нешто пође по злу ...

*

Па, на овоме завршавам свој „приручник“. Ако имате неке додатке на тему или критике, добродошли су (коментари су отворени).

Све најбоље!

$config[zx-auto] not found$config[zx-overlay] not found