¿Puedo aprender C ++ por mi cuenta?

Nugeta clave de esta larga respuesta: comience con C normal y realice muchas iteraciones pequeñas para aprender explorando y buscando en Google, una vez que se sienta cómodo con los punteros, la administración de memoria y los tipos fuertes, pase a C ++ con objetos.

Comencé con Lua mucho antes de aprender C ++, pero aprendí C ++ en una clase universitaria con un instructor absolutamente fantástico. Sin un ambiente en el aula, saber JavaScript y Lua incluso podrían dificultar el aprendizaje de C ++.

Estas son algunas de las diferencias clave entre C ++ y Lua (estoy menos familiarizado con JavaScript). Si está familiarizado con las diferencias, siga adelante y omita esta lista.

  1. C ++ está fuertemente tipado. Cada vez que cree un elemento o variable, deberá decir exactamente qué es. Si parece que es mucho trabajo, recuerde que la otra cara es que siempre sabe qué es todo . Nunca tengo que preguntar “¿mi función obtendría una cadena como parámetro en lugar de una conexión de base de datos?” porque el compilador no le permitirá iniciar su programa de eventos si se pasa algo incorrecto. Por el contrario, JavaScript y Lua se escriben dinámicamente, lo que significa que nunca tiene que especificar qué va a ser una variable, pero nunca puede garantizar qué será una variable.
  2. Hablando de compiladores, Lua y JavaScript son lenguajes interpretados, donde C ++ es un lenguaje compilado. Un lenguaje interpretado es leído por otro programa en lugar de ser leído por su computadora. Un lenguaje compilado (y nativo) como C ++ se ejecuta directamente en el hardware de su computadora. En el caso de Roblox, un programa popular que usa Lua, los scripts de Lua en realidad están siendo ejecutados por un motor C ++.
  3. Lua y JavaScript tienen su memoria administrada por el programa que los ejecuta. Si creas una variable y luego la olvidas, el programa puede averiguar cuándo ya no se necesita y eliminarla. Por el contrario, C ++ es un lenguaje no administrado. Si crea una variable en C ++ y luego la olvida, permanecerá en la memoria de su computadora hasta que su programa se cierre. Crear cosas y luego no eliminarlas es una fuente de un problema común llamado pérdida de memoria.
  4. Lua y JavaScript son lenguajes abstractos de muy alto nivel. En C ++ tienes acceso casi directo a la memoria de tu computadora. Cuando dice la palabra “nuevo” en un programa de C ++, se le otorga una parte de la memoria RAM de su computadora. Entonces, usted es responsable de poner las cosas en esa memoria y luego eliminarlas cuando haya terminado con ellas. Puede acceder a esas ubicaciones en la memoria directamente usando direcciones de memoria denominadas “punteros”. En C ++ es importante comprender la diferencia entre la pila y el montón.
  5. C ++ está orientado a objetos. Así es JavaScript, Lua no lo es. (Aunque puede imitar la orientación a objetos en Lua usando tablas). En C ++, define sus clases en archivos “.h” y luego completa su implementación en archivos “.cpp”.

Ahora para aprender sobre C ++. C ++ es una extensión de un lenguaje antiguo llamado C. Java (no JavaScript, no están relacionados), C # y C ++ son todos “lenguajes de la familia C” que heredan su sintaxis de C. C ++ es el “más parecido a C” de esta familia de lenguajes y si escribe un programa en C ++ que no use la orientación a objetos o las bibliotecas de C ++, los compiladores de C puro deberían poder compilar su aplicación.

Recomendaría aprender C ++, primero familiarizándome con los conceptos de C y luego agregando detalles de C ++ a su conocimiento más adelante.

Lo primero que necesitará en su camino hacia el aprendizaje de C es un entorno de compilación. Necesitarás varios programas.

Editor de texto: le ayuda a escribir el texto del programa

Ejemplo de opciones: Código VS, Bloc de notas, Notepad ++, Atom

Compilador: convierte su código C o C ++ legible por humanos en programas legibles por máquina.

Opciones de ejemplo: GCC, MinGw, Visual Studio

Si tiene una máquina Linux, ya debería tener instalado el editor de texto vim y el compilador gcc. También deberías poder obtener gcc fácilmente en mac. En Windows puede optar al bash en ubuntu en windows beta y usar gcc en windows.

