Quiero aprender desarrollo web. ¿Sería inteligente centrarse en algunas nuevas tecnologías como Node JS en lugar de PHP?

Hay una falacia implícita en la pregunta: el OR (es decir, en lugar de). Esta falacia también se hace en algunas respuestas que verá. La parte más importante de su pregunta es “Quiero aprender” y la respuesta es “Sí”.

La respuesta menos cautelosa es que puede que le guste comenzar con PHP, porque es bastante fácil de aprender, es bastante útil, es excelente para principiantes pero lo suficientemente potente para usuarios avanzados y es inmensamente popular. Pero también necesitarás aprender JavaScript. Es difícil de aprender, es vital saberlo, es un misterio para principiantes y magia negra para usuarios avanzados, y es inmensamente popular. En cuanto a si querrás aprender JavaScript del lado del servidor, meh. No argumentaría en contra de eso, y hay muchas cosas en favor de Node, pero, en mi opinión, tampoco es la solución perfecta.

Lo más importante es que aprendas. Todo lo que aprenda le será útil, incluso si lo que finalmente aprende es:

  • PHP tiene demasiados problemas de diseño para tus gustos.
  • El nodo es demasiado específico.
  • PHP está bien para ti, pero Python es mejor para ti.
  • El nodo es genial, pero JavaScript es un oso para aprender.

Solo aprende todo lo que puedas. En el proceso, aprenderá por sí mismo por qué PHP es bueno o malo (y cómo), por qué X es bueno o malo, etc., y, lo más importante, qué lenguajes y tecnologías se adaptan mejor a sus habilidades y necesidades. Además, aprender más de un idioma / tecnología / marco aumentará y mejorará su conocimiento y apreciación en todos los ámbitos (al igual que aprender un segundo idioma hablado puede ayudarlo a comprender mejor su lengua materna).

Lo que me lleva a la respuesta más simple y menos cautelosa: comienza con PHP y estarás bien, pero no te detengas solo con PHP.

Cuando tenía 13 años, decidí profundizar en el desarrollo web de back-end, así que terminé aprendiendo PHP. Pude escribir algunos sitios web simples que funcionaban; Sin embargo, mi código fue extremadamente terrible. En aquel entonces, mezclé mi PHP con HTML, rara vez usaba OOP, y generalmente ponía todo en un solo archivo.

Un año después, aprendí Ruby y Python, así como algunos de sus frameworks como Ruby on Rails y Django. Al igual que antes, decidí crear algunos sitios web con ellos. Estos sitios web también funcionaron bien, pero estaba confundido y frustrado por la cantidad de métodos aparentemente triviales que RoR y Django aplicaron. Sin embargo, cuando volví a mirar mis proyectos iniciales con PHP, comencé a comprender la importancia de una buena arquitectura y desde entonces pude escribir un código mucho mejor con otros lenguajes.

En resumen, no cometas los mismos errores que yo. En cambio, le sugiero que comience con un lenguaje que lo obligue a escribir un código bueno, no repetir, y sin apretar.

De hecho, aprender un idioma moderno realmente no importa a menos que tu jefe te lo pida. En cambio, lo que realmente importa, especialmente si quieres convertirte en un desarrollador web increíble, es que aprendas a escribir código de alta calidad y a diseñar proyectos bien diseñados. Node puede enseñarle cómo hacer esto, pero le sugiero que lo empareje con marcos como Angular y Express, solo para enseñarle algunos principios básicos de ingeniería de software y patrones de diseño. De hecho, en la actualidad, PHP también puede enseñarle esto, pero le recomiendo que lea PHP: The Right Way antes de seguir ese camino.

Si desea aventurarse en una tecnología madura, omita PHP y vaya directamente a Python o Ruby. Nodejs? ¿Sabes que uno de los principales contribuyentes al ecosistema Node (Expressjs desarrollado, entre muchos otros) ha dicho recientemente Farewell Node.js?

Aunque soy un desarrollador de Ruby, y siento que la comunidad centrada en la web (léase: Rails) tiene, como era de esperar, herramientas y bibliotecas más maduras para el desarrollo web, diría que no te puedes equivocar con Python como un gran lenguaje de uso general.

Sí, muchos proyectos se construyen con PHP, pero ¿realmente elige una tecnología basada en el tipo de código heredado con el que desea tratar? Popularidad significa ponerse en cuclillas en este caso.

Otro punto, aunque le sugiero que omita el Nodo, JavaScript no va a ninguna parte, así que independientemente de su elección del lenguaje del lado del servidor, aprenda JS.

En mi humilde opinión, no creo que sea prudente aprender nuevas tecnologías de inmediato, sin aprender las antiguas. Claro que la curva de aprendizaje será muy recta y después de poco tiempo realmente podrás crear muchas cosas, aprendiendo nuevas tecnologías, pero aprender las antiguas te dará una idea clara de cómo se hicieron las cosas. en los viejos tiempos y cómo se hacen hoy en día.

Por ejemplo: sin perder el tiempo con las directivas de Apache (algo bajo nivel), entrando en NodeJS app.use y rutas (alto nivel) no tendrá un conocimiento profundo sobre cómo funcionan los motores de reescritura de servidores web y qué necesitan para poder trabajar.

