2009-02-03 10 views
15

Me pregunto qué hace usted como programador que no está programando pero que es necesario para su tarea (por ejemplo: configuración local, configuración del servidor, implementación, etc.). Tengo curiosidad por saber cuántas tareas relacionadas con la programación están realizando las personas.Como programador, ¿cuánto se espera que sepa fuera de la programación?

Por ejemplo, cuando en los proyectos de desarrollo web a menudo:

  • instalar servidores
  • Administrar derecho de usuario/acceso a los servidores
  • realizar copias de seguridad
  • configuración de IIS/Apache
  • Configuración de FTP sitios

En proyectos no web I a menudo:

  • herramientas de secuencias de comandos de escritura construcción
  • de gestión de código fuente de instalación/procedimientos
  • Probablemente más cosas que no estoy pensando en

Algunas tareas están más relacionados con la programación que otros (tales como escritura de scripts de compilación), pero otros quedan fuera de mi área de especialización (la configuración del dominio viene a mi mente). Solo me interesa saber cuántas personas realizan tareas en sus trabajos que no están relacionadas con la programación.

+0

En otras palabras, "¿qué haces que no está relacionado con la programación además de las preguntas relacionadas con la publicación no relacionada en SO?" –

+0

@David Belanger: Como alguien que quiere que SO-proper sea 'puro', esta pregunta no encaja. Como una pregunta wiki en un lugar diferente (I.E., no aquí), entonces cabe. –

+0

Para usar tu pregunta como ejemplo, comienza bien (preguntando qué hacen los programadores que no está relacionado con la programación), pero luego se convierte en una opinión subjetiva, "en tu opinión ... ¿algo bueno o malo?" Este es un sitio de Preguntas y respuestas sobre programación. Si desea una discusión, marque wiki, y puede permanecer abierto. –

Respuesta

24

La triste realidad es que las personas no técnicas miran a los técnicos y esperan que sepan todo lo que está relacionado con la tecnología, sin entender que hay especializaciones dentro de la tecnología de las que tal vez no sepamos nada.

A menudo pienso que es muy parecido a un médico que se especializa en una disciplina en particular. Todos los médicos tienen una base de conocimiento en el campo médico, pero no conocen los detalles de otras especializaciones (un cardiólogo no sabrá tanto sobre anestesiología y viceversa).

Así, mientras que yo creo que es razonable para que las personas esperan que los técnicos sepan todo, yo creo que es razonable que esperen que sabemos algo cuando se trata de la tecnología.

Creo que una faceta más importante de esta pregunta es cuánto se espera que uno sepa sobre el dominio específico donde aplican sus habilidades (finanzas, fabricación, etc., etc.). Creo que es increíblemente importante, ya que tener ese conocimiento de dominio los hace mucho más valiosos como programadores, ya que pueden entender los problemas en un nivel profundo, y como resultado, proporcionar soluciones más integrales para ellos.

+0

Estoy totalmente de acuerdo en que cuanto más sepa, más eficaz puede ser debido a ese conocimiento. Cuando eso sucede, hay una profunda sensación de satisfacción. Gracias por su respuesta. –

+0

@David Belanger: gracias por hacer la pregunta. – casperOne

0

Esto variará mucho dependiendo de dónde se encuentre. He trabajado con personas que no conocen nada de esto, y personas que son expertas.

Sabiendo esto te será de gran ayuda. En general, siempre es mejor comprender el entorno en el que se está ejecutando su código. No entender el contexto lo deja algo indefenso.

Además, a menudo hay errores que no están relacionados con el código sino que están relacionados con la configuración, por ejemplo, una página que no aparece debido a la configuración de apache. Estás muy discapacitado en la depuración si no entiendes el entorno.

1

Bueno, como la herramienta principal de un programador es su computadora, creo que es justo asumir cierta experiencia con ella. La mayoría de esas cosas que has descrito son difíciles para alguien que no está familiarizado con las computadoras, pero es bastante fácil (incluso con poca experiencia previa) para alguien que entiende el dominio y sabe cómo encontrar y leer la documentación.

En un negocio o proyecto grande y bien organizado, esperaría que alguien que estaba más específicamente familiarizado con ese tipo de cosas administrativas se hiciera cargo de ellos. Sin embargo, si no hay suficientes para garantizar un trabajo de tiempo completo, entonces no creo que sea irracional tener a nadie que trabaje de manera competente; y los programadores están probablemente a la cabeza de la cola en ese sentido.

