Mi hermano menor está buscando comenzar a programar. Tiene 14 años y tiene una inclinación técnica, pero no tiene experiencia real en programación. Me está buscando orientación, y no siento que mi experiencia sea suficiente, así que pensé en preguntar aquí.
Está más interesado en la programación web, pero también está interesado en las aplicaciones de escritorio / móviles / servidores.
¿Cuál sería un buen camino de aprendizaje para él? Voy a comprarle un montón de libros para Navidad para que comience; la pregunta es, ¿qué debería aprender y en qué orden?
A mi modo de ver, él necesita aprender teoría y código. Me gustaría comenzar con Python, Ruby o PHP. Si quiere ingresar a la web, también necesitará aprender HTML, CSS, Javascript, etc.
De esos tres dominios (Idiomas, Teoría, Marcado / Etc.), ¿Cuál es el mejor orden en el que piensas aprender? Además, ¿me estoy perdiendo algo?
¡Gracias!
Respuestas:
Registre una cuenta para StackOverflow.com y Programmers.StackExchange.com
y conseguir que el hábito de navegar por diferentes preguntas cuando él se aburre . Comience con las preguntas más populares / populares.
también
¿Ayudarlo a llegar a la meta de algo que quiere crear que esté un poco más allá de su alcance, un juego simple, una aplicación que pueda enviar un tweet? Tiene que ser algo emocionante . Esto ayudará a guiar los temas a los que se expone y le proporcionará motivación a través del resultado tangible que crea.
Y
Siempre que sea posible , no compre libros en forma física si funciona bien con la impresión digital , ¿estoy seguro de que uno de ustedes tiene un Android, iPhone, Blackberry o iPod Touch? Obtenga la aplicación ibooks o kindle y compre versiones digitales .
Tener que lidiar con un libro físico ralentiza el proceso de adquisición de conocimiento; Las herramientas integradas en los lectores digitales proporcionan muchos beneficios a la lectura técnica.
Nota: como se menciona en los comentarios, hay inconvenientes en los libros digitales versus los impresos, así que tome este punto con un grano de sal
fuente
Realmente me gusta la forma en que llegué a la programación; Lo único que puedo imaginar cambiar es mi acceso a los libros. Mi familia no tenía el dinero para todos los libros que podía devorar, y nuestra pequeña biblioteca rural no tenía exactamente manuales técnicos. En el gran esquema de las cosas, este es un pequeño detalle.
Estoy totalmente en desacuerdo con aquellos que dicen que no puedes aprender teoría a los 14. Cuanto antes aprendas la teoría, mejor. Yo leo El arte de la programación de computadoras a los 14 años, aunque ya llevaba un tiempo codificando.
Lo mejor que puede hacer por su hermano es darle las herramientas para perseguir sus intereses e incluirlo en la comunidad de hackers / codificadores siempre que sea posible, para que pueda aprender la mentalidad de un gran codificador.
Empujarlo lejos de las herramientas de propiedad siempre que sea posible. Hay mucho más disponible para él en el mundo del código abierto. Me puse tan bueno como lo soy en gran medida debido a la orientación que recibí de personas más experimentadas en la comunidad de código abierto.
Si puede permitírselo, obtenga una cuenta de Safari o ayúdelo a comprar libros cuando sea necesario. Incluso prestar lo que ya posee puede ayudar.
Asegúrese de que tenga acceso a una computadora de escritorio o portátil decente y a un servidor o VPS para experimentar. Si lo suyo son las aplicaciones móviles, asegúrese de que tenga un teléfono o dispositivo de demostración para trabajar.
Muéstrele cómo encontrar canales IRC, listas de correo, etc. para las cosas con las que está interesado en trabajar.
Asegúrese de que sepa cómo hacer preguntas inteligentes y, por el contrario, los detalles de una sanguijuela de apoyo para que sepa qué no hacer.
Su primer lenguaje de programación no es el factor más importante. La totalidad de los lenguajes de programación que aprende es extremadamente importante. Los codificadores de un idioma nunca pasan un cierto nivel (relativamente bajo) de codificación-foo.
fuente
Me gustaría aprender cosas para el ámbito de la telefonía móvil, eso es lo mejor en bienes raíces allí. Haga que se configure con un IDE que tenga un emulador de teléfono, y consígale un teléfono al que pueda enviar las aplicaciones .
Prepáralo para un uso real y piratería, complementado con alguna teoría de tus libros para guiarlo. Asegúrese de que tengan buenas muestras.
fuente
Yo iría a la escuela si fuera de la universidad. Me gustaría ir a la secundaria, si fuera de la secundaria.
Tendría una misión y ajustaría el plan de estudios en consecuencia a los 14.
mucha gente me decepcionará por esto, pero Visual Basic .NET parece ser más fácil para algunos, solo diciendo amigos. Parece ser así para muchos que no están en el iniciado.
fuente
Comenzar con web dev es una buena idea. Puedes obtener resultados incluso si eres un verdadero principiante, y si te equivocas, no importará mucho.
Yo diría Html / CSS + Php. Como Jeff declaró en su comentario, tener su sitio alojado será importante, y los proveedores de Php no son caros, a menudo incluso gratuitos.
En cuanto a la teoría, simplemente lo olvidaría por el momento. Según tengo entendido, en su mayoría quiere divertirse, y seamos sinceros, la teoría no es muy divertida. Además, si le gusta la programación, tendrá mucho en la escuela.
Obviamente, a todos nos importa un buen código, pero si solo va a jugar, ¿qué importa si su código es desordenado?
fuente
programación web / escritorio / móvil / servidor? Me parece que está interesado en todo. Sin embargo, el problema es que debe comenzar con algo.
Muchos no estarán de acuerdo, ya que, por supuesto, no hay una respuesta "correcta" a esto, pero le compraría un libro sobre Python ( Learning Python es lo suficientemente grueso y exhaustivo como para mantenerlo ocupado durante mucho tiempo), y definitivamente es un lenguaje que le dará una buena proporción de cosas que aprendí frente a los dulces visuales (es decir, lo que se puede lograr con él). También es un buen punto de partida para muchos de los anteriores.
Después de eso, vea qué es lo que más favorece de lo mencionado anteriormente, y diríjalo más lejos con consejos en esa dirección.
fuente
¿Su escuela secundaria ofrece clases de informática? Por ejemplo, en los Estados Unidos, el programa de Colocación Avanzada tiene una clase de ciencias de la computación que analiza bastante los conceptos básicos de ciencias de la computación (flujo de control, prácticas básicas de desarrollo orientado a objetos, bucles, etc.).
Pude asistir a una escuela secundaria que ofrecía cursos de ciencias de la computación durante básicamente los 4 años (desde un curso introductorio hasta LIPS básico, MIPS y Open GL). Terminé probando lo básico en la universidad y luego volví a aprender muchos otros idiomas y temas en los cursos de nivel superior. Puedo decirles que el cerebro de 14-17 años tenía muchas más dificultades para entender la teoría que un cerebro de 18-22 años. Temas como la recursividad, la aritmética de punteros, la programación de bajo nivel, la topografía de la red y la programación funcional me tomaron mucho tiempo en llegar a la escuela secundaria, pero la segunda vez en la universidad me pareció muy fácil, quizás porque yo '
Aunque fue difícil, pensar en CS a partir de 14 es extremadamente útil. Hacerlo sin maestros parece que hubiera sido complicado. Hubiera pasado tiempo desarrollando páginas web por diversión porque es lo que me encantaba hacer en ese entonces (y ahora), pero nunca me habría enseñado a mí mismo los punteros, la recursión y el LISP por diversión en ese momento.
fuente
Yo personalmente no comenzaría con la teoría hardcore. Comenzaría con una programación práctica entremezclada con algunos elementos de la teoría. Podría mantener a uno mucho más motivado y no asustarlo.
Es, por ejemplo, un caso con escuelas musicales. Una gran parte de los estudiantes renuncian porque se aburren con la teoría y eventualmente pierden interés.
Además, la teoría no es tan buena cuando se aprende antes de ensuciarse las manos con la práctica. No sabrá cuándo y cómo aplicarlo.
Pero si tenía algún conocimiento teórico y luego practicaba mucho, después de eso, un curso serio en TI lo empujaría a un nivel diferente. De lo contrario, los años pasados en una universidad se desperdician en un año sordo.
En ese orden:
Alguna teoría básica sobre hardware, arquitectura de computadoras y programación de ese hardware. Solo básico.
Luego desarrolle cosas prácticas. Aplicaciones básicas para mantener el interés. Primero local, luego algo con gráficos. Páginas web aún no, ya que le gustaría demostrar la programación del lado del servidor y, a menudo, es inútil sin bases de datos.
Déjele algunos cultivos de conocimiento de base de datos
Interfaz su aplicación local con la base de datos. Luego intente el desarrollo web.
Ajusta el rumbo a medida que avanzas.
fuente
Mi preferencia lógica basada en lo que sé ahora:
Averiguar cómo funcionan las cosas ahora. Si bien usted afirma que tiene una inclinación técnica, ¿qué tan bien comprende cómo funciona una computadora en este momento? Por ejemplo, ¿comprende las diferencias entre el marcado y los guiones? ¿Qué hay de escribir pequeños guiones para hacer esto o aquello? Esta sería mi sugerencia para un punto de partida, ya que desmitificar lo que tenemos a nuestro alrededor es un buen punto de partida dado todo lo que podría explorarse con bastante libertad.
Elija un idioma, IDE y control de fuente. Ahora bien, si bien esto puede parecer bastante difícil de arrojar a alguien, estas son las herramientas más bien básicas que con un poco de práctica podría pasar a cosas más grandes. Averiguar cómo hacer un "¡Hola Mundo!" La página web que tiene el mensaje incrustado en JavaScript no es un mal punto de partida si uno quiere algo más concreto aquí.
Ahora comience a agregar algunas de las cosas más difíciles. ¿Cómo hacer bucles o condiciones? Esto no es realmente tan sofisticado todavía, pero todavía estamos entendiendo la etapa de bloques de construcción aquí. Finalmente, presente la idea de clases y cuáles son algunas ideas detrás de este concepto.
Ahí sería donde comenzaría si alguien quisiera obtener algunos conceptos básicos de mi conjunto de habilidades.
fuente
Nunca pensé que diría esto, pero consíguele Alice 3.0 .
Odio a Alice con la furia ardiente de mil soles, pero definitivamente hace un buen trabajo al enseñar los fundamentos de la programación (bucles, declaraciones, funciones, etc.) cuando se combina con un tutorial decente.
Una vez que sea sólido en lo básico, pase a un lenguaje basado en texto más práctico.
fuente
Esto parece razonable. Impartir algunas habilidades básicas y ayudarlo a desarrollar una idea para un proyecto desafiante en el que seguirá interesado.
Sus primeras experiencias no necesitan ser perfectas, de hecho, ayudará si comete muchos errores temprano. Solo debes asegurarte de que siga interesado en expandir su conocimiento. Cuando llegue a sus limitaciones, estará rogando por ayuda y usted puede apuntarlo en la dirección correcta si aún no se ha diversificado al material de referencia.
fuente
Consígale un libro sobre Test Driven Development. Hará pruebas unitarias sólidas segunda naturaleza para él. Ojalá aprendiera a tener las pruebas como núcleo de mi programación desde el principio.
fuente
Yo comenzaría con un lenguaje basado en C. He descubierto que hay más recursos útiles para ellos. También puede buscar un libro sobre cómo diseñar y formatear su código para que comience usando buenos principios de codificación. Tuve una clase dedicada a ello y utilizamos un libro llamado "Código limpio" y otro titulado "Desarrollo de software: principios de diseño" si no recuerdo mal. También desearía haber sido introducido en este sitio antes jaja.
Sin embargo, lo que más me ayudó fue obtener una pasantía temprano en mi carrera universitaria. Salí a las ferias de carrera como estudiante de primer año y recibí una pasantía en mi segundo año. También trato de tener un proyecto en el que estoy trabajando en todo momento y me gusta hacer algo que nunca antes había hecho para seguir aprendiendo. En este momento estoy trabajando en el uso de una tarta de frambuesa e implementando Siri de Apple para un sistema de automatización del hogar.
Básicamente, haz lo que sea necesario para que sea divertido. No te frustres. Tomar descansos. No te dejes atrapar por los libros. A veces, la mejor manera de aprender es ir a por ello y usar prueba y error.
Ah ... y aprende a Google :)
fuente
los niveles se siguen
no olvide modularizar las cosas cuando enseñe, entienda y él no entenderá javascript hasta que sepa c / c ++ o python, etc.
Añadido el 07/04/2013
a la edad de 14 años, cuando desee probar su programación práctica primero, necesita comprender qué recurso necesitaba para completar la tarea o proyecto o pautas básicas, así como mencioné primero en mi post aprender programación básica, lo ayudará para entender cómo funcionan los programas o el software con bucles y condiciones, la próxima vez que piense que entiendo todas las cosas, pero no sé cómo acceder al mouse o hacer algo cuando hago clic en alguna parte, probará algunas bibliotecas como gráficos y mouse, para que entienda cómo funciona esto, la próxima pregunta le vendrá a la mente cómo colocar mis botones y agregar eventos para que puedan interactuar con mi código, por lo que le gustaría aprender la programación de eventos y luego cuando complete esta etapa, surgirá la siguiente pregunta que hago muy grande código y no sé cómo llamar a la función es un poco complicado,luego intentará modularización, objeto y clases para la aplicación,
después de eso, pensarás que sé cómo construir una aplicación básica, pero quiero hacer una aplicación para la base de datos, luego la Base de datos viene a la mente, te gusta aprender, pero el problema es que sientes que es difícil conectarte con el código, así que trabajarás en la base de datos símbolo del sistema,
es un enfoque programático, creo, lo hago y aprendo de la misma manera y mis conceptos básicos son muy claros para que pueda entender cómo funcionan las rutinas o el programa,
una vez que entiendes y tienes mucha confianza en ti mismo, puedes hacer que la aplicación para escritorio pruebe las mismas habilidades para HTML
cuando pruebe html, sentirá que es mucho más fácil de lo que aprendió anteriormente, solo porque dedicó mucho tiempo a lo básico.
en html, entienda la estructura y cómo funciona el código, una vez que sepa esto, le gustará dar validación y conectividad a la base de datos para la aplicación, intentarlo y tener éxito en un día, puede construir fácilmente botones de lugar de forma y validar con la mitad de javascript, entonces te harás una pregunta a ti mismo. Hice todo, pero ¿qué hay de mirar? No coinciden con lo que veo en Internet, así que intenta con css, estoy muy seguro de que si intentas dedicadamente css con el mejor IDE o Dreamweaver lo harás estar enamorado de hTML / css.
es suficiente para que pueda hacer una aplicación simple o web con HTML,
en cierto punto se hará otra pregunta a usted mismo cómo hacerlo dinámico cuando sabe que los hipervínculos funcionan bien, entonces qué hace dinámico, pensemos en la base de datos, que aprende previamente ,
Sí eso es mi punto, según los documentos, inserción de registro, registro de borrado y el juego con la base de datos a nivel local con javascript y programación del lado del servidor, a continuación, otro concepto vendrá a la mente de forma automática, para crear el usuario, la validación, la sesión, el historial del usuario, la internacionalización, etc
y continuará sin orientación porque su base es clara y usted sabe qué hacer y qué recursos necesitaba para completar la tarea
Esas son todas las etapas. Lo básico es muy importante y los pasos correctos también. una vez que conozca los conceptos básicos, puede aprender fácilmente otro idioma o migrar de un idioma a otro
gracias por leer
Añadido el 07/04/2013
el programa no es más que un conjunto de instrucciones y rutinas, por ejemplo, nuestra rutina diaria, nos levantamos, nos bañamos, almorzamos, trabajamos, cenamos y nos vamos a dormir.
pero si nos equivocamos en alguna de las tareas, nos sentimos incómodos, es decir, si el día es domingo cuando no tiene trabajo o está de vacaciones, la condición cambia y las rutinas diarias también, para que coincida con otras cosas, eso es como el enfoque de programación, aprenda desde la práctica no desde lo que los libros le dicen, los libros son buenos para referencia pero entienden de manera natural cómo reaccionamos, trabajamos con la ayuda de la declaración if-else, por ejemplo: supongamos que tenemos dos trabajos y ambos son muy importantes, pero solo podemos hacer uno a la vez, eliges el primero y luego puedes ir a casa, si eliges el segundo, debes trabajar las próximas 5 horas, de lo contrario, si completas ambos trabajos, obtienes 1 día de licencia, eso es acerca del enfoque de programación
fuente