처음부터 PHP로 프로그래밍을 시작하는 방법 (자체적으로). 왜 많은 사람들이 실패합니까? 개인적인 경험 ... 시행 착오

좋은 날!

아마도 해커와 멋진 프로그래머에 관한 영화를 본 우리 각자는이 문제에 대해 적어도 조금이라도 이해하고 싶어 할 것입니다. 그리고 나는 아니오, 아니오, 그들은 비슷한 질문을 던진다는 점에 주목할 것 입니다 .

일반적으로 현재 인터넷에는이 주제에 대한 다양한 교육 과정, 서적 및 기사가 있습니다. 그러나 내가 "hello world!"코드의 첫 줄부터 시도 (그들로부터 언어 배우기)를 시도했을 때 PHP에서 더 진지하고 삶에 적용 가능한 것으로 이동합니다. 이 책들에 약간의 공백이나 공허함이있는 것처럼 : 일부 기능에 대한 기본 및 지식에서 더 많은 것으로 이동하는 방법이 명확하지 않습니다.

시간이 지남에 따라 나는 내 자신의 간단한 CMS (CMS는 사이트의 엔진)를 작성하는 수준까지 PHP를 파악할 수  있었고 한 기사가이 작업에 도움이되었습니다 (불행히도 리소스가 더 이상 네트워크에 존재하지 않지만이 "킥"에 대해 그 작성자에게 매우 감사드립니다. "원하는 방향으로).

그 기사와 내 비전을 바탕으로 PHP로 프로그래밍을 시작하고 싶지만 실패하고있는 사람들을 위해이 노트를 스케치 할 것입니다. 일반적으로 나는이 견해에 대해 매우 급진적 인 의견을 가지고 있으므로 여기에서 책과 코스에 대한 조언을 찾지 못할 것입니다. 경험을 바탕으로 정확히 무엇을 해야하는지 살펴보십시오 ...

*

프로그래밍 시작 위치 (PHP)

STEP 1-취미, 문제 해결 욕구

아마도 가장 중요한 것은 어떤 작업으로 "발사"하는 것입니다 (이것 없이는 새로운 것을 공부하는 것은 매우 어렵습니다). 예를 들어, 한때는 PHP 스크립트가 특정 텍스트 파일을 읽고 내 템플릿에 따라 일부를 잘라낼 수 있도록 (매우!) 정말 필요했습니다. 한편으로는 모든 것이 단순 해 보이지만, 혼자서 2 줄의 코드를 작성한 적이없는 사람에게는 작업이 매우 어렵습니다!

이 첫 번째 대본을 구입해야했지만 나중에 다른 유사한 대본이 필요했습니다. 그리고 여기, 여기에서 PHP에 빠져 들었습니다 ... 그건 그렇고, 몇 시간 후에 이미 그런 스크립트를 작성하는 것이 가능했고 한두 시간 동안 고통을 겪었습니다 ...

글쎄요, 일반적으로 프로그래밍에 관심이 없다면 연구를 빨리 시작하면 원칙적으로 빨리 끝납니다. 그리고 나는 어떤 코스와 교사도 그것을 고칠 것이 두렵습니다.

코드를 직접 입력하기 시작하고 무엇이 "표시"되는지, 변수에 무엇이 있는지, 일부 함수를 사용할 때 데이터가 어떻게 변하는 지 볼 때까지 프로그래밍을 시작할 수 없습니다 (순전히 제 생각입니다!). 아무리 "스마트 한"책도 도움이되지 않습니다.

꿈꾸는 것이 좋다!

그건 그렇고, (한때 저를 포함하여) 많은 초보자들은 한 가지 큰 실수를합니다. 그들은 다양한 코스와 비디오를 준비하고 다운로드하는 데 많은 시간을 보냅니다. 그런 다음 모든 것을보고, 공부하고, 공책 등에 적습니다. 그러나 그들은 가장 중요한 일을하지 않습니다. 그들은 스스로 코드를 입력하기 시작하지 않고 그것이 어떻게 실행되는지 지켜 봅니다.

자, 이제 연습에 가까워졌습니다 (철학을 마무리하고 있습니다).

2 단계-Denwer, Open Server, Notepad ++, Total Commander 도구 설치. 스타트!

첫 번째 스크립트와 실험을 작성하기 위해 호스팅을 구매할 필요가 없습니다. 무료 로컬 웹 서버를 사용하는 것이 훨씬 낫다 : Denwer 또는 Open 서버 (저는 개인적으로 열기 서버 추천을, 내가 어떻게 무엇을 보여 곳이다) . 그건 그렇고, Open Server 를 선택  하면 최소한의 버전으로 시작하기에 충분할 것입니다 (참고 : 사이트에는 서로 다른 라이브러리가있는 몇 개만 있습니다).

코드 (텍스트)를 직접 다이얼링하려면 특수를 사용하는 것이 편리합니다. 구문 강조가있는 메모장. 이 점에서 메모장 ++에 깊은 인상을 받았습니다. 간단하고 가볍고 무료이며 편리한 메모장 (내장 Windows 노트북에 비해 훨씬 더 많은 기능).

안녕하세요! (메모장 ++)

글쎄, 나는 또한 어떤 종류의 사령관을 사용하는 것이 좋습니다. Explorer에서 다른 폴더를 탐색하고 한 번에 여러 파일을 여는 것은 매우 불편합니다 (잃어 버리고 어디에 있는지 잊어 버림). Total Commander (매우 편리하고 기능이 풍부한 사령관)를 선택하는 것이 좋습니다.

첫 번째 스크립트 : 준비!

1) OpenServer를 다운로드하고 설치 한 후 디스크의 선택한 위치에 같은 이름의 폴더가 있어야합니다. 제 경우에는 "e : \ openserver5.2 \" 입니다. 이 폴더에는 "도메인"디렉토리가 포함되어 있어야합니다. 여기에 사이트 이름으로 폴더를 만들어야합니다 (예 : "my-site.ru" -아래 예).

