Un amigo me dijo que la informática requiere creatividad. Si no eres creativo, solo codificarás todos los días. No hay posibilidad de promoción. ¿Tiene razón?

Respuesta corta: es un continuo y depende de la persona y la situación. También creo que está confundiendo / mezclando algunos problemas que deben separarse para tener una oportunidad razonable de hacer un progreso serio en una carrera de programación. Creo que está dando vueltas a la cuestión de: ¿Qué necesito en mi “kit” para ser exitoso y cumplido en mi trabajo como programador? La creatividad, ciertamente ayuda. Entonces, ser inteligente, comienza un entrenamiento disciplinado, lógico, de estilo de ingeniería de cuerdas, buenas habilidades de comunicación, tener un coeficiente intelectual extremadamente alto, excelente aptitud matemática, excelentes habilidades interpersonales, excelentes conexiones familiares, títulos de CMU, UCB, et al . Ah, sí, trabajar para grandes empresas con buenas oportunidades también ayuda. Pero el truco para el éxito y la realización va a ser personal y usted debe darse cuenta de lo que le importa y de lo que le importará a las personas que “calificarán” .

La cruda verdad es que serás medido y calificado de alguna manera. Puedes elegir si te importa o no. Si le importa, entonces deberá hacer lo que sea necesario para “lograr la calificación”. La pregunta que debe responder es: ¿eso le dará satisfacción?

Respuesta más larga: muchas personas le han dado excelentes consejos en sus respuestas. Es difícil discutir con la lógica y el análisis que Al Klein ha presentado. Sus pruebas son excelentes para ayudarlo a comprender si debe intentar ser algún tipo de programador. Realmente no creo que encuentres ningún tipo de satisfacción al intentar ser un programador a menos que puedas realizar y finalmente disfrutar de las tareas que él describe.

Dicho esto, Sue Canaday hace excelentes observaciones que son ciertas independientemente del tipo de trabajo que realice. Es una pena que parte de un título de secundaria no incluya un curso obligatorio en “habilidades para la vida” y en el curso, ella enumera algunos requisitos excelentes para el éxito y, con suerte, la satisfacción / satisfacción en su trabajo. Como ella señala, incluso si tiene todas las habilidades que Wirth enseña en sus libros sugeridos por Klein, y puede obtener un A + de Harvard CS50 sin tener que estudiar; Si no comprende el negocio de que la empresa en la que trabaja está separada y comprende al menos los conceptos básicos de la dinámica de las personas, es muy probable que tenga un momento infeliz.

Entonces, déjenme despachar la siguiente e importante pregunta. Promoción: es decir, éxito en el trabajo. ¿Qué es el éxito? La conclusión es que va a ser “calificado” contra sus compañeros. No puedes huir de eso. Hay diferentes formas de hacerlo en diferentes empresas, y voy a hacer lo correcto / incorrecto, etc. La firma establecerá los estándares. Tienes cierto nivel de elección. Puedes aceptarlos y jugar según sus reglas, o ignorarlos y no. El cumplimiento variará para diferentes personas dependiendo de cómo maneje cada problema. A veces, puede ser que se está “vendiendo” debido a las “esposas doradas”. Puede elegir nadar contra la corriente por principio, pero eso puede costarle en el frente de la promoción, independientemente de sus habilidades como programador. Depende de la empresa, la persona, sus jefes, etc. Mi propia experiencia aquí es mixta. En algunos casos, he mantenido mis principios y he sufrido por ello, pero no me arrepiento. En un caso, mirando hacia atrás, no valía la pena quemar el puente, era demasiado poco para elegir luchar. También me quedé en una empresa y viví un poco de dolor y al final me alegré. Fue mejor, gané a la larga y quedé satisfecho. En otro, eventualmente me fui siempre sintiendo que podría haber sido mejor si la alta gerencia solo hubiera estado dispuesta a escuchar.

Lo que lleva a volver a su pregunta específica. Creatividad. Voy a usar una palabra relacionada, abstracción , porque creo que será más fácil entender mi respuesta. La informática y el software en particular, es abstracto. No puedes tocarlo. Puedo mostrarle evidencia de que ha estado allí y de haber realizado un trabajo en usted o en mi nombre. El silicio debajo de las cubiertas, sin el software para dirigirlo, es muy caro, rocas muy calientes. Pero esas maravillosas cosas abstractas que ponemos encima hacen de esas rocas algo notable. Como señaló Sheri Harper, hay diferentes trabajos en el campo de la programación. No todos son iguales o están al mismo nivel; pero los necesitamos a todos para obtener el resultado notable que acabo de referir. Por lo tanto, hay espacio para diferentes tipos de personas que ayudan a “desarrollar” ese software.