El proceso de aprendizaje puede parecer algo como esto

  1. Cree un programa básico de C y almacénelo en un archivo llamado “helloworld.c”.

#include
void main (int argc, char ** args)
{
printf (“Hola Mundo \ n”);
}

~ $ gcc -o helloworld.c helloworld

2. Compilar el programa. Con GCC que se puede hacer con el comando.

~ $ gcc -o helloworld.c helloworld

3. Ejecute el programa ejecutándolo desde el terminal o abriéndolo desde su explorador de archivos.

~ $ ./helloworld
Hola Mundo

4. Haz un pequeño cambio al programa.

#include
void main (int argc, char ** args)
{
// Esto no funcionará pero alguien nuevo en C no lo sabría.
printf (argc);
}

5. Compila el programa y ejecútalo. Si funciona, vaya al paso 4. De lo contrario, continúe.

6. Repita: busque el problema en Google y experimente con los cambios hasta que haga algo genial.

#include
void main (int argc, char ** args)
{
// Una solución estilo Lua que no funcionará en C
printf (tostring (argc));
}

7. Eso no funciona, así que es hora de probar algo más.

#include
void main (int argc, char ** args)
{
// Solución de estilo AC descubierta usando google y encontrando esto
// https://www.codingunit.com/printf-format-specifiers-format-conversions-and-formatted-output
printf (“% d \ n”, argc);
}

8. Vaya al paso 4.

Aquí hay un código de ejemplo para ayudarlo a “arrancar” en el mundo de C y C ++.
Incluirá un ejemplo simple de muchas características diferentes de C. Puede usarlo para experimentar y comenzar a aprender sobre el mundo de la programación nativa, fuertemente tipada y sin restricciones.

// Esta línea incluye el archivo de cabecera “Salida de entrada estándar” (biblioteca)
#include

// Esta línea declara la “firma” de una función de fibonacci.
int fib (int n);
// Los programas en C se leen “en orden”, por lo que debemos advertir al compilador
// que esa función realmente existe, solo decimos lo que hace más tarde.
// Eso se llama “Declaración hacia adelante”.

// Una estructura es una colección de datos. Podemos “crear” muchos stack_elements.
// Cada stack_element tendrá su propio “valor” y “siguiente”.
// ¡Note que “siguiente” es lo mismo que está almacenado en!
struct stack_element
{
char * valor;
struct stack_element * next;
};

// Una pila es como, bueno, pila.
// Cuando pones algo en la parte superior no puedes llegar a lo que está debajo.
// Pero es súper fácil “empujar” las cosas en la parte superior y “quitarlas”.
estructura de la pila
{
cuenta int
struct stack_element * top;
};

// Esta función empujará algo en la parte superior de una pila.
void push (struct stack * s, char * data)
{
// Permite declarar una variable para almacenar un nuevo stack_element.
struct stack_element * newElement;
// Note el * después del tipo. Eso significa que “apunta” a la
// ubicación que realmente almacena el valor.
// newElement >>> no almacena <<< a stack_element !!
// Almacena una “dirección de correo” de tipo donde se encuentra un stack_element
// vivirá.

// Necesitaremos saber cuánta memoria utiliza un stack_element.
int bytes = sizeof (struct stack_element);

// malloc es una función que le pide a la computadora algo de memoria.
newElement = malloc (bytes);

// Ahora tenemos “memoria asignada (malloc)” un nuevo stack_element.
// Pongamos nuestros datos en ella.
newElement-> value = data;

// Note el operador -> usado para obtener un miembro de newElement.
// Tuvimos que hacer eso porque newElement es un >>> puntero << no un
// apilar elemento! Si tuviéramos una variable de stack_element real, no una
// dirección de uno, habríamos dicho newElement.value = data en su lugar.

// ¡Ahora vamos a poner nuestro stack_element en la pila!
// Lo haremos configurando el campo “siguiente” de newElement en
// la dirección del valor “superior” actual de la pila, y luego
// estableceremos la dirección almacenada en “top” en la dirección newElement.

newElement-> next = s-> top;
s-> top = newElement;
}

