Editar:
¿Cómo gestionas tareas individuales cuando trabajas en varios idiomas?
En el manejo diario de tareas, ¿con cuántos lenguajes de programación diferentes trabaja?
- ¿Haces un cambio mental cuando trabajas en cada idioma?
- ¿Los prioriza y mantiene cada tarea por idioma por separado?
- ¿Codifica en etapas según el progreso de cada tarea cambiando sin problemas entre idiomas / IDE / Medio ambiente
- ¿Aplica el mismo estilo de codificación / convenciones en todos los idiomas (no sintaxis)?
Relacionado:
¿Es normal que el programador trabaje en múltiples proyectos simultáneamente
.equals
javascript. Al menos siempre me equivoco de esa manera en lugar de usarlo==
en Java.Respuestas:
Hoy he escrito Java, Python, C ++ y SQL (si cuenta). Y he estado en el trabajo por menos de 2 horas.
Si haces esto regularmente, entonces el cambio mental se vuelve insignificante. No tiene nada que ver con la multitarea. Es como caminar un rato, luego conducir un automóvil, conducir una bicicleta y luego nadar. No hay problema, porque son cosas secuenciales.
En cualquier caso, el punto es completar una tarea antes de pasar a la siguiente. Tiendo a definir tareas en términos de una funcionalidad concreta, arreglo o tal. A menudo, esa tarea se realiza con un solo idioma, pero puede requerir varios de ellos. Por ejemplo, cuando trabaje con JNI , normalmente realizará cambios en los lados Java y nativo en paralelo.
Algunas respuestas:
Es importante poder cambiar sin problemas entre IDE, editores, entornos. Por lo general, los mantengo todos abiertos todo el tiempo.
Si se trata de una interfaz en la que están hablando dos idiomas, entonces sí, los nombres de las variables deben ser similares. De lo contrario, trato de aplicar el estilo de codificación típico de ese lenguaje.
fuente
Hay un patrón formándose aquí:
Entonces, para mí es: javascript, HTML y CSS, C #, Transact-SQL y Windows Powershell.
¿Aplica el mismo estilo de codificación / convenciones en todos los idiomas (no sintaxis)?
No, hago un punto de programación de acuerdo con la convención del lenguaje. Un simple ejemplo:
Emplear convenciones de codificación visualmente diferentes me ayuda a hacer el cambio mental entre idiomas. Por el contrario, si mi código se veía igual en cada idioma, cometeré errores sintácticos al olvidar en qué idioma estoy codificando.
fuente
Como lo indica SK-logic, el cambio mental no debería ser un problema si utiliza lenguajes específicos de dominio bien elegidos. Pero a menudo no puede elegir el idioma, por lo que a veces toma un momento cambiar. En mi experiencia, la dificultad radica más en cambiar la sintaxis que en cambiar el estilo de programación. El único cambio molesto que siempre experimento es el cambio de estilo de comentario : si solo abro un archivo para cambiar rápidamente una línea de código, a menudo dice:
fuente
En mi último trabajo: Java, C ++, C #, JavaScript y VBScript.
Pero afortunadamente, todo lo anterior estaba en contextos muy diferentes (y en algunos productos), por lo que una vez que conocía cada base de código lo suficientemente bien, el cambio mental a diferentes contextos fue en realidad bastante fácil y lógico.
En verdad, lo que más me molestó fue la interrupción por problemas de soporte al cliente. Cambiar internamente a una tarea en otro idioma nunca fue un problema en sí mismo.
fuente
Trabajo con 2 idiomas: c # y python.
Los uso en el mismo proyecto, pero obviamente para diferentes tareas.
Cuando estoy trabajando en una tarea, trabajo en esa tarea hasta que esté en un estado completo, o hasta que no pueda concentrarme más en ella. Esto significa que, si tengo que cambiar entre idiomas, hay poca o ninguna disonancia cognitiva, ya que habré dejado de pensar en cualquiera de los dos idiomas cuando haya terminado con la última tarea.
Es cierto que tomaré un breve descanso cuando salga de una tarea, lo que probablemente ayude mucho.
fuente
Lo menos posible Generalmente involucra 1. Python, más 2. Plantillas HTML, 3. HTML + CSS y algunas veces 4. Javascript. Cambiar de Python a JS definitivamente requiere un cambio mental, también porque necesito usar diferentes herramientas.
Agrego HTML + CSS como algo separado de la plantilla HTML, aunque es posible que no sean idiomas per se (o podrían depender de su religión), porque también requiere un cambio mental y el uso de otras herramientas, aunque no es tan malo como cambiar a Javascript Jugar con HTML + CSS desde una perspectiva de diseño, para hacer que la página se vea como la maqueta requerida, es una mentalidad diferente de hacer plantillas HTML. Pero es más ortogonal a Python que Javascript, lo que significa que necesito cambiar mi mentalidad de programación por otra. :)
fuente
Diariamente uso:
También uso Python, Java y XML (¿eso cuenta?) Ocasionalmente. Mi trabajo consiste en editar varios sitios web, que podrían construirse en cualquier idioma web (incluso tenía uno Perl una vez) y usar paradigmas / plantillas muy diferentes (de procedimiento, MVC, OOP, etc.).
Para responder la pregunta: utilizo principalmente Notepad ++ como mi IDE para los primeros 5 enumerados, luego Visual Studio para Asp.Net.
Puede ser una molestia cambiar rápidamente entre cada idioma, recordando si necesita o no punto y coma al final de las líneas, o si los bucles tienen llaves o no. Cambiar de VBScript a JScript es lo peor para esto: ambos archivos terminan en .asp y se ven bastante similares a primera vista, por lo que lleva un tiempo descubrir por qué obtengo errores.
fuente
En este momento estoy escribiendo Ruby, PHP, Java, C y JavaScript y escribiré por un mínimo de 1 hora en cada uno de estos cada día. El problema principal es realmente una cuestión de encontrar el tiempo, ya que son todos para proyectos no relacionados.
Cambio mental
Mi estilo de trabajo es tal que me gusta trabajar durante largos períodos de tiempo. Desafortunadamente, esto significa que si solo tengo una cosa activada, cuando encuentro un bloqueo mental con un fragmento de código, me llevará mucho tiempo superarlo. No creo que tomar un descanso ayude tampoco. Al tener otros proyectos, y en particular otros idiomas, para cambiar cada vez que me atasco significa que para cuando vuelva al idioma original, inmediatamente tengo una solución.
Por lo tanto, sí, hay un cambio mental y creo que me hace mucho más productivo.
Priorizar tareas
Utilizo un administrador de tareas (gTasks para Android) y tengo una lista de tareas por separado para cada proyecto. Si un proyecto requiere varios idiomas, entonces no los separo. Esto generalmente se debe a que estarán fuertemente relacionados de alguna manera. Por ejemplo, JavaScript y Ruby por hacer algunas cosas de AJAX. Si los idiomas son técnicamente para el mismo proyecto, pero el proyecto es tan grande que esencialmente no están relacionados, es probable que los cuente como proyectos separados.
En general, mi prioridad es "la lista que tenga más tareas", pero siempre cambiaré si me encuentro con un problema.
Convenciones de codificación
Es un poco una mezcla:
Aparte: el mayor desafío para mí es cambiar de idioma de estilo. Es muy difícil correr al codificar SASS junto con Ruby y luego tener que volver a CSS para todo lo demás. En menor medida, tengo el mismo problema con HAML / HTML y JSON / XML.
fuente
Escribo aplicaciones para el lado de ISP, también existe una cultura de "haz lo que te resulte cómodo", a menudo escrita por muchos ingenieros de redes que incursionan en la programación. Tengo que lidiar semanalmente con programas que están bastante bien escritos, para los realmente horrorosos. Lo que a menudo encontraré y trabajaré ...
También hay otros idiomas (.net, VB, Phyton, Rails, etc.) en la empresa, pero no he tenido que trabajar en ellos ... todavía.
Editar, para editar ...
Tienes que cambiar mentalmente cuando trabajas entre idiomas. Lo más frecuente es que pierda la noción de la sintaxis. Tengo una colección de libros de referencia listos. Descubriré que toma aproximadamente media hora volver a la mentalidad del otro idioma. Cuanto más obtusa sea la sintaxis para el idioma, más largo será el cambio. Me parece que pasar de hacer Java a hacer Perl probablemente lleve más tiempo si no lo he tocado por un tiempo. Cuanto más haces esto, más fácil se vuelve.
fuente
A menudo estoy usando seis o más idiomas dentro de un proyecto. La mayoría de ellos generalmente son específicos de ese proyecto solamente.
El cambio mental solo es necesario si está utilizando un lenguaje que no es apropiado para una tarea. De lo contrario, es natural usar el mejor ajuste. Se utilizan diferentes conjuntos de idiomas para diferentes etapas de un proyecto.
fuente
Utilizo C (incrustado), C ++ (escritorio), Python, Matlab y VHDL (una especie de lenguaje de programación de hardware) con frecuencia, a menudo todo en el mismo día. En mi entorno, este tipo de destreza del lenguaje es esencial en mi opinión.
A menudo no puedo obtener todo lo que necesito en un proyecto en particular en un idioma de manera eficiente. Por ejemplo, tanto el C incrustado como el VHDL tienen un nivel bastante bajo, por lo que a menudo uso Python para analizar sus resultados (o incluso generar código).
Cambiar entre ellos rápidamente no es un problema después de un tiempo, es como cambiar de un martillo a un destornillador: la herramienta adecuada para el trabajo.
fuente
Realmente depende de cómo se define el trabajo ... Uso C # para desarrollar aplicaciones de Microsoft Surface todos los días. Java también lo uso todos los días para mis aplicaciones de Android. Pero trato de educarme y comencé a usar R, Ruby y Objective-C. A veces también necesito algo de SQL y si incluye lenguajes de script y otros idiomas en su pregunta, también JavaScipt, SPARQL y BeanShell.
¿Aplica el mismo estilo de codificación / convenciones en todos los idiomas (no sintaxis)?
Trato de seguir las convenciones de codificación de cada lenguaje, pero especialmente entre Java y C # Tengo algunas dificultades debido a las llaves y el nombre de método en mayúsculas en C #:
vs.
fuente
Construyo aplicaciones web. Así que actualmente es:
Editores: Sublime Text (fuera de elección), Visual Studio 2010 (no hay otra opción factible cuando se trata de ASP.Net)
fuente
En mi trabajo uso Java, C, Python, Django y pequeños bits de PHP. También trabajé en un proyecto realmente pequeño en C ++ de Microsoft.
No los uso todos los días, pero algunos días los uso sin problemas. En un día típico solo uso uno o dos. La programación que hago en casa generalmente implica trabajar con tecnologías diferentes a las que uso en el trabajo como Qt o Ruby on Rails.
fuente