이 폴더의 이름을 기억하십시오. 스크립트를 작성할 때 브라우저의 주소 표시 줄에 입력해야하는 폴더입니다.

OpenServer- "사이트"(로컬) 생성 예

2) 다음으로, "my-site.ru"디렉토리에 "index.php"파일을 생성하고 그 안에 다음 줄을 입력하십시오 :

echo 'Hello World!' ;

안녕하세요! 첫 번째 "프로그램"!

파일을 저장하십시오.

참고 : 누군가가 처음으로 php를 사용하는 경우 'echo'명령에주의를 기울이십시오. 이는 뒤에 오는 모든 것을 따옴표로 표시한다는 의미입니다.

3) 그런 다음 OpenServer를 시작합니다 (또는 실행중인 경우 다시 시작). 또한 브라우저를 닫았다가 다시 엽니 다. 이는 OpenServer가 Windows의 일부 파일을 변경할 수 있도록하기 위해 필요합니다. 그러면 우리가 만든 사이트 "my-site.ru"가 브라우저에서 열리게됩니다.

OpenServer-로컬 웹 서버 시작

일반적으로 OpenServer가 성공적으로 실행 된 경우 트레이에 녹색 확인란이 켜져 있어야합니다 (빨간색 또는 노란색이면 다시 시작하십시오. 경우에 따라 관리자 권한으로 실행해야합니다. 어떤 경우에도 빨간색 확인란은 더 이상 작동하지 않습니다.) 허용됩니다 ...) .

OpenServer-시작 및 실행

4) 사실, 브라우저의 주소 표시 줄에 " my-site.ru "(따옴표없이) 를 입력 하면 생성 된 index.php 파일에서 인사말이 표시됩니다 (아래 화면 참조).

공장!

5) 첫 번째 예에서 텍스트 한 줄을 즉시 표시했다면 다음 예에서는 코드를 약간 변경했습니다. 일반적으로 스크립트를 개발할 때 문자열, 숫자 등 다양한 데이터를 포함 할 수있는 변수 를 다룹니다.

하나의 변수 ( "$ p")를 만들고 여기에 텍스트를 넣습니다. 아래 예를 참조하십시오.

$ p = '안녕하세요!';

에코 $ p;

첫 번째 변수

아래와 같이 결과는 동일합니다! 그. 브라우저는 우리의 문자열도 인쇄 할 것입니다. 그러나 코드는 약간 다릅니다. 이제 텍스트가 "$ p"변수에 포함되어 출력됩니다.

변수에서 데이터 표시

6) 아래에 또 다른 예시가 있습니다. 이번에는 두 개의 변수 "$ p"와 "$ p2"를 만든 다음이 문자열을 연결하여 변수 "$ p3"에 넣었습니다. 선은 간단한 점을 사용하여 연결됩니다.

$ p = '안녕하세요!';

$ p2 = '나야!';

$ p3 = $ p. $ p2;

에코 $ p3;

또 다른 예 (두 변수)

결과는 예측 가능합니다 ...

공장...

더 빠른 이해와 마스터 링을 위해 모든 예제를 수동으로 구동하는 것이 좋습니다.

