He estado aprendiendo a codificar desde hace 3 meses y todavía no voy a ninguna parte. ¿Algún consejo?

Algunas personas te están diciendo que no debes comenzar con C porque es demasiado difícil. Estoy de acuerdo con ellos, pero C ++ fue mi primer idioma, así que ¯ \ _ (ツ) _ / ¯. Tampoco creo que debas alejarte de ciertos conceptos solo porque son difíciles. ¡Retarte a ti mismo! Así es como te pones mejor.

Vaya a Careercup y responda las preguntas de la entrevista para C [1]. ¿Por qué? Algunas razones

  • Es una pregunta de entrevista. Alguien pensó que cierto concepto / idea / aspecto de C era lo suficientemente importante como para pedir un trabajo. Al responder preguntas anteriores de la entrevista, se siente lo que se considera “importante” sobre C. También se practica pensando en cómo usar C para resolver problemas.
  • Si ves una pregunta que no sabes cómo hacer, pero luego averiguas cómo hacerlo, ¡has progresado! Incluso si no fue un gran progreso, ahora eres un mejor programador de lo que eras antes de que vieras esa pregunta.
  • es practico Te van a entrevistar algún día, ¿verdad?

Algunas personas pueden decirte que realices algún tipo de proyecto del mundo real con C, pero según mi experiencia, los proyectos que me recomendaron eran muy inverosímiles o demasiado fáciles. Las preguntas de la entrevista con C pueden ayudarte mucho porque su único propósito es poner a prueba tu comprensión del idioma.

* La excepción a esto es algunos problemas abiertos en los proyectos Github, pero hay una especie de curva de aprendizaje empinada para aprender a usar Git / Github, así que no recomiendo que contribuyas a proyectos de código abierto si tu objetivo es aprender C.

Notas al pie

[1] C preguntas de la entrevista

No hay nada de malo en aprender C primero. Ya no es un lenguaje “duro”, ya que Python es un lenguaje “duro”. C es un lenguaje de codificación de nivel inferior y muchas conveniencias, como array append / extension, requieren más trabajo con C que con Python, Ruby, PHP, etc.

Como han mencionado otros, cuando repasó el libro, ¿hizo todas las tareas, proyectos y problemas del libro? Si no, entonces esa es la respuesta. Tienes que hacer el trabajo para comprender los conceptos y poder escribir código de manera efectiva. Si el libro que eligió no tenía proyectos, sugeriría que seleccione un texto universitario en la librería usada o en Amazon / Ebay / etc. el cual TENDRÁ proyectos de codificación en ellos, y trabajará a través del texto. Únase a StackExchange y revise las respuestas y publique preguntas cuando llegue a un muro con los problemas. De esta manera, podrás mejorar tus habilidades de codificación en cualquier idioma.

“Pero cuando me manejaron, una tarea se centra en los punteros y la asignación de memoria dinámica, me quedé atascado y no pude hacer nada”

La asignación de punteros y memoria dinámica es un concepto bastante básico. Si uno se corta la codificación de Python y otros lenguajes de alto nivel, esto puede ser un concepto extraño, pero es muy importante para la codificación, si se va a utilizar lenguajes de programación de nivel inferior (más cercano al metal).

Los conceptos principales que se deben tener en cuenta con respecto a la programación son: estructuras de datos, sintaxis y entornos de creación / de herramientas.

Si tiene problemas para aprender a codificar por su cuenta, es útil obtener un compañero / mentor de codificación.

Aprender un lenguaje de programación es muy parecido a aprender un lenguaje hablado: practicar, practicar, practicar.

¡Síguelo! 🙂

PD. Me corté los dientes de forma autodidacta: Assembly (x86), GW-Basic y C hasta la secundaria / preparatoria. Así que definitivamente es posible auto-enseñarte a ti mismo. Pero solo necesitas hacer los proyectos de programación.

Creo que hiciste un pequeño inconveniente al elegir C como el lenguaje para tu incursión inicial en la programación. C es un lenguaje inmensamente poderoso, pero no es ideal para aprender los fundamentos de la programación, ya que uno tiende a atascarse debido a la idiosincrasia del lenguaje.

¿Puedo recomendar usar algo como Python como su lenguaje de programación inicial? Es un placer codificar y podrá centrarse en los algoritmos y los fundamentos sin que se atasque con las peculiaridades del idioma. También es un idioma muy popular, especialmente en la comunidad científica y de ciencia de datos / aprendizaje automático (por lo que no es una mala habilidad para tener en su currículum).

