¿Cómo se convierte un ingeniero de software en una persona más completa al intentar avanzar en su carrera?

Hola.

Esta pregunta está muy cerca de mi corazón. Experimenté lo mismo desde que me gradué de la escuela (hace aproximadamente un año). Descubrí que el mundo de la programación es demasiado estrecho.

La mayoría de mis colegas y amigos tienen la misma mentalidad lineal / analítica. Sus pasatiempos típicos incluyen ver películas, hackatones, noches de Starcraft / League of Legends, carreras de fifa en xbox, carreras de netflix, Breaking Bad, juegos de mesa, potlucks y lo peor de todo, encuentros sobre comida. ¿Por qué necesitamos tomar un brunch / almuerzo / cena / café / bebida cada vez que nos reunimos?

Si bien me gusta estar cerca de personas tecnológicas, también tengo muchos otros intereses. Entonces, comencé a tomar medidas para diversificar mi vida.

Algunas cosas que hice en el último año incluyen:

  • Aprendiendo a tocar la guitarra (considerando mucho los pequeños papeles de los fines de semana)
  • Baile de la salsa
  • Largas caminatas, acampar al aire libre
  • El comercio de acciones
  • Conciertos y espectáculos de comedia.
  • Diferentes ejercicios (fiestas en bicicleta, escalada, etc.)
  • Raspberry Pi cosas
  • Participando en carreras de barro
  • Viaje, viaje, viaje. No he pasado un solo fin de semana largo en el último año en el área de la bahía. No quiero estar atrapado con personas como yo todo el tiempo
  • Exploración de arte (SF tiene una rica escena artística … la mayoría de los técnicos no se dan cuenta)
  • Explorando la vida nocturna. La vida nocturna está severamente subestimada por la comunidad tecnológica y comercial. Es una excelente manera de relajarse y conocer gente con diferentes antecedentes. ¿Sabía que jwz del navegador Netscape (que eventualmente se convirtió en Firefox) posee DNA Lounge en SF? Ok, él es un caso atípico. Pero, te encuentras con gente de tecnología interesante en todas partes
  • Otras cosas divertidas que realmente disfruto los fines de semana (solo para solteros)

En resumen, estoy trabajando hacia la superación personal y la inteligencia de la calle. No me importa si no termino siendo un buen bailarín de salsa. Solo quiero explorar el arte de bailar con una mentalidad abierta. Esta es la actitud que quiero mantener.

Sin embargo, tenga en cuenta que todavía trabajo de 8 a 10 horas al día. Amo mucho las computadoras. Leí muchos documentos técnicos como parte de mi trabajo y también por interés personal. Todavía tomo muchas responsabilidades laborales y cualquier cosa en el trabajo que necesite mi atención inmediata es lo primero. Entiendo el futuro de mi industria y me encanta el desafío que representa.

Además, sigo haciendo cosas nerd. Todavía juego videojuegos. También compré GTA 5 la primera noche. He estado leyendo TAOCP en mi tiempo libre y aprendiendo un nuevo idioma.

Pero me las arreglo para realizar diversas actividades teniendo un estilo de vida de muy bajo mantenimiento. Defino bajo mantenimiento como la capacidad de renunciar a mi vida actual sin pensar demasiado. Puedo detener mi vida hoy e ir a una isla mañana, lejos de mi estilo de vida actual. Y todavía no estaré en problemas. Solo será una aventura. No, no soy rico de ninguna manera.

Los amigos son a menudo el cuello de botella:
La mayoría de mis amigos desaprueban / no están preparados para todas estas actividades. Cuando comencé mi camino hacia la superación personal el año pasado, era imposible mover los traseros de mis amigos fuera de la casa.

Entonces, decidí hacer todas estas cosas en solitario. Al principio fue intimidante, pero ahora me siento muy seguro de hacerlo. Ahora puedo encadenar conversaciones con personas de cualquier origen. Puedo ir a reuniones aleatorias y no ser socialmente incómodo allí.

Por ejemplo, en mi última excursión nocturna en el centro de SF, tuve el placer de hablar con una chica muy interesante de un país de Europa del Este. Nos divertimos mucho hablando de todo, desde yogurt congelado hasta la canción Dani California de RHCP.

