Me gradué recientemente y comencé a trabajar como ingeniero de software. No me encuentro muy habilidoso. ¿Cómo puedo mejorar mis habilidades y amar mi trabajo?

“Practica. Estamos hablando de práctica, hombre. Es solo práctica”. Allen Iverson.

¿Qué tiene que ver Allen Iverson con ser ingeniero de software? Mucho en realidad.

Necesitas practicar Eso es. Práctica altamente concentrada. Allen Iverson, ex jugador profesional de baloncesto, odiaba practicar. Fue genial sin mucha práctica. La mayoría de nosotros no somos tan dotados.

Graduarse como ingeniero no significa mucho. Lo siento. Obtuviste el título y ahora te preguntas dónde está la alfombra roja hacia la grandeza.

La competencia tiene un costo. Las horas insoportables de esfuerzo dedicado. Entonces la musa de la habilidad puede otorgarle sus poderes. Mejora 1% al día. Con práctica dedicada.

Compuestos de mejora. 1% cada día se convierte en una mejora del 365% en un año. (Lea James Altucher)

¿Amas tu trabajo? No recibes ese regalo el primer día. Tal vez algún día. Muchas veces no sabes que estás amando tu trabajo hasta después.

Formas de practicar:

  1. Solicite ser asignado a un proyecto interesante. ¿Qué pasa si no te dejan trabajar en el proyecto? No importa encontrar ningún proyecto interesante y hacerlo gratis. Estamos hablando de práctica aquí.
  2. Ir a CrunchBase acelera la innovación al reunir datos sobre las empresas y las personas detrás de ellas. Investigue nuevas empresas y envíeles un correo electrónico sobre el trabajo independiente en proyectos.
  3. Los resultados del proyecto no importan. Esto es practica. La práctica es hermosa.
  4. Tome café con 1-2 conexiones débiles cada semana. ¿Qué es una conexión semanal? Alguien con quien no eres súper cercano. Pregúnteles sobre sus negocios. Aprenda y ofrezca hacer proyectos paralelos. Recuerda que es práctica.
  5. Estar bien con las críticas. Deje que la gente critique su trabajo y utilícelo como comentarios para mejorar. Advertencia, esto herirá tus sentimientos.
  6. Cuando la gente te dice que tu trabajo es bastante bueno, eso significa que es realmente mediocre. Cuando dicen que está bien, eso realmente significa que es una mierda. Cuando se iluminan con curiosidad y hacen preguntas interminables, ahora estás en algo.
  7. Lea 10 libros sobre tecnología que le interesen. ¿Por qué 10 libros? Porque después de leer 10 libros si aún estás interesado en esa tecnología, estarás entre el 20% de las personas que la entienden. Si te aburres después de 2 libros, pasa a otra tecnología.
  8. Lea 100 libros sobre un tema que le interese. Si no puede llegar a 100, pase a otro tema. El amor se encuentra en el proceso no antes.
  9. Reemplace el fracaso con la práctica. En lugar de fallar en un proyecto, puede condicionarse a sí mismo para pensar que estaba practicando. Juega trucos con tu propia mente.

Encuentra el amor en el proceso de aprendizaje. La competencia se gana y se otorga con el tiempo. No puedes despertarte y ser hábil. Las habilidades toman tiempo. Pero la práctica es hermosa.

Lo mejor que puedes hacer es encontrar un trabajo con un gran mentor.

Tuve la suerte de tener 2–3 excelentes mentores que me contrataron en un equipo pequeño como ingeniero junior. Aprendí rápidamente que mi código apestaba (me dijeron esto en las revisiones de código). Se burlarían de todo, hasta el punto en que se volvió molesto. Me hicieron volver a escribir mucho código, y ciertamente me hicieron sentir como una mierda cuando causé problemas de producción. Llegué al punto en que temía las revisiones de código. Casi sentí que disfrutaban criticando mi código y haciéndome hacer un trabajo extra.

Pero luego de un par de años de lo que parecía el trabajo más estresante de mi vida, de repente comencé a amar mi trabajo más que nunca. Me ascendieron. Empecé a construir una buena reputación. Empecé a hacer revisiones de códigos y entrevistas a mí mismo. Fui responsable de elementos más críticos y me convertí en uno de los desarrolladores más confiables del equipo. Me estaba convirtiendo en uno de mis mentores (aunque un poco más amable).

No estaría en donde estoy hoy si no fuera por esa experiencia. Comenzó mi carrera y me hizo amar lo que hago. Al igual que con cualquier cosa, cuanto mejor consigas algo, más lo disfrutas.

Entonces, si bien todos los consejos aquí son buenos, personalmente creo que nada supera a un gran mentor que ha pasado por todo y realmente quiere que tengas éxito. Pero tenga en cuenta que esto no es fácil de encontrar. Las startups en etapas muy tempranas no podrán proporcionar un entorno de tipo mentoring ya que necesitan hacer las cosas con la menor cantidad de recursos posible. Muchas grandes empresas tienden a encasillarte en áreas y encontrarás que algunas personas están más interesadas en cuidarse a sí mismas en lugar de ayudarte. Y en algunos casos, los empleados deliberadamente no ayudan en los intentos de aumentar la seguridad laboral. Por supuesto, no todas las empresas son así, pero algo que debe tener en cuenta puede ser una sorpresa cuando la experimente por primera vez.

Entonces, mi consejo es encontrar un trabajo que tenga equipos relativamente pequeños que tengan ingenieros muy superiores de los que pueda aprender. Nunca trabajes en un lugar donde te sientas más listo que todos. En pocas palabras: cuanto más tonto te sientas mejor. Sé humilde y abierto a todas las críticas y consejos de tus mayores.