Después de eso, elegiría un lenguaje funcional (Haskell, por ejemplo) que te hará ver la codificación de una manera completamente diferente.

Después de esto, sería capaz de recoger C / C ++ bastante rápido, si alguna vez lo necesita.

Te deseo lo mejor. La codificación es una diversión inmensa y hay mucha ayuda en línea disponible. ¡Diviértete con eso!

Eso es perfectamente normal. A largo plazo, ser sistemáticamente guiado por tutoriales carece de sentido de la dirección. La codificación es un asunto serio, no solo requiere intelecto y conocimiento (que asumiré que están incluidos en tu conjunto de habilidades), sino también experiencia y “memoria muscular”.

Podría llevarle meses escribir 100 líneas al día antes de comenzar a centrarse en qué hacer, en lugar de cómo resolver un problema específico. Lo que quiero decir es que podría pensar en trabajar en proyectos pequeños y / o en una prueba de conceptos basados ​​en ideas que surja usted mismo, que obviamente lo inspirarán y lo impulsarán a avanzar. Desde ese punto, busque el conocimiento siempre que sea necesario, en lugar de dominar (o sentir como dominar) las herramientas de antemano.

C, en particular, tiene una curva de aprendizaje severa, ya que termina siendo muy poderosa en algunos aspectos. Le sugiero que busque preguntas populares para la entrevista con C, que se centren en algunas especificaciones funcionales en lugar de algoritmos en bruto. Mejorará 🙂

La mejor de las suertes,

Mehdi

Leer tu post es como me veo a mi mismo.

Cuando comencé a programar, elijo java y tenía un libro que tenía más de 2000 páginas. Lo leí dos veces y aún no sabía nada, hice la misma pregunta que hacías ahora, pero no me rendí, decidí seguir adelante y practicar hasta que aprendiera.

Poco tiempo después, comencé a comprender lo que estaba pasando y me reí de los problemas que no entendí hace un mes.

Así que mi punto es simplemente seguir presionando, la programación es difícil al principio, pero después de poco tiempo usted toma las cosas y luego todo se vuelve más y más fácil.

*********************************
Fahir es fundador e instructor en Awesome Tuts, donde ayudamos a más de 50,000 estudiantes a aprender a programar y hacer juegos.

Reclama tu curso GRATUITO de desarrollo de juegos de 14 horas y comienza a aprender con nosotros
*********************************

¿Intentaste seguir todos los ejemplos dados en el libro? Solo leer un libro sobre programación no hace nada por ti, tienes que practicar.

Los punteros no son muy difíciles, apuntan a una dirección de memoria específica que alberga el objeto mencionado (hablando desde C ++ aquí, pero C no debería ser muy diferente).
La asignación de memoria dinámica es la capacidad de asignar más memoria a un objeto específico (como una lista o una matriz) para darle mucho más espacio del que necesita. Esto, a su vez, lo hace para que no se encuentre con una excepción de desbordamiento o sin memoria.

Si tiene problemas con alguno de estos conceptos, un buen desbordamiento de pila es su amigo. Hay muchas personas que han estado antes en sus zapatos y tienen ejemplos de códigos para las respuestas.

Deje de aprender C. Los punteros y la gestión de memoria dinámica no recolectada en basura ni siquiera existen en los idiomas modernos, y se están perdiendo conceptos orientados a objetos. Vaya con Java o C # (pero no C ++).

“Código para aprender y no aprender a codificar” es un maravilloso comentario que encaja bien con tu situación,

Nunca aprendí a codificar correctamente usando libros, aplicaciones telefónicas o sitio web, NO IMPORTA CUÁNTO PODRÍA CLARARSE,

notará una gran diferencia si toma su aplicación de espacio de trabajo de programación y enciende un video tutorial sobre su especialidad y, paso a paso, siga lo que el podcaster dice y escribe como un script para su aplicación, comenzará a desarrollar algún tipo de conocimiento que Es sólido mucho más que cuando lo pruebas con un libro,

Si te gusta mi sugerencia, ve y echa un vistazo al canal “TheNewBoston” en YouTube, tiene innumerables episodios sobre cualquier tipo de lenguaje de programación que elijas, en caso de que te canses de aprender C …