Aprendiendo a programar: ¿Debo enseñarle a mi novia Java o Javascript?

Depende de para qué la necesite tu amiga (no voy a usar la frase “novia”, porque es demasiado larga y su proximidad no cambia la respuesta).

Cada lenguaje de programación tiene su lugar, y algunos son más aplicables a otros en una determinada situación. Hay situaciones más adecuadas para Java; y luego hay situaciones en las que absolutamente necesitas JavaScript.

Como no mencionó ninguna de las dos formas, asumo que es solo aprender programación, de qué se trata la codificación, qué puede hacer con ella, etc.

Para un principiante temprano, la retroalimentación positiva es importante; Y no me refiero al tipo subjetivo, viniendo de ti. Me refiero a poder ver los resultados en acción. Si aprendes algo de codificación, qué tan rápido puedes aplicarlos a aplicaciones del mundo real, como publicar algo en Twitter desde una terminal, o reproducir música después de algún intervalo, etc. Definitivamente no se limita a algo como manipular entradas en Array.

Teniendo eso en cuenta, estarás mejor con Python. Hecho a medida para programadores principiantes, este lenguaje ha ido ganando ritmo en muchas universidades de todo el mundo, así como en los MOOC como lenguaje de principiantes, para que las personas se interesen en la codificación. ¡Un buen lugar para comenzar es la Guía del autostopista a Python! O, si prefiere una configuración de curso de video interactivo, vea esto: Curso de programación de introducción a Python

Ahora, podría decir que solo elegiría JS o Java. Bueno, diría que ten fe en su adaptabilidad, y tal vez los dos puedan aprenderlo juntos. Como un programador veterano, puede recogerlo muy rápido y rápido, y ayudar a su amigo a aprender muy bien en el proceso.

Si aún está interesado en seguir con solo uno de JS o Java, recomendaría JavaScript sobre Java, en 2015. JavaScript tuvo una sintaxis extraña y nociones ridículas en algún momento; pero estamos más allá de eso.

Ahora esta es una gran comunidad, con miles de herramientas, módulos, marcos, bibliotecas y áreas de aplicación. No temas, JavaScript tiene algunos conceptos de programación realmente avanzados y complicados incorporados. Simplemente marque You-Dont-Know-JS o drboolean; entendería de lo que estoy hablando.

El único argumento válido a favor de Java en este caso, puede ser el tipo de seguridad de Java. Los principiantes prefieren un idioma con seguridad de tipo, evitando que exploten las cosas. El compilador de Java también hace una gran cantidad de tiempo de compilación y optimizaciones. Pero luego, imagine la verbosidad y la barrera de entrada en Java: se necesitan muchas más líneas de código y esfuerzo para crear una pequeña aplicación útil en Java. Incluso una aplicación de Android. Para entonces, ella podría haber perdido el interés. Y si lo que quiere es seguridad de tipo, solo use TypeScript, que compila a JavaScript.


Nota: No sé quiénes son estas personas que te dicen que JavaScript no es para programadores reales. Nunca los tomes en serio. Significan solo un subconjunto de JavaScript cuando dicen “JavaScript”. JavaScript tiene características orientadas a objetos, y con el nuevo ES2015, también puede crear una class en JS.

En aras de la divulgación completa, trabajo en Oracle. Las opiniones expresadas anteriormente son únicamente mías; y no necesariamente la de mi empleador de ninguna manera imaginable.

Esto es lo que pienso. Lo importante en lo que hay que centrarse es eliminar todo el desorden. Todos los conceptos basados ​​en el conocimiento que no son elementos centrales de la programación. Eso significa mantenerse alejado de cualquier actividad de la red, marcos de alto nivel o API sofisticadas. No quiero que mire las 3 líneas de código que escribió para llamar a una API y que se sienta desconcertada y sorprendida. Eso puede ser emocionante en el momento, pero es desalentador y, en última instancia, perjudicial en el largo plazo.

Necesito llevarla a los elementos fundamentales más profundos de la programación y luego, una vez que esos conceptos se sientan “reales” para ella, se acumulan a partir de ahí. Necesito quitarle el aspecto mágico y permitirle que lo sienta en un nivel visceral.

Eso significa empezar despacio. Eso significa evitar cualquier tipo de actividad gráfica o de red que pueda parecer emocionante, porque todo esto es mostrarle a la persona cuánto no sabe. Si comienzas con magia, harás que tú y todos los demás programadores parezcan un dios, mientras la convences de que nunca podrá entenderlo.

Un hombre sabio me dijo una vez:

Los hombres inteligentes pueden explicar un concepto complejo para que parezcan inteligentes, pero solo un hombre verdaderamente sabio puede tomar un concepto complejo y hacerlo parecer simple, como si alguien pudiera entenderlo.

Voy a comenzar enseñándole Javascript (Node.JS) en el backend, ya que creo que proporcionará los medios más fáciles para llegar a los principios fundamentales de la programación. Comenzará lento. Comenzará sin que sus primeras aplicaciones sean extraordinariamente impresionantes, pero ella lo entenderá. Una vez que siento que realmente comprende los fundamentos de la programación, comenzaremos a trabajar en Java o pasaremos a integrar Javascript con html y css.

Yo también votaría por JS, pero ¿quizás podrías hacerle la vida un poco más fácil y usar Coffeescript? La sintaxis de JS puro puede ser un desafío. Además, es muy aburrido pasar diez minutos buscando valientes rizados que no coinciden :-).

¿Por qué no echarle un vistazo a Meteor JS? Es muy fácil comenzar y puedes construir un sitio real con bastante rapidez sin saber demasiado Javacript. Hay un buen tutorial en la página de inicio de Meteor que lo guía a través de la redacción e implementación de una aplicación Todo simple. Puedes sentarte con ella, guiarla a través de ella y explicar qué está pasando. Si le quita el apetito, podría seguir adelante y aprender los fundamentos de la programación.

Sugiero ir con JavaScript. Es más rápido comenzar y aún es válido para enseñar algunos principios de programación constantes. Es cierto que puedes hacer muchas cosas malas en JS, pero creo que es lo mismo en todos los idiomas … y en todo, para ser honesto. Con el entrenamiento y el razonamiento adecuados, puede guiarla en una buena dirección. Una vez que tenga un conocimiento sólido de ella, puede pasar a cualquier otro idioma.