"Soy un tonto inútil y quiero dejar de fumar" - 10 preguntas para un programador, versión piloto



Hola Habr!

¿Recuerdas la historia de Steve Jobs y Dennis Ritchie ? No queremos arreglar disputas y volver a leer la moral, pero la verdad sigue siendo cierta: miles de expertos en tecnología están sentados en las sombras y sus historias están ocultas en un armario.

En la oficina editorial de Habr tenemos la intención de corregir esto. De ahora en adelante, entrevistaremos regularmente a personas sobre las que no escriben en los medios y que no son perseguidas en las redes sociales. Entonces, si tiene algo que contar sobre usted, prepárese.

Para hacerle entender cómo se verá, comencemos con nuestro ejemplo. Debajo del gato 10, preguntas generales que les haremos a todos. Para el piloto, fillpackart les respondió. (Este mes tomé varias entrevistas aparentemente buenas con él: una , dos , tres ). Lee, y si quieres hablar de ti de la misma manera, escríbeme mensajes a mí o a Baragol .


Philip Rangin, hijo de un ingeniero de Ivanov. Comenzó a escribir en C ++ a la edad de 16 años en la universidad, luego estudió .net. Ahora ingeniero senior de desarrollo de software en una buena oficina en el extranjero. Además de los idiomas comunes, escribe en F # y OCaml.

1. Cuéntanos sobre la función que has implementado y de la que estás orgulloso.


"No he hecho nada de lo que estar orgulloso". Toda mi vida profesional he estado resolviendo problemas muy triviales. Por lo tanto, estoy orgulloso de lo que puedo hacer, pero no de lo que hice.

Creo que podría estar orgulloso si pudiera implementar una buena IA.

2. Y ahora, sobre el fakap más feroz.


- Una vez, durante todo el día intenté sin éxito obtener OCaml en Windows (no intente repetir). Esto no tenía nada que ver con el trabajo, y a la mañana siguiente en el mitin fue necesario mentir. Miro, tengo un error adjunto que ni siquiera miré. Bueno, creo que "no puede haber un error que no pueda solucionar en dos días". En el mitin, dijo que trabajó en ello y que en dos días habrá relaciones públicas.

Como resultado, trabajé en ello durante tres meses.

El error estaba relacionado con la interacción de dos grandes sistemas. Fue reproducido constantemente. Durante tres meses construí varias hipótesis y las probé, cometiendo errores una y otra vez, incluso abandoné la construcción de una casa en Skyrim. Estos fueron los peores tres meses de mi vida.

Terminé cerrándolo como "No repro". Llegué al director y le dije: "Soy un tonto inútil, y quiero dejar de fumar para no atormentarte". Pero en respuesta, aumentaron mucho mi salario.

3. Describa su espacio de trabajo: desde la silla y el monitor hasta los entornos de programación y sus utilidades favoritas.


- Trabajo con los sistemas operativos Windows porque tengo una pila .net y porque Windows tiene la mejor interfaz de usuario. Estoy sentado en una mesa que hice para mí. Él es enorme, en forma de cinco personas.

No tengo el peor devbox, pero con una desventaja significativa: intenté ahorrar dinero y compré un porcentaje de AMD. Fue un terrible fracaso. ¡A pesar del alto poder declarado, este pedazo de mierda ejecuta mis pruebas a las 5! veces más lento que su homólogo de Intel.

Ahora solo tengo un monitor. Planeo comprar un par más para no deshonrar. Mi IDE favorito es Visual Studio 2017 junto con Resharper. Editor de texto favorito: Visual Studio Code junto con mil millones de extensiones. Descargarlos y ver cómo evoluciona VSCode es uno de mis pasatiempos.

Me encanta git, pero probablemente me gusta más Visual Studio Team Services que GitHub.

4. ¿Por qué principio eliges un trabajo? Pila, producto, condiciones de vida, dinero?


- Por el momento, los factores clave para mí son el pago y la capacidad de trabajar para un tercio de mis habilidades. Me parece que me he quemado y ya no estoy listo para trabajar ideológicamente para un negocio. Incluso el miedo a ser despedido y perder mi estilo de vida habitual no puede hacer que me sumerja profundamente en el proyecto. Y yo soy el padre de un niño y medio; el miedo es muy grave. Pero la uniformidad y la falta de sentido de todo lo que hice ahora me causa casi dolor físico.

A veces me parece que con este enfoque no tengo el derecho moral de buscar trabajo. Me justifico por el hecho de que en relación con el sistema es imposible ser moral o inmoral. La abstracción de las corporaciones ayuda a distanciarse de la idea de que puede dañar a personas reales, por lo tanto, tomo trabajo solo de grandes empresas.

Al mismo tiempo, me confunde lo enorme que es el dinero que obtengo para mi ciudad por una solicitud de extracción. Como si la gran habilidad del desarrollador me diera el derecho de vivir diez veces mejor que un grupo de personas que, con el sudor de la cara, hacen un trabajo útil ocho horas al día.

A veces parece que, dado que pude reproducir el negocio en una cuenta de seguridad social, soy digno de lo que tengo. Debido a esto, pierdo el contacto con la realidad y me parece que así es como debe ser.

No sé cómo combinar esto, pero me encanta desarrollar y odio trabajar como desarrollador. Estoy tratando de asegurarme de que no me he encontrado con un proyecto interesante, pero al mismo tiempo no creo en él. Es realmente difícil vivir con él.

5. ¿Qué tecnologías e idiomas que utiliza le gustaría corregir?


