Cómo empezar a programar en PHP desde cero (usted mismo). ¿Por qué fracasan muchas personas? Experiencia personal ... ensayo y error.

¡Buen día!

Probablemente, a cada uno de nosotros, después de haber visto películas sobre piratas informáticos y programadores geniales, le gustaría comprender al menos un poco este asunto. Y notaré que no, no, y me lanzan preguntas similares (aunque sé programar, pero estoy lejos de ser un programador profesional. Y a personas alejadas del ámbito informático esto no se les puede explicar nada ...) .

En general, ahora hay bastantes cursos de formación, libros y artículos diferentes sobre este tema en Internet. Sin embargo, cuando yo mismo intenté (aprender el idioma de ellos) desde las primeras líneas de código "¡hola mundo!" en PHP para pasar a algo más serio y aplicable en la vida: ¡nada funcionó! Como si hubiera algún vacío o laguna en estos libros: no está claro cómo pasar de lo básico y el conocimiento de algunas funciones a algo más ...

Con el tiempo, logré entender PHP al nivel de escribir mi propio CMS simple (CMS es un motor para un sitio web)  y un artículo me ayudó con esto (desafortunadamente ese recurso ya no existe en la red, sin embargo, estoy muy agradecido con ese autor por este "impulso "en la dirección deseada).

Basado en ese artículo y mi visión, bosquejaré esta nota para aquellos que realmente quieren comenzar a programar en PHP, pero están fallando. En general, tengo mi propia opinión muy radical sobre este punto de vista, por lo que aquí no encontrará consejos sobre libros y cursos, solo un vistazo a qué hacer exactamente según su experiencia ...

*

Dónde empezar a programar (en PHP)

PASO 1 - pasatiempo, deseo de resolver algún problema

Quizás lo más importante sea "prenderse fuego" con alguna tarea (sin esto, es muy difícil estudiar algo nuevo). Por ejemplo, en un momento realmente necesitaba (¡MUY!) Para que un script PHP pudiera leer un determinado archivo de texto y cortar algunas partes de él de acuerdo con mi plantilla. Por un lado, todo parece simple, por otro lado, para una persona que nunca ha escrito 2 líneas de código por su cuenta, ¡la tarea es extremadamente difícil!

Tuve que comprar este primer script ... Pero luego necesité otro similar (y luego otro). Y aquí, aquí, me dejé llevar por PHP ... Por cierto, después de algunas noches podía escribir esos scripts yo mismo, después de haber sufrido durante una hora o dos ...

Bueno, en general, en general, quiero señalar que si no hay interés en la programación, comenzar rápidamente el estudio, como regla, terminan rápidamente. Y me temo que ningún curso y profesores lo arreglarán.

Hasta que comience a escribir el código usted mismo y vea lo que se muestra, lo que hay en sus variables y cómo cambian los datos en ellas cuando usa algunas funciones, no puede comenzar a programar (¡esta es solo mi opinión!). Ninguna cantidad de libros "inteligentes" le ayudará.

¡Es bueno soñar!

Por cierto, muchos principiantes (incluido yo mismo una vez) tienen un gran error: pasan mucho tiempo preparándose, descargando varios cursos y videos. Luego lo miran todo, lo estudian, lo escriben en cuadernos, etc. Pero no hacen lo más importante, no comienzan a escribir el código ellos mismos y miran cómo se ejecuta ...

Bien, ahora más cerca de la práctica (estoy terminando la filosofía).

PASO 2: instalación de las herramientas Denwer, Open Server, Notepad ++, Total Commander. ¡Comienzo!

No tiene que comprar hosting para escribir sus primeros scripts y experimentos. Es mucho mejor utilizar un servidor web local gratuito: Denwer o Open Server (yo personalmente recomiendo Open Server, y aquí es donde les muestro cómo y qué hacer) . Por cierto, si elige  Open Server , la versión mínima será suficiente para comenzar (nota: solo hay varias de ellas en el sitio, con diferentes bibliotecas).

Para la marcación directa de código (texto) es conveniente utilizar especial. Bloc de notas con resaltado de sintaxis. Estoy impresionado por Notepad ++ a este respecto. Bloc de notas simple, liviano, gratuito y conveniente (muchas más funciones en comparación con el bloc de notas integrado de Windows).

Hola Mundo! (Bloc de notas ++)

Bueno, también recomendaría usar algún tipo de comandante. En Explorer es muy incómodo navegar por diferentes carpetas y abrir varios archivos a la vez (te pierdes y olvidas dónde está). Recomendaría elegir Total Commander (un comandante muy conveniente y con muchas funciones).

Primer guión: ¡preparación!