Un problema que tenemos con la educación CS es que lo enseñamos como una hoja de papel en blanco. Esto es realmente algo muy malo; como rara vez se desarrolla SW desde cero / pantalla en blanco / papel. La mayoría está construida a partir de otro trabajo que vino antes. Y es cierto que lo “nuevo” generalmente significa tener que moldearse desde la nada, desde lo abstracto, para ser creativo, que es lo que sospecho de donde su amigo obtiene su directiva / pensamiento. Ciertamente, ayuda. Pero la realidad es que las personas más “creativas” han tenido una “musa” y obtienen sus ideas de otro lugar. El “proceso creativo” es la realización del “ah ja momento” de que yo también puedo hacerlo. Piensa en Da Vinci. Estudió, y estudió animales, humanos, plantas, etc. que quería saber. Usó esas ideas que obtuvo en su invención creativa.

Para mí, las habilidades que valoro en un programador son sus habilidades de observación y análisis, como lo digo simplemente, lo considero “buen gusto”. Alguien que es puramente “creativo” y constantemente “inventa el suyo” es de poca importancia. utilízame Quiero a alguien que pueda ver, ese es el mismo problema, solo que un poco diferente. Él es cómo reducirlo a una solución conocida …

Entonces, mi respuesta es que la creatividad es muchas cosas, y la lista de Sheri te dirá que necesitas diferentes tipos de personas creativas para diferentes trabajos. Como dije, es un continuo y usted necesita hacer coincidir sus deseos y metas con las habilidades del trabajo o trabajos que dirige, pero antes de hacerlo, seguiría los consejos de Al y me aseguraría de cumplir con los criterios mínimos de éxito para lo que el trabajo requiere. . Entonces trataría de aprender si este es el negocio, el lugar, el tipo de trabajo que permite que mis talentos se usen / brillen: ¿estoy feliz? Pero no importa qué, sugiero, tome nota, observe, aprenda lo que hay allí. Sea un participante activo, eso permitirá que cualquier tipo de creatividad que tenga tenga vida.

La programación es creativa en el sentido de que concibes un enfoque, escoges un algoritmo y construyes una serie de piezas pequeñas que se entrelazan sin problemas para crear una interfaz compleja. Pensar en las cosas de manera extraña es útil, pero algo que la gente puede aprender. No sabes si tienes lo que se necesita hasta que lo intentes. De lo contrario, hay muchos otros puestos de CS / IT que aún necesitan personas para hacerlos.

¿Alguna vez has oído hablar de la administración de sistemas / redes? De acuerdo, haces algunas secuencias de comandos de shell, todavía tienes problemas que resolver, así que supongo que un tipo de creatividad es algo bueno. También hay administradores de bases de datos (DBA) que nuevamente resuelven problemas con el software y el hardware que lo ejecutan, pero no lo llamaría creativo en el sentido de un sentido de temperamento artístico innovador y alucinante. Las personas en estos puestos ganan mucho dinero.

Otra ruta son los especialistas en seguridad, que tendrán más demanda que la cantidad de personas en la escuela y en el mercado en este momento. Esta es una posición lucrativa y, a menudo, requiere más tenacidad y una terquedad que recorre todos los caminos posibles que un enfoque creativo.

Si está preocupado, tome un curso en línea o trabaje en un libro de programación y vea cómo funciona. No me preocuparía por no tener características hasta que realmente lo pruebes.

En cierto modo, tu amigo tiene un buen punto. Definitivamente hay un arte en la programación. Muchos de los programadores que conozco personalmente también son músicos u otros tipos de artistas. Hay algo en crear algo de la nada que requiere bastante creatividad. Dado que la creatividad no es algo que se pueda medir de manera tangible, es difícil decir si eres o no lo suficientemente creativo como para trabajar como programador. El hecho de que no sea creativo en otros campos no significa que no tendría lo necesario para convertirse en programador.

