En primer lugar, espero que comprenda cuáles son los niveles en un desarrollo web de pila completa.
Curiosamente, Upwork ha escrito un buen artículo sobre esto: ¿Qué es una pila de software? Elija la pila adecuada para su proyecto
Entonces una pila de software tiene:
- Cómo crear una página de inicio de sesión y registro para administrador y usuario en asp.net
- ¿Los sitios de Apple, Tesla, Evernote, están hechos de WordPress?
- Infraestructura técnica de Quora: ¿Cómo funciona LiveNode?
- ¿Tienes que dominar Photoshop o un programa similar para ser bueno en diseño web?
- ¿Qué es la optimización de motores de búsqueda (SEO) y por qué mi sitio web necesita SEO?
- Lado del cliente
- Servidor web
- Servidor de aplicaciones
- Base de datos
Desde que comenzó con PHP, esa es una buena opción.
PHP se ejecuta en la capa del servidor de aplicaciones, por lo que, como cualquier lenguaje de programación de fondo, ya sea JavaScript (NodeJs), Python, Ruby, etc.
Vamos a entender la pila.
1. Lado del cliente: cada navegador comprende estos tres idiomas.
- HTML: YAML, PUG (JADE) ..
- CSS: SASS, MENOS, ESTILO …
- JavaScript: jQuery :: TypeScript, CoffeScript, Babel >> marcos JS
Por lo tanto, todos los desarrolladores front-end conocen estos 3 idiomas. Además de estos, también usan bibliotecas y marcos que hacen que su trabajo sea más rápido y modular.
El más flexible pero potente es JavaScript. Por lo tanto, los programadores han superado su límite y aprovechado su utilidad para obtener el máximo uso de la poderosa máquina de un cliente (usuario). Como resultado, se desarrolló mucho desarrollo en la creación de bibliotecas y marcos.
Principiante en desarrollo front-end: HTML + CSS + JavaScript básico (o jQuery)
Intermedio en desarrollo front-end: HTML + SASS / LESS (cualquiera …) + buena comprensión de JavaScript y algo de framework JS (ReactJS o Backbone)
Desarrollador front-end avanzado: Jade (cualquiera …) + módulos CSS y componentes con estilo + comprensión más profunda de JavaScript.
2. Servidor web: muchos programadores no consideran esto como parte de la programación. Pero quienes han adquirido conocimiento de esto eventualmente se han convertido en mejores programadores.
Josh Lockhart, el creador de SlimPHP y autor de “PHP de la manera correcta”, recomienda aprender el protocolo HTTP que ayudará a los desarrolladores a comprender mejor la web. Con la introducción de HTTP2, las cosas cambiarán un poco, para mejor. Desarrolladores, mejor estén listos.
Aprenda lo suficiente para configurar una aplicación web básica. Para un aprendizaje más profundo, debe profundizar en el aprendizaje de un servidor web, así como de la red y protocolos relacionados.
3. Servidor de aplicaciones: aquí es donde se ejecuta su lenguaje de programación de back-end.
Por ejemplo, PHP se ejecuta en el servidor Apache y nginx, JavaScript se ejecuta en el tiempo de ejecución de NodeJS y así sucesivamente.
Existen diferentes tipos de lenguajes de programación. Los más populares son 1. Lenguajes de programación orientados a objetos y 2. Lenguajes de programación funcional.
El concepto OOP se adapta mejor a la arquitectura MVC que se usa en la mayoría de las aplicaciones web en estos días.
Si está aprendiendo PHP, puede escribir programas de 3 maneras. 1. Procedimiento, orientado a 2 objetos, 3. Funcional
Principiante Desarrollador de back end: Conceptos básicos de programación + conexión a la base de datos
Desarrollador de back-end intermedio : programación orientada a objetos con arquitectura MVC
Desarrollador avanzado de back end: Uso de patrones de diseño y principios SOLIDOS en programación.
4. Base de datos: hay una gran cantidad de software de base de datos de código abierto. Algunos están en el concepto de bases de datos relacionales (RDBMS), algunos están basados en archivos.
RDBMS: MySql, MS Sql, Maria DB, PostgreSQL ..
Basado en archivo: Mongo DB, Couch DB ..
Al tener antecedentes de RDBMS y haber leído mucho sobre ello en mi graduación, de alguna manera siempre selecciono un RDBMS, pero si surge la necesidad, podría cambiar mis preferencias.
Si está aprendiendo un RDBMS, aprenda:
- Principios de ACID
- Mapeo de relaciones entre tablas.
- Crear una base de datos con formas normales estrictas (al menos hasta la tercera forma normal)
- Crear uniones en tablas.
Aunque puede parecer obvio para el tercer ojo sobre tener una base de datos con tablas habituales como “Usuarios”, “Roles”, “Módulos”, etc., pero viene con experiencia en cuanto a qué tipo de base de datos será mejor para un sistema.
Para un sitio web normal en WordPress, tiene 12 tablas y para un sitio web normal en Drupal tiene 40 tablas.
Cuando las personas ponen en sus currículums que son desarrolladores completos, lo más probable es que quieran decir que son buenos con los lenguajes de programación front-end y back-end de su elección.
Simplemente están usando la nomenclatura que la industria quiere escuchar. Los reclutadores que no entienden mucho las pilas de tecnología están más impresionados con la etiqueta “Desarrollador de pila completa”.
No estoy desacreditando a ningún desarrollador que afirme ser una persona de pila completa, pero dudo mucho si dichos desarrolladores han explorado estos cuatro niveles de la pila web.
Mi opinión personal es, no vayas por la pila completa, si estás solicitando trabajo. Conviértete en un experto en una pila particular. Aún mejor, conviértase en un experto en un lenguaje o marco específico.
Un eslogan como: “AngularJS expert y Front-end dev” o “Laravel expert” sería una perspectiva mucho mejor para cualquier equipo de desarrollo.
Oh! Si usted afirma ser un experto en un marco, entonces sea uno, no ponga una declaración falsa. Asegúrese de tener un buen repositorio de github con algunos buenos ejemplos. Tenga un blog tecnológico pequeño pero útil, etc. Realice la charla para que cualquier persona que vea su trabajo lo entienda como un experto.
Entonces, ¿quieres ser bueno con PHP? Aprende de :
Manual PHP
PHP: la forma correcta