1) Después de descargar e instalar OpenServer, debería tener una carpeta con el mismo nombre en la ubicación seleccionada en el disco - en mi caso es "e: \ openserver5.2 \" . Esta carpeta debe contener el directorio "dominios"; en él, debe crear una carpeta con el nombre de su sitio (por ejemplo, "my-site.ru" , ejemplo a continuación).

Recuerde el nombre de esta carpeta, es esta carpeta la que deberá escribir en la barra de direcciones del navegador al escribir scripts.

OpenServer: ejemplo de creación de un "sitio" (local)

2) A continuación, cree un archivo "index.php" en el directorio "my-site.ru" e ingrese las siguientes líneas en él:

echo '¡Hola mundo!' ;

Hola Mundo! ¡El primer "programa"!

Guarda el archivo.

Nota: si alguien está trabajando con php por primera vez, preste atención al comando 'echo': significa mostrar todo lo que está después entre comillas.

3) Luego inicie OpenServer (o reinícielo si lo tenía en ejecución). También cierre y vuelva a abrir sus navegadores. Esto es necesario para que OpenServer pueda cambiar algunos archivos en su Windows: para que nuestro sitio creado "my-site.ru" se abra en su navegador.

OpenServer: inicia un servidor web local

En general, si OpenServer se inició con éxito, debe iluminarse una casilla de verificación verde en su bandeja (si es roja o amarilla, intente reiniciarlo nuevamente. En algunos casos, debe ejecutarlo como administrador. En cualquier caso, la casilla de verificación roja no debería funcionar más. permitirá ...) .

OpenServer: en funcionamiento

4) En realidad, queda escribir nuestro " my-site.ru " (sin comillas) en la barra de direcciones del navegador , y mostrará un saludo del archivo index.php creado (ver la pantalla a continuación).

¡Trabajos!

5) Tenga en cuenta que si en el primer ejemplo mostramos inmediatamente una línea de texto, en el siguiente ejemplo cambié ligeramente el código. Como regla general, al desarrollar scripts, se trata de variables que pueden contener varios datos: cadenas, números, etc.

Creemos una variable ("$ p") y pongamos nuestro texto en ella. Vea el ejemplo a continuación:

$ p = '¡Hola mundo!';

echo $ p;

Primera variable

Como se muestra a continuación, ¡el resultado será el mismo! Aquellos. el navegador también imprimirá nuestra cadena. Sin embargo, el código es ligeramente diferente: ahora el texto está contenido en la variable "$ p", que generamos ...

Visualización de datos de una variable

6) Otro ejemplo ilustrativo a continuación. Esta vez, creé dos variables "$ p" y "$ p2", y luego concatené estas cadenas y las puse en la variable "$ p3". Tenga en cuenta que las líneas están conectadas mediante un simple punto.

$ p = '¡Hola mundo!';

$ p2 = '¡Soy yo!';

$ p3 = $ p. $ p2;

echo $ p3;

Otro ejemplo (dos variables)

El resultado es predecible ...

Trabajos...

Llamo su atención sobre el hecho de que se recomienda conducir todos los ejemplos manualmente para una comprensión y un dominio más rápidos.

PASO 3: dividir la tarea en sus componentes. Depurando cada paso

Quizás este es el paso más importante para comenzar a programar, por el simple hecho de comenzar este artículo ...

No importa cuán difícil sea la tarea que desea resolver, se puede dividir condicionalmente en tres etapas:

  1. obtención de datos iniciales (entrada de datos);
  2. transformación de datos;
  3. salida de datos: a la pantalla, o simplemente a una variable. (vea la captura de pantalla a continuación: dividí condicionalmente uno de los ejemplos del artículo en estos tres pasos, para que quede claro de qué se trata)

¿En qué etapas se puede dividir el guión?

Como regla general, las etapas de obtención y transformación de datos son las que causan la mayor complejidad  . Y muchos principiantes no tienen idea de cómo escribir código de 100 líneas sin confundirse o equivocarse en ellos.

De hecho, después de cada línea de código, puede ver lo que tiene en las variables. Y gradualmente, agregando una línea de código a la vez y observando cómo cambian las variables, llévelas a la forma deseada (¡y resuelva el problema!). Para esto, PHP tiene funciones maravillosas "var_dump ($ p);" y "print_r ($ p);".

¡Y para los principiantes, recomiendo usarlos todo el tiempo! Sí, así, programar es a veces algo tan aburrido ...

Consideraré un ejemplo a continuación.

Imagínese, no sabe lo que tiene en la variable "$ p3" (en el código, en el ejemplo siguiente, ve la línea que está cargada en ella y, en teoría, debería estar allí. Pero en problemas reales más complejos: esto no siempre sucede, la variable puede contener un desorden completo en lugar de la línea requerida ...).

Entonces, para ver qué hay en la variable, simplemente inserte el comando "var_dump ($ p3);" después (y guarde el archivo).

Ejemplo de var_dump