Miguel

CTO / Fundador

TraderMob

Que gran pregunta. Está claro que ya está a la vanguardia del juego porque conoce su conjunto de habilidades actual y su disposición para trabajar en el mundo real.

Primero con respecto al trabajo. Aprenda todo lo que pueda sobre la compañía, sus productos, la organización y conozca a las personas con las que trabaja. En particular, trata de encontrar un ingeniero de software sénior, conoces al veterano canoso y entras en su gracia.

En tu primera tarea, no te asustes. Tómese su tiempo y aproveche a todos los que lo rodean para comprender el problema, las posibles soluciones. Obtenga aportes de ingenieros superiores a su alrededor. Luego sumérjase. La clave es atacar el problema, pero no se apresure. Sigue así hasta que tengas una solución sólida. Pruébelo como loco y haga que otros lo prueben. No se apresure a revisarlo, pídale a alguien que lo revise.

Cuando alguien superior a usted le da retroalimentación sobre su código, lo primero es no ponerse a la defensiva. Tampoco te destruyas. Puede aprender mucho de las revisiones críticas de códigos.

Incorpore todos los comentarios de sus revisiones de código y luego vuelva a revisar.

Solo después de contar con el apoyo de sus superiores, su jefe lo verificará. Luego, siga la compilación, las regresiones y el lanzamiento. Vea su código en uso en vivo con los clientes y solicite comentarios.

Siguiente sobre desarrollo personal. Nunca dejes de aprender. Ir a reuniones, hacer desarrollo personal en casa. Desarrolle hábitos saludables de alimentación, ejercicio físico, comunidad y amigos.

Mi historia: Recién salido de la escuela con un MSEE fui a trabajar para Intel. Mi primera tarea fue solucionar problemas de rendimiento / memoria en el código de mi jefe. Entonces contacté al cliente, accedo a casos de prueba y luego comencé a leer y analizar el código. Después del primer análisis, obviamente no había nada malo, ningún error, ninguna pérdida de memoria, pero el problema era que el código asignaba una gran cantidad de memoria y más de lo necesario para resolver el problema. Así que decidí rediseñar todo el enfoque y elegí un enfoque de transmisión en el que pudiera usar dividir y conquistar y resolver pequeñas piezas del problema y mantener la memoria máxima mucho más baja que antes. Daba miedo refactorizar y construir una solución completamente nueva, pero tenía el instinto de que funcionaría. Efectivamente, una vez que conseguí que mi código funcionara, fue como un rayo engrasado y el cliente y mi jefe quedaron impresionados.

Como su pregunta es muy buena, supongo que es inteligente y lo más importante, consciente de sí mismo. La autoconciencia te llevará por un largo camino en la vida. ¡Síguelo!

Como muchos otros han dicho, hacer esta pregunta muestra que tienes ganas de crecer.

Creo que si piensas en términos de prácticas en lugar de habilidades, puedes sentirte mejor, pero eso es cuestionable. Las prácticas realmente tratan sobre cómo organizar el trabajo para facilitar la toma de decisiones.

Algunas lecturas recomendadas (ninguna trata directamente sobre ingeniería de software):

  • Buscador de fortalezas de Tom Rath: es útil aprender cómo resolver sus fortalezas en lugar de tratar de arreglar sus debilidades.
  • Cómo fracasar en todo y seguir siendo un gran éxito por Scott Adams: es útil desarrollar sistemas en lugar de objetivos.
  • El objetivo de Eliyahu Goldratt: una novela sobre la teoría de las restricciones. Es una aplicación de fabricación, pero puede ver su aplicación a los procesos dentro del dominio de ingeniería de software.
  • Outbound Air de Tom Foster: una novela sobre la naturaleza del trabajo, las organizaciones y las estructuras óptimas. Esto expresa la teoría de sistemas estratificados de forma consumible.
  • Influencia de Robert Cialdini: un libro sobre cómo no dejarse mamar.

En el espacio del software, siga los blogs de personas inteligentes. Me gusta infoq.com como punto de partida. Pase tan poco como treinta minutos al día leyendo, pero manténgase curioso y relativamente actualizado.

Hay un par de libros sobre software que son interesantes:

  • Siete idiomas en siete semanas de Bruce Tate: es una excelente manera de ver cómo los diferentes idiomas permiten diferentes prácticas de ingeniería y abstracciones técnicas.
  • Learn Python the Hard Way por Zed A. Shaw – THW es una excelente metodología de aprendizaje de la “vieja escuela” y se puede aplicar a cualquier idioma. Aquí hay tantas ideas prácticas de “aprendizaje” que potenciarán tu habilidad para aprender nuevos idiomas.

Encuentra la manera de sentarte a los pies de un gurú. Y por gurú, me refiero a un verdadero maestro de algún aspecto del software. Podría ser un lenguaje, podría ser una práctica como modelado o TDD. La única forma de reconocer cómo funciona un maestro es observar, la lectura nunca te llevará allí. No tienen que trabajar en su empresa, no necesitan ser su jefe, solo necesita observarlos trabajando.

Por último, aprenda a distinguir la diferencia entre las abstracciones técnicas y las abstracciones comerciales u otras “construcciones del mundo real” que se combinan para formar soluciones a los problemas que le pagan a usted y a su empleador.

Hay un viejo chiste:

Ahora la realidad no es tan mala. Si lo fuera, no perderíamos el tiempo y el dinero de todos haciendo graduados.

Sin embargo, hay una verdad simple escondida en esta broma:

El mundo real no funciona del modo en que te han entrenado.

  • La gente toma atajos, algunos de los cuales funcionan y otros que decididamente no funcionan.
  • Algunas personas intentarán hacer lo menos posible por sus ganancias
  • Parte de lo que aprendiste estará desactualizado cuando te gradúes

¿La solución? Aprender

Hay un mundo de personas por ahí que saben cosas y están encantadas de compartirlo contigo. Si tiene una pregunta y no puede encontrar la solución buscándola en Google, puede visitar un sitio como Quora y preguntar. No hay excusa para no aprender.

Gracias por la A2A

Una persona útil no siempre es la más brillante, sino una que sabe y puede articular sus habilidades. Un líder de proyecto puede ser hundido por una aparente “estrella brillante” que inventa un código inmanejable. Es mejor que un líder de proyecto sepa cómo puede usarlo. El código manejable no es el código que usa los métodos más sofisticados y modernos, sino el código que es apropiado para la tarea, usa métodos probados sólidos y se puede mantener fácilmente después de que se instala.

Dado un programador altamente calificado y uno que es cuidadoso y confiable, ¡elegiría ambos! Una compañía aeroespacial con la que consulté se propuso contratar una distribución de niveles de habilidad como lo demuestran los promedios de grado universitario que van de A a C.

Todo lo que esto quiere decir es que puedes ser un recurso inmediato tal como eres, siempre y cuando les hagas saber claramente en qué eres bueno.

En respuesta a su otra pregunta, la escuela no produce programadores excelentes o calificados. Proporciona un marco formal que le servirá. Para mejorar sus habilidades, tomaría cursos de matemática, estadística, contabilidad y en el dominio de sus usuarios finales. Como líder del proyecto, me sorprendió lo poco calificados que estaban los graduados en informática en programación y matemáticas. Continuaría leyendo sobre tecnología y seguiría programando en su tiempo libre sobre técnicas favoritas. Aprenda especialmente a programar en el lenguaje C (no C ++) para tener la sensación de los cálculos de la máquina. En matemáticas, encuentra temas interesantes. Por ejemplo, aprenda a pensar en varias bases, por ejemplo, multiplicación y división en base 2 y base 4, recordando nunca usar la palabra “cuatro”, “cinco”, etc. cuando trabaje en la base 4 (3 + 1 = 10). Si va a trabajar con Internet, escriba una rutina de cifrado RSA y aprenda a conectar sus máquinas en casa a través de TCP / IP, SSH, túneles y otros protocolos. Sumérgete en todo eso. Obtenga una máquina Linux o BSD Unix. Recuerde que las computadoras pueden hacer alrededor de 8 cosas. Los programadores inventaron y reinventaron todo lo demás. Esto significa que hay valor en alguien que mantiene las cosas simples. Soy un programador de aplicaciones, y nunca tomé un curso de ingeniería informática o de informática. Desde que estudié física, puedo modelar y controlar en tiempo real. Desde que dirigía mi propio negocio, escribí un programa de contabilidad automatizado. Hay una gran necesidad de personas que puedan unir la programación con otro dominio. Entonces, ¿en qué eres bueno además de la ingeniería informática?

No estoy seguro de si estas divagaciones son útiles.

Hola,

Me gradué como ingeniero de software hace 26 años. ¿Adivina qué? En aquel entonces, Internet (el que conocemos hoy) no nació, HTML era un niño, Java no nació, JavaScript no nació, Python no nació, Linux no nació … sin mencionar Android y similares … allí No había teléfonos celulares en ese momento. Solíamos usar el acceso directo a archivos estructurados y con orgullo lo llamamos “programación de base de datos” … En aquel entonces, yo era un experto en programación Unix en C.

Sin embargo, la programación fue divertida, muy divertida … ¡resolvemos problemas!

Hoy todavía programo mucho, con amor y diversión en muchos idiomas, en múltiples plataformas, en muchos dominios.

La mayor parte de lo que aprendió en la escuela está desactualizado el día en que se graduó, en pocos años o meses, mucho de lo que sabe será de poca ayuda, se inventarán muchas cosas nuevas. Como ingeniero, lo que obtienes en la escuela es una mentalidad, una forma de ver los problemas y encontrar soluciones.

Elija un dominio que le pueda interesar (Banca, Gestión, AI, Redes sociales, Big Data, Economía, Salud, IoT …), entiéndalo, domínelo. El secreto es que el dominio en el que está trabajando es importante para su éxito como ingeniero de software. Entonces se encontrará amando lo que está haciendo … sepa que el único límite en Ingeniería de Software es usted …

Como la literatura no se trata de sintaxis y gramática, la ingeniería de software no se trata de codificación. Se trata de comprender lo que hacen los demás y luego brindarles mejores soluciones.

Obtenga los conceptos detrás, obtenga una idea general de lo que hace. No tengas miedo a los fracasos. Como ingeniero de software, enfrentará algunos … cuando los enfrente, prepárese para avanzar … y busque la solución.

Lea mucho, lea el código de otros, pregunte a las personas a su alrededor, organice su tiempo, manténgase enfocado mientras trabaja. Evita las distracciones cuando estés trabajando. Mantente enfocado

Bienvenido a la ingeniería! Desde mi experiencia, has encontrado el paso más importante … ¡sentirte abrumadoramente inútil! Tenía mucho menos experiencia que usted cuando obtuve mi primer trabajo de software.

Si trabajas muy duro para mantenerte extremadamente actualizado sobre las tecnologías que estás usando (¡y practicando!), Realmente no importa cuánta experiencia tengas o cuán bueno seas.