0

La gente alrededor de un lugar de trabajo probablemente espere que un programador sea su tipo de HelpDesk de IT ... me pasa por aquí. argh.

0

Donde trabajo, se espera que todos los desarrolladores puedan usar Subversion y tienen que ser capaces de configurar y configurar Apache y Tomcat en su PC.

1

Encuentro que la gran mayoría de los "errores" descubiertos por los usuarios son problemas de configuración con los sistemas en los que está instalada la aplicación. Tener desarrolladores que entienden los errores comunes de configuración de la máquina y la red es muy deseable.

Por ejemplo, si una aplicación envía correo electrónico como parte de su operación, es útil que los desarrolladores sepan en la configuración de DNS y SMTP.

Por supuesto, depende de su tamaño de negocio, las grandes organizaciones probablemente pueden proteger a los desarrolladores de esto mediante el uso de otros especialistas.

2

Probablemente depende del tamaño de la empresa para la que trabaja. Como alguien que ha trabajado principalmente en pequeñas y medianas empresas, también he sido responsable de:

creación de bases de datos, gestión y puesta a punto que soportan las aplicaciones internas lanzo certificados de sitios web que gestionan la creación de externa de alojamiento y Estoy seguro de que también hay más

+0

Robó mi respuesta :-(... +1 – Travis

+0

Sí, y como desarrollador web, de forma rutinaria me piden ayuda con el diseño gráfico, la conversión de video, la configuración de la cámara web, el marketing por correo electrónico, la configuración de la cuenta, el acceso remoto ... Nómbrelo. Creo que hay muy pocos negocios no tecnológicos en los que la gente realmente se especialice en el grado que nos gustaría. – Dana

0

El mayor desafío no son los problemas técnicos asociados con la puesta en marcha del entorno sino el conocimiento de dominio necesario para desarrollar eficazmente el software en una tienda pequeña. Para mí, trabajo en muchos proyectos diferentes de una variedad de fuentes en un entorno de desarrollo principalmente aislado. Esto significa que necesito acelerar el dominio del proyecto bastante rápido para ser efectivo en el desarrollo de una solución. En el pasado, he trabajado en soluciones de contabilidad de impresión, gestión de directorio activo, bases de datos de encuestas de investigación y, en la actualidad, una solución cuasi CRM para una organización caritativa. Ojalá solo tuviera que conocer los aspectos prácticos de configurar mi entorno de desarrollo y construcción.

5

¿Va lo esperado? Casi nada, pero todos siempre son felices cuando sabes más.

Cuanto más sepa fuera de los estrechos límites de la programación, más valioso es para su empleador.

cosas que han surgido para mí:

  • recopilación de requisitos
  • casos de uso por escrito
  • que evalúan los planes de prueba
  • negociar con los vendedores gobierna
  • legislación fiscal
  • reconocimiento de ingresos
  • ideas sobre cómo se comportan los usuarios
  • teoría económica
  • pautas básicas de usabilidad
  • diferencias en el comportamiento de los consumidores en diferentes países
  • de administración del sistema (siendo un lleno en el administrador de sistemas)
  • de configuración de base de datos, optimización, configuración (siendo básicamente un DBA)
  • sistemas de monitoreo
  • principios y técnicas de redes (se sorprendería de lo práctico que puede ser un rastreo de paquetes al depurar algo ...)
  • ser capaz de evaluar un plan de negocio escrito por otra persona
  • manipulación de imágenes
  • cómo se difunda una situación y evitar discusiones
  • cómo a esquina a alguien y hacer que se comprometan a algo cuando no quieren
  • cómo elegir batallas
+0

Sé que está cerrado, pero ¡ojalá pudiera votar esto más de una vez! – thursdaysgeek

0

A menudo depende del tamaño de la empresa. En una empresa pequeña, debe saber cómo hacer todo, incluso el administrador de sistemas y el administrador de red, incluso si su trabajo se centra en la programación.

En una gran empresa, se llega a ver una pequeña porción del universo, y a menudo no les gusta que asome fuera de su caja. No solo no necesita aprender todo, a menudo no está contento con usted si lo intenta.

Sin embargo, cuanto más comprenda sobre las máquinas, cómo funcionan y cómo funcionan en un entorno operativo, más fácil será diagnosticar problemas y escribir un mejor software. Cuanto más comprenda sobre el dominio para el que está escribiendo aplicaciones, mejor podrá diferenciar entre las necesidades de los usuarios y sus deseos.

Una de las mejores cosas de ser un desarrollador de software es que tienes una excusa de por vida para adentrarte tanto en las tecnologías como en los diversos dominios comerciales. Si te has desplazado a unas pocas industrias diferentes, tiendes a ser cargado con todo tipo de curiosidades interesantes. Siempre hay más que aprender ...

Paul.

3

Creo que la habilidad de no programación que uso más en mi trabajo de programación es la escritura. Es realmente crucial poder explicar ideas, diseños, algoritmos, etc., y nunca se puede contar con estar en persona para hacerlo (o tener el tiempo). Paso una buena cantidad de tiempo en el trabajo escribiendo documentos de diseño y otra documentación para que otros ingenieros puedan conocer mis códigos y algoritmos. Así que estoy muy agradecido de haber tenido buenas clases de escritura en la escuela y poder armar una oración.:-)