Como resultado, en el navegador (cuando se actualiza la página), verá que se muestra "cadena (31) ....". Aquellos.  var_dump le dijo el tipo de datos (cadena - una cadena) y la longitud de esta cadena (31 - caracteres). ¡Esto es muy útil al depurar programas largos (scripts)!

cuerda (31)

Como ejemplo, antes de "var_dump ($ p3);" configuré $ p3 en 1. El resultado es diferente (ver más abajo).

Si agrega un número a la variable

Int (1)

Ejemplo: leer un archivo de texto y recortar la primera oración

Todo lo que escribí arriba estaría bien explicado con un ejemplo. Como ejemplo, tomé una tarea simple: abrir un archivo de texto, encontrar el primer punto en él (es decir, el final de una oración) y cortar todo desde el principio del archivo hasta este punto.

Por un lado, puede parecer difícil para alguien que nunca ha hecho PHP. Por otro lado, al dividir la tarea en componentes y usar la depuración (var_dump), puede escribir cosas aún más complejas ...

Entonces, es lógico dividir esta tarea en varias etapas:

  1. leer un archivo de texto en una variable;
  2. encontrar un punto en un archivo de texto (es decir, averiguar su número de serie, por ejemplo, el carácter 35);
  3. cortar un trozo de cuerda: desde el primer carácter hasta un punto (hasta su número ordinal).
  4. mostrar el resultado en la pantalla.

1) Leer un archivo en una cadena

Como archivo de texto: tomé el texto de este artículo y lo puse en el archivo "text.txt", que copié en la carpeta "e: \ openserver5.2 \ domains \ my-site.ru \" (es decir, lo puse junto a con "index.php").

A continuación, debe encontrar una función para resolver el primer componente: leer el archivo en una variable. Aquí es donde "Google" ayuda mucho: una consulta como "PHP leyendo un archivo" hace su trabajo y ayuda a encontrar la función  file_get_contents () - ¡eso es lo que usamos!

Por cierto, en este sentido, recomiendo el directorio //php.net (¡una gran ayuda!).

$ p = file_get_contents ('texto.txt'); // lee el archivo en una variable

var_dump ($ p);

Leemos el archivo en una variable

Como resultado, si todo se ingresa correctamente, veremos el contenido de la variable "$ p": contendrá un texto largo (línea). Si este no es su caso, se cometió un error en alguna parte ...

cuerda (1278)

De hecho, estos son nuestros datos iniciales. Ahora necesitamos encontrar el primer punto (".") En el artículo.

2) Encontrar símbolo de punto

En general, PHP tiene muchas funciones para trabajar con cadenas. Para encontrar el primer punto en este ejemplo, decidí usar " strpos (); ". A continuación no doy el texto completo del código del script, sin embargo, preste atención a la función en sí y a qué variable agregué a var_dump (aquella en la que debería aparecer el número ordinal del punto, es decir, "$ t", y la variable "$ p "- ya lo hemos depurado en el primer paso, contiene el texto).

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

donde: $ p - la variable en la que buscamos el símbolo deseado;

'.' - el que estamos buscando.

Búsqueda de puntos

223 es un símbolo, este es un punto. ¡La encontramos!

3) Cortar línea a punto

Para recortar cadenas, PHP tiene una función como substr (). Es muy sencillo de usar, te lo mostraré con un ejemplo:

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

Dónde:

$ p - la cuerda que cortaremos;

0 - carácter ordinal del comienzo (el comienzo de la pieza deseada)

$ t es un carácter final ordinal (final del fragmento deseado). En nuestro ejemplo, este es el punto que encontramos.

Como resultado, el código completo se verá así:

$ p = file_get_contents ('texto.txt'); // lee el archivo en una variable

$ t = strpos ($ p, '.'); // busca el primer punto en la línea $ p

$ s = substr ($ p, 0, $ t); // corta la cuerda desde el 0º carácter hasta el punto

var_dump ($ s);

Corta la linea

Tenga en cuenta que también cambiamos la variable en "var_dump ($ s);" después de este paso  . ... Por lo tanto, vemos que nuestra cadena se ha vuelto pequeña, solo 223 caracteres. Prácticamente solucionamos el problema, no queda mucho ...

¡Cortar!

4) ¡El problema está resuelto!

En general, reemplazando "var_dump" con "echo" , obtenemos un ejemplo resuelto. Ahora, la primera oración del archivo de texto se muestra en el navegador al abrir "my-site.ru".

¡El guión está listo!

Tenga en cuenta que "echo" no imprime los detalles del tipo de datos. Ves solo una línea ...

La propuesta fue cortada

PASO 4 - nuevo desafío ...

Como puede imaginar, la tarea del ejemplo anterior es solo una gota en el océano. Por supuesto, podría resolverse en una línea y de formas más elegantes (todo lo que se mostró arriba es solo un ejemplo para mostrar la esencia y cómo puedes moverte para crear un script con cientos de líneas y que resuelve problemas mucho más complejos).

