Dejé de programar hace poco más de un año cuando seguí golpeando este muro. Estoy revisando el tema porque quiero crear una aplicación básica de Android. Pero siento que mi conocimiento limitado no será suficiente.
Aquí está mi problema.
Leí algunos libros y vi tutoriales en video sobre C # / Java, seguí ejemplos y luego terminé el libro. Al final, siempre parecen dejarme estupefacto en cuanto a qué hacer a continuación.
Lo que significa es que te enseñan desde tu aplicación básica "hello world" hasta if's y arrays, y aparentemente esperas que sepas cómo salir al mundo de la codificación y crear cualquier cosa.
¿Me estoy perdiendo de algo? Sé que estos son los componentes básicos de todos los programas, pero los libros que leo nunca me muestran qué hacer a continuación.
La respuesta fácil, supongo, sería 'comenzar a codificar', pero ¿dónde? Leí "Head First Java" por ejemplo; hasta el punto en que te dicen que tomes todo lo que has aprendido y crees un juego de carreras de perros ...
"intenta no hacer trampa y mira el código fuente provisto, ya deberías poder hacerlo" _ esa no es una cita exacta pero básicamente eso es lo que me dijeron ...
Hace media hora solo explicaban cómo hacer matrices, ¿y sin ninguna teoría, estoy destinado a crear un juego de trabajo?
La razón por la que pregunto esto es porque me temo que esto es todo lo que se supone que debo saber al menos para comenzar a codificar, sin embargo, parece que me dieron una pequeña caja de herramientas y me dijeron que construyera un rascacielos.
Gracias por cualquier consejo
fuente
Respuestas:
En realidad no. No lo son Los componentes básicos de todos los programas son la abstracción y la reutilización. Muchos lenguajes de programación ni siquiera tienen matrices
if
o bucles.Hay algunos libros excelentes que le enseñan cómo programar en lugar de cómo funciona un lenguaje de programación en particular, que parecen ser los libros que ha estado leyendo.
Cómo diseñar programas, también conocido como HtDP, es un libro de este tipo. Te enseña, bueno, cómo diseñar programas. Y lo hace dándole recetas a seguir sobre cómo analizar problemas, resolverlos, transformarlos en algoritmos y más adelante en programas de trabajo.
Tenga en cuenta que "receta" es básicamente otra palabra para "programa", por lo que, en otras palabras, el libro le enseña programas para que los humanos los ejecuten en sus cabezas con el fin de generar programas para ser ejecutados por computadoras. ¿Cuan genial es eso? :-)
Los autores están trabajando actualmente en un borrador para una segunda edición de HtDP , que es posible que desee leer en lugar de la primera edición. El material sobre programación imperativa se ha eliminado y se tratará en el segundo volumen aún no escrito Cómo diseñar componentes , pero puede leer los capítulos que faltan en la primera edición.
Tenga en cuenta que HtDP no asume ningún conocimiento de programación y está dirigido a estudiantes de secundaria. Pero no dejes que eso te detenga: solo significa que probablemente podrás terminar algunos de los primeros capítulos más rápido, pero no creo que te aburras.
Abstracciones concretas también es una buena lectura a lo largo de venas similares. Al igual que HtDP, no asume ningún conocimiento de programación.
Otro libro que puede escuchar mencionado es Estructura e interpretación de programas de computadora, también conocido como SICP. Es uno de los mejores libros de programación jamás escrito, y de nuevo, no asume ningún conocimiento de programación.
Que es , sin embargo, orientado a los principiantes completos que estudian en el MIT . Y así, aunque no asume ningún conocimiento de programación, sí asume bastante conocimiento de dominio , por ejemplo, en los campos de ingeniería eléctrica, física y matemáticas. Nota: estos no tienen nada que ver con los conceptos que se enseñan, solo son necesarios para comprender los ejercicios y ejemplos . Por lo tanto, podría ser mejor leer HtDP o Abstracciones concretas primero, y luego leer SICP.
fuente
if
declaración o algún tipo deloop
: No estaría completo sin ellos.loop
enunciados y están completos.Bueno, no estás en una situación única. La mayoría de los libros para principiantes en lenguaje de programación tienden a centrarse más en los componentes básicos del lenguaje y eso es algo bueno. Sin embargo, como sucedió con usted, al final nos encontramos en una situación en la que hemos aprendido cada construcción que el lenguaje tiene para ofrecer, pero no podemos aplicar eso para resolver algunos problemas prácticos. En resumen, la brecha entre los ejemplos textuales y los programas prácticos solo se puede cerrar cuando intentas jugar con el código (como dice Telastyn). Esto es lo que generalmente hago mientras aprendo algunas cosas nuevas:
Al final, todo se trata de práctica e investigación que lo ayudarán a mejorar sus habilidades de programación y, en última instancia, lo convertirá en un arquitecto de muchos rascacielos.
fuente
Vea esto para C #. Está muy completo: http://www.programmersheaven.com/ebooks/csharp_ebook.pdf Lo usé yo mismo, hace apenas medio año. Utilizo el compilador #Develop con él para los ejemplos. No puedo ayudarte mucho con Java porque casi nunca lo usé.
Cuando llega el momento de programar, lo que muchas personas no se dan cuenta es que usualmente usas un SDK o marco adicional para lo que estás diseñando. Por lo tanto, no espere saltar inmediatamente de Java o C # a la programación del teléfono, porque es probable que necesite un buen marco intermediario, y las curvas de aprendizaje para ellos pueden ser tan aburridas como las curvas de aprendizaje para los lenguajes de programación. Aunque el tutorial de C # que publiqué solo cubre C #, muchos de los conceptos que cubre se ven en otros lenguajes orientados a objetos, como Java.
Editar: El escenario que describe es, desafortunadamente, la ruta que siguen muchos tutoriales. No tiene que seguir este tutorial, y si funciona en contra de la forma en que aprende, probablemente sea mejor intentar elegir uno diferente (no sé de ninguno, pero Google probablemente sí). Pero solo para estar seguro, verifique si el autor del libro que está describiendo explicó el código línea por línea. No te preocupes por lo inteligente que eres, solo un prodigio podría pasar directamente de un libro a un juego de trabajo. Solo recuerde, los tutoriales no son en absoluto la medida estándar de habilidad, ¡así que haga lo que le enseñe mejor y no se desanime!
fuente
Sí, eso debería ser suficiente para hacer programas súper básicos. En este punto, intentas hacer un programa un poco más complejo que el que te hicieron los libros. Cuando necesita hacer algo específico y no sabe cómo, incluso con algo de trabajo, busca en Internet o pregunta a un maestro / mentor. Esto conducirá a características más avanzadas (y con bastante frecuencia a un callejón sin salida ya que, sin saberlo, eligió algo mucho más complejo de lo que puede hacer).
Ningún libro te va a enseñar cómo resolver problemas.
Ningún libro explicará cómo diseñar programas, eso viene con la práctica. Ningún libro te va a enseñar cómo hacer una aplicación no trivial: hay demasiados matices; aprendería cómo construir esa implementación, no cosas como esta.
La mejor manera de aprender en este punto es incursionar. Jugar con el código para crear algo. Al igual que los artistas a menudo comienzan garabateando pequeñas cositas que se vuelven progresivamente más sofisticadas y atractivas, los programadores necesitan esa progresión exploratoria.
fuente
Realmente no puedo recordar si usé un libro para entrar en la programación, pero supongo que en esos días era más un manual de referencia de sintaxis en lugar de un libro tutorial. Me enseñó lo que podía hacer el lenguaje de programación, pero no cómo construir una aplicación real con él.
Afortunadamente, había algunos ejemplos en el libro que solía escribir (sí, no había ejemplos de código fuente descargables) y luego traté de averiguar cómo funcionaba. Esa no es la forma óptima de aprender programación, pero para mí fue divertido en ese momento.
Lo que recomendaría es que se establezca un objetivo como " Quiero construir una aplicación Javascript que dibuje un círculo de rebote " y luego use su conocimiento ya adquirido para comenzar y buscar todo lo demás en el lenguaje SDK / documentación y / o aquí en lo.
Ese es el enfoque que estoy usando cuando intento saltar a un nuevo idioma y aprender mis primeros pasos. La mayoría de los libros que leí en los últimos días no estaba satisfecho porque tenía la misma sensación de perder algo importante . Pero afortunadamente ahora tenemos Internet, por lo que sea cual sea el idioma que desee aprender, puede encontrar un código fuente de ejemplo en Internet y usarlo para continuar su aprendizaje.
editar Por supuesto, algunos libros más generales que le enseñan cómo diseñar una aplicación o qué proceso (SCRUM, XP, V-Modell) seguir es una buena adición al conocimiento del lenguaje puro.
fuente
Estoy de acuerdo con Jörg en que también debería leer algunos libros generales sobre los conceptos de programación en lugar de aprender demasiados detalles sobre un idioma en particular en esta etapa. Con respecto al libro Cómo diseñar programas , se utiliza como referencia en este curso , lo que podría ser de su interés.
De lo contrario, otra herramienta que otros no han mencionado es hablar mucho con otros desarrolladores . Recuerdo que para mí una de las formas más efectivas para aprender a programar era pasar muchas horas discutiendo con colegas u otros programadores sobre aspectos de programación, lenguajes de programación, técnicas o problemas concretos que estaba enfrentando en ese momento en particular. La transmisión oral del conocimiento puede ser uno de los medios más efectivos para aprender nuevas habilidades.
fuente
Sugeriría encontrar proyectos de código abierto y convertirlos en cajas de arena personales. Modifique los comportamientos existentes, agregue nuevos comportamientos y elimine también algunos. Juega un poco, implementa tus propias ideas y "y si lo intentara".
No estoy abogando por que conviertas el proyecto de código abierto de otra persona y lo reclames como tuyo.
Estoy diciendo que mire otros proyectos de trabajo como un medio para aprender cómo llegar a los siguientes pasos. Hay muchos sitios disponibles con código de código abierto para descargar. Aquí hay algunos que vienen a la mente: CodePlex CodeProject
fuente
Esa es la vida de los codificadores. No conoces una tecnología, pero desarrollas un 'hola mundo' y te conviertes en un experto. En las empresas (la vida real) es así como funciona. Buena suerte
fuente