0

Es bueno exponerse a otras tecnologías, pero realmente creo que es una mala idea que no revele por completo el hecho de que no es experto en esas áreas (especialmente configuración de dominio). He trabajado con personas que pensaban que podían hacerlo todo, pero terminaron haciendo esas tareas tan mal que con todo el tiempo (y dinero) que han invertido tratando de hacerlo bien, se le habría pagado varias veces a un consultor. .

He trabajado en una empresa donde fui responsable de todo lo relacionado con una computadora, incluyendo el dominio, PC, base de datos, software personalizado, compilaciones, MS Office, PowerPoint, Quickbooks ...; una compañía mediana donde fue desarrollo y construcciones; y una gran empresa en la que me concentro exclusivamente en el código .Net para mi proyecto (otra persona maneja la base de datos y otra maneja los informes).

La mediana empresa ha sido la mejor experiencia hasta ahora (bastante nueva en la gran empresa) donde se me dio la suficiente responsabilidad de sentirme útil y tuve fácil acceso a todos los demás para hacer preguntas sobre esas otras tareas.

0

No estás solo por ahí. La posición he firmado para era "ASP.NET Web Developer" ... Sin embargo, mi trabajo consiste en:

  • Windows Server Administración
  • Linux Administration Limited (que se ejecuta superior para supervisar la utilización de la CPU y el cambio de Apache configuraciones)
  • LDAP Administración/Sintonía
  • servidor de Administración
  • MS SQL 2005/ sintonización
  • Desarrollo de base de datos
  • Crystal Reports Dev eloper
  • Perl Scripts
  • C# Win32 Developement
  • C#/ASP.NET Web Developement
  • la protección de derechos de acceso de usuario para servidores Windows
  • red limitada de problemas

estar en una empresa que está constantemente luchando por la suprema "Eficacia operativa", mi lista de tareas solo crece día a día. Yo tampoco hice esa lista. Todos los artículos mencionados anteriormente, he tocado o apoyado en los últimos 3 años he trabajado en esta empresa.

Dicho esto, en una tienda de desarrollo de buena, debe tener una tarea específica. Como dice el refrán, Jack de todos los oficios ... dueño de ninguno.

0

Esto depende en gran medida de lo que está programando. Si está utilizando controladores de dispositivos de bajo nivel, es vital que comprenda el hardware subyacente. Si está haciendo una aplicación Java independiente, cuanto mejor comprenda la JVM y las bibliotecas que está utilizando, mejor, pero no es estrictamente necesario saber mucho.

En general, cuanto más comprenda sobre el entorno de su sistema, mejor. La cantidad que sus pares y la administración esperan que usted sepa depende de ellos.

Ignorancia será, eventualmente, castigada. Si no lo hacen sus compañeros y la gerencia, el mundo lo hará. Revise los titulares de cualquier semana o el resumen RIESGOS para ver ejemplos donde la ignorancia del entorno del sistema causa fallas en el software.

1

Me di cuenta de que nunca me contrataron para el trabajo real, sino como un solucionador de problemas. Ya sea que descubra qué está pasando y que lo solucione a través de código o software, o algo en la red, esta parece ser la percepción principal de lo que quieren los clientes.

0