¿Tus compañeros de equipo todavía usan el alcance en sus controladores angularJS? Cómo 2015 de ellos. Wow, no puedo creer que su jefe no sepa cómo configurar una instancia de EC2 o ejecutar una función lambda de AWS. Que ineficiente. ¿Qué quieres decir con que estás pagando por repositorios privados de git? Ninguno de estos tiene nada que ver con ser un buen programador. Tienen que ver con mantenerse actualizado con quora, responder preguntas sobre quora y stackoverflow, leer documentos, buscar repositorios de código en codepen / github / etc, leer artículos de Facebook sobre google y microsofts nueva tecnología, etc.

La mayoría de sus compañeros de trabajo experimentados están dejando el trabajo a las 5 para

1. Ve al bar

2. Estar con sus hijos.

No deberías hacer nada.

Deberías ir a casa para finalmente terminar esa aplicación personal en la que estás trabajando. Debería ir a casa para ponerse al día con los documentos del marco al que se está cambiando. Debería ir a casa a leer sobre el aprendizaje automático porque cree que realmente podría ayudar a su equipo si alguien conoce algunas habilidades básicas de análisis de datos. ¡Finalmente! ¡El fin de semana! ¡Ahora tiene tiempo para terminar el proyecto que contrató independientemente para obtener algo de dinero / experiencia extra! Deberías estar retocando tus matemáticas, encontrando constantemente nuevas formas de aplicarlas a compsci. Incluso si nunca lo aplicas, las matemáticas te hacen inteligente. Período. Pensar críticamente te hace inteligente. Período. Resolver problemas te hace inteligente. Período. Haga esas cosas todo el tiempo y será intimidantemente inteligente y útil antes de que sus compañeros se pongan al día, lo que tardará entre 5 y 10 años cuando finalmente se consideren “experimentados”. Además, si tiene mucha experiencia personal (no tiene que ser profesional) su título no significará una mierda a menos que sea de Harvard. Su gerente de contratación en Silicon Valley no conoce el plan de estudios de la pequeña escuela privada a la que asistió en el Medio Oeste. ¿Aprendiste git? Probablemente no. ¿Aprendiste a configurar y mantener un servidor y databAse? Probablemente no. ¿Aprendiste la sintaxis básica? Probablemente, pero quién sabe si es la mejor práctica. Lo que más les dice es que estás por encima de un cierto estándar de pasión y trabajo duro para tener éxito en este campo. Esto es muy simple de hacer sin un título. No te estoy diciendo esto para decir que no deberías haber ido a la universidad ni nada. Lo digo porque una pequeña experiencia personal es todo lo que necesitas para colocarte por encima de los otros cientos de miles de graduados de CS que buscan pasantías de nivel de entrada. Un proyecto personal puede llevarlo de “postularse a cada pasantía y, con suerte, ser aceptado en uno” para “encontrar un trabajo de ingeniería real que cumpla con mis criterios específicos basados ​​en el contenido del trabajo, remuneración, beneficios, ubicación, etc. Una pasantía no remunerada en una empresa de mierda como probador / perra de café NO es la única forma de poner el pie en la puerta.

Es posible que ni siquiera desee estar buscando un trabajo real en este momento. Mantén los ojos abiertos para otros chicos o chicas de CS innovadores con los que quieras trabajar para crear una aplicación / sitio web rentable o algo más. Eso podría darle la misma experiencia y la misma cantidad de efectivo, si no más. En mi opinión, estos trabajos pueden no brindarle tanta “experiencia de codificación básica”, pero son muy buenos para enseñarle a ser organizado, responsable, cuidadoso, sistemático y por encima de todo.

Comenzar como ingeniero de software puede dar miedo. Estoy seguro de que eres competente en varios lenguajes de programación, pero es posible que te encuentres con personas que crees que son “más hábiles” que tú y tal vez estén familiarizadas con idiomas que tú no.

Lo primero que debe recordar: ¡la mayoría de las personas a su alrededor han estado allí más tiempo que usted! Eso puede parecer obvio, pero sigue recordándote eso. Hace poco comencé un nuevo trabajo y trabajé estrechamente con alguien que había estado allí 15 años. Parecía saber TODO. Al principio me hizo sentir que no sabía nada, pero tenía que seguir recordándome a mí mismo que DEBERÍA saberlo todo: había estado allí mucho tiempo. No te dejes intimidar por estas personas. Háblales. Obtenga sus consejos mientras trabaja en los problemas. La mayoría de las personas son útiles y les gusta ser útiles (tal vez les gusta que todos piensen que tienen todas las respuestas).

En segundo lugar, aunque la gente te otorgue un poco de gracia por ser ‘el chico nuevo’, en algún momento desaparecerá. Necesitas ser una esponja. Absorbe todo el conocimiento que puedas a tu alrededor. Probablemente esté trabajando con ingenieros de nivel superior que tienen una gran experiencia. Aprende todo lo que puedas de ellos. Llévalos a almorzar. Hable con ellos en los descansos. Hacer preguntas. Una vez más, a las personas les encanta hablar de sí mismas y debes usar eso como una oportunidad para aprender.

Por último, pase tiempo fuera del horario laboral desarrollando sus habilidades. ¿Hay algún lenguaje de programación que quieras aprender que pueda ayudarte en tu carrera profesional? ¿Hay alguna que puedas aprender que pueda ayudarte en este momento? Nunca dejes de aprender. El desarrollo / ingeniería de software es un campo en constante cambio y será muy diferente en 5, 10, 20 años. Para mantenerse en la cima, debe cambiar con los tiempos.

