Al aprender a programar, ¿cómo superar la brecha entre principiante e intermedio?

Hay muy poca información disponible para ayudar a un desarrollador a dar el salto de principiante a intermedio.

Aprender otro idioma

No importa qué idioma aprenda, pero aprender otro idioma (independientemente de cuántos ya sepa) lo convertirá en un mejor desarrollador. Aún mejor es aprender uno que sea significativamente diferente de lo que ya usa regularmente. En otras palabras, si eres un desarrollador de C #, aprender Java no te ayudará tanto como aprender Ruby o Groovy.

Aprenda técnicas de búsqueda avanzada, tácticas y estrategias.

“Técnicas”, “tácticas” y “estrategias” pueden parecer sinónimos, pero no lo son. Las técnicas que necesita aprender son los sistemas de búsqueda avanzada de su motor de búsqueda favorito; necesita aprender cosas como los operadores booleanos, cómo filtrar resultados, qué papel juega el orden de las palabras y más.

Ayuda a otros

Enseñar a otros es invariablemente una de las mejores formas de aprender algo. Es comprensible pensar que no tienes mucho que ofrecer porque eres relativamente nuevo en el campo del desarrollo. Eso no tiene sentido. Recuerde, todo lo que sabe que aprendió de alguien o de algún lugar; así que trata de ser alguien de quien otra persona aprende. Pase unos minutos al día tratando de responder a las preguntas del sitio web lo mejor que pueda. También puede aprender mucho leyendo las respuestas de otros miembros.

Sé paciente y sigue practicando

convertirse en un experto no siempre significa hacer la misma tarea durante 10 años; a menudo significa hacer una amplia variedad de tareas dentro de un dominio particular durante 10 años. Tomará mucho tiempo y energía convertirse en un “experto”; Trabajar como desarrollador durante algunos años no es suficiente. Comience su educación / capacitación antes o esté dispuesto a hacer mucho trabajo, leer y practicar en su tiempo libre.

Deja tus dogmas en la puerta

Es hora de una honestidad brutal: los desarrolladores principiantes probablemente no saben lo suficiente como para afirmar que hay una mejor manera de hacer algo. Está bien respetar la opinión de un amigo o una figura de autoridad, pero hasta que tenga más experiencia, no reclame sus opiniones como propias. El simple hecho es que, si no sabes lo suficiente como para resolver estas cosas por tu cuenta, ¿qué te hace pensar que sabes qué “experto” es el correcto? Sé que esto suena muy duro, pero por favor créeme.

Aprenda algunas ideas avanzadas en profundidad

Gran parte de lo que implica ser un desarrollador intermedio es tener algunos conceptos con los que eres muy bueno trabajando en código. Encuentra algo que realmente te haya enganchado. Puede ser manipulación de imágenes o diseño de bases de datos o lo que sea. Incluso si es un desarrollador de nivel de entrada, intente convertirse en un experto en al menos un área de enfoque. Esto lo llevará a ese nivel intermedio con bastante rapidez, y una vez allí, estará a medio camino de ser experto.

Aprenda las teorías básicas que subyacen a su campo.

Una cosa es escribir “Hello World”, pero otra es entender cómo aparecen las palabras en la pantalla. Al aprender la “base” que respalda el trabajo que realiza, será mucho mejor en eso. ¿Por qué? Porque comprenderá por qué las cosas funcionan de la manera en que lo hacen, qué podría estar mal cuando las cosas están rotas, etc. Mejorará aprendiendo lo que sucede en un nivel más bajo que su trabajo.

Mira el código de desarrolladores senior

En su trabajo, eche un vistazo al código que escriben los desarrolladores senior y pregunte cómo y por qué se hicieron las cosas de una manera particular. Si puede, vea también los proyectos de código abierto. Incluso si otros desarrolladores no tienen los mejores hábitos de codificación, aprenderá mucho sobre cómo se escribe el código. Tenga cuidado de no tener malos hábitos en el camino. La idea aquí no es simplemente imitar ciegamente lo que otros desarrolladores están haciendo; es para tener una idea de lo que funciona y lo que tiene sentido e intentar imitarlo.