Dicho esto, no es un requisito y no necesariamente evitará que tengas una buena carrera en programación. Con el aumento de los trabajos de programación en los últimos años, hay todo tipo de trabajos disponibles para aquellos que quieran trabajar en el campo. Entonces, ¿qué debería hacer?

En primer lugar, trataría de mojarte los pies. Tome un curso en línea o consulte uno de los libros recomendados por otros respondedores aquí. Pase unas semanas tratando de comprender las ideas básicas detrás de la informática y vea cómo se siente al respecto. Si no sientes que es para ti, entonces no hay gran pérdida. Sin embargo, si encuentra que le está mojando el apetito, tal vez sea hora de seguir adelante.

Una vez que haya decidido que desea seguir con ello, comienza el verdadero trabajo. La programación no es algo que aprenderá durante la noche o durante algunas semanas. Puede llevar años convertirse en un programador o ingeniero de software competente. Esta es la razón por la cual los salarios de la ingeniería de software actualmente tienen una tendencia de $ 154k / año .

Salario de Ingeniería de Software en San Francisco, CA – $ 154k / año

Fíjese metas pequeñas y trabaje en las partes difíciles. ¡Lo conseguiras! ¡Buena suerte!

Extraje la información salarial anterior de YouWorth , una aplicación móvil gratuita para iOS y Android que rastrea los datos salariales de ingeniería de software. No solo soy un campeón del producto, sino que lo uso yo mismo. La aplicación permite a cualquier persona importar habilidades de LinkedIn y rastrear su valor en el mercado laboral a lo largo del tiempo. También me notifican si hay un cambio en las habilidades que se están viendo.

Los programadores siguen una trayectoria profesional que va más o menos así:

  1. Programador de mantenimiento responsable de documentar el código, realizar pequeñas correcciones de depuración y recompilar las actualizaciones de mantenimiento programadas
  2. Pequeño diseñador de programas donde trabaja para un cliente y entrega el código solicitado, el documento y el lanzamiento
  3. Analista de sistemas: esta es una promoción desde el estado de trabajo técnico a profesional y usted es responsable de su tiempo, su plan de trabajo y la capacidad de respuesta a los clientes. Puede implicar una variedad de trabajos, incluido el diseño del equipo, el diseño de la interfaz de usuario, las instalaciones, la capacitación, el diseño de la base de datos, el soporte de sistemas como controladores o el mantenimiento del sistema, los datos y los programas. Trabajando a través de las diversas etapas de los sistemas, diseñe un liderazgo para ascender a un puesto de liderazgo.
  4. Contratista: persona contratada que obtiene una declaración de trabajo, financiación, establece el trabajo, lo hace.

Más allá de esto, generalmente se necesita experiencia en gestión de proyectos para una actualización, a menos que siga una ruta de expertos técnicos, con habilidades avanzadas en diseño, base de datos, sistemas integrados, desarrollo basado en el conocimiento o IA, o hardware de sistemas.

La parte creativa de la programación es muy parecida a la narración de cuentos. Los programas administran una sola tarea u objeto, son llamados por un controlador, hablan a través de pantallas o dispositivos de entrada. Ser capaz de visualizar pantallas, convertir tareas en datos almacenados, subdividir y simplificar, y pensar nuevas formas de hacer algo de esto, lo convertirá en un mejor diseñador y un mejor gerente de proyectos. Sin embargo, los nanagers del proyecto deben dividir el trabajo entre los miembros del equipo para poder juzgar la capacidad y la gestión de los demás.

Dijiste Informática. Piense también en desarrollo de software, ingeniería de software, análisis y DevOps.

Sí, por supuesto, ¡requiere creatividad! Para diseño, para codificación, para pruebas. Eres creativo, ¿ tienes alguna duda? ¡Demuestra que estás equivocado!

Promoción: sí, existe el riesgo de que pueda salir de su puesto de programación. Eso es más peligroso si dices en la misma compañía por más de unos pocos años. Permanezca por 10 o 20 años, y seguramente será promovido sin importar en qué nivel comenzó. Entonces será difícil mantener unas pocas horas por día reservadas para la programación, pero generalmente es posible.

Si bien no creo que sea necesario ser especialmente creativo, puede ser muy útil. Ser más creativo puede brindarle más oportunidades de avance porque la creatividad se presta a pensar de manera innovadora y a encontrar diferentes formas de resolver problemas. Cuando los de arriba aprenden que es un buen solucionador de problemas, está más arriba en su lista cuando llega el momento de las promociones. Pero esta no es la única métrica.

