Si no le importa la comparación de PHP con otros lenguajes y los inconvenientes de usarlo, desplácese hacia abajo a la sección “Introducción a PHP” a continuación.
Historia y consideraciones
He sido desarrollador de PHP durante más de 12 años, y ahora estoy avanzando hacia tecnologías más rápidas. Actualmente estoy completando mi fase de aprendizaje de Hack, las mejoras de Facebook a PHP que lo hacen más tipado y más rápido.
Si va a comenzar a aprender PHP, vale la pena ya que muchos proyectos se desarrollan en PHP, aunque debe tener muy en cuenta sus limitaciones. Por ejemplo, las matrices PHP no son matrices verdaderas. Tanto las matrices indexadas como las asociativas están diseñadas utilizando listas doblemente vinculadas junto con tablas hash. PHP agrega muchos gastos indirectos innecesarios no solo a las matrices; agrega gastos generales a muchas de sus características, ya que su desarrollador objetivo es uno que tiene menos habilidades. Eso permite a los desarrolladores menos calificados completar gran parte del trabajo para ellos.
C es el lenguaje más rápido que existe, ya que se compila directamente en ensamblador sin inflar el lenguaje con características para hacer todo por usted. (Según tengo entendido) Después de eso, C ++ es el siguiente más rápido. Aquí hay algunas listas para comparar las diversas tecnologías.
Fuente de las dos imágenes anteriores: ¿Qué programas son más rápidos?
Ahora usaré C / GCC como punto de referencia contra PHP. Elegí C porque es el lenguaje más rápido posible.
Fuente: C gcc vs PHP | Juego de Benchmarks de lenguaje de computadora
Comenzando con PHP
PHP sigue siendo un gran lenguaje para conocer simplemente porque muchos programas populares están escritos en PHP, como WordPress, Drupal e incluso Facebook. (Aunque este último está escrito en Hack, las mejoras de Facebook a PHP. Se ejecuta en HHVM). PHP estándar no puede ejecutar Hack. Necesita HHVM (generalmente en un sistema basado en Debian como Ubuntu) para que Hack funcione. Aunque necesitará hacer algunas cosas para habilitar Hack, como se discutió en el sitio web de Hack.
Aprenda PHP estándar ahora mismo, y pase a Hack y HHVM más adelante para que pueda comprender completamente los conceptos básicos del lenguaje. Si bien hay muchos tutoriales geniales para aprender sobre el idioma, te daré algunos consejos en lugar de decirte dónde encontrarlos. La siguiente es una lista de lugares para aprender los requisitos básicos para seguir su camino.
- Comprende lo que PHP puede y no puede hacer. PHP: Primeros pasos – Manual
- Aprenda la sintaxis del lenguaje de estilo C mientras PHP la implementa. PHP tiene un tipo débil, por lo que no necesita lidiar con los tipos tanto como en otros idiomas. ( Si conoce un lenguaje de estilo C, como Javascript, entonces ya comprenderá la sintaxis básica de PHP. Como desarrollador de PHP, aprendí fácilmente JS en aproximadamente un día simplemente por esa razón. Eso no quiere decir que sea exactamente igual. Hay algunas diferencias, aunque la mayor parte de la sintaxis sigue siendo la misma).
Eche un vistazo a la guía de referencia del lenguaje para PHP. No tiene que leerlo de principio a fin. Simplemente hojearlo según sea necesario. Referencia idiomática
- Comprender las medidas de seguridad adecuadas. ¡Siempre filtra la entrada y escapa de la salida! Nunca confíes en el usuario. Todo está contaminado y su sitio siempre está bajo ataque. Nos guste o no, todos son tu enemigo. Defiéndete y asegúrate de que no infrinjan tu código, no roben la información de tu base de datos ni utilicen tu sitio como sitio web de phishing. SIEMPRE use PDO para la interacción DB. Aprenda a realizar correctamente una transacción preparada usando? o titulares de lugares nombrados. Seguridad – Manual
La Guía de prueba de OWASP es una lectura obligatoria para cualquier desarrollador web serio. Incluso si no te tomas en serio tu trabajo, léelo de todos modos. Sí, léalo de principio a fin y comprenda a qué se enfrenta. OWASP Testing Project <- ¡Completamente gratis!
- PHP tiene una extensa API llena de toneladas de funciones y objetos para trabajar con innumerables casos de uso. Cuando necesite saber cómo hacer algo, el Manual PHP probablemente tendrá una función u objeto para trabajar con lo que necesita saber. Referencia de funciones
- Obtenga ayuda de un IDE. Cuando está programando en un nuevo idioma, los IDE pueden ofrecer muchas sugerencias para comenzar. También ayudan a mantener su código organizado, buscable y sintácticamente correcto. Mi favorito personal es Eclipse para PHP. Es un proyecto FOSS disponible en Eclipse para desarrolladores de PHP
- Si desea saber qué están estudiando otros desarrolladores, consulte la Guía de estudio de certificación de Zend. No es gratis, aunque le dará mucha información sobre el desarrollo de programas de calidad. Incorporando seguridad en sus aplicaciones PHP
- Los algoritmos son parte de cada idioma. Un algoritmo es solo un código que toma la entrada y da una salida. Cuanto más rápido se procesen los datos, mejor. En resumen, todo lo que construyas tendrá múltiples algoritmos trabajando juntos para que tu proyecto funcione. Independientemente de lo que le diga al idioma, debe darle un algoritmo.
Dicho esto, querrás saber acerca de los algoritmos más rápidos disponibles para completar la tarea en cuestión. También querrá saber cómo calcular el tiempo de ejecución de su algoritmo utilizando la notación asintótica. Dije que no le recomendaría ningún tutorial, aunque hay tantos algoritmos conocidos que simplemente necesita buscarlos en línea para conocerlos. Los más importantes son el tipo de fusión, la selección rápida y la búsqueda binaria. Son sus conceptos básicos que puede adaptar a tantos otros algoritmos sin arruinar sus tiempos de ejecución. A continuación se presentan las mejores fuentes que conozco sobre cómo aprender sobre algoritmos de forma gratuita.
Algoritmos (Te enseña en JS)
Coursera.org (Te enseña de manera agnóstica de idiomas)
En cuanto a la notación asintótica, no dejes que te asuste. Puede que al principio le resulte un poco complicado, aunque la forma más fácil de pensar es que Big-O significa que su código se ejecuta a la velocidad indicada como el peor de los casos. Big-Omega significa que significa la velocidad mínima de carrera, y Big-Theta significa que no puede correr más rápido o más lento que la velocidad de carrera definida. Dejaré el resto de la explicación a los profesores universitarios que escribieron escribieron los tutoriales gratuitos anteriores.