Por supuesto, esto también se aplica a otras ramas CS. Sería genial si sabes lo que está sucediendo en un nivel bajo mientras pirateas en un nivel más alto. El libro de Randall Hyde “Escribe un gran código Vol2: Pensar en un nivel bajo, escribir en un nivel alto” ( http://www.amazon.com/Write-Grea …) te dará una gran idea sobre las cosas anteriores. Por supuesto, este libro trata sobre cómo se comporta nuestro código C en un nivel bajo y cómo deberíamos pensarlo todo el tiempo, pero después de leer esto, verá que se puede aplicar a cada rama de CS.

Lo que recomendaría a cuatro de ustedes es que echen un vistazo a ambos y vean qué es lo que más les conviene.

Ambos son fáciles de aprender si me preguntas.

Si aprende PHP, las ventajas son bastante altas, por ejemplo, muchas plataformas de código abierto están basadas en PHP, tiene una gran comunidad, sin mencionar que el 90% de los servicios de alojamiento web admiten PHP o solo se centran en PHP

Node.js realmente brilla en rendimiento y en aplicaciones en tiempo real, y lo mejor de esto es su IO sin bloqueo y una gran comunidad inteligente útil detrás de él. Lo que puede ser un inconveniente es encontrar un buen proveedor de alojamiento, el alojamiento de Node.js tiene precios bastante altos.

Una vez más, digo ver qué es lo que más se ajusta y no te preocupes, ambos estarán allí en el futuro, y si aprendes un idioma, será más fácil aprender un segundo.

Buena suerte

Definitivamente no querrás pasar años aprendiendo algo como PHP solo para darte cuenta de que deberías haber elegido algo diferente para empezar. Sin embargo, Ruby on Rails con jQuery es una apuesta segura.

Es inteligente de hecho. Al utilizar NodeJs, está aprendiendo Javascript, que también lo ayudará con su interfaz. Y Javascript tiene una gran demanda con el infierno de nuevas bibliotecas que vienen todos los días. No veo una razón para ir con el PHP obsoleto ya que la gente ya está eligiendo Ruby sobre php (mi opinión).

Esta es una vieja pregunta de 2014. Sin embargo, realmente depende de lo que le gustaría lograr con el aprendizaje de “desarrollo web”

Por ejemplo, aprendí el framework PHP y Yii simultáneamente cuando comencé a aprender a programar en las API de eBay y Amazon.

Sé que PHP, Yii y MySQL hacen lo que necesito hacer.

No sé JavaScript, node.js, Python, R, etc. porque para mis aplicaciones específicas PHP y Yii son todo lo que necesito.

Creé un actualizador de precios para eBay y Amazon que actualiza los precios en miles de nuestros listados cada semana.

Creé un creador de listados que puede crear miles de listados a partir de una hoja de cálculo de Google Docs en muy poco tiempo después de ingresar las especificaciones correctas de lo que se debe incluir en los listados. incluso comprueba que no se estén creando títulos duplicados.

Mi programador creó un programa de servicio al cliente en la API de eBay con Yii desde cero.

Etcétera.

Quiero aprender Python y R, NoSQL eventualmente a finales de este año.

Para resumirlo todo: realmente, realmente depende de lo que quieras lograr.

Si desea crear aplicaciones internas para su propio negocio como yo, entonces PHP o Python con MySQL es todo lo que necesita saber.

si quieres construir para otras personas, necesitarás esos más JavaScript

More Interesting

¿Por qué un desarrollador web profesional enseñaría en línea cuando ya hay muchas cosas buenas por ahí?

Cómo migrar mi sitio web de Joomla a WordPress y mantener la misma URL

Tengo conocimiento de HTML CSS y arranque básico debido a un problema financiero. Quiero hacer mi trabajo. ¿Debería hacer un trabajo o esperar para aprender JavaScript primero?

¿Vale la pena comenzar a aprender PHP en 2017 para el desarrollo web, o probar algo como Python Django?

Si tengo el desarrollo de back-end y la interfaz de usuario front-end, ¿cuál es la mejor manera de integrar estas cosas?

Me uniré a la universidad este año. ¿Debo aprender C, luego C ++, luego Java y luego C # en 4 años?

Soy un novato que recién comienza, me siento perdido cuando quiero contribuir a proyectos de código abierto. No entiendo detalles técnicos. ¿Cuál es la mejor manera de aprender lo básico?

No tengo un formulario de registro en mi WordPress, pero la gente aún puede registrarse. ¿Cómo es eso así?

¿Cómo obtengo exactamente datos de películas como títulos, clasificaciones, actores, etc., de IMDb?

Actualmente estoy trabajando como desarrollador web sin calificación formal. ¿Puedo ser considerado un desarrollador de software?

Necesito un consejo. ¿Cómo puedo mantener la coherencia con una tecnología / marco, aprenderlo adecuadamente y luego pasar a otro idioma o marco?

Necesito crear un servicio web que muestre la entrada de un usuario a otros usuarios. ¿Cómo hago esto? Diseño sitios web pero nada como esto todavía.

Mi sitio de WordPress recibe cientos de ataques transversales de directorios diariamente. ¿Esto es normal?

Estoy interesado en el desarrollo web pero no tengo antecedentes en él. ¿Qué lenguaje (s) de programación debo elegir y por qué?

Si quiero un fondo animado / de video para una página web, ¿debo usar Flash o HTML5? ¿Cuál tiene los menores problemas de compatibilidad?