“Python es como un lenguaje de programación de juguete en comparación con C++”

Antony Peacock sabe un par de cosas sobre el uso de C++ en finanzas. Desarrollador sénior de C++ en Maven Securities, es miembro del comité de estándares de C++ y ha trabajado en el campo. tecnología comercial desde 2008. Antes de unirse a Maven, Peacock un desarrollador de cantidad En el fondo de cobertura Citadel. Antes de unirse a Citadel, fue analista cuantitativo en Barclays y Citi. Ha estado programando en C++ durante más de veinte años.

“Puede convertirse en un programador de C++ bastante bueno en un corto período de tiempo, pero se necesita mucho, mucho tiempo para convertirse en un experto”, dice Peacock. “Hay tantos errores que puedes cometer en un idioma y cientos de reglas que debes recordar. Es muy, muy complejo, y pasas años aprendiendo a través de trampas y errores y corrigiendo los errores y el código de otras personas”.

Comienza a aprender C++ a una edad temprana

Peacock aprendió C++ cuando aún estaba en la universidad, donde se especializó en la codificación de videojuegos. “Mi tesis fue como 100.000 líneas de código en C++”, dice. “Tal vez no era muy bueno en C++, y todavía hay una gran cantidad que no sé, pero pasé horas y horas practicando esta habilidad. Todavía veo a muchos de los mejores desarrolladores de C++ aprendiendo por sí mismos”.

El C++ moderno es realmente un lenguaje completamente nuevo en comparación con el anterior a C++11. Tan poderoso como antes, pero tan fácil de usar como Java o Python. La mayoría de los críticos tienen 2 razones principales para que no les guste. En primer lugar, creen que tienen que aprender todo el idioma y, en segundo lugar, no entienden muchas de las mejores características del idioma.

Peacock dice que el problema actual es que muy pocas universidades enseñan a los estudiantes a codificar en C++. Algo como Baruch, Todavía enseñando el idioma como un medio para distinguir a sus alumnos, pasó a enseñar un idioma muy fácil como muchos otros. Pitón en vez de.

Pitón y C++

Python es excelente para crear prototipos, pero no tanto para crear sistemas comerciales, dice Peacock. “Es casi como un lenguaje de juguete”, dice, antes de corregir rápidamente por temor a ofender a los desarrolladores de Python. “- Python es un lenguaje serio, pero es una herramienta que tiene su lugar. Puede usarlo para la creación rápida de prototipos, pero no es un lenguaje con el nivel de robustez que desea si está haciendo negocios de miles de millones de dólares”.

A diferencia de Python, C++ tiene un compilador estático que le permite corregir sus errores a medida que avanza. En comparación, Python es un lenguaje de escritura dinámica y solo descubre que el código funcionará correctamente cuando intenta ejecutarlo. Debido a esto, dice Peacock, trabajar con Python puede ser un lenguaje frustrante: “Python es muy libre: te permite expresar tus ideas de manera muy rápida y concisa sin preocuparte demasiado por cómo expresar el lenguaje, pero hay muchos lenguajes. . Personas en finanzas que dedican mucho tiempo a depurar el código Python existente”.

Peacock dice que hay “mucho C++ malo” en finanzas, pero el lenguaje es diferente de Python. “Es como un rompecabezas gigante”, dice. “Es el lenguaje de los usuarios expertos: puedes hacer cualquier cosa con un gran nivel de control, pero requiere mucho más esfuerzo”.

Esta complejidad, combinada con el lanzamiento frecuente de estándares y nuevas funcionalidades (la última es C++20), hace que C++ sea difícil de dominar realmente. Cuanto más aprendes sobre un idioma, menos te das cuenta de que realmente sabes, dice Peacock: “Bjarne Stroustop [the man credit with inventing C++, who works for Morgan Stanley] Está muy feliz de pararse en conferencias y decir que se calificaría a sí mismo con un 7/10 como desarrollador de C++”, señala.

¿Deberías aprender C++ en lugar de Python?

esto yoetc. aunque vale la pena aprender C++. Con el agotamiento de la oferta de estudiantes universitarios expertos en C++, Peacock dice que la industria financiera está luchando por un grupo cada vez más pequeño de desarrolladores en el lenguaje.

Algunas empresas optan por agarrar la ortiga y capacitar a las personas por sí mismas. En Maven Securities, Peacock planea contratar a unos 10 graduados este septiembre (frente a los dos del año pasado) y capacitarlos en C++20. También contrata a desarrolladores experimentados que quieran trabajar en sistemas Maven de última generación. “Las empresas deberían ser más receptivas a la escasez talento C++ y hacer más para enseñar habilidades a las personas”, dice.

Peacock es gratis a finales de este mes Seminario web de capacitación de C++ con el popular entrenador de C++ Rainer Grimm para personas interesadas en el trabajo de comercio algorítmico Richard Hickling, un ex tecnólogo de la sala de operaciones que se fue el año pasado para iniciar una empresa de criptoanálisis. También compiló una lista de conferencias de C++ y reuniones de grupos de usuarios para asistir El blog de Maven.

Peacock señala que aprender C++ es posible, pero requiere esfuerzo y paciencia. “Podemos enseñarle, pero también necesita su propia motivación y mentores que lo guíen a través del proceso. Ahora hay tantos buenos recursos en línea, y la mayoría de las conferencias se reproducen en YouTube”.

Haga clic aquí para crear un perfil en eFinancialCareers. Hágase visible para los empleadores que contratan en tecnología y finanzas.

¿Tiene una historia secreta, un consejo o un comentario que le gustaría compartir? Contacto: sbutcher@efinancialcareers.com En primer lugar. También disponible en Whatsapp/Signal/Telegram (Telegram: @SarahButcher)

Ten paciencia si dejas un comentario debajo de este artículo: todos nuestros comentarios están moderados por personas. A veces, estas personas pueden estar dormidas o lejos de su escritorio, por lo que su comentario puede tardar un poco en aparecer. Finalmente, a menos que sea ofensivo o difamatorio (que no lo será).

El autor de la foto Huy Hung Trinh sobre Chapoteo

Leave a Reply

Your email address will not be published. Required fields are marked *