Aprende buenos hábitos

Nada marca a un codificador inexperto como nombres de variables estúpidos, malos hábitos de sangría y otros signos de ser descuidado. Con demasiada frecuencia, un desarrollador aprendió a programar sin que se le enseñen los detalles menos interesantes, como el formato de código, y se nota. Aunque aprender estas cosas no siempre hará que su código sea mejor o que sea un mejor desarrollador, se asegurará de que sus pares no lo vean como un desarrollador de nivel de entrada.

Para asegurarse de superar todos estos factores, puede iniciar sesión en Hackr.io: encuentre y comparta los mejores cursos y tutoriales de programación en línea

¡¡Que te diviertas!!

Desplieguemos el misterio

Hay dos maneras:

1. La peor manera
2. La mejor manera

1. La peor manera
Simplemente leyendo libros (incluso libros de calidad inferior) y sin tocar el teclado.

2. La mejor manera

Se dice que obtener C y C ++ correctamente con lo básico es la piedra angular en la programación. Asi que

2.1 Libros estándar para C
2.2 Libros estándar para C ++

2.3 ¿Dónde debo codificar?
Un IDE o “Entorno de desarrollo integrado” te volverá estúpido. Son las peores herramientas si quieres ser un buen programador porque te ocultan lo que está sucediendo y tu trabajo es saber qué está sucediendo. Son útiles si está intentando hacer algo y la plataforma está diseñada en torno a un IDE en particular, pero para aprender a codificar C (y muchos otros lenguajes) no tienen sentido.
Algunos editores de texto para probar son:

· Gedit en Linux y OSX.
· TextWrangler en OSX.
· Nano, que se ejecuta en la Terminal y funciona en casi todas partes.
· Emacs y Emacs para OSX. Sin embargo, prepárate para aprender un poco.
· Vim y MacVim

Probablemente haya un editor diferente para cada persona, pero estos son solo algunos de los gratuitos que sé que funcionan. Pruebe algunos, y quizás algunos comerciales hasta que encuentre uno que le guste.

Pero si simplemente escribir en el teclado no parece lo suficientemente bueno y necesita alguna parte divertida para mantenerlo, hay mucho para usted.

2.4 Aprender codificación (interactivamente) en línea

2.5 ** Parte más importante: ejercicios de programación y codificación competitiva
( La codificación competitiva es opcional, pero aún así me gustaría mencionarla aquí: practíquela y es posible que lo ubiquen en uno de los Gigantes tecnológicos ) .
Originalmente respondido:
La respuesta de Dhruv Aggarwal a ¿Cuál es la mejor manera de aprender lenguajes de programación como Java, C # y C ++? ¿Qué libros recomendarías para aprender cada lenguaje de programación?
La respuesta de Dhruv Aggarwal a Quiero descifrar las principales compañías tecnológicas como Facebook, Google, Microsoft, Amazon. Me queda un año para la preparación. ¿En qué debería centrarme: programación competitiva o preparación de entrevistas?

La codificación competitiva es la mejor plataforma para probarse y adquirir nuevas habilidades.
Si no eres bueno en el autoaprendizaje con libros y sitios web y necesitas un mentor (no hay nada de que avergonzarse de que todos lo necesiten, por eso hay escuelas y colegios)

Aquí hay un premio gordo para usted: Introducción a la informática: introducción de la Universidad de Harvard a las empresas intelectuales de la informática y el arte de la programación para mayores y no mayores, con o sin experiencia previa en programación. Un curso de nivel de entrada impartido por David J. Malan, CS50 enseña a los estudiantes cómo pensar algorítmicamente y resolver problemas de manera eficiente.
[edXcourse / Introduction-computer-science-harvardx-cs50x]
Estas son algunas buenas plataformas para el mismo
1. Página en coursera.org
2. Video tutoriales y capacitación en línea
3. edX
4. http://www.tutorialspoint.com/
5. Lista de MOOC


Llegaste todo el camino leyendo esto, aquí hay alguna motivación para ti

