2009-07-18 11 views
12

Actualmente tengo mucha experiencia en PHP y he escrito varias aplicaciones en él. Sé HTML, CSS, MySQL y Javascript junto con PHP. ¿Cuál es el siguiente paso en la programación?¿Qué debo aprender después de PHP?

(sé que hay lenguajes como Perl, C, Python, pero no sé exactamente si están, basadas escritorio basado en Web, etc.)

Actualizado

Mis metas son aprender suficiente programación que puedo hacer un programa profesionalmente. Permítanme aclarar que tengo 15 años y he programado algunas aplicaciones complejas. He tratado la programación orientada a objetos, pero apenas he tocado trabajar con frameworks. ¿Es eso algo a lo que debería ir después?

+5

Esa es una pregunta muy subjetiva. ¿Cuáles son sus objetivos? No hay nada que podamos decir hasta que sepamos eso. –

+0

¿Cómo se llama "bastante experimentado en PHP"? ¿Has trabajado con frameworks, programación orientada a objetos, ...? –

+0

En lugar de aprender un idioma nuevo, piense en desarrollar algo nuevo que le falte en su idioma actual. Las personas siempre cambian a las más nuevas cuando encuentran la actual mejor, pero casi nadie piensa en cambiarla aquí también ... Un ejemplo más de frameworks de Rails que causó un auge en el mercado con sus patrones de diseño ... – Kevin

Respuesta

21

No hay un "próximo paso" en la programación; PHP, al igual que las otras tecnologías que menciona, son herramientas que usamos para resolver problemas.

Una cosa útil que podría hacer es ver cómo se resuelven problemas similares usando otras tecnologías: parece estar interesado en el desarrollo de aplicaciones web, por lo que existen herramientas similares como Java/JSP, Ruby/Rails, C#/ASP .NET, y así sucesivamente. Después de su edición, esta parece ser la ruta más sensata, ya que las plataformas como Java y .NET parecen ser la forma en que las organizaciones van, y donde las habilidades se utilizan en muchos trabajos de programación.

Después de haber pasado algún tiempo yendo por esas rutas, es posible que le interesen los sistemas más grandes que hacen uso de las funciones empresariales. Cosas como JSF, Struts o más: J2EE con EJB hacen uso de tecnologías web, pero de una manera más empresarial.

También le sugiero que consulte algunas aplicaciones web de código abierto para ver cómo las herramientas como las que menciona se usan en aplicaciones más grandes con más usuarios. Quién sabe, quizás puedas unirte y ayudar en un proyecto ampliamente utilizado.

+4

Estoy de acuerdo. Si aún no lo has hecho, echa un vistazo a los frameworks MVC basados ​​en PHP como CakePHP o CodeIgniter – bobobobo

+0

+1 para la primera oración. –

4

Eso realmente depende de lo que usted quiere lograr, por ejemplo, ¿podría hacer una solución compleja de comercio electrónico desde cero?

¿Así que sabes cómo clases php y objetos?

Quizás pueda aprender a usar un marco javascript que permite animaciones sofisticadas.

Mi consejo es elegir un proyecto que le interese crear, e idealmente interesado en usar también, y ver a dónde lo lleva.

3

En mi opinión, una sugerencia para "el siguiente paso en la programación" se puede encontrar mirando algunos currículos del programa CS en algunas escuelas importantes. Si fuera usted, escogería algo completamente diferente de la programación web, solo para expandir mi punto de vista.

Si tienes 15 años, te sugiero que aprendas C# y trates de escribir un juego simple como Tetris.

+0

¡Lo siento, acabo de darme cuenta de que mi primera respuesta parece sospechosamente parecida a la tuya! Absolutamente casual aunque; ¡grandes mentes! – Skilldrick

6

Si desea seguir haciendo sitios web, le sugiero que se quede con las mismas tecnologías, pero obtenga más información al respecto.

No ha especificado realmente qué tipo de trabajo ha estado haciendo en PHP/HTML/CSS/JavaScript/MySQL, por lo que es un poco difícil dar punteros.

En el lado de PHP, hay una serie de marcos decentes que podría echar un vistazo, como Zend Framework, o CakePHP.

Es posible que también desee conocer algunos sistemas CMS preexistentes, como Joomla o Drupal. Hay mucho por hacer: el sistema en sí, los complementos disponibles y el desarrollo de sus propios complementos. A menos que esté construyendo algo que no tenga características similares a CMS (lo cual es raro), tiendo a construir casi todo encima de Joomla.