// Esta función quitará algo de la parte superior de una pila.
pop vacío (struct stack * s)
{
// Almacena la dirección superior en una variable de dirección “oldElement”
struct stack_element * oldElement = s-> top;
// Establece la parte superior de la pila en la parte superior anterior.
s-> top = oldElement-> next;
// Borra todo lo que está almacenado en la dirección “oldElement”
libre (oldElement);
}

// Esta función devuelve la dirección del valor superior en la pila.
char * peek (struct stack * s)
{
// si la pila está vacía, el valor será NULL (nil)
if (s-> top == NULL)
devuelve NULL;
devuelve s-> top-> valor;
}

// Esta es la función principal. Aquí es donde el programa comienza a ejecutarse.
int main (int argc, char ** argv)
{
// Imprime el primer argumento (el nombre del programa)
printf (“% s \ n”, argv [0]);

// Crear una nueva pila
struct stack * myStack = malloc (sizeof (struct stack));

// Empuje el resto de los argumentos de línea de comando en la pila
int i;
para (i = 1; i <argc; i ++)
{
push (myStack, argv [i]);
}

// Imprime todos los argumentos de la línea de comandos
// Mientras que c no es NULL
char * c;
mientras que (c = peek (myStack))
{
printf (“% s \ n”, c);
pop (myStack);
}

// Proporciona un separador visual entre las cosas de la pila y las cosas de fibonacci.
printf (“\ n ————- \ n \ n”);

// Imprime los primeros 11 (0 a 10) números de fibonacci
para (i = 0; i <11; i ++)
printf (“% d,% d \ n”, i, fib (i));
printf (“Esta declaración no está en el bucle for. \ n”);
// Eso es porque las operaciones de flujo (si, para, mientras ..)
// necesita llaves para más de 1 declaración

// Salir del programa con valor 1.
printf (“Programa completado \ n”);
devuelve 1;
}

// Esta función fue “declarada hacia adelante” al principio de este programa.
// Calcula el valor Nth de la secuencia de fibonacci.
int fib (int n)
{
si (n <= 1)
devuelve n;
retorno fib (n – 2) + fib (n – 1);
}

Para ejecutar el programa compílalo. Tu compilador puede darte advertencias acerca de las cosas de malloc, pero es de esperar que no te den errores.

Para compilar usando GCC desde una terminal, use el comando

~ $ gcc -o stack.c stack

(Suponiendo que haya nombrado su pila de archivos.c)

Luego, para ejecutar su programa, use un terminal o indicador de comando en Windows y vaya al directorio donde está almacenado su programa. Use el comando

~ $ ./stack Pancake1 Pancake2 Pancake3

Y debería obtener una salida que se parece a

./apilar
Panqueque3
Panqueque2
Panqueque1

————-

0, 0
1, 1
2, 1
3, 2
4, 3
5, 5
6, 8
7, 13
8, 21
9, 34
10, 55
Esta declaración no está en el bucle for.
Programa completado

¡Feliz codificación!

Cuando alguien te dice que algo es imposible, recuerda que eso es solo una opinión. Lo que realmente está diciendo tu amigo es “él no podía aprender C ++ por sí mismo”. Necesitaba un curso para aprenderlo.

Pero eres una persona completamente diferente. Si tienes la capacidad de ver un video de YouTube, y desbloquear los secretos del universo, hazlo.

Mi sugerencia es – trata de aprenderlo tú mismo. Citaré la película “Good Will Hunting”: ¿Por qué gastar $ 200K en una educación que podría obtener por $ 1.50 en cargos atrasados ​​de la biblioteca pública?

Si lo intentas y fallas, entonces busca ayuda. Esas escuelas no van a ninguna parte.

Y es posible que desee consultar Aprender a codificar de forma gratuita.

La mejor de las suertes,

S

Ahorra tu precioso tiempo comprando este curso. ¡Aprenderás cómo programar en C ++ de una manera rápida y fácil!

Curso link-C ++: de principiante a experto Diseñado para personas que no tienen ningún conocimiento sobre la programación y desean programar en C ++

¡La duración total del curso es de más de 12 horas! Aprenderás teoría y también ganarás mucha práctica. Durante el curso escribiremos muchos programas que te harán un gran programador.

