Si aprendo Java durante todo el verano (~ 2 meses), ¿será fácil aprender C después de esos meses?

Bueno, es fácil, y luego es fácil … podría ayudar, pero Java no hará que C sea natural para ti, si eso es lo que quieres decir.

Supongamos que conduce un automóvil con transmisión automática durante todo el verano, ¿lo preparará para conducir con un manual en otoño?

Si solo está aprendiendo a conducir, se acostumbrará a hacer señales, controlar su velocidad, ajustar su posición y, en general, no chocar ni aplanar a ningún peatón, todo sin tener que cambiar de marcha mientras lo hace. No aprenderá a cambiar de marcha porque la transmisión automática lo hará por usted.

Del mismo modo, si solo está aprendiendo a escribir programas, aprenderá a definir algunos tipos de datos, controlar sus interacciones, unirlos en un programa y, en general, calcular el resultado que busca. No tendrá práctica para manejar la administración de memoria usted mismo, porque Java lo hará por usted.

Si está escribiendo programas con confianza con administración automática de memoria para el final del verano, aprender a manejar la memoria usted mismo será su mayor obstáculo cuando aprenda C. Si ya está escribiendo programas con confianza con administración automática de memoria, un verano adicional de Java no hará que el ajuste sea más fácil.

9 de cada 10 errores que comete en C estarán relacionados con la gestión explícita de la memoria.
Esos 9 errores serán los mismos independientemente de la cantidad de Java que escriba, la dificultad de acostumbrarse a manejarlos depende de la cantidad de práctica que ya tenga para identificar el décimo.

Si y no.

La sintaxis de Java tiene sabor a c y si este es su primer lenguaje de programación, entonces habrá aprendido conceptos básicos como control de flujo, bucles, condicionales, declaraciones, variables, etc.

Sin embargo, C es más simple y más difícil (muchas cosas en la vida son así).

C es más simple como lenguaje, con menos elementos; Esto puede hacer que sea más fácil aprender esos elementos, pero usted tiene que hacer mucho más usted mismo, en particular, administrar la memoria manualmente. C es mucho más minucioso y detallado. Mucho de “aprender C” es aprender la disciplina de cuidar el manejo de la memoria y detalles similares.

C usa diferentes expresiones idiomáticas. C es de procedimiento / imperativo, no orientado a objetos. Hay conceptos en Java que pueden resultarle útiles (objetos, clases, etc.) que no estarán disponibles en C. Deberá aprender nuevas formas de pensar sobre la resolución de problemas en C y nuevos modelos de aplicación.

Según mi experiencia después de años en Java y la experiencia con muchos otros idiomas, no. C no será fácil. Es y siempre ha sido difícil, tiene una sintaxis muy personalizada dependiendo de cómo se escriba y es muy difícil de escribir sin errores. Al menos en mi experiencia.