C ++ habilidades más altas que las habilidades C? [cerrado]

28

Siento que el C / C ++ a menudo visto realmente no describe mis habilidades en mi CV. Así que estoy planeando separarlo en conocimiento avanzado de C ++ y habilidades mediocres de C.

¿Crees que esto es confuso para el lector? Ella podría pensar: "C es un subconjunto de C ++, entonces, ¿qué está tratando de decirme este tipo?" Bueno, lo que estoy tratando de decir es: he realizado varios proyectos de C ++ en el mundo real, mientras que los proyectos de C puro eran solo un pasatiempo. ¿Está de acuerdo en que un programador experto de C ++ no necesariamente es un tipo C calificado o cree que este cambio se realiza fácilmente?

h0b0
fuente
1
Eso es exactamente lo que hago. No me ha impedido encontrar trabajo.
Martin York
99
No he escrito un CV en mucho tiempo, pero siempre hablo de C y C ++ como dos lenguajes totalmente diferentes.
Rei Miyasaka
2
@ReiMiyasaka - Bien, porque son dos idiomas totalmente diferentes. Ambos se han actualizado y se han separado de cuando se creó C ++ como una adición a C.
Izkata
creo que C / C ++ no son la misma cosa y que son totalmente diferentes idiomas, lo único punto en común es la 'C' en el nombre (por no hablar de la sintaxis cerrar)
Qchmqs

Respuestas:

31

Has hecho tantas preguntas en una; déjame intentar responder mientras los segrego. Contrato a muchas personas que pertenecen a este tipo de perfil y, con frecuencia, tengo que tomar tantas entrevistas y rechazar a las personas porque a menudo no tienen una respuesta clara a las preguntas que usted hizo.

  1. ¿Tener un buen dominio en C o C ++ es lo suficientemente bueno para calificarlo para el otro programa?
    Si estás en un nivel superior en realidad NO. es decir, si ha pasado algo así como 6 años haciendo programación en C ++ en algunas aplicaciones empresariales centrales, y ahora estoy tratando de ponerlo en sistemas embebidos que están todos en C, probablemente su sintaxis de programación y cómo depurar cosas no es un problema. Pero si necesita pensar en un problema, ciertamente es muy desordenado. Esto es cierto de cualquier lado al otro idioma. Cuantos más años haya pasado solo un tipo de idioma, ¡menos fácil de transformar en otra forma! No se trata de si puedes aprender la sintaxis del lenguaje, sino de pensar de manera diferente cuando estás en C, C ++, Java, Perl y Python. Para ampliar la pregunta, la mayoría de las veces, los chicos de C ++ y Java se pueden usar indistintamente, al igual que Perl, PHP, Phython. ¡C es una raza bastante diferente!

    Si eres un chico relativamente joven, lo más probable es que puedas ponerte al día rápidamente.

  2. ¿Significa que tengo una mayor habilidad cuando conozco C ++ en lugar de C?
    En realidad no, porque, como regla general, si eres capaz de crear un producto completo a partir de C es una tarea mucho más difícil en comparación con hacerlo en C ++. El número de personas que pueden dominar la resolución de problemas de los sistemas de memoria compartida es mucho menor que el número de personas que pueden escribir un programa GUI decente usando VC ++ o un marco similar.

  3. ¿Esto significa saber que C (o la programación de nivel más bajo) es el nivel más alto de logro?
    ¡No otra vez! Esto no es contradicción. Esta vez depende del dominio que compares. Si está buscando la programación de sistemas dentro del kernel de Linux, o algo muy cercano al hardware, la capacidad de programación en C es más relevante. Sin embargo, si está escribiendo software bancario o algunos motores de reglas de negocio, C ++ es una opción generalmente natural. El punto es que su verdadera fortaleza no se trata tanto de la sintaxis del lenguaje sino de la forma en que resuelve una clase de problemas y solo puede esperar dominar algunas categorías / dominios en su vida. Si está poniendo algo en su currículum, eso es lo que realmente cuenta.

  4. ¿Significa que si solo he estado en C, no conozco la programación orientada a objetos?
    De ningún modo. De hecho, mi prueba de fuego en la entrevista para saber si el tipo es de origen C o C ++ es hacer una pregunta muy simple: "Entonces, ¿puedes hacer programación orientada a objetos en C?" - el chico salta y dice - "¡Definitivamente NO!" él / ella es compañero de C ++. El punto es que cuando realmente escribes código muy complejo como código multimedia, un sistema multiproceso, una pila de capas de protocolo, sigues 'pensando como código objeto': el compilador de C no te castiga si eres malo encapsulando dos rutinas u objetos, pero cuando el sistema escala que sigue disparándote, creo que a veces, hay muchos que nacen en la era de la orientación a objetos, a menudo son bastante débiles en cuanto a cómo realmente se viola la encapsulación en un código que es bastante lleno de clases y objetos. Lo siento, me estoy desviando. Pero el punto es que son más sus habilidades de análisis y diseño de problemas las que importan más que sus habilidades de programación.

¿Significa que debería poner la exposición específica del dominio y las habilidades de diseño por separado?
Definitivamente si!