Anteriormente, odiaba hablar con la gente. Nunca parecía tener cosas interesantes de qué hablar (aparte de las computadoras). Ahora, tengo una gran cantidad de experiencias de la vida para hablar y también poseo la capacidad de comprender el contexto de las historias de otros, también conocida como empatía.

No soy un experto en esto. Dado mi fondo nerd, todavía titubeo mientras hablo con los demás. Mi mente cambia automáticamente a algún problema reciente que resolví o hacia dónde se dirige mi carrera. Resolver un error me da una patada. Mi libro favorito de 2012 fue “La señal y el ruido” de Nate Silver. Durante el almuerzo, hablo sobre los problemas que tenemos en nuestra base de código.

De hecho, mi vida cotidiana es aburrida ya que no tengo amigos socialmente activos. Mi vida social es bastante mundana. Además de los fines de semana, me quedo en casa por falta de amigos activos. Pero estoy tratando de mejorar y aprovechar al máximo lo que tengo. Todo lo que se necesita es agallas. Agallas para salir de tu zona de confort. Intenta ser alguien que no creías que pudieras ser. Estoy trabajando para lograrlo.

Por supuesto, mis amigos todavía no entienden lo que estoy haciendo. Entonces, a menudo se sorprenden con mis actividades. Muchas personas en Quora no recibirán esta respuesta y probablemente piensen que yo también soy un joven ingenuo. Pero no me importa Estoy seguro de que puedo usar varios sombreros y estar satisfecho con mi vida.

Solo tengo 25 años. No sé en qué grupo de edad estás. Pero si estás cerca de este grupo de edad (o estás de acuerdo con ser un amigo de 25 años haciendo cosas al azar) y vives en el área de la bahía de SF, no dudes en llamarme. .

Si desea ser un desarrollador de software completo y avanzar en su carrera, no intente aprender todo.

Existe la mentalidad de que un ingeniero de software inteligente conoce Java, Python, Ruby, PHP y Nodejs.

Conocer todas estas habilidades te hará un buen programador o desarrollador, pero realmente no avanzarás en tu carrera.

La ingeniería de software no se trata solo de programación.

Aquí hay tres consejos que lo convertirán en un ingeniero completo y avanzarán en su carrera como ingeniero de software.

1. Entrar en el liderazgo

¿Te das cuenta de que tu jefe parece tener más tiempo para sí mismo?

¿O incluso el gerente de proyecto o desarrollador principal?

Es posible que no tengan mucho tiempo para ellos en todas las circunstancias, pero tienen la oportunidad de lidiar con una variedad de cosas:

  • hablar con clientes
  • organizar reuniones
  • asignar tareas y
  • código a veces.

Así es como se convertirá en un ingeniero integral: asumiendo el liderazgo y siendo capaz de asumir una variedad de tareas que requieren diferentes habilidades.

Aprender cada tecnología y marco sexy en la ciudad lo limitará a la codificación y, por lo tanto, limitará su crecimiento.

2. Sé un mejor comunicador

Su fuerte deseo de aprender todas esas cosas tecnológicas además de lo que ya sabe podría estar impulsado por el miedo.

Temor de que te dejen o te ignoren.

Por lo tanto, desea compensarlo siendo un genio que dominó Go y COBOL por completo mientras empujaba confirmaciones semanales a Django.

Espere.

Si puede mejorar sus habilidades de comunicación en su lugar de trabajo, no sentirá toda la presión que tiene para aprender todas estas habilidades antes de que realmente necesite usarlas.

Te sentirás más involucrado con las cosas que te rodean cuando te mezcles con otros en tu lugar de trabajo y en el exterior.

Es de estas personas que incluso sabrás lo que realmente deberías dedicar a aprender.

Su idea de qué es una habilidad candente realmente podría ser sesgada.

Ser un gran comunicador le permitirá integrarse mejor con la sociedad, avanzar en su carrera y ser un ingeniero integral.

3. No solo aprendas cosas nuevas

Sí, no solo aprendas cosas nuevas.

Esto probablemente va en contra de lo que ya sabe: un buen ingeniero siempre debe estar aprendiendo una nueva habilidad.

No te detengas.