3 단계-작업을 구성 요소로 분류합니다. 각 단계 디버깅

아마도 이것은 프로그래밍을 시작하는 가장 중요한 단계 일 것입니다.

해결하려는 작업이 아무리 어렵더라도 조건부로 세 단계로 나눌 수 있습니다.

  1. 초기 데이터 획득 (데이터 입력);
  2. 데이터 변환;
  3. 데이터 출력 : 화면 또는 변수에만. (아래 스크린 샷 참조 : 기사의 예 중 하나를 조건부로이 세 단계로 나누어 내용이 무엇인지 명확하게하였습니다)

스크립트를 분할 할 수있는 단계

일반적으로 데이터 수집 및 변환 단계가 가장 어렵습니다  . 그리고 많은 초보자들은 어떻게 100 줄짜리 코드를 혼동하거나 착각하지 않고 작성할 수 있는지 모릅니다.

실제로 각 코드 줄 후에 변수에있는 내용을 볼 수 있습니다. 그리고 점차적으로 한 번에 한 줄의 코드를 추가하고 변수가 어떻게 변경되는지 살펴보고 원하는 형식으로 가져와 문제를 해결합니다. 이를 위해 PHP에는 "var_dump ($ p);"및 "print_r ($ p);"라는 멋진 기능이 있습니다.

그리고 초보자에게는 항상 사용하는 것이 좋습니다! 예, 그렇게 프로그래밍은 때때로 그렇게 지루한 일입니다 ...

아래 예를 살펴 보겠습니다.

"$ p3"변수에 무엇이 있는지 모른다고 상상해보십시오 (아래 예제의 코드에서는 여기에로드 된 줄을 볼 수 있으며 이론적으로는 거기에 있어야합니다. 그러나 더 복잡한 실제 문제에서는- 이것이 항상 발생하는 것은 아닙니다. 변수는 필수 라인 대신 완전한 혼란을 포함 할 수 있습니다.

따라서 변수의 내용을 확인하려면 "var_dump ($ p3);"명령을 그 뒤에 삽입하고 파일을 저장하면됩니다.

Var_dump 예

결과적으로 브라우저 (페이지를 새로 고칠 때)에 "string (31) ...."이 표시되는 것을 볼 수 있습니다. 그.  var_dump 는 데이터 유형 (문자열-문자열)과이 문자열의 길이 (31 자)를 알려줍니다. 이것은 긴 프로그램 (스크립트)을 디버깅 할 때 매우 유용합니다!

끈 (31)

예를 들어 "var_dump ($ p3);"전에 $ p3를 1로 설정했습니다. 결과는 다릅니다 (아래 참조).

변수에 숫자를 추가하면

Int (1)

예 : 텍스트 파일 읽기 및 첫 문장 자르기

위에서 쓴 모든 내용은 예제로 잘 설명 될 것입니다. 예를 들어, 간단한 작업을 수행했습니다. 텍스트 파일을 열고 파일의 첫 번째 지점 (예 : 문장의 끝)을 찾은 다음 파일의 시작 부분부터이 지점까지 모든 것을 잘라냅니다.

한편으로 PHP를 한 번도 해본 적이없는 사람에게는 어려울 수 있습니다. 반면에 작업을 구성 요소로 나누고 디버깅 (var_dump)을 사용하면 훨씬 더 복잡한 것을 작성할 수 있습니다.

따라서이 작업을 여러 단계로 나누는 것이 논리적입니다.

  1. 텍스트 파일을 변수로 읽습니다.
  2. 텍스트 파일에서 포인트 찾기 (예 : 35 번째 문자와 같은 일련 번호 찾기)
  3. 문자열 조각을 잘라냅니다. 첫 번째 문자에서 한 지점 (서수)까지.
  4. 화면에 결과를 표시합니다.

1) 파일을 문자열로 읽기

텍스트 파일로-이 기사의 텍스트를 가져 와서 "text.txt"파일에 넣어 "e : \ openserver5.2 \ domains \ my-site.ru \"폴더 (즉, "index.php"로).

다음으로, 첫 번째 구성 요소를 해결하는 함수를 찾아야합니다. 파일을 변수로 읽어들입니다. 여기에서 "Google"이 많은 도움을줍니다. "PHP 읽기 파일" 과 같은 쿼리 가 작업을 수행하고 file_get_contents () 함수를 찾는 데 도움이됩니다.  이것이 바로 우리가 사용하는 것입니다!

그런데 이와 관련하여 //php.net 디렉토리 (훌륭한 도우미!)를 추천합니다.

$ p = file_get_contents ( 'text.txt'); // 파일을 변수로 읽습니다.