Así que no tengas miedo de probar la programación. Te sorprenderá lo creativo que realmente puedes ser.

Creo que las otras dos respuestas son útiles, pero están dejando de lado un rasgo importante para las personas que buscan liderar en un entorno técnico; La capacidad de comunicarse de manera efectiva: motivar y liderar. Seamos honestos, hay algunas mentes brillantes en los programas STEM que no están dotados de habilidades de comunicación.

Cuando estaba en ventas de tecnología, no era una persona técnica y confiaba mucho en llevarme a las presentaciones de ventas a un ingeniero que no solo podía explicar en detalle las preguntas del cliente potencial / cliente, sino que también ayudaba en el proceso de venta. Algunos ingenieros eran tan buenos en eso que a veces me preguntaba cuál era mi valor. Un ingeniero que puede encontrar la solución y venderla al cliente puede llegar lejos.

Tenga en cuenta que el “cliente” puede ser la administración de su propia empresa.

Primero lea Algoritmos y Estructuras de Datos. Si no puede pasar la página 13 sin problemas, solo querer “ser” un programador no es suficiente, no es capaz de ser un programador.

Si puedes superar eso (no descremar, estudiar, debería tomar alrededor de una semana, tal vez más), termina de estudiar el libro. Luego pase a CS50: Introducción a la informática. Estudia eso hasta el final.

(No, la programación no es algo que simplemente haces, es algo que aprendes, y puede tomar un año más aprender solo lo básico. Si crees que lo aprenderás durante un largo fin de semana, solo estás engañando a una persona – usted mismo.)

Sí, estoy de acuerdo en que la creatividad es una parte importante de ser programador.

No estoy seguro de que sea tan blanco y negro como dice tu amigo. Me imagino a alguien que es diligente, confiable, rara vez comete un error, produce un código hermoso, bien estructurado, legible y una documentación clara y concisa … pero nunca se le ocurre algo inteligente. Tal persona probablemente sería vista como un miembro valioso del equipo. Pero la promoción definitivamente sería más lenta que para alguien a quien se le ocurran nuevas ideas inteligentes todo el tiempo.

Nunca he conocido a nadie * que * no sea creativo … pero probablemente sea porque tendrías que ser increíblemente diligente y confiable para sobrevivir sin creatividad.

En verdad, nadie es totalmente no creativo, y nadie es completamente confiable o sólidamente diligente … por lo que es más un continuo.

Tu amigo está equivocado. CS requiere un enfoque sólido y pragmático.

More Interesting

Durante una pasantía, si no puedo completar una de las tareas de manera satisfactoria, ¿qué debo hacer para cubrirla y asegurarme de que toda la pasantía no sufra?

¿Por qué debería elegir la fotografía?

¿Cuáles son los otros ámbitos en ingeniería mecánica que no sean en la industria del automóvil?

¿Cómo se evalúa la capacidad cognitiva general durante una entrevista en Google para un hardware o una función de ingeniería mecánica en Google?

¿Cuáles son las mejores formas de conseguir trabajo como desarrollador de Android?

¿Qué software debería preferir para un buen trabajo en diseño mecánico?

¿Qué hace que algunos candidatos obtengan becas mientras que otros no?

Estoy tan frustrado y avergonzado por estar sin trabajo durante más de un año, ¿por qué no puedo conseguir un trabajo?

No puedo encontrar trabajos basados ​​en ITIL en Canadá a través de la bolsa de trabajo CIC. ¿Es obligatoria una visa de relaciones públicas antes de solicitar un trabajo en Canadá?

Quiero hacer una maestría, pero mi inglés no es tan bueno y no sé cómo estudiarlo. ¿Cuáles son algunos libros o técnicas que me ayudarán a prepararme para el GRE?

¿Por qué los ingenieros indios (70%) no tienen idea de lo que hicieron en 4 años de un programa de grado?

Cómo convertirse en un informático de un millón de dólares

Si el pasado no es un predictor del futuro, ¿cómo puedo abordar mi temor de que no pueda volver a tener éxito nunca más, después de mi último éxito?

Me mudo a Polonia por trabajo, ¿qué debo llevar conmigo?

Problema de carrera de ratas, soy estudiante de ingeniería final. No me gusta la ingeniería y voy a cursos de viajes y turismo. ¿Destruirá esto mi futuro?