Dipan Mehta
fuente
99
+1 Por señalar que puede tener un diseño orientado a objetos y aún implementarlo en C.
Giorgio
16
@Dipan: Tenga cuidado al hacer suposiciones basadas en la edad. Algunos chicos mayores "se ponen al día" bastante rápido también. Algunos de ellos probablemente corren más rápido que tú.
Kevin Cline
15
Dudo mucho que "los chicos de C ++ y Java se puedan usar indistintamente".
fredoverflow
66
También estoy en desacuerdo con el # 2. Cuando conoces C ++, puedes elegir C # o Java en un tiempo relativamente corto. Sin embargo, elegir C ++ cuando conoces cualquiera de los otros dos, toma mucho tiempo y esfuerzo, y requiere que primero "desaprendas" mucho de lo que has tomado como se da en C # o Java.
sbi
1
@sbi: Realmente no estoy discutiendo detalles específicos sobre C ++ o JAVA o C. No pretendo generalizar demasiado la relación entre lenguajes; ni voy con la presunción de que la gente realmente no puede adaptar aprender o desaprender las cosas. El único punto crucial es que los diferentes idiomas también son diferentes patrones de pensamiento, independientemente de su relación sintáctica, y eso es lo que cuenta en el ajuste del rol que se le dará.
Dipan Mehta
27

Para las personas que realmente importan, no, no debería confundirlas.

Cualquiera que sepa algo sobre la programación C y C ++ del mundo real sabe que, a pesar de sus similitudes e historia, la programación de producción en ambos casos es un animal completamente diferente.

Dan McGrath
fuente
12

Personalmente, me resulta muy molesto cuando la gente escribe "C / C ++", porque C y C ++ son lenguajes muy diferentes. Por el contrario, si veo "C, C ++" o "C ++ y C" en un currículum, me impresiona sin fin. Desafortunadamente, casi todos escriben "C / C ++", y generalmente significa "Sé C ++, pero puedo hacer C si es necesario".

Además, no sería tan específico en el CV. Simplemente enumere los lenguajes de programación que conoce, posiblemente en el orden de más competente a menos competente. Eso debería superar el filtro de palabras de moda de recursos humanos, y luego puede explicar durante una entrevista técnica cuáles son sus fortalezas y debilidades.

Dima
fuente
44
Convenido. Apenas pondría "C / C ++" en mi CV que pondría "Java / JavaScript" como si fueran lo mismo.
A menudo escribo C / C ++ aunque sé que son idiomas diferentes, debido a que aprendiste uno de ellos sin molestarte en mirar al otro, tu conocimiento de ambos es incompleto. No puedes ser un buen programador de C sin al menos estudiar OO, donde C ++ es la opción natural para aprender a hacer OO en C. No puedes ser un buen programador de C ++ sin entender por qué C ++ resultó como es, por su herencia de C. Sin embargo, en un CV, estoy de acuerdo en que deben estar separados.
1
@OrbWeaver, una gran diferencia es que a menudo puede tomar un programa en C (siempre que no sea demasiado complejo), alimentarlo a un compilador de C ++ y obtener un ejecutable de lo que realmente hará lo que uno haga C compilador haría. No puede alimentar un programa Java a un analizador de JavaScript (o al revés) y obtener algo incluso remotamente útil del ejercicio. Entonces, aunque estoy de acuerdo en que C y C ++ deben diferenciarse, en mi opinión, escribir C/C++y Java/Javascriptcomo si fueran lo mismo todavía está en dos ligas muy diferentes.
un CVn
+1 para el consejo: solo enumere los lenguajes de programación que conoce, posiblemente en el orden de más competente a menos competente. Eso ayudaría a que más allá del filtro palabra de moda HR,
ingenua
7

No, no debería ser confuso porque C y C ++ aunque son similares y comparten raíces similares son diferentes en paradigma y uso. Por lo tanto, se debe separar, también se debe separar la experiencia también. Además, creo que puede mencionar experiencia más específica (como GUI / FLTK u otras bibliotecas con las que esté familiarizado) con las dos separadas.

aggietech
fuente
5

Me gustó tu fraseo: "He realizado varios proyectos de C ++ en el mundo real, mientras que los proyectos de C puro eran solo un pasatiempo"

Así que lo pondría en la jerga CV:

  • trabajó en varios productos C ++
  • algunos proyectos paralelos usando C

Es mejor si coloca números en lugar de "varios" y "algunos". No es necesario ser exacto, "más de veinte" es un número para este propósito.

La descripción del "nivel de habilidad" es correcta , pero la descripción de la "experiencia" es correcta y clara.

Emilio M Bumachar
fuente
3

Estoy de acuerdo en que C y C ++ son lenguajes diferentes y deben mantenerse separados en el CV. Aunque C es (casi) un subconjunto de C ++, normalmente tengo un estilo de programación muy diferente cuando uso C: diseño de manera diferente, codifico de manera diferente, etc. Incluso eliminaría ciertas características de C, como #includes de C ++, por lo que renunciaría totalmente a la compatibilidad con versiones anteriores: son simplemente lenguajes diferentes.

Así que mi consejo es mantener los dos idiomas separados en tu CV.

Giorgio
fuente
3

Simplemente, si la persona que lo evaluó tenía la propensión a pensar "C es un subconjunto de C ++", ya están confundidos, y estoy seguro de que su explicación de lo que está escrito en su currículum será suficiente para sorprenderlos.

Mr_Spock
fuente