var_dump ($ p);

파일을 변수로 읽습니다.

결과적으로 모든 것이 올바르게 입력되면 "$ p"변수의 내용을 볼 수 있습니다. 여기에는 긴 텍스트 (줄)가 포함됩니다. 이것이 당신의 경우가 아니라면 어딘가에서 실수를 한 것입니다 ...

끈 (1278)

사실 이것은 우리의 초기 데이터입니다. 이제 기사에서 첫 번째 점 ( ".")을 찾아야합니다.

2) 포인트 기호 찾기

일반적으로 PHP에는 문자열 작업을위한 많은 기능이 있습니다. 이 예제에서 첫 번째 지점을 찾기 위해 " strpos (); " 를 사용하기로 결정했습니다 . 아래에서는 스크립트 코드의 전체 텍스트를 제공하지 않지만 함수 자체와 var_dump에 추가 한 변수 (포인트의 서수 번호가 표시되어야하는 변수, 즉 "$ t"및 변수 "$)에 주의를 기울여야합니다. p "-우리는 이미 첫 번째 단계에서 디버깅했으며 텍스트가 포함되어 있습니다).

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

여기서 : $ p-원하는 기호를 찾고있는 변수.

'.' -우리가 찾고있는 것.

포인트 검색

223은 상징이고 이것은 포인트입니다. 그녀를 찾았습니다!

3) 점으로 선 자르기

문자열 트리밍을 위해 PHP에는 substr ()과 같은 기능이 있습니다. 사용 방법은 매우 간단합니다. 예를 들어 보여 드리겠습니다.

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

어디:

$ p-잘라낼 문자열.

0-시작의 서수 문자 (원하는 조각의 시작);

$ t는 서수 끝 문자 (원하는 청크의 끝)입니다. 이 예에서 이것이 우리가 찾은 요점입니다.

결과적으로 전체 코드는 다음과 같습니다.

$ p = file_get_contents ( 'text.txt'); // 파일을 변수로 읽습니다.

$ t = strpos ($ p, '.'); // $ p 줄에서 첫 번째 점을 찾습니다.

$ s = substr ($ p, 0, $ t); // 0 번째 문자에서 포인트까지 문자열을 자릅니다.

var_dump ($ s);

라인을 잘라

이 단계 후에 "var_dump ($ s);" 의 변수도 변경했습니다  . ... 따라서 문자열이 223 자에 불과해 작아졌습니다. 우리는 실질적으로 문제를 해결했으며 많은 것이 남아 있지 않습니다 ...

끊다!

4) 문제가 해결되었습니다!

일반적으로 "var_dump"를 "echo"로 바꾸면 해결 된 예를 얻을 수 있습니다. 이제 "my-site.ru"를 열 때 텍스트 파일의 첫 번째 문장이 브라우저에 표시됩니다.

스크립트가 준비되었습니다!

"echo"는 데이터 유형 세부 사항을 인쇄하지 않습니다. 당신은 단지 선을 본다 ...

제안이 잘 렸습니다

4 단계-새로운 도전 ...

상상할 수 있듯이 위의 예에서 작업은 바다에 떨어지는 것입니다! 물론 한 줄로 더 우아한 방법으로 해결할 수 있습니다 (위에 표시된 모든 내용은 본질을 보여주는 예일 뿐이며 수백 줄의 스크립트를 작성하기 위해 이동하는 방법을 보여주고 훨씬 더 복잡한 문제를 해결합니다).

물론 포인트뿐만 아니라 특정 기호, 그림, 태그 등의 시퀀스도 검색 할 수 있습니다. 파일 (즉, 파일에서 초기 데이터 가져 오기)뿐만 아니라 다른 사이트의 페이지도 읽을 수 있고 사용자의 현재 URL을 읽고 사용자가 입력 한 양식에서 데이터를 가져올 수 있습니다.

따라서 하나의 큰 작업을 여러 개의 중간 작업으로, 중간 작업을 여러 개의 작은 작업으로, 작은 작업을 코드 줄과 특정 기능 (각각 수동으로 진행하고 디버그 할)으로 나누면 매우 큰 문제도 해결할 수 있습니다. 예, 처음에는 비뚤어지고 비스듬 해지더라도 가장 중요한 것은 스스로 할 것이며 학습에서 특정 수준에 도달하는 데 관심이 있다는 것입니다.

또한 새로운 라인이 나올 때마다 경험, 개발 속도 및 기술이 펌핑됩니다. 만약 그렇다면, 아마도 나는 이유 때문에이 글을 썼을 것입니다.