También está mejorando sus habilidades de PHP. Es muy fácil caer en la trampa de escribir código de spaghetti rápido, simple y sin mantenimiento con PHP. Hay todo tipo de patrones útiles y técnicas de diseño que puede utilizar (los marcos mencionados anteriormente o los CMS pueden brindar algunos consejos sobre cómo hacerlo y cómo no hacerlo). Puede buscar cosas como clases/objetos, capas de abstracción de base de datos adecuadas (PDO, o incluso ADO), aplicando patrones de diseño a los proyectos de PHP. Las bibliotecas estándar contienen muchas funcionalidades geniales que probablemente no haya utilizado, y las bibliotecas PEAR contienen aún más.

En el lado JavaScript, es posible que desee ver en los marcos como JQuery para empezar, y luego algunos de los plugins que se han construido en la parte superior de la misma, como JQuery UI. Agregue un poco de AJAX a su repertorio.

4

Aprendí y desarrollé mucho con Java después de PHP y un poco de Perl, y estoy bastante contento de haberlo hecho. Me di cuenta de que en los círculos de Java, hay mucho más pensamiento y énfasis en la construcción de arquitecturas de software adecuadas. Aquí, aprendí mucho sobre la calidad del software, los procesos de desarrollo (ágiles), la arquitectura.

No es que las comunidades de idiomas dinámicos no sean capaces de ofrecer aplicaciones robustas o carezcan del conocimiento en general: yo mismo vengo de este mundo, y también vi un montón de código falso en Java. Aún así, aprendí mucho allí.

También hice algunos pequeños proyectos con ruby ​​/ rails y groovy/grails mientras tanto y jugué un poco con python/django - pero volviendo a los enfoques basados ​​en Java en este momento - pero su kilometraje puede variar .

Al final, es bueno conocer múltiples idiomas y marcos, para poder elegir la mejor opción donde sea que esté dependiendo de los requisitos y el personal, y recomendaría no solo aprender lenguajes dinámicos, centrados en la web y marcos, sino también más generales. Con cosas como Perl (aunque realmente está perdiendo terreno debido a las características de potencia y OO de los thers), Python y Ruby tienen lenguajes genéricos que están fácilmente disponibles en la mayoría de los sistemas, se pueden usar para shell scripting, Web y desarrollos de GUI independientes por igual, ¡también muy buena dirección!

Todavía tengo C simple, esquema/lisp y scala, y muchos marcos de trabajo interesantes en mi lista "para aprender".

9

Todo lo que puedo decir es que mi propia experiencia. Aprendí PHP/HTML/MySQL/Oracle en UNIX hace unos 12 años, y me gustó su facilidad de uso y la forma en que podía combinar sitios muy fácilmente (en comparación con CGI y C). Sin embargo, hace alrededor de 6 años me trasladé de mala gana al "lado oscuro" y tuve que aprender programación de Windows para mi trabajo. Después de un período horrible de aprendizaje 'Classic ASP' y VB, me metí en la nueva y emergente tecnología .NET, en particular ASP.NET y C#. Y estoy realmente me alegro de haberlo hecho.

Aprender un lenguaje OOP "adecuado" fuertemente tipado como C# (o Java) le ayudará a mejorar sus habilidades de programación y lo convertirá en un programador más disciplinado. Si puede aprender el framework .NET, expandirá sus horizontes y su empleabilidad. También aprenderá muchas habilidades de programación que pueden llevarlo más allá de la Web: en el desarrollo de aplicaciones, etc. Ampliará su perspectiva y se enriquecerá y recompensará en el proceso.

1

Lo único que sugiero es comenzar a aprender sobre arquitectura de software, OOP y patrones de diseño, paradigmas de programación.

Incluso puede seguir con las herramientas que ya conoce, simplemente actualice su forma de programar, aprenda nuevas y mejores formas de resolver problemas, vea lo que otros y otros grandes frameworks están haciendo.

4

Desarrolle algo que pueda poner el foco en el lenguaje de programación. Una biblioteca o archivo de clase que puede ayudar a la comunidad.

También puede pensar en algo en que puede hacer las cosas mucho más simples en comparación con el proceso actual, que si cree que es un trabajo duro.

6

¿Por qué no continuar con PHP?

