¿Cuál es la mejor manera de mejorar mis habilidades en C / Java además de mis estudios (estudiar Ingeniería de Software)?

  • Practica: practica tanto como sea posible. Resolver ejercicios en
    • http://www.codechef.com/
    • HackerRank
    • Sobre nosotros – Proyecto Euler
  • Hackathones: intente participar en sus hackathones locales.
  • Comunidades: intente averiguar sus reuniones y comunidades tecnológicas locales. Intenta conocer gente con ideas afines. Si no puede encontrar una reunión, probablemente comience una.
  • OpenSource: intente contribuir al código abierto si es posible.
  • Tutoriales en línea: asista a tutoriales y videos en línea. Consulte los tutoriales que pueden fortalecer sus conceptos de Java y C. Hay tantos tutoriales increíbles por ejemplo https://www.coursera.org/, http://nptel.ac.in/
  • Lea libros: si sus libros de Engg aún no le han empantanado, hay muchos buenos libros y blogs. Intenta leer tanto como sea posible.

Con suerte, los puntos anteriores lo mantendrán activo, pero lo más importante es encontrar tiempo para disfrutar.

Feliz codificación.

Lo más importante es que entiendes lo básico. C / java o cualquier otro lenguaje de programación es una construcción de nivel superior que representa lo que la computadora necesita hacer. Pero para apreciar realmente lo que la computadora es capaz de hacer y cómo hace lo que necesita, necesita profundizar. Debe saber qué sucede internamente. Cómo funciona el sistema operativo, cómo funciona el procesador, cómo se accede a la memoria, cómo interactúan los dispositivos periféricos con el sistema y muchas otras cosas. Lo siguiente es la práctica de programación que necesita pasar horas y horas pensando, diseñando, compilando y resolviendo problemas de su código. Comprenda el lenguaje dentro y fuera, necesita leer mucho para comprender los matices del lenguaje e ir con clásicos como K&R para C. Debe trabajar en sus habilidades algorítmicas, nuevamente esto implica leer y practicar. Necesitas trabajar en tus matemáticas. Finalmente, participe en un buen proyecto donde pueda trabajar con buenos programadores, nada mejor que trabajar con buenas mentes

La respuesta de Gaurav Gaur es acertada. Solo agregaría a eso que “el idioma” es una pequeña parte de lo que debe aprender. Si conoce el idioma razonablemente bien, es hora de aprender

  • Fuente de control
  • Automatización (lenguajes de script)
  • Pruebas (los diferentes tipos, cómo automatizar y cómo probar primero).

Después de esto y siguiendo los consejos de Gauravs sobre la práctica, pase a un estilo de lenguaje diferente (por ejemplo, funcional). Saber cómo funciona un idioma diferente lo ayudará a pensar en los problemas de nuevas maneras y mejorará su capacidad de codificar en todos los idiomas.

Esto funciona mejor para mí: hágase esta pregunta: ¿hay algo que haga que pueda automatizarse? Principalmente hago esta pregunta en relación con las cosas que hago con una computadora. Ejemplos:

  • Limpiando mi biblioteca de música
  • Haciendo mi presupuesto en línea
  • Crear informes de uso de disco
  • Convertir imágenes de color a escala de grises o blanco y negro
  • Una aplicación para organizar tus contactos

Cualquier cosa en realidad. Luego, diseñe una aplicación que haga eso. Puede implicar diseñar capas de abstracción. Puede implicar el diseño de una interfaz de usuario. Puede implicar el diseño de un modelo de datos. Puede implicar crear algoritmos y luego escribirlos en código.

Actualmente estoy trabajando en una aplicación web para automatizar mi presupuesto en línea. Inicia sesión en mi banco, descarga las transacciones, las analiza, las coloca en una base de datos y ejecuta algunas reglas sobre en qué categorías entran automáticamente. Luego tengo una interfaz de usuario que facilita el trabajo. Estas habilidades de diseño lo harán explorar la arquitectura, las bibliotecas de terceros, el lenguaje en sí, la implementación y la administración del sistema (sus aplicaciones deben ejecutarse desde algún lugar), la infraestructura, la seguridad y la lista continúa.

Ah, sí, y mientras lo hace, Google tanto como sea posible. Aprenderá toneladas como ve e intentará poner en práctica las diferentes opiniones de muchas personas sobre cómo hacer una buena ingeniería de software.