Un buen ingeniero también se enorgullece de lo que ya ha aprendido. O no sabrás cuándo parar.

Ya ha mencionado que su actividad incesante está perjudicando el tiempo que tiene para usted y su familia. Estas también son una inversión.

Un buen ingeniero bien formado debe tener buena salud. Tómese el tiempo para hacer ejercicio.

Un ingeniero completo debería poder llevarse bien con los demás, eso es lo que debe dedicar su tiempo a aprender.

Podrías perderte en esta trampa: echa un vistazo a mi lista completa de 7 tontos desarrolladores que cometen errores que arruinarán tu carrera.

¡Salud!

Piense en una idea genial que le gustaría ejecutar como un proyecto paralelo. Entonces ejecútalo. ¿Has oído hablar de impresoras 3D? Construye uno. ¿Has oído hablar de la realidad virtual? Construye un auricular. ¿Te gusta Google Glass? Construye tu propio. ¿Viste personas volando helicópteros RC? Construye uno autónomo. ¿Has oído hablar del comercio automatizado? Abra una cuenta de corretaje, conecte una fuente de datos, haga algunas regresiones y opere. ¿Has visto el coche autónomo de Google? Vaya a un estacionamiento, conecte dos servos a su computadora portátil y enseñe a su automóvil a conducir solo con Python y una cámara web (sin embargo, mantenga su mano en el freno de mano; he tenido algunos eventos de carrera que hicieron que mi corazón se saltara un latido) :).

Aprenderá sobre hardware, software, matemáticas, gráficos, física y aprenderá a construir productos al mismo tiempo.

No sé mucho sobre programación, pero creo que puedo responder esto sin ese conocimiento.

No puedo encontrar la entrevista en este momento, pero un exitoso profesor de Yale habló sobre la clave de su éxito. Básicamente dijo que su vida gira en torno a cuatro cosas; trabajo, familia, iglesia y golf. Al proteger su tiempo con tanta ferocidad, ha podido hacer esas cosas extremadamente bien.

No estoy sugiriendo que hagas esas cuatro cosas o que solo hagas cuatro cosas. Le sugiero que elija una cosa particular y específica que quiera mejorar y se comprometa a pasar 3 horas a la semana en esa cosa. Este pequeño período de tiempo ampliará significativamente sus áreas de especialización y le permitirá desarrollar

Además de eso, pasa 3 horas a la semana en un interés personal por separado. 3 horas en un proyecto paralelo y 3 horas en un pasatiempo lo convertirán en una persona bien equilibrada que amplía sus oportunidades de trabajo.

(publicado en http://www.quora.com/What-specific-skills-should-I-focus-on-to-become-a-great-software-engine )

Esta es una gran pregunta, pero déjame darte la mejor respuesta que no la responde (de inmediato): primero intenta responder la pregunta tú mismo. La razón es que una de las habilidades clave para un gran ingeniero de software es analizar los problemas y buscar formas de resolverlos.

Pero déjame darte una lista de habilidades y competencias para comenzar:

  • base: lenguajes de programación, algoritmos, tecnologías y herramientas.
  • productividad: planificación, enfoque, investigación y SECO (incluido no NIH)
  • creatividad: principalmente 1) no te detengas en lo primero que piensas, y 2) compara, contrasta y combina las ideas tuyas y de los demás
  • relevancia: orientación al cliente, diseño, ágil y MVP
  • trabajo en equipo: humildad, comunicación efectiva, sentido del humor y una mente abierta a diferentes habilidades y personalidades
  • colaborador: entienda a un alto nivel los roles complementarios como control de calidad, marketing, gestión de productos
  • liderazgo: honestidad, integridad, impulso y visión

Finalmente, hay excelentes respuestas en sitios como Stack Overflow y Quora, pero un gran ingeniero de software resolverá problemas que no se resuelven allí … y luego escribirá sobre eso en SO y Quora.

Esta ha sido una preocupación constante para mí … Si bien contribuir al software puede traer una sensación de logro, el tiempo y la dedicación continua que se espera que sobreviva a una carrera en software tienden a traer también una sensación de alienación.