따라서 새 작업을 설정하고 계속 진행하십시오. 단계적으로 함수를 찾고, 변수를 변경하고, 작은 문제를 단계적으로 해결하십시오. 가장 중요한 것은 책과 교육 과정에 매달리지 않는 것입니다. 직접 시작하기 전까지는 배우지 않을 것입니다 ...

책과 코스 광고에서 그들이 말하지 않는 것

그들은 일반적으로 일주일 또는 한 달 (최대 2)에 프로그래밍을 가르치고 큰 급여와 높은 지위를 약속합니다. 그러나 그들은 몇 가지 중요한 것들을 추가하는 것을 완전히 잊었습니다.

1) 심한 눈의 피로

하루 종일 앉아서 코드를 살펴보고 편집하는 등. -이것은 하루 종일 영화를보고 의자에서 휴식을 취하는 것과는 거리가 멀다. 나를 믿지 마십시오. Word 또는 Excel 문서를 신중하게 편집하기 위해 적어도 반나절을 시도하십시오 (대략 유사).

2) 끊임없이 배워야 할 필요성

요즘에는 많은 직업에서 항상 배워야하지만 프로그래머는 10 배 이상입니다! 일반적으로 일반적으로 IT 영역은 매년 도약과 경계를 따라 발전하고 있습니다. (약 10 년 전에 인터넷은 도시에만 나타나기 시작했고 이제는 마을에서도 비트 코인에 대해 이야기합니다.) ...

3) 앉아있는 일

많은 분야에서 근무일의 일부를 "걷는"어딘가에서 보낼 수 있다면 프로그래머의 직장은 PC에만 있고 다른 곳은 없습니다 ... 그럼에도 불구하고 이러한 생활 방식은 시간이 지남에 따라 건강에 영향을 미치기 시작합니다. 손, 어깨, 눈 ...-하루가 끝날 무렵 그들은 매우 피곤해지기 시작합니다.

4) 일반 프로그래머의 급여가 항상 높은 것은 아닙니다.

경험을 얻을 때까지 다른 활동 영역에 비해 훨씬 더 많은 것을받지 못할 것입니다. 제 생각에는이 분야에서 너무 높은 급여의 시대가 지나가고 있습니다. 그러나이 분야의 훌륭한 전문가의 작업은 잘 지급됩니다!

5) 다른 사람의 문제를 해결하는 것은 지루합니다 ...

당신의 아이디어를 현실로 프로그래밍하고 "번역"하는 데 관심이 있다면, 이것은 다른 사람들의 문제를 해결하는 것이 흥미로울 것이라는 것을 전혀 의미하지 않습니다. 이것은 전혀 그렇지 않습니다! 때로는 코드를 파헤치는 것이 너무 지루하고 회색이되어 심지어 "howl" (내 생각에이 줄은 모든 사람이 이해하지 못할 것이라고 생각합니다) .

추신 : 현재 직장을 그만두고 프로그래머가 되려고 노력해야합니까?

매우 인기있는 질문 ... 특히 일부 프로그래머 범주의 매우 높은 연봉으로 인해.

한 번에 모든 것을 그만두는 것은 확실히 아닙니다 (적어도 제 관점에서는). 그것이 무엇이든, 당신이 결정하는 것이 무엇이든, 효과적으로 운동하고, 뇌를 부하하고, 새로운 것을 배우기 위해-사람은 하루에 2 ~ 2.5 시간을 넘지 않을 수 있습니다. (이것은 정말로 그렇기 때문에 당신은 주말에도 확인할 수 있습니다. 더 많은 것을 할 수 있습니다). 따라서 새로운 기술을 배우기 시작하려면 아침이나 저녁에 근무일이 끝날 때 한 시간을 떼어내어 하루의 일부를 "훔칠"수 있습니다.

성공하면 경험치 등을 얻을 수 있습니다. -휴가를 보내고 인턴으로 일자리를 구할 수 있습니다 (아마도 하프 타임), 모든 것을 좋아하는지 확인하고 운동하십시오 ...

또한 비오는 날을 위해 재정적 인 "베개"를 갖는 것은 불필요하지 않을 것입니다. 그렇지 않으면 당신이 결코 알지 못합니다. 갑자기 새로운 직업이 기대에 미치지 못할 것입니다. 적어도,이 접근 방식은 무언가 잘못되어도 어려운 삶의 상황에 빠지지 않을 것입니다.

*

글쎄, 이것으로 나는 나의 "매뉴얼"을 마친다. 주제 나 비판에 대한 추가 사항이 있으면 환영합니다 (댓글이 열려 있습니다).

모두 제일 좋다!