¡Después de todo esto, todo lo que quiero decir es buena suerte! 🙂

Fuentes: Quora, StackOverflow, Google, YouTube, PCMag.com

¡Hola!

Considero la educación progresiva, la mejor manera de aprender a programar de manera eficiente para que pueda llenar el vacío entre los programadores principiantes e intermedios. La universidad es una pérdida de tiempo a menos que quieras ser parte del mundo de la investigación y los recursos en línea son un buen calentamiento, pero no te llevarán a una carrera, ya que puedes quedarte atrapado en ausencia de mentor y motivación propia. Por lo tanto, le sugiero que aumente su programación eligiendo el mejor enfoque de aprendizaje donde pueda aprender progresivamente orientado a proyectos.

En la escuela de programación como Holberton School of Software Engineering en San Francisco, ofrecemos alternativas basadas en proyectos a la universidad que se enfoca en los desafíos del mundo real, los comprende y los resuelve. Ofrece un programa de educación superior de dos años en San Francisco y no requiere ningún conocimiento previo de codificación para que los estudiantes de diversa diversidad puedan ser atraídos, lo que hará que un ambiente de aprendizaje sea emocionante. El enfoque de Educación Progresiva en esta escuela enseña un Forma muy efectiva de aprendizaje Programación.

Se enfoca en:

  • Forma creativa y emocionante de resolver problemas reales.
  • Fuertes comunicaciones entre estudiantes (aprendizaje entre pares).
  • Aprendizaje en base a proyectos.
  • Aprendiendo a aprender.
  • Conocimiento de ingeniero de pila completa.
  • Aprenda de los líderes de la industria y mentores de la vida real.

No enfocamos a los estudiantes para que aprendan un lenguaje de programación seleccionado o un marco seleccionado, sino que los ayudamos a resolver problemas para que tengan éxito a lo largo de toda su carrera. Los estudiantes aprenden sin importar que tengan que decirles que cumplan los objetivos, junto con la programación de bajo nivel y del sistema, la programación de alto nivel, el desarrollo de redes y dispositivos móviles, la administración y las operaciones del sistema, el archivo de texto ASCII, los algoritmos, la ingeniería inversa, etc., pero como documentación , comunicación, construcción de comunidad, etc.

Visite la Escuela de Ingeniería de Software Holberton en San Francisco para saber más de qué se trata.

¡Buena suerte!

Gracias por A2A, pero esta pregunta se ha hecho demasiadas veces, así que solo te señalaré los lugares donde he respondido esto antes.

¿Cómo me acerco a la programación (lea la descripción)?

¿Cuáles son las cosas que debo saber antes de comenzar a aprender programación?

¿Cómo puede una persona que no ha hecho la programación hasta los 12 años llegar a ser muy buena en la programación? ¿Las conferencias y cursos en línea ayudan a una persona en cierta medida?

¿Cuáles son las cosas que debo saber antes de comenzar a aprender programación?

Quiero dominar C ++. ¿Dónde empiezo?

Soy un programador terrible, ¿qué debo hacer para mejorar?

Soy un estudiante de segundo año en la escuela secundaria, que es muy bueno en matemáticas. Siento que sería bueno programando, pero actualmente no tengo casi ningún conocimiento de programación. ¿Dónde, ya sea a través de libros o de Internet, puedo aprender a programar bien?

No soy ingeniero de software por título o por profesión. He estudiado C y C ++ en el pasado y ahora quiero aprender nuevos lenguajes (especialmente Python y JavaScript), codificación, marcos, etc. como hobby. ¿Cómo debo comenzar?

¿Cuáles son las fuentes para aprender C, C ++ y Java prácticamente?

¿Qué sitio te permite tomar notas gratis sobre la programación en C?

¿Cuál es el mejor libro para C ++ STL para principiantes?

¿Cómo puedo aprender el lenguaje de programación Python en 3 semanas?

¿Cómo mejoro la codificación?

Algunas otras preguntas sobre programación:
¿Cómo se crean los archivos .exe? ¿Y qué lenguaje de programación se utilizan para crearlos?

