¿Qué debe saber un desarrollador de PHP?

Esto es lo que nosotros (las empresas para las que trabajo o para las que trabajé en Alemania) esperamos un desarrollador junior de entrada (y usted está solicitando un desarrollador backend, no una pila completa).

  • OOP básico
    Debes saber al menos algunos conceptos. (clases / métodos abstractos, interfaces, herencia, etc). La orientación de un objeto debe ser conocida como un desarrollador, independientemente del idioma que esté utilizando.
  • MVC
    Comprenda qué es MVC, cómo funciona (¡conceptos!), Cuándo es útil y por qué. Sería muy útil obtener algo de experiencia con al menos un marco común.
  • REST / servicios web en general
    Qué es REST y cómo funciona (básicamente). ¿Has oído hablar de otros servicios web? Dado que a menudo estamos usando servicios de micro en nuestra arquitectura, esto será importante.
  • ¿Has oído hablar de PHPunit o mejor: alguna vez escribiste una prueba de unidad?
    Esto sería una ventaja, porque a menudo estamos usando un desarrollo guiado por pruebas.
    Esto no se aplica a todas las empresas, solo lo mencioné, porque es importante para nosotros. Lo mismo ocurre con las pruebas funcionales y de regresión.
  • MySQL
    Incluso en la actualidad, no todos los proyectos utilizan una base de datos relacional, pero a menudo los conceptos básicos de MySQL (o Postgres) siguen siendo importantes. Conceptos básicos como: ¿Qué es un índice y para qué se utiliza? ¿Qué son las restricciones / claves externas y cómo lidiar con ellas? ¿Qué es CRUD ?, se esperan. Conocer al menos el concepto básico de una base de datos NoSQL sería bueno en estos días.
  • Conocimientos básicos sobre servidores web y HTTP en general.
  • Patrones de diseño
    Además de MVC, ¿conoces otros patrones de diseño? Incluso si no los usaste antes, solo saber que hay algunos patrones de diseño comunes sería muy bueno. Te enseñamos más y más de estos patrones mientras trabajas, pero debes saber que hay algunos patrones útiles. De un desarrollador regular esperaría nombrar algunos comunes, incluyendo su concepto y sus casos de uso.
  • Seguridad
    Una gran cantidad de aplicaciones web tienen que lidiar con los datos del usuario, por lo que es necesario desinfectar la entrada del usuario. Debe saber qué es una inyección SQL (y cómo evitarla), qué es XSS (más XSRF sería bueno) y cómo tratarla.
  • Principios básicos del software
    Solo mire SOLID (diseño orientado a objetos) y comprenda que (al menos, entienda el principio). Esto es común en la POO en estos días, independientemente del idioma que esté codificando, ¿SECO? ¿BESO? Esto sería bueno.

Esto es lo que esperaría como mínimo para un desarrollador junior de entrada.

Pero esto no significa que haya trabajos con menos requisitos, solo mencioné las expectativas que tenemos para nuestros equipos.

Todavía hay una necesidad de que los desarrolladores (por ejemplo, un negocio de comercio electrónico simple), trabajen en una tienda existente de Magnento o extiendan y mantengan un sitio de WordPress u otro CMS, etc. Esta podría ser una opción para obtener experiencia en desarrollo, pero esto es También a menudo un trabajo de pila completa.

En este caso, debe estar familiarizado con el software dado. Pero como la mayoría es de código abierto, siempre puedes leer algo de documentación y jugar un poco con esa pieza de software en casa.

Como se dijo anteriormente, estos son requisitos técnicos básicos para las compañías en las que he estado trabajando. Por otro lado, cuando estoy entrevistando a nuevos candidatos, también buscaré un interés general en el desarrollo (¿Está realmente interesado en lo que está haciendo? ¿Está interesado en aprender cosas nuevas? ¿Está entusiasmado con la tecnología? ¿Es un jugador de equipo? ? etc.).