Además, si está buscando nuevas habilidades para agregar a su conjunto de habilidades actual, debe consultar YouWorth. YouWorth es una aplicación móvil gratuita para iOS y Android que rastrea los datos salariales de los ingenieros 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 de mercado laboral a lo largo del tiempo. También me notifican si hay un cambio en las habilidades que se están viendo. Eche un vistazo a YouWorth y compruebe las habilidades que le pueden interesar. Puede ver cómo están de moda y podría ayudarlo en su carrera, ya que necesita moverse a otras posiciones. A modo de ejemplo, la Ingeniería de Software actualmente tiene una tendencia de $ 119k / año.

Por último, no te rindas. ¡Sigue trabajando duro y estoy seguro de que tendrás éxito en tu nueva carrera!

No ames tu trabajo. Al menos no el primero. Cometerá errores, será juzgado por esos errores durante mucho tiempo y, en algún momento, cuando sus habilidades mejoren adecuadamente, querrá cambiarlo para que pueda obtener la apreciación adecuada: eso tomará un año o tres, tal vez cinco , pero tarde o temprano sucederá.

En cuanto a qué puede hacer para mejorar, diría que haga preguntas sobre todo. Cuando alguien te dice que hay que hacer algo “de esta manera”, debes tratar de entender por qué. Sin mucha práctica, hay pocas posibilidades de que lo descubras por tu cuenta, así que pregunta pregunta pregunta.

Muchos de nosotros tenemos ciertos hábitos. Pregunte por ellos también, no los copie a ciegas.
Lo mismo con los estándares de codificación, si puede, pregunte por qué se introdujo esto o aquello.

Muy a menudo las personas no podrán responder sus preguntas. En este punto, te queda intentar averiguarlo por ti mismo. Intenta hacerlo, pero trátalo con un poco de sal.

Gran parte de nuestro trabajo se basa en el conocimiento acumulado (también llamado experiencia: qué funcionó o no bajo qué condición), aún más en comprender qué debe usar cuándo y por qué es bueno / malo. Cuanto más se desvíe de las universidades superiores, menos tendrá que aprender (y generalmente se quemará). Cuanto menos copie a ciegas, mayores serán las posibilidades de que no vuelva a cazarlo.

Hay bastantes “crea tu aplicación personal”, “lee documentaciones de marcos”, “estudia, estudia, estudia” … Ese tipo de consejos son útiles, pero:

Su aplicación personal no ayudará hasta que sea al menos moderado, o trabaje en ella durante un año o dos. Afirmo que por dos razones: Primero, sin aportes externos, no hay forma de determinar cuándo se está mejorando o fortaleciendo los malos hábitos. En segundo lugar, la mayor parte de nuestro trabajo más duro está relacionado con el mantenimiento de software antiguo y los errores que son obvios en 3 años en el camino del equipo de 5 hombres no aparecerán rápidamente en 2 horas por día, 5 días por semana, un año en el proyecto total.

Lea la documentación: es una ruleta, siempre que este marco sobreviva lo suficiente, en un año no se creará algo mejor, etc. Además, no podrá aprender a diseñar cosas. Aprenderá a copiar algo sin comprenderlo adecuadamente; eso lo morderá en la parte posterior en algún momento. Penosamente.
Entonces hay un problema de conocimiento teórico: algo puede verse maravillosamente en el papel, pero estar realmente roto en puntos específicos.

“estudio estudio estudio” es en realidad un buen consejo desde la perspectiva de ampliar su conocimiento o práctica. Hay un pequeño problema: también necesita comer, dormir y, en general, relajarse. La ingeniería de software es una tarea realmente exigente y si existe un consenso de que su eficiencia se reduce tanto que las horas excesivas constantes son inútiles para los empleadores, realmente no entiendo este místico “proyecto paralelo después del trabajo”. Por supuesto que hay personas que pueden hacer esto. Conozco a una de esas personas y no soy yo, ni mis universidades.

Una nota al lado de eso, el proceso de aprendizaje se puede dividir en 4 categorías:

1. Incompetencia inconsciente

2. Incompetencia de Selfaware (ahí es donde estás)

3. Competencia Selfaware

4. Competencia inconsciente

Sentirse calificado o no calificado con frecuencia se basa en su perspectiva: con quién se compara a sí mismo, etc. Si acaba de comenzar a trabajar y se compara con alguien con 5 o más años de experiencia comercial, entonces esto está perfectamente bien. No tienes esta experiencia, así que es obvio que eres menos hábil que él.
Lo mismo si te comparas con tu universidad de posgrado. Sí, él acaba de comenzar a trabajar. ¿Pero aprendió a programar en la escuela? ¿O ya hizo sus 10000 horas de práctica durante los frenos de verano, después de la escuela, etc.? 🙂

Mi consejo principal sería: haz lo que puedas y sigue. Cometerá errores, se quemará, pero mientras mejore, todo estará bien.

Siento que estoy en una buena posición para responder a esta pregunta, comencé a trabajar en software en corporaciones, pequeñas startups y me abrí camino a startups altamente financiadas y exitosas antes de unirme a compañías como Microsoft, Google, Amazon. No digo que esas sean las mejores compañías, pero me revela que he progresado y que pude moverme como quería.

En primer lugar, te aplaudo por entender tus limitaciones. Teniendo muchos compañeros de clase que comienzan como tú y yo, que carecen de las habilidades que necesitamos, me parece evidente ahora que los que sabían que querían avanzar eran los que crecían de manera constante. La mayoría de nosotros nos conocíamos desde comienzos humildes, como software de $ 10 / hora o roles de control de calidad y la mayoría de nosotros estamos empleados en Facebook, Google, Apple.