¿Está bien aprender Python después de aprender C?

Soy graduado en ECE. Si quisiera aprender el lenguaje Python, ¿puedo hacerlo?

¿Es necesario convertirse en un experto en C o C ++ antes de pasar a cualquier otro lenguaje?

Tengo más de 5 años de experiencia en PHP. Quiero establecerme en el extranjero. ¿Que opciones tengo? ¿Cómo busco en las compañías que otorgan visas para desarrolladores de PHP?

Prima:
¿Vale la pena aprender Scala?

¿Debería un programador de Java aprender Scala?

Comencé C ++ ayer y el próximo mes cumpliré 19. ¿Es demasiado tarde para ser un experto en codificación?

Aprender un programa y tener competencia son dos entidades diferentes. Un principiante hace referencia a la codificación de muestra mientras programa tareas variadas en varios idiomas de elección. Mientras todo el tiempo lucha por evitar errores, se encuentra con demasiada frecuencia.

Pero la elevación al siguiente nivel intermedio viene con la práctica constante y la guía de un experto. Esto es aquí cuando uno necesita identificar errores y la ayuda para rectificar. Se vuelven hábiles con los códigos vitales, pero para adquirir experiencia necesitan aprender programación avanzada.

Todo lo dicho, tener un conocimiento básico y ponerlo en la forma final en la programación es desalentador para un principiante. Pueden estar refiriendo libros o la ayuda de videos en línea, pero lo que finalmente vale la pena es la determinación, la práctica y la orientación correcta de las personas adecuadas, para ir más allá de la publicación del principiante.

El escenario tecnológico en constante cambio produce un nuevo lenguaje a menudo. Uno podría aprender algún idioma o herramienta, pero probablemente exista la necesidad de aprender algo más avanzado. Holberton School , [1] la escuela líder que se entrena en programación y TI tiene diferentes métodos de enseñanza efectiva que realmente funcionan bien para que el principiante se convierta en intermedio.

Hacen hincapié en el dominio de resolución de problemas. La programación y la programación de aprendizaje son básicas que los estudiantes necesitan saber. Pero realmente aprenden a través de la resolución de problemas desafiantes al referirse a diferentes fuentes fuera de línea y en línea. La escuela Holberton siente de esta manera que uno aprende habilidades blandas cruciales que ayudan a llenar el vacío evidente entre un principiante y un intermedio. El plan de estudios de mentor-buque en Holberton trae una progresión fácil y disciplinada desde un principiante hasta un posicionamiento intermedio. Le deseo todo lo mejor en su curva de aprendizaje.

Notas al pie

[1] Educación | Escuela Holberton

El idioma específico depende de lo que quieras hacer con él. Diferentes idiomas tienen diferentes audiencias (debido a sus bibliotecas y comunidades, principalmente), por lo que no me enfocaré allí.

Pero en general, querrás ver cómo hacer las siguientes cosas:

  • Obtenga respuestas a la aritmética.
  • Almacenar datos (variables individuales y datos estructurados).
  • Haga elecciones (declaraciones condicionales, generalmente if ).
  • Repita las tareas.
  • Organice su código en componentes (funciones y objetos).

A partir de ahí, se trata de utilizar esas herramientas para resolver problemas de manera más limpia. A medida que lo haga, obtendrá una idea del “modelo computacional” de los idiomas, que sugiere cómo los problemas se resuelven de forma más natural en ese idioma.

Y, como dije, las bibliotecas son importantes. Mucha gente ha trabajado mucho escribiendo, depurando y optimizando código. Es bastante raro que desee pasar el tiempo duplicando ese trabajo.

No hay mejor manera. Solo hay “lo suficientemente bueno”, y más allá de eso, comparaciones altamente subjetivas.

Para aprender una buena mentalidad para la programación, siempre recomiendo Cómo diseñar programas, segunda edición. (La Universidad de Columbia Británica ahora tiene un MOOC en coursera.org basado en él, aunque no he visto muchos de sus videos y, por lo tanto, no puedo garantizarlo).

Pero, sobre todo, busque oportunidades para construir cosas y leer el código . Aprenderás mucho construyendo.