Por supuesto, puede buscar no solo un punto, sino también secuencias de ciertos símbolos, imágenes, etiquetas, etc. Puede leer no solo el archivo (es decir, obtener los datos iniciales de él), sino también las páginas de otros sitios, leer la URL actual del usuario, obtener datos del formulario que el usuario completa, etc.

Por lo tanto, dividiendo una tarea grande en varias medianas, y las medianas en varias pequeñas y las pequeñas en líneas de código y funciones específicas (cada una de las cuales revisará y depurará manualmente), puede resolver incluso problemas muy grandes. Sí, aunque sea torcido y oblicuo al principio, pero lo principal es que lo harás tú mismo y tendrás interés en alcanzar un cierto nivel de aprendizaje.

Además, con cada nueva línea, aumentará su experiencia, velocidad de desarrollo y habilidades. Y si es así, quizás escribí estas líneas por una razón ...

Entonces, establezca nuevas tareas y siga adelante: busque funciones paso a paso, cambie variables, resuelva pequeños problemas paso a paso. Lo principal es no obsesionarse con los libros y los cursos de formación; hasta que no empieces a hacerlo tú mismo, no aprenderás ...

De qué no hablan en los anuncios de libros y cursos.

Por lo general, prometen enseñarle programación en una semana o un mes (máximo 2), prometen grandes salarios y un alto estatus. Sin embargo, se olvidan por completo de agregar algunas cosas importantes, que diré a continuación ...

1) Gran fatiga visual

Sentado todo el día y ordenando el código, editándolo, etc. está lejos de ser lo mismo que ver una película todo el día, relajándose en una silla. No me crea, intente al menos medio día editar cuidadosamente un documento de Word o Excel (aproximadamente comparable).

2) La necesidad de aprender constantemente

Hoy en día, en muchas profesiones siempre es necesario aprender, pero los programadores, ¡diez veces más! En general, en general, la esfera de las tecnologías de la información avanza cada año a pasos agigantados, solo manténgase al día (recuerde, hace unos 10 años, Internet comenzó a aparecer solo en las ciudades, y ahora incluso en los pueblos se habla de bitcoins ...) ...

3) Trabajo sedentario

Si en muchas áreas puedes pasar parte de tu jornada laboral en algún lugar "caminando", entonces el lugar de trabajo del programador es solo en la PC, y en ningún otro lugar ... Esta forma de vida, sin embargo, con el tiempo comienza a afectar la salud: atrás, manos, hombros, ojos ... - al final del día empiezan a cansarse mucho.

4) Los salarios de los programadores ordinarios no siempre son altos

Hasta que gane experiencia, lo más probable es que no reciba mucho más en relación con otras áreas de actividad. En mi opinión, la era de los salarios demasiado altos en este ámbito está pasando (¿superada?). Sin embargo, ¡el trabajo de buenos especialistas en esta área está bien remunerado!

5) Es aburrido resolver los problemas de otras personas ...

Si está interesado en programar y "traducir" su idea en realidad, esto no significa en absoluto que sea interesante para resolver los problemas de otras personas, ¡esto no es en absoluto! A veces, profundizar en el código se vuelve tan aburrido y gris ... que incluso un "aullido" (creo que no todos entenderán estas líneas) .

PD : ¿Deberías dejar tu trabajo actual e intentar convertirte en programador?

Una pregunta muy popular ... Especialmente a raíz de los salarios muy altos de algunas categorías de programadores.

Tirar todo de inmediato, definitivamente no (al menos, mi punto de vista). Sea lo que sea, y lo que decida, para ejercitarse de manera efectiva, cargar el cerebro y aprender algo nuevo: una persona no es capaz de más de 2 a 2,5 horas al día (esto es realmente así, puede comprobarlo usted mismo, incluso en un fin de semana puede hacer más). Por lo tanto, para comenzar a aprender su nuevo oficio, es muy posible reservar una hora por la mañana o por la noche al final de la jornada laboral, en algún lugar para "robar" parte del día libre.

Si tienes éxito, ganarás algo de experiencia, etc. - puedes intentar tomarte unas vacaciones y conseguir un trabajo como pasante (quizás medio tiempo), ver si te gusta todo y hacer ejercicio ...

Además, no será superfluo tener una "almohada" financiera para un día lluvioso, de lo contrario nunca se sabe, de repente un nuevo trabajo no cumple con las expectativas. Al menos, este enfoque no lo llevará a una situación de vida difícil si algo sale mal ...

*

Bueno, en esto termino mi "manual". Si tiene alguna adición sobre el tema o crítica, son bienvenidos (los comentarios están abiertos).

¡Todo lo mejor!