En este artículo te voy a dar mis recomendaciones para aprender a programar en PHP. Están basadas en mi experiencia después de muchos años de dedicarme a este lenguaje de programación tan extendido en en el desarrollo web.
Primero, me voy a detener en algunos aspectos puntuales de PHP. Luego, te recomendaré algunas fuentes de las cuales podés aprender y después te voy a proponer una secuencia de aprendizaje.
Este artículo está pensado para personas que recién se meten en el mundo de la programación. Si ya sabés programar y si dominás alguna tecnología en especial, tomá este artículo como una referencia. Estoy seguro que sabrás cómo capacitarte por tu cuenta partiendo de lo que ya sabés.
No más preámbulos, comencemos.
Contenido
- 1 ¿Qué es PHP y para qué sirve?
- 2 Dominio inicial de HTML, CSS y Javascript
- 3 ¿Aprender a programar con PHP? ¿Es conveniente?
- 4 PHP puede ser profesional… o no
- 5 Sobre las versiones de PHP
- 6 La versión actual
- 7 La dupla PHP + MySQL
- 8 El ecosistema de aplicaciones PHP
- 9 Aprender a programar en PHP: fuentes y libros
- 10 Orden sugerido de aprendizaje
- 11 Conclusiones
¿Qué es PHP y para qué sirve?
PHP (Hypertext Preprocessor) es un lenguaje de programación de servidor. Esto significa que se ejecuta y corre en un servidor web, como puede ser Apache o Nginx.
PHP es interpretado, es decir que, a diferencia de C ó de Java, no es necesario compilar el código para traducirlo a código máquina o binario. Otra diferencia es que PHP se ejecuta en cada petición que un usuario hace a un servidor. En este sentido, PHP nace, se ejecuta y muere, una y otra vez.
Con PHP es posible generar de forma dinámica páginas HTML, consultar bases de datos, leer y escribir archivos, entre muchas otras funcionalidades. En general, PHP se utiliza para el desarrollo de sitios webs como pueden ser CMS (gestores de contenido), sistemas e-commerce e intranets.
Más allá de que existen extensiones y módulos que lo adaptan para una innumerable cantidad de tareas, PHP no es un lenguaje de programación para crear videojuegos, animaciones, ni tampoco aplicaciones de escritorio.
Dominio inicial de HTML, CSS y Javascript
Es necesario que sepas y domines el lenguaje de marcado HTML5 para poder comenzar con PHP. HTML5 es fácil de aprender, pero no lo subestimes.
Si además sabés CSS, mejor. Y lo mismo ocurre con Javascript. En general, cuanto más conocimientos de programación web tengas, todo te será mucho más fácil para aprender PHP.
¿Aprender a programar con PHP? ¿Es conveniente?
Soy programador PHP desde hace 15 años. Es la herramienta que utilizo más a menudo y con la que más cómodo me siento trabajando. Sin embargo, estoy lejos de ser un fundamentalista de esta o de cualquier otra tecnología.
PHP no es un lenguaje de programación conveniente para aprender. Si nunca viste nada de programación en tu vida, lo ideal sería que empieces con lenguajes como C, Java o incluso Python. No es capricho mío nombrar esos. Son los que se utilizan en los cursos básicos en las universidades.
Hay algunos conceptos que son comunes a todos los lenguajes y que es lo mismo en cuál los aprendas. Me refiero a operadores, constantes, variables y secuencias de control.
Sin embargo, hay otros conceptos que no se pueden aprender en cualquier lenguaje. El manejo de la memoria, estructuras de datos (pilas, listas, colas y árboles) y programación orientada a objetos (POO).
Como programador, considero que estos conceptos son fundamentales para la formación de un desarrollador. Por lo tanto, si tenés tiempo y querés aprender a programar bien, te recomiendo primero C para todo lo básico, incluyendo estructuras de datos. Y luego Java (o Smalltalk ó C#), para aprender POO.
Ahora, eso es en la teoría, teniendo en cuenta que hay tiempo de sobra para estudiar y capacitarse. En la práctica esto no suele ser así. Por lo tanto, si estás necesitando aprender a programar rápido, PHP es una opción.
PHP puede ser profesional… o no
Como ocurre también con otros lenguajes, PHP se puede usar de forma profesional o… de forma amateur.
En internet verás muchos scripts hechos en PHP que dan miedo. Recordá que el hecho de que algo funcione no significa que esté bien hecho.
Por lo tanto, si tu idea es comenzar a programar en PHP, tendrás que hacerlo de la forma correcta (no te preocupes, más adelante te presento un libro que habla precisamente de esto).
Sobre las versiones de PHP
PHP fue creado en 1994 por Rasmus Lerdorf, un desarrollador danés. A lo largo de los años fue evolucionando en versión tras versión (yo me sumé al mundo PHP aproximadamente en la 4.4, en el 2005).
Durante muchos años, los desarrolladores PHP nos manejamos con la versión 5 y sus evoluciones. Los responsables del mantenimiento del lenguaje nunca se pusieron de acuerdo para cerrar la versión 6. Gran parte de los nuevos cambios que iban a incluir allí se terminaron añadiendo en la 5.3.
Después de años de decir que en cualquier momento podía salir PHP 6, finalmente se pusieron de acuerdo en no utilizar este número de versión y saltar directamente a la 7.
Por lo tanto, PHP 6 NO EXISTE. Vas a ver manuales que se quisieron adelantar al lanzamiento del lenguaje y hoy son motivo de burla y risa, puesto que explican una tecnología que en realidad, nunca vio la luz (al menos bajo ese nombre).
La versión actual
Al momento de escribir este artículo, PHP se encuentra en su versión 7.3. Si contratás algún hosting de mala calidad, seguramente vayas al panel de administración y veas que todavía corren PHP 5.4 (ó incluso PHP 5.3). Esto es un horror, puesto que estas versiones ya no tienen soporte de ningún tipo.
Si buscás un hosting que te garantice la última versión de PHP, te recomiendo Digital Ocean. Digital Ocean te permite crear Droplets que son servidores VPS donde podés instalar el software que necesites. Si te interesa probar Digital Ocean, te dejo un enlace que te permitirá acceder a US$ 200 de crédito durante 60 días.
La dupla PHP + MySQL
MySQL es el motor de base de datos actualmente perteneciente a Oracle. Permite crear estructuras para almacenar registros, editarlos, eliminarlos y realizar complejas consultas de búsqueda.
Lo cierto es que para el programador promedio, PHP sin MySQL no sirve para demasiado. Todas las grandes aplicaciones de PHP se ven potenciadas con el uso de una base de datos detrás. Quedan exceptuadas los módulos, extensiones y librerías de los que uno generalmente se sirve a la hora de crear aplicaciones para usuarios.
Por lo tanto, si el plan es aprender PHP, habrá que considerar que en realidad será necesario aprender el combo PHP + MySQL.
El ecosistema de aplicaciones PHP
El lenguaje PHP ha sido utilizado para dar origen a una gran cantidad de aplicaciones web. Si implementás alguna de ellas y necesitás hacer alguna modificación o mejora, será necesario que programes en PHP.
Dentro de este ecosistema se encuentran los frameworks, que son sistemas que incluyen módulos pre-armados para crear aplicaciones de todo tipo. Los más populares son Laravel, Symfony, CakePHP, ZendFramework, Yii y CodeIgniter.
Por otro lado, se encuentran los sistemas e-commerce, que permiten crear sitios webs de ventas. Entre ellos se encuentran Magento, OpenCart, PrestaShop y OsCommerce.
Un mundo aparte es Drupal, un CMS que también se puede convertir en e-commerce o en cualquier tipo de aplicación. No hay medias tintas con Drupal: o se ama o se odia.
Otro mundo aparte es WordPress. Este CMS se abrió de la comunidad PHP hace tiempo. Esto quiere decir que no adoptó los últimos estándares, aunque está hecho en PHP. No le ha ido nada mal. Se estima que hay 75.000.000 de sitios webs que corren WordPress. Y en este momento, estás leyendo uno de ellos.
El ecosistema PHP no termina ahí. Hay muchas más aplicaciones de todo tipo. Es solo cuestión de investigar y buscar.
Aprender a programar en PHP: fuentes y libros
¿Cómo aprender a programar en PHP? A continuación voy a mencionar las formas clásicas de meterse en este mundo. Como verás, no voy a descartar ninguna forma, puesto que en mi opinión, todo suma a la hora de aprender.
Cursos presenciales
Si encontrás un instituto que dé cursos de PHP, ese puede ser un primer paso para comenzar. No te puedo recomendar ninguno en particular porque no tengo referencias.
Cursos online
Hay muchos cursos online sobre PHP. Las plataformas Udemy y Domestika, tienen varios y cubren los temas básicos.
Si vas a empezar desde cero, el más recomendable es Introducción al desarrollo web con PHP de Domestika. Dura 4 horas y cubre los temas más importantes. Está a cargo de Ignacio Cruz Moreno, programador web que participa activamente en el mundo WordPress.
Lo bueno de los cursos online es que suelen ser más económicos que los presenciales y además, claro, los podés hacer desde tu casa, en los horarios que prefieras.
Plataformas de aprendizaje de lenguajes de programación
CodeAcademy ofrece un curso de PHP desde lo más básico. Está en inglés y tiene esa forma tan particular de explicar los conceptos que no comparto. Sin embargo, es una opción más para el que le guste ese formato de aprendizaje.
Libros
Cualquier libro de una editorial reconocida sobre PHP te puede ayudar. No obstante, yo te voy a recomendar dos:
- PHP and MySQL Web Development, de Luke Welling y Laura Thompson: un libro que cubre todos los conceptos básicos de PHP y más. Hay ediciones nuevas con actualizaciones sobre PHP7. Lo podés encontrar en Book Depository, aunque tiene mejor precio en Amazon.
- PHP The Right Way, de Phil Sturgeon y Josh Lockhart. Este no es exactamente un libro para aprender sino más bien una guía sobre cómo utilizar PHP de la forma correcta. Como te comentaba al principio, PHP se puede usar de forma profesional o amateur. Siguiendo los lineamientos de este libro, es fácil estar siempre del lado correcto. Lo mejor de este libro es que se puede descargar gratis (Descargar PHP The Right Way)
Hace unos años solía recomendar PHP In Action, un gran libro publicado por Manning, que explicaba temas avanzados. Pero lamentablemente tengo que admitir que ya ha quedado desactualizado.
Orden sugerido de aprendizaje
A continuación te voy a contar lo que yo creo que una persona que llega al mundo PHP debería ir aprendiendo, en orden.
Quiero aclarar solamente que el orden es sugerido y que no significa que cuando se comienza una etapa, se debe dejar para siempre la anterior. No, todo lo contrario. Cada etapa que describo a continuación se apoya en la anterior. Esto se trata más bien de ir incorporando lo nuevo, sin dejar lo ya aprendido atrás.
En cuanto a los tiempos, tenés que entender que esto te va a llevar años. No se puede aprender a dominar una tecnología al 100% y de forma profesional en dos meses.
1. Conceptos básicos del lenguaje
Lo primero a aprender es la sintaxis y el uso de las variables y constantes. Los operadores, y las estructuras de control de flujo. Todas las sentencias condicionales y todos los bucles.
Además, es necesario aprender el conjunto completo de funciones que tiene PHP. Algunas no las vas a usar en lo inmediato, pero es necesario que al menos, sepas que existen.
Es también aquí cuando hay que aprender una parte fundamental: el trabajo con HTML y con formularios en particular. Envíos por POST y por GET. Manejo de archivos y sesiones.
También es importante en esta etapa dar los primeros pasos con MySQL. Aprender a crear tablas, insertar, actualizar, eliminar y a hacer consultas básicas.
La idea de esta etapa es poder dominar la programación estructurada en PHP, antes de meterse a trabajar con los objetos.
2. Programación orientada a objetos
Aprender objetos con PHP no es lo mejor, pero eso ya lo expliqué antes. Si ya estás aprendiendo PHP, entonces hay que intentar dominar el tema de la mejor manera posible.
Clases, clases abstractas, interfaces, objetos, traits son los temas principales. La forma en que se vinculan los objectos a tavés de herencia y composición. Y algunos patrones de diseño simples.
Como comentaba al principio, al ver estos nuevos temas, es necesario aplicar y seguir aprendiendo los temas de la primera etapa. Hay que combinar lo que ya sabés, con lo que estás aprendiendo.
3. Crear un AMB con objetos y sin usar frameworks
Una buena manera de consolidar lo aprendido en las dos etapas anteriores es desarrollar un ABM con MySQL. Un ABM es un sistema de altas, bajas y modificaciones. Una base de datos de algo que quieras almacenar.
Pueden ser películas, series, libros, discos, equipos de fútbol, personajes, o lo que se te ocurra.
La idea es armar un pequeño sistema web donde puedas administrar toda esta información. Para ello, tendrás que crear formularios y mostrar la información en tablas (o de la forma que más te guste).
Recomiendo el uso de objetos para este programa. Y no creas que tiene que salir todo de tu cabeza. Pensá algunas partes, pero por sobre todas las cosas, investigá cómo conviene realizarlo. Lo que encuentres en internet, adaptalo a tus necesidades.
Las siguientes etapas las podés hacer en paralelo y comenzar por la que más te interese. Así que las denominaré con las letras a, b y c.
4. a) Aprender un framework
Hoy en día la mayoría de las aplicaciones a medida se hacen utilizando un framework como base. Por este motivo, tendrás que aprender a dominar uno. Todos los programadores tenemos nuestro framework predilecto.
Yo no te voy a recomendar ninguno en especial. Descubrí por tu cuenta cuál es el que más te gusta.
Te recuerdo que las opciones son: Laravel, Symfony, CakePHP, ZendFramework, Yii y CodeIgniter. Hay otros, pero te recomiendo que comiences con alguno de esos.
ZendFramework y Symfony son los más profesionales y pueden intimidarte. Laravel es el más popular en este momento. CodeIgniter era hasta hace un tiempo uno de los más fáciles de aprender.
4. b) Aprender un CMS
En el mundo de los CMS de PHP tenemos a Drupal, WordPress, Joomla y PyroCMS, entre otros.
En WordPress y Drupal encontrarás dos mundos completamente opuestos. Drupal es prácticamente una tecnología de nicho. Esto significa que a veces es difícil encontrar un programador Drupal, lo que hace que sean más caros. Pero eso depende del mercado laboral también.
Ante la duda, aquí te recomiendo que te metas en el mundo WordPress, simplemente porque es el más extendido. Al principio prácticamente no vas a tener que programar nada. Con el tiempo, sería bueno que empieces escribir código ya sea editando plugins y temas o creando nuevos.
4. c) Aprender un sistema e-commerce
Si estás pensando en dedicarte de forma profesional a PHP, entonces es bueno que conozcas a fondo un sistema e-commerce. Entre las posibilidades están WooCommerce (que es una extensión de WordPress), Magento, OpenCart y PrestaShop, entre otros.
Magento, al igual que Drupal, es un mundo aparte y suele haber jugosas ofertas laborales al respecto.
5. PHP Profesional
Llegado este punto se supone que ya tendrás un dominio importante del lenguaje PHP. Lo habrás utilizado solo, con MySQL y como motor de frameworks, CMS y de e-commerce.
Lo que viene es aprender la parte más avanzada del lenguaje o vinculada a él. Entre estos temas se encuentran Composer y la creación de paquetes que respeten estándares, Phing e integración continua, Xdebug, sistemas de caching, testing con PHPUnit y otras herramientas.
Seguramente descubras algún otro aspecto de PHP que no estoy mencionando aquí. Algún otro sistema, módulo o extensión. Si algo de eso te interesa, adelante con eso. Te hará aprender más a fondo el lenguaje.
Gran parte de los temas que menciono aquí los podés encontrar en PHP: The Right Way, el libro que mencionaba antes.
Conclusiones
No me quiero extender más. Hasta aquí te he mostrado un posible camino para meterte en el mundo de la programación en el lenguaje PHP. Espero que este artículo te haya ayudado.
Si tenés alguna duda, dejame un comentario.
¡Gracias por tomarte el tiempo de leerme!
Fuente foto:
Gracias por este post de recomendaciones! voy a seguir estos pasos o estaciones de aprendizaje para enamorarme nuevamente del mundo de la programación.
Saludos