Los mejores consejos que he visto que funcionaron para mí y para los amigos antes mencionados:

  1. Establezca plazos estrictos y mensurables para mejorarse en términos de programación. Tu primer objetivo es dominar lo básico. Comprendí que necesitaba una buena base de algoritmos y estructuras de datos. En lugar de decir “Voy a aprender X”, estaba muy concentrado en “El 19 de junio de 2016, que dentro de dos semanas tendría una implementación de un árbol AVL escrito en C ++ como se describe en Introducción a los algoritmos” que uso fechas exactas y casi siempre tienen una referencia, introducción a los algoritmos es mi ir a.
  2. Equilibre la teoría con prácticamente, asegúrese de hacer algo con su conocimiento, ya sea una pasantía o un proyecto limitado en el tiempo . Lo mejor es realizar pasantías y obtener experiencia en la industria mientras estás en la escuela. Establecí plazos estrictos de 4 meses para completar un proyecto. Con el tiempo, aprendí que es beneficioso planificar de antemano para abarcar el proyecto con mayor precisión. El objetivo de los plazos estrictos para los proyectos es ir de principio a fin con algo, incluso si no está completamente pulido. Esto mejor me ayudó a entender qué partes de la teoría se usaban más (en el campo en el que quería entrar). Tal vez sea genial conocer algún algoritmo de aproximación para algunos problemas de completitud NP, pero si no lo voy a usar en el campo al que quiero ir, tal vez debería centrarme más en ello (aunque me encanta estudiar este tipo de problemas por diversión)
  3. Encuentra buenos mentores . Mis mejores mentores eran todos compañeros de trabajo que estaban dispuestos a enseñarme e hice el esfuerzo de comunicarme. No tienes que formalizar la relación, solo tienes que recurrir a una persona para ciertos temas que están dispuestos a compartir. Los mejores mentores tienen una gran cantidad de lecciones para compartir y están dispuestos a brindarle su paciencia.

Algunos pasos concretos

  1. Asegúrese de tener su base en algoritmos y estructuras de datos. Recomiendo encarecidamente Introducción a los algoritmos: Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, Clifford Stein: 9780262033848: Libros y yo leí varias secciones de este libro cada año durante los últimos tres años.
  2. Codifique un poco al día. Prefiero resolver problemas de código de algoritmos. No trabajo en la teoría de juegos, a la que apunta el enlace, que luego puedes encontrar en un montón de otras secciones, pero la codificación, especialmente los problemas con los que generalmente no te encuentras, me ayuda a pensar en diferentes enfoques.
  3. Hago esto mucho más raramente ahora que he encontrado mi gusto, pero cuando estaba comenzando buscaba diferentes herramientas, IDEs, flujos de trabajo hasta encontrar los que se pegaban. “No sabes lo que no sabes”, así que no estés tan seguro de que Eclipse sea lo mejor para Java para ti o que VIM sea el mejor editor del mundo. Sorprendentemente, cuando trabajo con Java backend, prefiero VIM sobre Intellij tradicional o Eclipse IDE, siempre que conozca la base de código. La mayoría de la gente dice que soy realmente rara y que estoy sorprendida de verme así, pero bueno, funciona para mí.

La regla de oro para mí es hacer cualquiera de las anteriores durante 10 minutos al día, por lo general me encuentro dejando llevar, lo cual está bien. No impongo que deba hacerlo todos los días, pero sucede que realmente lo disfruto lo suficiente para que no se cumpla. Te sugiero que te esfuerces por hacerlo 5 días a la semana.

Está bien, cuanto mejor se programe, más comenzará a disfrutar de su trabajo. Necesita aprender sobre el desarrollo práctico de software. Fuera del trabajo, recomendaría tomar algunos cursos sobre Eliminar el miedo al código

Las conferencias y tareas en los cursos se centran en mejorar sus habilidades prácticas de diseño y OOP junto con la mejora de la lógica con los rompecabezas de codificación. Ahora los tutoriales están todos en Java, pero los conceptos enseñados son aplicables en todos los idiomas.

