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

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

Aprender otro idioma

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

Aprende técnicas avanzadas de búsqueda, tácticas y estrategias.

Las “técnicas”, “tácticas” y “estrategias” pueden sonar como 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 los resultados, qué papel juega el orden de las palabras y más.

Ayuda a otros

Enseñar a los demás es invariablemente una de las mejores maneras de aprender algo. Es comprensible pensar que no tiene mucho que ofrecer porque es relativamente nuevo en el campo del desarrollo. Eso es una tontería. Recuerda, todo lo que sabes que aprendiste de alguien o en algún lugar; así que trata de ser la persona de la que otra persona aprende. Dedique unos minutos al día a intentar responder las preguntas del sitio web lo mejor que pueda. También puedes aprender mucho leyendo las respuestas de otros miembros.

Se paciente y sigue practicando.

convertirse en un experto no siempre significa hacer la misma tarea durante 10 años; a menudo significa realizar una amplia variedad de tareas dentro de un dominio particular durante 10 años. Tomará mucho tiempo y energía para convertirse en un “experto”; Trabajar como desarrollador durante unos 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 existe 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 cuál es el “experto” correcto? Sé que esto suena muy duro, pero por favor créeme.

Aprende algunas ideas avanzadas en profundidad

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

Aprende las teorías básicas que subyacen en tu campo.

Una cosa es escribir “Hola mundo”, pero otra es entender cómo aparecen las palabras en la pantalla. Al aprender las “bases” que apoyan el trabajo que realiza, se volverá mucho mejor en eso. ¿Por qué? Porque comprenderá por qué las cosas funcionan como lo hacen, qué podría estar mal cuando las cosas se rompen, etc. Mejorará al aprender lo que sucede a un nivel más bajo que su trabajo.

Mira el código de los desarrolladores senior

En su trabajo, eche un vistazo al código que los desarrolladores senior están escribiendo y pregunte cómo y por qué se hicieron las cosas de una manera particular. Si puedes, revisa 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 adquirir 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.

Aprender buenos hábitos

Nada marca a un programador inexperto como nombres de variables estúpidas, malos hábitos de sangrado y otros signos de ser descuidado. Con demasiada frecuencia, un desarrollador aprendió a programar sin que se le enseñaran los detalles menos interesantes, como el formato de código, y eso se nota. Aunque aprender estas cosas no siempre hará que su código sea mejor o que usted sea un mejor desarrollador, se asegurará de que sus colegas 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!!

Vamos a revelar el misterio.
Al aire libre
Al aire libre
Hay dos maneras:

1. peor manera
2. mejor manera

1. peor manera
Simplemente leyendo libros (incluso libros de mala calidad) y no toque el teclado.

2. Mejor manera

Obtener C y C ++ correctamente con lo básico, se dice que es la piedra angular de 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 hará 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á tratando de hacer algo y la plataforma está diseñada alrededor de un IDE particular, pero para aprender a codificar C (y muchos otros idiomas) 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. Esté preparado para hacer un poco de aprendizaje sin embargo.
· Vim y MacVim

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

Pero si simplemente teclear en el teclado no parece lo suficientemente bueno y necesitas una parte divertida para mantenerlo, hay mucho para ti.

2.4 Aprende 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 mencionarlo aquí: Practícalo y podrías ubicarte en uno de los Gigantes de la tecnología ) .
Originalmente respondió:
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 romper con las empresas de alta tecnología 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 todo el mundo lo necesite, por eso hay escuelas y universidades)

Aquí hay un premio mayor para usted: Introducción a la informática: la introducción de la Universidad de Harvard a las empresas intelectuales de la informática y el arte de la programación para grandes y no mayores, con o sin experiencia previa en programación. Un curso de nivel inicial enseñado 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 online y entrenamiento.
3. edX
4. http://www.tutorialspoint.com/
5. Lista MOOC


Viniste todo el camino leyendo esto, aquí hay algo de 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 que Progressive Education es la mejor manera de aprender a programar de manera eficiente, de modo que puedas 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 estancado en ausencia de un mentor y una auto motivación. Por lo tanto, le sugiero que aumente su programación eligiendo el mejor enfoque de aprendizaje en el que pueda aprender progresivamente orientándose hacia los proyectos.