Durante una entrevista, no esperaría que un desarrollador junior supiera todo lo que pediré, pero mostraría un interés real y la voluntad de aprender que, lo que no sabe, todavía me impresionaría y me brindaría la oportunidad de recibir una oferta. .

Seamos muy prescriptivos aquí para responder a esto …

1. Una comprensión firme de la teoría de la programación de procedimientos.

… y cada vez más un nivel similar de comprensión de la programación orientada a objetos. Sin saber cómo funcionan los lenguajes de programación, en general, no eres un profesional.

2. Una comprensión firme de cómo utilizar la documentación de PHP.net.

Aunque imagino que algunas personas conocen la sintaxis y las definiciones de PHP al 100%, no es necesario. Lo que necesita saber es dónde buscar su falta de conocimiento y cómo interpretar la documentación.

También llegará un momento en el que tendrá que explicar algo sobre cómo PHP trabaja un colega, y el uso de la documentación será muy importante.

3. Seguridad.

¿Cómo detendrá un ataque de inyección de base de datos de primer o segundo orden? ¿Cómo detendrás los ataques XSS? El dominio de PHP comienza cuando usted tiene prácticas profesionales e instintos que mantienen seguros su código, su base de datos y su sistema de archivos.

4. depuración

Un profesional sabrá cómo pasar de un código de error a solucionar un problema, incluso en un marco desconocido. No te asustarás por los problemas que surjan y, en cambio, entenderás tus rutas.

¡Sepa cómo var_dump () y print_r () a través de los problemas, sepa cómo crear planes de prueba, y siempre sepa dónde está su archivo error.log!

5. Técnicas de abstracción.

Esto se vuelve más fácil a medida que adopta la POO, pero creando un código reutilizable, manteniendo los valores en variables en lugar de en una codificación rígida … Estas son prácticas que los profesionales deberían hacer en el momento, no en retrospectiva.

6. Mantener el código y html distinto

Los verdaderos profesionales mantendrán la mezcla de html y PHP al mínimo. Es una práctica terrible mezclar su “vista” con su “modelo” o código de “control”. Lo que nos lleva a …

7. WordPress

Es probable que la mayoría de los sitios en los que trabajas estén usando el sistema de WordPress. Un profesional debe conocer su plantilla de WordPress en todo su … ejem … .glory, e idealmente los detalles de los complementos también.

Por supuesto, la probabilidad de que use esto depende de su campo, puede estar expuesto más a menudo a drupal o magneto, etc. Como profesional, sabrá al menos uno de estos sistemas principales en profundidad.

8. Las peculiaridades.

Y finalmente, por supuesto, las peculiaridades y rarezas que conocemos (y nos encanta?) Acerca de PHP deberían ser una segunda naturaleza para el momento en que usted sea un desarrollador profesional. Debe saber instintivamente por qué falló ese file_get_contents, o por qué hay un error que regresa de su consulta de mysql. PHP tiene un cierto carácter, y ya deberías estar en sintonía con eso.

Primero considere para qué se usa realmente PHP: es un lenguaje del lado del servidor para el desarrollo web.

De ello se deduce que debe saber al menos una forma de hacer todo lo siguiente:

  • Conectarse a una base de datos
  • Manejar peticiones HTTP
  • Parse JSON, XML
  • Imprimir HTML a una página
  • Cargar / guardar un archivo

También debe comprender el entorno donde se ejecuta PHP:

  • Servidor HTTP: Apache, Nginx
  • Instalando y configurando PHP en Linux, Windows

También creo que deberías saber un poco acerca de las herramientas PHP, marcos, bibliotecas más comunes.

  • CMS: WordPress, Drupal, Joomla
  • Marcos: Laravel, Symphony.
  • Bibliotecas: PEAR, PECL
  • Compositor para incluir paquetes en tus proyectos.

Finalmente, PHP está orientado a objetos, así que debes aprender qué es eso.

  1. Programación básica.
  2. Arquitectura del sistema y protocolos de red.
  3. Sintaxis del lenguaje y construcciones.
  4. SPL, funciones y extensiones más útiles.
  5. Estándares y mejores prácticas.
  6. Bases de datos.
  7. Tecnologías del lado del cliente.
  8. Construcción y despliegue.
  9. Escalada.
  10. Búsqueda de Google.