Para contrarrestar esto, hace unos años, decidí tomar un trabajo más bajo, más diversificado y flexible. Utilicé parte de mi tiempo libre recién ganado para dedicarme a varios pasatiempos, clases de arte y otras actividades. Puede que no sea tan consciente técnicamente como solía ser, pero siento que he crecido mucho. ¿Ha subido o bajado mi valor de mercado? Bueno, estoy a punto de descubrirlo …

En cualquier caso, me doy cuenta de que mi enfoque ha cambiado. No podría volver a ser principalmente un programador, ya que considero que este papel es bastante limitante. Ahora que el software está llegando a varias actividades, creo que el plan de estudios de ingeniería de software ya no es suficiente para implementar el software: no aborda los problemas sociales y humanos que pretende resolver. De la misma manera que vemos a más y más diseñadores / programadores, arquitectos empresariales con especialidad técnica y especialidades en artes liberales que actúan como productores de software, veo venir una variedad más interesante de perspectivas para los polímos de lo que puedo imaginar para los ultraespecialistas.

Con ilusiones o no, hice lo que me pareció necesario, y solo puedo construir sobre eso …

Soy como tú. Hago el código del día. Después de volver a casa, recojo a mi bebé, lo limpio, espero a que mamá regrese para darle de comer, etc. Después de la cena, me siento frente al televisor, llevo mi Macbook Air conmigo para continuar codificando otros 2-3 horas para hacer mis proyectos personales. Para hacer mi vida un poco interesante, he estado siguiendo algunos programas como Two and Half Men, Big Bang Theory, Personal of Interest. Leo a Quora dos veces al día. Visito AngelList regularmente. Leí 2-3 blogs tecnológicos como [desarrollador iOS: consejos], también leí el código de muestra de Apple cuando es posible. También juego tenis dos veces por semana. Una ronda de golf durante el fin de semana. Antes de irme a la cama, hago un entrenamiento físico simple, como levantar pesas, flexiones y pasear a mis perros. Hago mi mejor esfuerzo para asistir a algunas reuniones en la ciudad (descubrí que son menos interesantes como esperaba), pero conozco personas. También me ofrecí como tutor después de la escuela. No digo que mi vida sea más interesante ya que estamos en el mismo bote. Solo trato de hacer cosas diferentes.

Tuve un gran jefe en Sun que me recomendó tomar algunas clases de “habilidades blandas” e incluso recomendó algunas.

Me ayudaron mucho.

More Interesting

¿Cómo empiezo a trabajar independientemente como programador de computadoras?

¿Qué esperaría una empresa de un ingeniero de software junior c ++?

Llegué tarde a la programación, ¿cuánto tiempo necesito pasar para convertirme en desarrollador de software?

¿Qué consejo le darías a un ingeniero de software de 23 años que trabaja en una empresa de tecnología para que tenga un trabajo seguro a los 40 años? ¿A dónde van todos los ingenieros de software antiguos de empresas de renombre?

Cómo prepararse para una entrevista de gerente de ingeniería de software

¿Cómo comenzar con el desarrollo de software? Puedo leer y escribir varios idiomas, pero no sé nada más sobre el desarrollo de software. ¿Qué herramientas necesito para comenzar? ¿Cuáles son las cosas que debo saber?

¿Qué consejo le darás a un ingeniero de software con experiencia de 9 años que nunca tuvo la oportunidad de ir al extranjero para trabajar?

Teniendo en cuenta que es un ingeniero de software recién contratado en una de las grandes empresas, ¿cuál sería una estrategia exitosa para convertirse en un líder de equipo?

¿Qué hace que la barra de aterrizaje de un trabajo de ingeniero de software sea tan alta?

¿Por qué el currículum de un ingeniero de software sénior debe tener dos páginas en lugar de cuatro cuando ha cambiado de trabajo muchas veces en los últimos 20 años?

¿Puede un 'hacker' construir una gran carrera en la industria del software?

¿Qué hacen los gerentes / directores de ingeniería de software? ¿Cómo es un día en la vida para los que no escriben código o escudriñan a los equipos maestros?

¿No estoy trabajando lo suficiente o mi empleador está estableciendo plazos irrazonables?

¿Qué tipo de pasantías debe hacer un estudiante de ciencias de la computación interesado en la ingeniería de confiabilidad del sitio?

Como ingeniero de software, ¿qué haces realmente?