Todo esto es presentado por un joven que comparte sus conocimientos, por lo que el lenguaje utilizado puede ser fácilmente comprendido por todos .

El curso está diseñado para aquellos que no tienen ningún conocimiento previo sobre la programación. No importa si nunca ha escrito ningún programa o no tiene idea de la programación … Después de mi curso, todo esto cambiará. ¡Rompirá el mito de que la programación es algo difícil solo para unos pocos!

Después de este curso , podrá utilizar los componentes avanzados del lenguaje C ++.

+++++++++++++++++++++++++++++++++++++++++++++++++++ ++++++++++++++++

Creo que todos tienen la capacidad de desarrollar software si se les enseña adecuadamente. Incluyéndote. Te voy a dar el contexto de cada nuevo concepto que te enseño. Después de mi curso finalmente entenderás todo lo que codificas.

+++++++++++++++++++++++++++++++++++++++++++++++++++ ++++++++++++++++

Más de 24,000 estudiantes compraron mis cursos y todos están contentos. Usted también estará satisfecho con este curso. Si no le gusta el curso, recuerde que dentro de los 30 días puede solicitar un reembolso completo . Te garantizo satisfacción.

Si tiene alguna pregunta sobre los temas tratados en este curso de C ++, no dude en preguntar . Siempre estoy feliz de ayudar a aquellos que quieren aprender!

ÚNETE AHORA y conviértete en Experto en C ++

¿Quién es el público objetivo?

  • principiante
  • Persona que quiere entender la programación.

El curso facilitará la transferencia de conocimientos. Probablemente aprenderás c ++ más rápido tomando un curso.

Pero el tiempo dedicado a transferir ese conocimiento es limitado, lo que hace que el proceso de transferencia también sea limitado. Es por eso que la mayoría de los cursos solo te enseñarán cosas básicas. Incluso cuando ofrecen clases de ‘programación avanzada’, todavía será básico.

Vengo de la comunidad de TI y muchos de mis amigos y familiares son programadores. Algunos de ellos son grandes programadores. Ninguno de ellos fue a cursos. Todo lo que hacen es leer libros de programación y escribir mucho. Cuando se encuentran con algunos problemas, solo buscan los problemas en Google o van a un foro de programación.

Su disposición a invertir tiempo para aprender, escribir aplicaciones y aprender de los errores es lo que los hace grandes, o al menos buenos. No esos cursos sobreprecio.

Algunos de mis amigos eran instructores de programación. Ellos enseñaron por adelantado. Acabo de escribir lo que una vez me dijeron cuando planeaba tomar un curso de programación.

Sí, puedes aprenderlo sin tomar una clase; Sin embargo, no estoy seguro de que comenzaría a un novato en un lenguaje compilado; sería mejor empezar con, dice Ruby.

La clase se cae así: hay una tarea asignada, un problema que debe codificar, y usted lo hace, y lo trae de vuelta al día siguiente para discutirlo. Entonces, hasta aquí, muchos tutoriales están en línea. La ventaja viene cuando se ve rápidamente cómo los otros estudiantes hicieron el mismo problema y el instructor arroja sus 2 centavos. Verá que sus compañeros se están atragantando o resolviendo los mismos problemas que usted. A veces (con frecuencia), golpearás una pared. Ahí es donde los compañeros o el instructor pueden venir a ayudarlo.
En general, la clase está acompañada por un curso de “laboratorio” en el que todos se sientan antes de las computadoras y trabajan en los problemas, y la camaradería puede ayudarlo a mantener su interés … o no. Es mucho más difícil mantener el interés cuando eres IMHO autodidacta.

Hay una razón por la que Aprender a codificar ofrece varios idiomas y no C ++.

¿Eres un programador experimentado?
¿Has dominado las matemáticas a nivel universitario?
¿Cómo es tu comprensión de construcciones abstractas como funciones, clases, métodos, punteros y pilas?
¿Escribes un código bien formado que la gente pueda entender fácilmente?

Creo que estos son los requisitos previos para aprender C ++ por tu cuenta. Si tiene estos requisitos previos, puede aprender la sintaxis de C ++ por su cuenta.