En la escuela de programación como Holberton School of Software Engineering en San Francisco, proporcionamos alternativas basadas en proyectos a la universidad que se centra 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 diferentes diversidades 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 Manera muy efectiva de aprender la programación.

Se enfoca en:

  • Manera creativa y emocionante de resolver problemas reales.
  • Fuertes comunicaciones entre alumnos (aprendizaje entre iguales).
  • Aprendizaje en base a proyectos.
  • Aprendiendo a aprender.
  • Conocimiento de ingeniero de pila completa
  • Aprende de líderes de la industria y mentores de la vida real.

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

Visite Holberton School of Software Engineering en San Francisco para saber más de lo que se trata.

¡Buena suerte!

Gracias por A2A, pero esta pregunta se ha hecho demasiadas veces, por lo que te indicaré los lugares donde he respondido esto antes.

¿Cómo me acerco a la programación (leer 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 programado hasta que sus 12 se vuelvan muy buenos programando? ¿Las clases y cursos en línea ayudan a la 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 para la programación, pero en la actualidad, no tengo conocimientos de programación. ¿Dónde, a través de los libros o de Internet, puedo aprender a programar bien?

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

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

¿Qué sitio te permite tomar notas gratis en 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 puedo mejorar la codificación?

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

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

Me gradué en ECE. Si quisiera aprender el idioma de Python, ¿puedo hacer eso?

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

Tengo más de 5 años de experiencia en PHP. Quiero establecerme en el extranjero. ¿Que opciones tengo? ¿Cómo busco las empresas que proporcionan visa para los desarrolladores de PHP?

Prima:
¿Aprender Scala vale la pena?

¿Debería un programador de Java aprender Scala?

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

Aprender un programa y tener dominio son dos entidades diferentes. Un principiante se refiere a la codificación de muestra mientras se programa para tareas variadas en varios idiomas de elección. Si bien todo el tiempo luchando para evitar errores que 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 está aquí cuando uno necesita identificar errores y la ayuda para rectificar. Se vuelven hábiles con los códigos vitales, pero para obtener la experiencia que necesitan para 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 referirse a libros o a la ayuda de videos en línea, pero lo que finalmente vale la pena es el valor, 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 algo de lenguaje o herramienta, pero probablemente existe la necesidad de aprender algo más avanzado. Holberton School , [1] la escuela líder que se capacita 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 énfasis en el dominio de resolución de problemas. El aprendizaje de la codificación y la programación son básicos 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 que de esta manera uno aprende habilidades blandas cruciales que ayudan a llenar la brecha deslumbrante 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 posicionamiento de principiante a intermedio. Te deseo lo mejor en tu curva de aprendizaje.

Notas al pie

[1] Educación | Escuela de holberton

El lenguaje específico depende de lo que quieras hacer con él. Diferentes idiomas tienen diferentes audiencias (debido a sus bibliotecas y comunidades, en su mayoría), así que no me concentraré allí.

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

  • Obtener respuestas a la aritmética.
  • Almacenar datos (variables individuales y datos estructurados).
  • Hacer elecciones (declaraciones condicionales, generalmente if ).
  • Repetir tareas.
  • Organiza tu código en componentes (funciones y objetos).

A partir de ahí, es una cuestión de usar esas herramientas para resolver problemas de manera más limpia. A medida que lo haga, obtendrá una idea del “modelo computacional” de los idiomas, lo 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 quieras 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 la Columbia Británica ahora tiene un MOOC basado en coursera.org, aunque no he visto muchos de sus videos y, por lo tanto, no puedo responder por ello).

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

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

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