Ha pasado un año y medio desde que me gradué y, al igual que tú, nunca siento que soy muy hábil y así es como tengo la motivación para seguir aprendiendo. En mi primer proyecto, tuve la libertad de elegir una tecnología de mi elección. Elijo uno que realmente disfruté y amé (Laravel – https://laravel.com ) pero también adecuado para el problema que estaba tratando de resolver. Aprender todo fue divertido y eso fue lo que me mantuvo motivado durante todo el proyecto. Tenía un libro o diario en el que grababa diariamente lo que había aprendido. Mi enfoque estaba en mejorar diariamente. Aprende algo nuevo. Ahora mi diario está lleno de tantas técnicas increíbles que incluso puedo bloguear o responder preguntas sobre Stack Overflow.

Haz lo siguiente:

  1. Practica cada día. Cuanto más conocimiento tengas sobre un tema. Cuanto más agradable se vuelve. Enseñar a los demás. Enseñé en una universidad privada después de mi licenciatura antes de pasar a una empresa.
  2. Trabaja en un proyecto que disfrutes si es posible.
  3. No te compares con los demás.
  4. Pequeñas victorias conducen a grandes victorias.
  5. Humíllate y prepárate para aprender.
  6. Acepta las críticas con alegría. Fui criticado muchas veces, pero los abracé y al final todos quedaron contentos con el producto. Las críticas solo ayudaron a hacerme una mejor persona.
  7. Contribuir. Comience un blog. Aunque acabo de salir de la escuela durante un año y medio. Tengo un sitio web http://www.divostar.com , lo uso para aportar valor al mundo, para proporcionar conferencias gratuitas sobre programación en C. Te sientes genial cuando ayudas de esta manera y ganas confianza. Adquiero habilidades de escritura en blogs.
  8. Encuentra tu pasión.
  9. Unirse a grupos Conéctate con personas que pueden ayudarte. Encuentre colegas increíbles en su lugar de trabajo y establezca contactos con ellos. Tengo algunos colegas realmente asombrosos en mi lugar de trabajo que me dieron consejos y estímulos invaluables regularmente.
  10. Responde preguntas sobre Quora. No necesita saber tanto para responder preguntas aquí. Soy un recién graduado también, pero aquí estoy respondiendo tu pregunta. También puedes hacer lo mismo en otras preguntas.

Sigue aprendiendo y crece diariamente. Toma decisiones más inteligentes y haz las cosas que amas. Con más horas de práctica y sin rendirse nunca, ganaría experiencia y habilidades. Salud.

Para todos los estudiantes y profesionales que deseen seguir una carrera como Desarrollador de Android o Desarrollador front-end o Desarrollador NodeJS o Científico de datos, ya que es una de las carreras más lucrativas y de rápido crecimiento. Con la aparición de los teléfonos inteligentes, los fabricantes de aplicaciones basadas en Android fueron impulsados ​​a un nivel completamente nuevo. Todos los días se lanzan nuevas empresas nuevas con Android y la aplicación web como la tecnología principal y la fuerza impulsora.

edWisor.com es una de esas plataformas que proporciona una capacitación completa en vivo de Desarrollo de Android, Data Scientist, Desarrollo front-end y Desarrollo NodeJS . Estas sesiones de capacitación en vivo son proporcionadas por profesionales que actualmente trabajan en la industria en este puesto de trabajo . Este es un programa de 10-12 semanas con 3-4 horas de entrenamiento en vivo los fines de semana. La capacitación en vivo se proporciona con un enfoque práctico basado en una asignación semanal y un proyecto de la industria . Estas asignaciones y proyectos son evaluados por el profesional / mentor y se califican en base a eso por su habilidad como Desarrollador de Android o Desarrollador front-end o Desarrollador NodeJS .

edWisor.com después de completar el curso envía currículums junto con sus proyectos a empresas relevantes para su contratación.

La respuesta de Tahseen Ahmad a Veo que a los desarrolladores de 25 años se les ofrecen sueldos locos, como $ 150 – 200k, en compañías como Google, Facebook, Apple, etc. ¿Cómo puedo ser altamente calificado para calificar para tales ofertas, si no tengo educación formal pero soy desarrollador web?

Lo primero que aprecio es que eres consciente de tus fortalezas y debilidades y estás dispuesto a mejorar. Como trabaja como ingeniero de software, hay muchos materiales de estudio disponibles en la web. Puede encontrar el número de videos en YouTube, lugares de Khan achadamy, etc. de forma gratuita y puede suscribirse a cursos pagos en sitios como Usemy n Lyndo. Puede mejorar su conjunto de habilidades en su tecnología siguiendo y entendiendo el contenido disponible en la web. Además, puedes interactuar con tus compañeros de equipo para aprender de ellos.

Compruebe si hay tutoriales disponibles para la tecnología que está trabajando.

Nada es imposible. Seguir aprendiendo. Todo lo mejor.

Yo solía jugar al ajedrez. No era muy habilidoso. Iría a la tienda de ajedrez en la calle Thompson en Nueva York y jugaría. Finalmente, noté que podía elegir jugadores que eran más débiles que yo y ganar, o elegir jugadores que eran más fuertes que yo y perder. Aprendí que mi habilidad no es una función de mis habilidades, sino una función del papel que quería jugar (oponente de jugadores débiles o jugadores fuertes); es decir, donde quería encajar en la tienda de ajedrez.

A menos que tenga una habilidad muy estrecha, como “genio”, descubrir la mejor forma de “encajar” su habilidad en el grupo es más importante que el nivel de habilidad en sí.

El cifrado RSA es uno de los desarrollos más famosos en seguridad informática. ¿Sabías que la ‘A’ significa Leanard Adleman que no era un criptógrafo? Era solo un científico de la computación en el pasillo de (R) ivest y (S) hamir. No era un experto en criografía como R y S, sin embargo, se unió a sus discusiones y decidieron que no podrían haberlo hecho sin él, por lo que lo convirtieron en un co-inventor.

Si lees muchas biografías y autobiografías, encontrarás personas similares, en el fondo, sin las cuales no sucederían grandes cosas. Lo que sea que trajeron a la mesa, su habilidad no era definible.

Entonces, la respuesta a su pregunta es que aunque solo puede mejorar marginalmente sus habilidades, tomadas por sí mismas, puede mejorar exponencialmente su efectividad al descubrir la mejor manera de aplicarlas. Todo lo que puede hacer es tratar de ayudar a otros, con cualquier habilidad que tenga, en ese momento. Haz lo que puedas y no juzgues si es útil o no porque nadie conoce el futuro. Los muchachos de RSA nunca supieron lo que sucedería, simplemente se sentaron tratando de resolver las cosas. Cada uno contribuyó a su manera. Lo que todos tenían en común era hacer un buen esfuerzo.

Unas pocas películas que recomendaría que aborden este tema “12 O’Clock High” (¿es mejor tener una estructura estricta o un liderazgo personal? No hay una respuesta definitiva). “Rudy” (las personas que se esfuerzan sin habilidades nos hacen sentir mejor estar cerca). GATTACA “Filo de la navaja”. No hay una película o libro sobre alguien con la habilidad perfecta que alguien quiera leer.

Antes que nada, permíteme felicitarte por hacerte esta pregunta tan temprano en tu carrera. Deberías darte una palmada en la espalda en mi nombre. Está bien no ser muy hábil al comienzo de su carrera. Después de todo, acabas de comenzar. Tienes toda una vida por delante para convertirte en un experto en lo que te interesa.

Creo que para mejorar usted mismo hay dos aspectos en los que debe centrarse:

  1. Sus habilidades técnicas
  2. Sus habilidades personales (inter e intra)

Si desea mejorar sus habilidades técnicas, elija un área técnica que le interese y profundice. Conozca a personas que son expertas en el área de su elección y busque orientación sobre lo que puede hacer para mejorar sus habilidades en esa área. Ponga en práctica sus consejos / orientación y estará en camino de mejorar su capacidad técnica.

Ahora, si desea mejorar sus habilidades personales, trabaje para mejorar sus habilidades de comunicación: verbal, escrita, no verbal. La comunicación es la habilidad más esencial para alcanzar sus objetivos personales y profesionales.

Llegar a la parte de amar lo que haces: la forma más segura de amar lo que haces es hacer lo que eres naturalmente bueno.

Descubre más sobre ti. ¿Qué tipo de persona eres? ¿Qué tipo de situaciones saca lo mejor de ti? Luego busca maneras de ponerse en esas situaciones cada vez más. La vida es demasiado corta como para dedicar tu tiempo a mejorar en áreas donde no te va bien (o donde no tienes talentos naturales).

Estás en la caravana. Es muy común que los recién graduados entren en pánico y se vean abrumados tanto en tecnología, procesos de negocio como en dinámica de equipo. Las iteraciones son importantes para resolver problemas, la comunicación es importante para explicar sus problemas al ingeniero senior y por qué desarrolla esa estrategia (algoritmo, funciones, clase, tipos de datos, etc.) para resolver el problema. Escribir código no es solo el problema técnico, también es un arte que es lo que las escuelas no enfatizan en la enseñanza. Solo sé paciente, concéntrate, pide ayuda, lee mucha documentación, busca en google; estarás bien. ¡Es solo cuestión de tiempo, estarás bien en los próximos seis meses! Buena suerte

Para mejorar sus habilidades, solo practique mucho, trate de involucrarse en proyectos más desafiantes, nunca deje de estudiar, nunca monitoree los campos preferibles.

Acerca de amar tu trabajo: nunca amarás tu trabajo desde el principio, porque no tienes mucha libertad, proyectos creativos y una comprensión total de todos los procesos.

Recomiendo leer un libro “Tan bueno que no pueden ignorarte”

Es curioso cómo la mayoría de estas preguntas reflejan los caminos individuales del escritor y cómo llegaron allí. Creo que todos nos quedamos atrapados en nuestro propio mundo.

Mi consejo para usted sería encontrar personas en la organización que trabaje que admire (no solo por sus habilidades técnicas, sino también por su éxito general y / o habilidades de gestión, interpersonales u otras). Personas de las que puedes aprender y con las que te gustaría construir relaciones.

Invítelos a almorzar, conózcalos y pídales consejos sobre qué hacer a continuación. Pregúnteles cómo mejorar su trabajo, desde el área en la que se destacan. Encuentre el “mejor” ingeniero de software y solicite ver su código. Luego, pídales que miren la suya (no se ponga a la defensiva, se trata de aprender). Lo mismo aplica para administrar su tiempo y / u otros … encuentre buenas personas y pídales que lo ayuden a mejorar.

Luego, como dijo otro … elija las áreas que realmente desea construir (generalmente aquellas en las que no puede dejar de pensar de todos modos), y aprenda, aprenda, aprenda. Lea libros, blogs, códigos de otras personas, definiciones de proyectos, lo que sea.

Nadie de éxito llegó allí siendo naturalmente brillante o perfecto en nada. Todo es un proceso de elegir una dirección y mejorar continuamente.

Buena suerte y ven a buscar trabajo con nosotros 😉 – ¡ama a las personas con una gran actitud!

More Interesting

¿Qué cursos puede hacer alguien después de BBA si la persona se da cuenta de que su interés radica en el campo de la tecnología?

¿Es seguro cambiar de un ISRS a otro sin disminuir el primero y sin superponer los dos?

¿Qué pasos debo seguir para convertirme en un exitoso comerciante de swing?

¿Cuál es la descripción del trabajo de un especialista en ciberseguridad?

¿Cuáles son las principales agencias de contratación para empleos en Dubai en India?

¿Los Gaffers tienen buena seguridad laboral?

¿Qué reservas tendría un empleador sobre la contratación de un ex director de marketing de 29 años como ingeniero aprendiz?

Cómo mostrar mi interés, entusiasmo y pasión por una empresa o tipo de trabajo en entrevistas tanto verbales como no verbales

¿Cuál es el papel financiero en la industria de la tecnología de la información?

¿Qué debe hacer un joven en economía con un menor en informática durante el verano?

Soy un desarrollador frontend con sede en Italia y estoy pensando en trabajar en el extranjero. ¿Cuál es la mejor ciudad europea para encontrar una buena compañía en el campo del desarrollo web?

Como ingeniero industrial, ¿a quién se le paga más (investigación de operaciones o sistemas de producción y gestión) y cuáles son las diferencias?

¿Cómo se divide la profesión de enfermería en función de la educación, la experiencia y el salario?

Ingeniería aeroespacial y aeronáutica: ¿Qué es el futuro en este tema? ¿Qué pasa con la colocación o qué iit o nit es mejor para esto?

¿Puedo conseguir trabajo en TCS fácilmente?