- Me gustaría:

  • Inferencia de tipo e inmunidad en tiempo de compilación para mecanografiado y C #. Entonces podría crear un método que acepte algo garantizado como inmutable, y no como ahora: ReadonlyDictionary, que no es realmente de solo lectura (le pasó el dixnari habitual a su constructor, le dejó un enlace y mutó en silencio).
  • Para que los desarrolladores de C # envíen, finalmente, al infierno con compatibilidad con versiones anteriores, utilizaciones extravagantes que funcionan solo dentro de un archivo y hacen que YaP sea más moderno. En serio, en un idioma para el cual IDictionnary <IMyStupidType, IMyStupidType2> Foo (Func <IMySupidType, int, bool, string> realmenteStrangeCallback los códigos de estilo no son infrecuentes , es una decisión muy extraña.
  • Campos de respaldo automático en C #, algún tipo de azúcar sobre Func <T1, T2> .
  • Contratos para C # listos para usar (por ejemplo, en Roslyn) en lugar de soluciones de terceros que convierten mi IDE en algo inhibidor.
  • Un análogo de jsx para el lenguaje F #. Si ninguno de ustedes lo hace en la próxima semana, que así sea, lo conseguiré.
  • Para que la comunidad se dé cuenta de que las pruebas unitarias son basura inútil, y los idiomas con tipeo dinámico (que no deben confundirse con los débiles) son el mayor fracaso en la historia de la industria.
  • Para que la arquitectura del procesador esté más diseñada para un enfoque funcional.
  • Optimización de la recursión de la cola en JS / TS para que pueda descubrir mi recursividad de la cola en todas partes sin apoyar mi espalda en el tamaño de la pila. Hay una en la especificación, pero los chicos que vieron v8 simplemente decidieron que no era tan importante seguir la especificación del lenguaje al desarrollar un tiempo de ejecución.
  • Escritura estática opcional en JS fuera de la caja, pero no en oposición al mecanografiado. A diferencia de los creadores del guión del tiempo, lo considero un YaP independiente con un diseño multi-paradigma muy moderno y poderoso.
  • Para que cosas como el ensamblaje web tomen firmemente su lugar en las prácticas y estándares del desarrollo front-end.
  • Mejora significativa de los clientes web de Github y similares. Idealmente, la capacidad de trabajar cómodamente con el código de un proyecto serio en el navegador.
  • Más convenciones sobre compatibilidad. ¿Cuánto más fácil sería si jvm pudiera interpretar y denotar cil?

6. ¿Dónde es mejor aprender de la experiencia de otra persona: en una universidad, en konfakh, en Habr? En otro lugar?


- Estudié en la universidad, pero me expulsaron varias veces. He estado en conf, constantemente leía a Habr. No me parece que haya aprendido nada útil de estas fuentes. Bueno, o me complace pensar que sí.

Mi punto es leer libros y hacer amigos con los desarrolladores. Creo que la mayor influencia en mi habilidad fue la comunicación con personas inteligentes que se dedican al desarrollo.

7. Si tuviera recursos ilimitados (tiempo, dinero, poder, personas), ¿qué proyecto tomaría?


- Sería genial hacer la simulación más precisa posible del mundo humano, para poder probar en él cómo llevar a la sociedad al estado más feliz. De todos modos, cómo se comportará en diferentes casos.

8. ¿Cómo te relajas? ¿Qué haces además del trabajo?


"Camino por el bosque y pienso, a veces con cerveza, tocando la guitarra y ocasionalmente jugando videojuegos". Diría que mi hobby es pensar y soñar.

Tengo varios de mis proyectos con amigos. Especialmente me gusta darles revisiones de código pasivamente agresivas ("¿podría ofrecer motivación para usar una decisión tan mal concebida?") Y observe cómo esto cambia nuestra relación.

A veces hago todo tipo de basura humanitaria como una entrevista. Constantemente comienzo a escribir libros, aunque todavía no he terminado ninguno de ellos.

9. Cuente sobre 3 libros favoritos: educación, ciencia popular y ficción.


Entrenamiento - "CLR vía C #" por Jeffrey Richter. Tanto conocimiento sobre cómo se organiza un tiempo de ejecución detallado en un trabajo es un verdadero hallazgo. Si memoriza este libro, pasará por cualquier cuenta de seguridad social en donneter. También mencionaría las "Estructuras de datos funcionales" de Chris Okasaki. No es muy útil desde un punto de vista práctico, pero ella devolvió mi fe en la programación: la implementación de estructuras de datos me causa una emoción metafísica.

Scientificpop - No sé si Code Complete puede considerarse como tal, pero realmente me gusta releerlo. El autor escribe cosas increíblemente obvias, y en todos los proyectos donde trabajé, por alguna razón, nadie podría seguir estos principios simples lo suficiente.

Artístico - "American Tragedy" de Dreiser. Nunca hubiera pensado que un monstruo digital tan pragmático como yo pueda empatizar con una niña abandonada y luego muerta. Pero era empático, y me golpeó mucho.

10. Si, justo ante tus ojos, AI se despierta, ¿qué le dirás?


"Sugeriría que diseñe inteligencia artificial y luego compare cuál es mejor". Si el nuevo fuera mejor, le pediría que diseñara inteligencia artificial, y luego ...

Si la IA resultara ser un codificador poderoso, lo usaría para crear un argumento de hierro de que Golang es un callejón sin salida en el desarrollo de la programación. Porque hay muchos de esos holivars en mi vida, y no tengo un presupuesto para estudiar Golang para crear un buen argumento.

Bonificación: haga cualquier pregunta a otro desarrollador.


- ¿Estudiar qué tecnología disfrutaste más en el proceso?

Source: https://habr.com/ru/post/es420321/


All Articles