Para dominar el idioma sin estos requisitos previos se requiere un maestro, laboratorios, tareas, … porque aprender a diseñar algoritmos y escribir programas en C ++ requiere práctica, práctica y más práctica. Con una clase, trabajará con personas que pueden ayudarlo a comprender cómo usar el lenguaje y aplicar sus construcciones de manera adecuada.

(No me gusta leer y dar sentido al código malo.)

Claro que puedes aprender C ++ por ti mismo. Lo hice por mi cuenta. Aquí hay algunos recursos para hacerlo más fácil.
La guía y lista definitiva de libros de C ++

¡También tutoriales educativos en video gratuitos sobre programación de computadoras, diseño web, desarrollo de juegos y más! tiene un montón de videos útiles para facilitar el aprendizaje (si prefieres los videos).
https://www.thenewboston.com/vid … Gracias a Bucky Roberts

Si tiene el tiempo y puede gastar algo de dinero, le recomendaré que vaya a una institución de primer nivel como Coding Ninjas, los bloques de codificación evitan unirse a NIIT, ApTech.

Para ir en línea tienes muchos lugares como thenewboston, edx, alison, udacity, etc. Para obtener un certificado gratuito puede ir para SoloLearn.

Pero yo mismo he intentado ir a un curso en línea, pero en comparación con el estudio en el aula es menos preferido. Entonces, si me preguntas, te aconsejaré el curso en el aula (si estás en Delhi / NCR, apúntate a Coding Ninjas), ya que en el programa del aula puedes resolver tus dudas y te ayudará en la creación de conceptos.

Si tiene experiencia previa en codificación, la respuesta es sí y mucho más fácil, pero si está empezando desde cero, tome un curso más organizado y cree bases para C ++ y otros idiomas.

C ++ es un lugar difícil para comenzar. Es fácil quedarse atascado con una falla de seguridad o algo en el que la computadora no es de mucha ayuda para decirle dónde buscar la solución. Pero seguramente no te diré que no hay forma de que lo aprendas por tu cuenta.

Tenga en cuenta que es fácil dedicar tiempo a leer sobre C ++ y no a aprenderlo. En realidad no has dicho qué es lo que quieres aprender. Si su objetivo es aprender a programar, hay otros lenguajes que lo ayudarán a comenzar sin los bordes afilados de C ++. Python, por ejemplo, es un lenguaje mucho mejor para aprender. Es útil más allá de simplemente aprender a programar. Es decir, es un lenguaje de programación real y serio, no un callejón sin salida académico solamente.

Pero si tienes la intención de aprender C ++, dale una oportunidad a C ++. Si te encuentras atrapado, ten un Plan B al que recurrir. No solo huya gritando para obtener una especialización en Historia en lugar de algo técnico.

¡Puedes aprender C ++ y cualquier otro idioma por ti mismo!

Un curso te ayudará mucho a llegar más rápido, ya que te dará una mejor explicación de los fundamentos.
Pero aprender algo por ti mismo es totalmente viable.

Incluso si alguien te enseña , tienes que aprender tú mismo.

ya que hiciste esta pregunta, probablemente no puedas aprender tú mismo, ¿y qué?
Piénsalo dos veces si quieres aprender y asegúrate de que realmente quieres aprender.
luego inscribirse en algún lugar. No pierdas el tiempo de ti y también de los demás.
buena suerte

editar:

desde cuándo es pedir consejo a otros una pérdida de tiempo

Desde que le pedí consejo a alguien pero sin dar un paso más y preguntando y preguntando.

Programar no es lo que una cuchara te alimenta, si te quedas atascado, pide ayuda a otros.

No es más que perder el tiempo, preguntando smt ‘él dijo esto “,” ella dijo eso ”

¿Por qué no puedes tratar de aprender al menos con algunos recursos, incluso un mundo de saludo, y preguntar cosas que solo bla, bla, bla en la mierda que alguien dijo y mierda que alguien nunca dijo?

Su tiempo de desperdicio

  1. Antes de comenzar cualquier cosa, mira este video:
  1. Luego sigue este tutorial: Aprende C ++

3. Finalmente, obtenga la Introducción a los algoritmos, 3ª edición (MIT Press): Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, Clifford Stein: 9780262033848: Amazon.com: Libros (se pueden encontrar en línea o simplemente comprados en Amazon)