Conviértase en un experto y luego en un gurú. PHP es un tema bastante amplio y en varios años de desarrollo no llegué a usar y conocer todos sus aspectos, no importa cuántos proyectos más grandes o más pequeños hice. También existen diferentes enfoques en la codificación de PHP, hoy en día los marcos surgieron y son un tema en sí mismos.

Y no es lo último, probablemente debido a su popularidad, PHP es un lenguaje vivo y continúa evolucionando. Nuevas cosas aparecen en bases diarias, módulos, nuevas versiones, nuevas aplicaciones, nuevos marcos, nuevos problemas para resolver con él.

2

Su línea de pensamiento es correcta: es importante que un programador aprenda diferentes idiomas. Sugeriría Ruby, y Ruby on Rails.

La gran ventaja de Rails es que facilita las cosas de la manera correcta: poder pasar su código a otro desarrollador sin que él pase semanas enteras solo para comprender su código es bastante importante.

La tendencia actual en muchos idiomas es ponerlos en 'Rieles', es decir, implementar el entorno MVC. Esto fue hecho para Javascript, .NET y muchos otros.

1

Dado que ha estado utilizando la funcionalidad orientada a objetos de PHP, sugeriría Java a continuación. La funcionalidad de OO de PHP se inspiró principalmente en Java, por ejemplo, ambos formalizaron la programación "orientada a la interfaz" a través de una construcción/palabra clave real: "interfaz".

En cualquier caso, tener Java como el otro idioma del lado del servidor en el que soy más fluido funciona para mí. Su experiencia puede ser diferente.

0

Creo que deberías intentar un gran cambio para expandir tus horizontes. Learn Python, obtenga pygame y programe un juego, por ejemplo tetris, pero podría ser cualquier cosa. Definitivamente recomendaría hacer algo que no esté basado en la web, porque te ayudará a ver las cosas desde otro ángulo.

0

En primer lugar saber que usted no tiene ninguna limitación que no sea su propia exitus;)

Si tiene programas de escritura de la diversión, navegar por Internet en busca de aplicaciones que usted piensa de 'hombre podría mejorar esto' o " buena herramienta, pero tengo algunas otras ideas '.

Luego solo tenga en cuenta los idiomas en los que se escriben estas aplicaciones y realice una investigación rápida sobre la dificultad de crear una aplicación de este tipo (por ejemplo, en stackoverflow.com).

Cuando haya encontrado algún proyecto que realmente desee configurar y haya elegido el idioma que tenga más sentido para escribir esta aplicación: comience a aprender este idioma.

No siempre es importante buscar un idioma específico, simplemente busque un proyecto y configúrelo.

4

Esto es muy subjetivo, pero aquí va.

  • No estaría de más saber un lenguaje muy corporativo, como Java, para desarrollo web.
  • Aprender un marco para ello, como Spring MVC, sería muy útil. Spring también tiene conceptos como AOP e IOC, que vale la pena conocer.
  • Agregar en Hibernate para DAO/ORM sería útil.
  • Ruby on Rails (Ruby es el lenguaje, Rails es el marco) es otra pista de desarrollo web.
  • En algún momento de una carrera de programación, necesitará conocer un lenguaje de scripting; Python o Perl.
  • Aprenda herramientas como Maven o Ant, Subversion o CVS, y asegúrese de saber cómo usar un IDE, como Eclipse.
  • Si no conoces Linux, puede ser divertido jugarlo y ser útil profesionalmente. Pruebe Ubuntu.
  • Desde un nivel de teoría, aprenda sobre Estructuras de datos y patrones de diseño.

Data Structures es generalmente el segundo curso universitario en ciencias de la computación, y seguramente ayudará a su codificación. Si construyes ejemplos para enseñarte esto, usa un idioma que aún no conoces, de modo que obtengas el conocimiento de un nuevo idioma y el conocimiento de la nueva teoría simultáneamente.

Hay referencias en línea para aprender el material. Debería estar aprendiendo sobre listas enlazadas, árboles y gráficos; clasificación, búsqueda y análisis O (n).

Desde el punto de vista de un director de recursos humanos, no entrevistaría a nadie sin un conocimiento demostrado de las estructuras de datos.

En cualquier caso, Project Euler también podría ayudarlo; es un grupo de tareas de programación diseñadas para ayudarlo a aprender nuevos idiomas y tener tareas para ayudarlo a resolver nuevos problemas.

Cuestiones relacionadas