También prueba tus manos en proyectos realmente simples. Por ejemplo, si está aprendiendo Javascript, cree una extensión de cromo simple (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 eso e intenta hacer cosas nuevas, irás mejorando gradualmente 🙂

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

Aquí es donde recomendamos que continúen practicando la codificación para retener el conocimiento, seguir construyendo y encontrar buenos mentores. Les pediremos que consideren lugares donde hay desarrolladores senior que pueden brindarles orientación, un punto a favor para las empresas que hacen lectura de códigos o programan en parejas entre seniors y juniors.

Cerrar esa brecha requiere experiencia, y la experiencia viene de la práctica: ¡siga practicando!

A veces, hay personas que involucran a los desarrolladores senior para que realicen la revisión del código por ellos. Estoy seguro de que hay gente dispuesta a tu alrededor, solo necesitas ponerte al día y seguir preguntando. Pida ayuda, consejos, también puede unirse a reuniones de la comunidad y solicitar que las personas revisen su código en GitHub.

¡Espero que esto ayude! 🙂

Codificación de codificación y más codificación. Encuentre problemas cada vez más difíciles, haga muchas preguntas, elimine errores y analice el código de otras personas y escriba pruebas … eventualmente, llegará a nivel profesional sin siquiera darse cuenta. ¡Pero recuerda que la práctica lo es todo! Consigue tantas manos como sea posible. Contribuya al proyecto de código abierto, etc.… ¡Diviértase en el camino! Y recuerda que tienes que hacerlo todos los días! Incluso para 20min pero todos los días!

Para comenzar, aprenda la sintaxis del lenguaje de cualquier libro o recurso en línea que encuentre bueno. Para C Vamos a C es mejor.
Entonces prueba problemas en Sanfoundry
Luego intente aprender Estructuras de datos a partir de estructuras de datos y algoritmos simplificados por Narashima Karumanchi.
Luego, después de hacer todo esto, puede ir a la programación competitiva en Competencia de programación, Concurso de programación, Programación de computadoras en línea o Codeforces

Trate de 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 den el tipo de resultados que está buscando.
No apunte demasiado alto al principio; no empezará desarrollando el próximo Facebook y esas 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 progreses, también lo hará tu dominio de la programación. La mezcla de motivación para practicar y buscar conocimiento es muy productiva.
A medida que desarrolle cierta fluidez, asegúrese de verificar las mejores prácticas en programación (convenciones de nomenclatura, programación estructurada / modular, patrones) para poder ahorrar un tiempo precioso en lugar de “reinventar la rueda”.

Aprende Processing.org y luego pasa a Javascript, Python, Ruby. Pronto se dará cuenta de que la programación se trata en gran medida de las bibliotecas con las que trabaja y del entorno.

Lo que sea que haga no se atasque, incluso la programación podría aprenderse a través de algún software de edición a nivel de juego. Una vez que tenga una idea de cómo funciona, debe aprender algo de la teoría básica. Esto es un poco más aburrido, pero es esencial para el trabajo profesional posterior.

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

Ningún programador puede entender una cantidad masiva de código en un 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, realmente no importa cuál, al principio. O lo vas a amar o lo vas a odiar.

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

Si después de un par de clases decide continuar con esto, entonces comience a pensar en dónde le gustaría continuar con esto … ¿front-end? back-end? middleware? ¿Ser único? Todos tienen diferentes juegos de herramientas, experiencia y requisitos con los que no los aburriré aquí. Simplemente tome algo (C / C ++ / Java / Visual Basic (yuck – omítalo) / Javascript / Python): parece ser lo que ofrecen los colegios comunitarios típicos y eso es suficiente para darle un poco de la vida de los programadores.

Me gusta este sitio – Aprende a codificar.

¿Para qué quieres aprender 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 utilizando html, encontrará esto muy útil: los tutoriales web en línea de W3Schools. Prefiero recomendarlo para construirlo en wordpress.

Para crear una aplicación, los cursos sobre lynda – tutoriales en video en línea y capacitación son increíbles para comenzar.

He estado donde estas

Lo que me hizo superar esa joroba fue:

  • Haciendo muchos programas realmente mal hechos
  • Viendo algunos cursos universitarios gratuitos de programación.
  • Aprender que los “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é es lo que hace que un puente sea bueno desde un puente malo o cómo construir un puente sin que se hunda en el agua hasta la mitad de su construcción. Tienes que aprender algo de teoría de la programación y tener algunas sesiones de práctica / fracaso.

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 mayor calidad en el aula a cada estudiante universitario de ingeniería en la India. Así que puedes registrarte para eso y encargarte de ello.
Aqui esta el link
MEC

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

Este es el único secreto para él … puede practicar en Codechef o un nivel superior en el código superior en sí mismo. Participe en concursos CCMP para una mejor experiencia y para 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).

Todo lo mejor 🙂

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

Codecademia: Código Año
http://www.codecademy.com/tracks…
Academia Khan: Ciencias de la Computación
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.
MIT Challenge

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