Se espera que sepas:

  1. OOPs
  2. Frameworks MVC (Laravel, Symfony, Yii2, CodeIgniter)
  3. CMS (Drupal, Joomla, WordPress)
  4. Técnicas de optimización.
  5. Seguridad y hash de contraseñas.
  6. Compositor
  7. Cómo integrarse con aplicaciones de terceros.
  8. ¿Cómo revisar los registros? ¿Cómo hacer el seguimiento?
  9. ¿En qué se diferencia PHP de PHP5-FPM?
  10. ¿Cómo funciona PHP con Apache vs Nginx?

Los empleadores buscan varias habilidades. En primer lugar, debe comprender los conceptos OOP (Programación Orientada a Objetos) que se utilizan ampliamente en los lenguajes de programación modernos. También te ayudará a aprender diferentes marcos PHP basados ​​en MVC. Lo segundo es crear y consumir servicios web. Esto también es muy importante ya que utilizará varios servicios web de terceros en sus proyectos. Y luego hay varios otros que debe aprender, incluyendo el marco de pruebas de Unidades, el uso del instalador de paquetes, por ejemplo, el compositor, la optimización del código para el rendimiento, etc.

  • Phptherightway
  • Laracasts.com si elige Laravel
  • Muchos de los desarrolladores bash php debido a su API central inconsistente. Y bueno, hay un montón de código PHP pobre por ahí. Solo ignora el ruido.
  • Sigue a jeffreyway, Phil sturgeon, Adam de fullstackradio, y muchos más desarrolladores que debería enumerar.

En primer lugar, los fundamentos mínimos absolutos:

PHP: el camino correcto
PHP moderno

Sin tal conocimiento, un desarrollador de PHP corre el riesgo de ser considerado un mal programador y puede fomentar la idea errónea / el odio que a veces existe en torno al lenguaje PHP en sí.

More Interesting

¿Qué puedo hacer todos los días para aumentar gradualmente mi comprensión de las Matemáticas?

¿Cuál es mejor: Harvard o MIT?

Quiero convertirme en neurocientífico. ¿En qué debo obtener una licenciatura en?

Obtuve solo 96 en jee main y 79.2% en el examen de la junta estatal de wb, ocupé el puesto 7400 en wbjee, 8740 en kiitee, 9102 en manipal, obtuve 188 en bitsat, aunque me dirijo a ingresar en una universidad a través de mi rango de wbjee, quiero para participar en el jee main 2015, tengo un año en la mano, ¿cómo debo proceder?

Quiero estudiar cinematografía en la India. ¿Qué debo hacer si quiero ingresar a la escuela? ¿Qué todas las calificaciones necesito después del 10º estándar?

Quiero convertirme en criptógrafo. Entonces, ¿qué debo hacer después de mi clase 12?

¿Qué ejercicios diarios recomendaría un intérprete y / o traductor profesional a un estudiante de idiomas independiente para aumentar su nivel de idioma de manera incremental?

Como ser estudioso

He sido una mamá de educación en el hogar por más de 20 años, y en unos 4 años más, nuestros más jóvenes se graduarán. Quiero convertirme en un maestro certificado. ¿Hay universidades que consideren mis experiencias de vida como créditos universitarios?

¿El bajo CGPA en BTech es un impedimento para obtener una buena ubicación en los IIT después de MTech?

No puedo entender la física. ¿Qué debo estudiar ahora para obtener un estudio conceptual del 11 en 2 meses?

¿Cuáles son algunos de los hábitos que debemos cambiar para estudiar adecuadamente?

¿Debo tomar geometría el próximo verano aunque esté en Álgebra 2?

¿Cuáles son los criterios más importantes para alguien que solicita programas de posgrado en informática biomédica?

¿Cuáles son los requisitos de elegibilidad para una beca central en los IIT?