Advertencias: Esta es una gran pregunta. Hay mucho involucrado en la programación bien. Un buen maestro puede acelerar un poco tu aprendizaje.

Esto sucede con la mayoría de los principiantes, por lo que lo mejor que puede hacer es tomar el CS50 de la Universidad de Harvard en edX . Puedo apostar al hecho de que no te aburrirás y cambiará totalmente tu forma de pensar. Después de todo, ¡David Malan está enseñando!

Prueba también tus manos en proyectos realmente simples. Por ejemplo, si está aprendiendo Javascript, haga una extensión simple de Chrome (con solo 10-30 líneas de código puede hacer una)

Intenta mejorar la extensión con tus ideas. Tengo una idea, pero no sé cómo hacerlo. ¡Pregúntele a alguien cómo hacerlo, el procedimiento, no el código!

Sigue mejorando sobre eso e intenta hacer cosas nuevas, mejorarás gradualmente 🙂

Muchos de nuestros estudiantes en NEXT Academy, después de pasar de 0 a 1, tienden a preguntar: ¿cómo obtengo de 1 a 100?

Aquí es donde les recomendaríamos que continúen practicando la codificación para retener el conocimiento, seguir construyendo y encontrar buenos mentores. Les pediremos que consideren los lugares donde hay desarrolladores senior que pueden darles orientación, un punto a favor para las empresas que leen códigos o programan pares entre seniors y juniors.

Cerrar esa brecha requiere experiencia, y la experiencia viene haciendo: ¡sigue practicando!

A veces, hay personas que contratan a desarrolladores senior para que realicen una revisión de código para ellos. Estoy seguro de que hay personas dispuestas a su alrededor, solo necesita presentarse y seguir preguntando. Solicite ayuda, consejos, también puede unirse a las reuniones de la comunidad y solicitar que las personas revisen su código en GitHub.

¡Espero que esto ayude! 🙂

Codificación codificación y más codificación. Encuentre problemas progresivamente más difíciles, haga muchas preguntas, depure y analice el código de otras personas y escriba pruebas … eventualmente llegará al nivel profesional sin siquiera darse cuenta. ¡Pero recuerda que la práctica lo es todo! Obtenga la mayor cantidad de manos posible. Contribuya al proyecto de código abierto, etc. ¡Diviértase en el camino! ¡Y recuerda que debes hacerlo todos los días! ¡Incluso por 20 minutos pero todos los días!

Para comenzar, aprenda la sintaxis de idiomas de cualquier libro o recurso en línea que le parezca bueno. Para C Permítanos que C sea lo mejor.
Entonces prueba problemas en Sanfoundry
Luego intente aprender estructuras de datos a partir de estructuras de datos y algoritmos facilitados por Narashima Karumanchi.
Luego, después de hacer todo esto, puede optar por una programación competitiva en competencia de programación, concurso de programación, programación informática en línea o Codeforces

Intente identificar lo que le gustaría ver desarrollado, luego verifique qué idiomas / plataformas de desarrollo son mejores para eso.
Al principio, evite los lenguajes complejos que requieren un conjunto complejo de bibliotecas, marcos, etc. para funcionar, prefiriendo comenzar con herramientas que le brinden el tipo de resultados que está buscando de forma independiente.
No apunte demasiado alto al principio: no comenzará desarrollando el próximo Facebook y otras cosas. Elija un área de interés y comience a desarrollar pequeños programas que logren algo en la dirección que desee. A medida que avance, también lo hará su dominio de la programación. La mezcla de motivación para practicar y buscar conocimiento es muy productiva.
A medida que desarrolles un poco de fluidez, asegúrate de verificar las mejores prácticas en programación (convenciones de nomenclatura, programación estructurada / modular, patrones) para que puedas ahorrar un tiempo precioso en lugar de “reinventar la rueda”.

Aprenda Processing.org y luego continúe con Javascript, Python, Ruby. Pronto se dará cuenta de que la programación se trata principalmente de las bibliotecas con las que trabaja y del entorno.