** Lo más importante que debes tener en cuenta durante el viaje es que no solo lees y comprendes los conceptos, sino que también empiezas a construir cosas (cualquier cosa) de manera gradual a medida que aprendes más y más **

Buena suerte !

Es muy fácil aprender c ++ por ti mismo.

Hay tantas fuentes en línea disponibles para aprender C ++. Lea eso, siga la pila sobre el flujo para sus dudas y aclaraciones

El nuevo canal de boston -youtube.

Puede seguir este canal para video tutoriales. Hay muchos recursos en este canal.

Usa el IDE atractivo, esos coloridos textos te impulsarán como bloques de código.

Feliz codificacion

Definitivamente sí.
Comencé con la limpieza de lo básico de la programación de C (Libro: Vamos a C) resolviendo todas las preguntas del ejercicio.
Luego se graduó a C ++. Hice referencia a los libros Programación Orientada a Objetos con C ++ de E Balaguruswamy y utilicé para resolver varios problemas en los ejercicios y de lo que he encontrado en concursos competitivos de festivales IIT.

Cuando comencé, solía escribir todos los programas en papel, ya que no tenía una computadora a mi disposición (año 2007) y ejecuté la entrada de números manualmente para verificar. Creo que eso me ayudó mucho a aclarar lo básico.

Estrictamente hablando, su amigo estaba equivocado, PERO usted progresará más y mejor si aprende de un buen profesor / curso / tutorial. Especialmente si C ++ será tu primer lenguaje orientado a objetos.

Por supuesto que puedes aprenderlo por ti mismo.

Consigue un libro, estudia y practica.

Dile a tu amigo que deje de decir tonterías.

Por supuesto que puedes aprenderlo por ti mismo. Yo si. Sugeriría un proceso de dos pasos:

  • Encuentre una fuente educativa que se adapte a usted y repase cada característica del idioma. Practica los ejemplos con un compilador de C ++.
  • Piense en algunos proyectos en los que practicar sus nuevas habilidades y haga lo mejor para lograrlas en el idioma. Aprenderás a dominarlo, si haces esto lo suficiente.

Por supuesto que puedes aprender mi mismo C ++. Me enseñé C ++ en la escuela secundaria.

Sin embargo, es difícil llegar a ser competente sin una comprensión más profunda de por qué el lenguaje fue diseñado de esa manera. Recomiendo encarecidamente un curso de lenguajes de programación.

Él está equivocado. No hay nada mágico en tomar una clase.

¿Qué te da una clase?

  1. discusión verbal de contenido
  2. ejercicios que son apropiados para su nivel
  3. Un cierto grado de urgencia y obligando a llevar a cabo
  4. alguna indicación de cómo estás haciendo
  5. ayuda cuando estas atrapado

Estos pueden ser importantes para diferentes grados:

# 1: para mí, esto es lo menos importante. Personalmente aprendo mejor cuando veo cosas, y aprender de un libro y poder probar el material de inmediato me funciona muy bien. La discusión en el aula me ayuda menos.

# 2: si tienes un libro de texto con ejercicios, esto puede funcionar bien.

# 3: si usted es el tipo de persona que va a probar el idioma por un par de días, luego lo ponga, este tipo de aplicación y urgencia podrían ser importantes. Si puede levantarlo y seguir con él, puede estar bien con esto por su cuenta.

# 4: no obtendrás una buena indicación de cómo te va por tu cuenta. Aprende a usar el control de código fuente y mantén todo lo que estás trabajando. Luego puede mirar hacia atrás en las soluciones que agregó hace semanas o meses y ver qué haría hoy de manera diferente. Si el grado de progreso es importante para usted, considere mantener notas con su fuente que indiquen cuánto tiempo tardó, si lo encontró fácil o difícil, y lo que aprendió cuando estaba trabajando en ello.

# 5: es posible que puedas reemplazar esto con recursos en línea, pero si tienes un amigo que es un buen desarrollador de C ++, podría ser bueno que revisen tus cosas y te hagan una crítica honesta. A veces su pregunta es sobre una cosa, pero mirar su código puede plantear otras preocupaciones.

Buena suerte.