[modo rant on] Ha, la maldición de Excel y Word.

Trabajo externo, especialmente amigos y familiares, pero a veces, al consultar o entregar software también, todas las personas no técnicas esperan que usted las comprenda. Hay un gemido interno cuando alguien te pide que veas un pequeño problema que están teniendo con alguna faceta de Office. Y como es un cliente y quiere parecer útil, está de acuerdo.

Existe la expectativa de que, como desarrollador, tiene un conocimiento innato de la configuración de hojas de cálculo, la reparación de plantillas de Word y todas las demás tareas técnicas de oficina, y además puede echarle un vistazo a una Oficina mal configurada desordenar y diagnosticar instantáneamente cuál es el problema.

Solo puedo lograr juntar una hoja de cálculo para programar mis facturas recurrentes y configurar una plantilla de Word para escribirlas. Regularmente le digo a la gente eso también, pero nadie escucha.

0

Depende mucho del tipo de software que actualmente está en desarrollo

Por ejemplo, cuando estaba trabajando en el software para un gobierno local, que tenía que aprender cosas como

  • ¿Cuáles son las reglas para registrar animales (mascotas). ¿Cuáles son los tipos de registros, qué descuentos se aplican, cuáles son las sanciones por no registrarse a tiempo?
  • ¿Cómo se calculan las tasas municipales? Cómo se elevan las tasas anualmente (en realidad, el algoritmo para aumentar las tasas anuales y su implementación fue la tarea más compleja que he conocido hasta ahora).
  • Cómo se emiten los permisos de construcción. Qué tipo de inspecciones se pueden realizar. Quién está involucrado en el proceso de emisión de un permiso de construcción (propietario, constructor, arquitecto, funcionarios, etc.)
  • ¿Con qué frecuencia se leen los contadores de agua? ¿Cómo se asignan los contadores de agua a las propiedades, cuántos diales se encuentran en un contador de agua, cómo separar un contador de agua de una propiedad y adjuntar a un contador diferente
  • Cuáles son los diferentes tipos de pensión. Cuáles son los diferentes descuentos que se otorgan dependiendo de un tipo de pensión.
  • ¿Qué son los diferentes tipos de recibos? Qué tipos diferentes de impresoras de terminal (las que se usan para imprimir recibos pequeños) existen y cómo imprimirlas.
  • ¿Cuáles son las propiedades de los estratos, niños, ¿cuáles son las reglas para dividir las propiedades en 'parcelas' ...

bueno, eso es sólo una parte de la materia no de programación que he aprendido durante los 2 años en el proyecto. Lo más desafortunado aquí es que ahora que me mudé a una compañía diferente, hay muy pocas posibilidades de que use este conocimiento.

0

Mi título es "Senior Software Engineer".De hecho, la mayor parte de los últimos años, lo hice bastante poco desarrollo de software, pero sí hacer un montón de:

Sistemas de administración Web &

desarrollo de páginas web estáticas con HTML (no lo hago considere esa programación, aunque he hecho PHP, CGI y JavaScript).

Como han dicho otros, los tipos de mesa de ayuda de cosas, aunque no tanto como en el pasado.

Como un "líder de tarea", se espera que tenga algunas personas/habilidades de gestión, aunque eso generalmente pasa a la redacción de informes mensuales. También me absorben cosas de CMMi de vez en cuando, lo que en un mundo ideal puede ser de alguna manera relevante, pero por lo general es solo un mantenimiento de registros para que el empleador pueda ofertar en nuevos contratos que lo requieran.

Trabajando en el laboratorio de ciencias, es necesario conocer algo de la ciencia, especialmente si quiere/necesita trabajar en el código haciendo los cálculos científicos.

Trabajando en una instalación del gobierno (estadounidense), hay un montón de papeleo y la necesidad de conocer un montón de regulación gubernamental (por ejemplo, Freedom of Information Act)

Afortunadamente, he hecho recientemente una transferencia interna, donde I' Estoy haciendo más trabajo de desarrollo y menos de estas otras cosas.

0

Personalmente, me parece que saber más siempre es bueno, allana el camino al siguiente nivel. Las cosas más difíciles en la vida se encuentran en el punto de integración. Literalmente. La gente se enfoca mucho en la especialización, pero no olvides que necesitas personas que puedan montar a horcajadas en ambos reinos.

Cuestiones relacionadas