Hagas lo que hagas no te atasques, la programación incluso se puede aprender a través de algún software de edición de nivel de juego. Una vez que tenga una idea de cómo funciona, debe retomar parte de la teoría básica. Esto es un poco más aburrido pero es esencial para el trabajo profesional posterior.

Necesita resolver problemas en incrementos. Es difícil aprender a programar y resolver problemas al no trabajar en un proyecto específico. Elige un proyecto y quédate con él. Por ejemplo, si está tratando de comprender los árboles y la recursividad, configure un proyecto con objetivos bien definidos. Escriba código para construir primero un árbol y luego realizar búsquedas y otras consultas en él.

Ningún programador puede entender una gran cantidad de código en el vacío. Todos los programas se dividen en funciones constitutivas y todas las funciones tienen bloques de código que resuelven secuencialmente una parte de un problema mayor.

En retrospectiva, en realidad no importa cuál, al principio. Lo amarás o lo odiarás.

Tomaría clases en su colegio comunitario local o extensión universitaria. Serás desafiado y tendrás motivación, además tendrás otros estudiantes con quienes trabajar.

Si después de un par de clases decides seguir con esto, entonces comienza a pensar en dónde te gustaría seguir con esto … ¿front-end? back-end? middleware? ¿Ser único? Todos tienen diferentes conjuntos de herramientas, experiencia y requisitos con los que no te aburriré aquí. Simplemente tome algo (C / C ++ / Java / Visual Basic (qué asco, omita ese) / Javascript / Python): esos parecen ser lo que ofrecen los colegios comunitarios típicos y eso es suficiente para darle una idea de la vida de los programadores.

Me gusta este sitio – Aprende a codificar.

¿Para qué quieres aprender la codificación básica? ¿Quieres crear un sitio web, una aplicación móvil o seguir una carrera en él?

Para crear un sitio web básico usando html, encontrará esto muy útil: los Tutoriales web en línea de W3Schools. Prefiero recomendar construirlo en WordPress.

Para crear una aplicación, los cursos en Lynda: tutoriales y capacitación en video en línea son sorprendentes para comenzar.

He estado donde estas

Lo que me hizo superar esa joroba fue:

  • Realización de muchos programas mal realizados
  • Viendo algunos cursos universitarios de programación gratuita
  • Aprender que “Algoritmos, Estructuras de datos y Patrones de diseño” eran cosas y que debería estudiarlas

Básicamente tienes las herramientas, pero no la técnica. Usted sabe cómo crear las partes del puente, pero no sabe qué hace que un puente sea bueno a partir de un puente malo o cómo construir un puente sin que se hunda en el agua a la mitad de su construcción. Tienes que aprender algo de teoría de programación y tener algunas sesiones de práctica / falla.

Puede consultar algunos tutoriales sobre MEC. Si acaba de comenzar, sugeriría tutoriales sobre MEC (Massively Empowered Classrooms), un proyecto de investigación de Microsoft diseñado para brindar el material de clase de la más alta calidad a cada estudiante universitario de ingeniería en la India. Entonces puedes registrarte para eso y velar por ello.
Aqui esta el link
MEC

Practica! ¡Práctica! ¡¡Práctica!!
¡Código! ¡Código! ¡Código!

Este es el único secreto para ello … puede practicar en codechef o un nivel superior en el propio topcoder … participar en concursos acm icpc para una mejor experiencia y conocer el sabor de la codificación real. Mejore sus habilidades para escribir el programa de manera eficiente (en términos de memoria y tiempo de ejecución) de manera.

Todo lo mejor 🙂

Estas dos siguientes son formas divertidas y gratuitas de aprender a programar sin necesidad de experiencia.

Codecademy: Código Año
http://www.codecademy.com/tracks
Academia Khan: Informática
https://www.khanacademy.org/cs

Cuando quieras hacer algo increíble ve aquí:
http://ocw.mit.edu/courses/elect
y terminar todo un programa de informática de esta manera
Desafío MIT

También puede hacer un programa gratuito de informática aquí:
Ciencias de la Computación en http://www.saylor.org/