Como desarrollador de software, ¿alguna vez te has sentido desesperado y frustrado porque hay innumerables habilidades técnicas que no conoces?

Como desarrollador desde hace mucho tiempo, ciertamente hay momentos en los que acepto una tarea y no tengo idea de cómo (o si) se puede hacer. Esto es parte del crecimiento y la expansión de habilidades.

Siento que las cosas son mucho más fáciles ahora que hace 30 años, principalmente debido a Internet. En estos días uso la búsqueda de Google como mi asistente, y no siento que esté haciendo trampa en absoluto

En los viejos tiempos compraba libros, muy caros, y en su mayoría no necesarios. Con cada nueva versión de un lenguaje o herramienta de desarrollo, alguien escribiría un libro, a menudo compraría varios sobre el tema (SQL, C #, C ++, C, etc.)

En estos días ya no compro libros, pero paso a la solución paso a paso. La mayor parte del trabajo se realiza utilizando la experiencia que he desarrollado con el tiempo, dividiendo un problema en pasos, descubriendo la mejor solución para cada paso. Siempre teniendo en cuenta el todo y siempre ajustando cada paso para crear una solución generalizada que gradualmente se complete y que funcione.

No importa si la tarea se completa en horas, días, semanas o meses; el proceso es el mismo, aunque los proyectos más grandes requieren más concentración para construir siempre un sistema que sea la mejor solución, que sea general y que hace lo que se requiere.

Proporcionas la creatividad, la planificación, la visión, el genio, la artesanía. Aquí es donde la experiencia aumenta gradualmente su capacidad de ser útil y de poder crear soluciones viables y bien diseñadas.

Al usar constantemente Google para ayudarlo, podrá aprender las diversas habilidades. Puede ser sintaxis, errores de compilación, pérdidas de memoria o fallas. Podría estar aprendiendo nuevos detalles sobre las clases (controles de árbol, listas, cuadrículas, etc.). He buscado mejores formas de ordenar, usar mapas, listas, árboles transversales, etc.

Un poco como montar a caballo. El caballo es aterrador, poderoso y puede desanimarte, pero una vez que dominas los principios básicos, controlas las cosas y puedes viajar con estilo y clase.

Sea valiente, no demasiado confiado pero no tímido. Estás aprendiendo un oficio y tienes un largo viaje antes de convertirte en un maestro artesano.

Una de mis citas favoritas es algo que dijo el gran violonchelista:

Pablo Casals fue un violonchelista brillante, y me encanta un comentario que, según los informes, hizo cuando tenía entre 80 y 90 años. Continuó practicando intensamente con su violonchelo en esos años dorados, y cuando le preguntaron por qué era tan diligente, respondió con una de estas declaraciones:

Creo que estoy progresando.
Creo que veo alguna mejora.

Supongamos que eres un violinista de concierto. Aprendiste el violín desde temprana edad y lo practicaste con dedicación. Aprendiste muchas piezas musicales y tuviste una carrera exitosa en una orquesta.

Entonces alguien te llama y te dice: “oye, eres músico, necesitamos un saxofonista en mi club de jazz”.

Sin duda, su formación en teoría musical sería muy útil, por lo que tendría una gran ventaja sobre alguien que no tenía formación musical en absoluto. Pero aún le tomaría meses, tal vez años, practicar el saxofón, sentirse cómodo con las diferencias de tocar el nuevo instrumento, aprender nuevas piezas de música y desarrollar un instinto para los diferentes ritmos de la música de jazz.

Si quisieras ese desafío, podrías comenzar a practicar, y sin duda serías exitoso, eventualmente. El tiempo que tarde dependerá de cuán profundamente desee dominar el saxofón.

Pero si el club de jazz necesita un saxofonista para tocar esta noche , probablemente debería decirles que contraten a alguien que ya haya desarrollado esa habilidad.

Es lo mismo con la carrera de ser programador. Hay muchas especialidades en esta carrera. Nadie puede dominarlos a todos. Algunas personas pueden practicar un poco en cada especialidad, pero no pueden obtener gran profundidad en más de unas pocas.

¡Esto no es un fracaso!

Esa es una gran pregunta!

Ya llevo 12 años en el campo y debo decir que estoy aprendiendo todo el tiempo.

Uno de los filósofos más sabios llegó a una conclusión hace siglos:

“Solo sé una cosa: sé que no sé nada”.

Como 90% desarrollador autodidacta, he estado lidiando con la frustración todo el tiempo. Eso es normal. Porque te pica aprender todo, pero cuanto más profundizas en el bosque, más árboles encuentras.

Pero sin esperanza es tu reacción. Puedes controlar cómo reaccionas. Prefiero elegir tener esperanza .

No creo que alguien haya logrado aprender “desarrollo completo de pila y aprendizaje automático” en el sentido completo. ¿Cómo puedes aprender todo, cuando tenemos cosas nuevas (como marcos de Javascript) apareciendo todos los días?

La naturaleza humana es ser creativo e innovador, así que si alguna vez sientes que has aprendido todo, significa que:

  1. El progreso en el mundo se ha detenido (eso sería horrible)
  2. Tu ego se volvió demasiado fuerte

Mi filosofía siempre fue sencilla: elegir la pila, los idiomas y las tecnologías que realmente te encantan.

Me permitió pasar de ser un desarrollador aficionado a un profesional independiente, a un empleado remunerado a un CTO y, finalmente, a un empresario. Y siempre me mantuve fiel a las cosas que amo.

Por ejemplo: nunca vi ningún punto para aprender Python porque mi corazón pertenece a PHP. Al ser un apasionado de PHP, puedo ganar mucho más que alguien que haya elegido Python solo porque se hizo más popular. Sea estricto y no siga las tendencias: haga esas tendencias en su lugar.

Mucha gente me pregunta: ¿cuál es el lenguaje de programación más rentable para aprender en 2017? Creo que esta pregunta proviene de la frustración y la desesperanza, cuando las personas se encuentran en situaciones como la suya. Así que incluso hice un video para responder a esta pregunta:

Si no mantienes la claridad y la autodisciplina, estarás persiguiendo esas “bolas brillantes” (cosas nuevas) para siempre, y siempre serás el desarrollador “promedio” (perdón por decirte eso, pero es una verdad dura) …)

Como desarrollador, siempre debe tener tranquilidad.

Pregúntese:

“¿Qué es lo que realmente quiero aprender?”

“¿Realmente quiero aprender desarrollo web y aprendizaje automático, si ya soy bueno en el desarrollo móvil?”

No puede convertirse en un desarrollador próspero si está tratando de obtener todo para usted. Tienes que aprender a dejarlo ir. Concéntrese en lo que es realmente importante para usted.

Se honesto contigo mismo. Si las cosas que estás tratando de aprender no son realmente importantes, deja de aprenderlas. Reducirás tu desesperanza y serás más feliz.

Si son realmente importantes para ti, también es genial. Ahora deja de vivir en una fantasía y comprende que no podrás aprender todo en el sentido completo. Tener una visión equilibrada sobre el mundo ayudará a cambiar de desesperado a esperanzado también 🙂

Y no solo eso: después de hablar con muchos desarrolladores exitosos, me he dado cuenta de que NO perseguir las “bolas brillantes” es uno de los rasgos de carácter más importantes de aquellos que obtienen 6 o 7 cifras superiores por año.

¡Te deseo éxito y la mejor de las suertes en tu viaje!

No diría que no tengo remedio, pero me sentía muy frustrado porque hay muchas habilidades, metodologías y enfoques. Más que la gran cantidad de lo mencionado, lo que más me frustra y aún me frustra es cómo las organizaciones evangelizan su enfoque para resolver problemas. Elige una palabra de moda y la predican como si fuera ley constitucional o edicto bíblico. Esa mentalidad va de la mano con las tecnologías. “Hacemos angular” o “Somos una casa de reacción”. Debe ser un solucionador de problemas destinado a resolver el problema con la mejor herramienta posible. ¿Alguna vez ha escuchado a un mecánico decir “Somos una tienda de enchufes métricos”? No.

Los mecánicos pueden favorecer Mac o Snap-on, pero no solo eligen uno en la caja de herramientas y proclaman que son lo que son. Los desarrolladores deben ser como un mecánico o un constructor de viviendas. Sus tecnologías y enfoques son sus herramientas y usted elige la más adecuada para la tarea.

Lo que he hecho y encontrado que funciona para mí es que me mantengo al día en un núcleo de 4 idiomas o marcos. En mi caso, C # / MeteorJS / MVC5 / SQL Server. Si bien trabajo mucho en eso, sigo atento a los demás y veo cómo evolucionan. Tomaré un proyecto paralelo en Clojure o Go, nuevamente para mantenerme en sintonía con el horizonte tecnológico. Sin embargo, nunca me encontrarás tratando de proclamar fluidez experta en 10 tecnologías y persiguiendo cada moda de marketing de JS Framework porque la gente piensa que xyz framework ahora es sexy.

Encuentre el punto de equilibrio de lo que le gusta y de lo que el mercado tiene un uso previsible a largo plazo y enfóquese allí. De lo contrario, te quemarás incluso antes de despegar.

Lo hice hace unos 30 años. Pero lo superé.

La parte realmente desesperante es la cantidad de habilidades técnicas que trabajas poderosamente para desarrollar que luego disminuyen a la inutilidad. Dudo que alguna vez vuelva a configurar un puerto serie en mi vida, y mucho menos usar mi conocimiento de RS-232. Creo que el número de máquinas existentes en el mundo hoy en día capaces de ejecutar el código de máquina Microdata podría contarse con los dedos de una mano. Sincronización de actualizaciones de datos con la interrupción de retroceso vertical de Macintosh. Comprender los espacios de nombres XML. Ejecutar llamadas dinámicas a binarios COBOL desde archivos DLL de Windows. Todo lo que he aprendido a hacer y que nunca volveré a hacer.

Así es como va y cómo seguirá yendo. No solo no puedes saberlo todo, sino que la mayoría de lo que sabes solo es útil temporalmente.

Después de haber pasado por esto varias veces, te das cuenta de que las habilidades reales están funcionando a un nivel superior. ¿Puedes aprender nuevas tecnologías rápidamente? ¿Puede hacer análisis de fallas en sistemas que aún no ha construido? ¿Se puede abstraer la lógica de los detalles de implementación? ¿Puedes usar metadatos para proteger tus sistemas de cambios?

Ese tipo de habilidades continúan siendo útiles a lo largo de su carrera, incluso después de preguntas como “¿cómo construyo una base de datos de aplicaciones que impulsa las actualizaciones a los usuarios móviles en tiempo real?” No se puede responder con “pasar un año construyendo una capa de notificación en parte superior de su base de datos “, pero” use esta herramienta “.

¿Sabes cómo se divide la ciencia en física, química y biología ? Y, de nuevo, cada una de esas divisiones tiene sus propias subdivisiones, como la física se divide en física newtoniana, física cuántica, etc. Luego, cada una de esas subdivisiones se subdivide una vez más y así sucesivamente, hasta que se llega a la última rama. de divisiones, que algún día podrían avanzar aún más. Esta imagen puede darte una idea de lo que estoy tratando de decir:

Ahora tome el desarrollo de software. Posiblemente tiene cientos de divisiones al comienzo del árbol, y ¿quién sabe qué tan profundo es ese agujero de conejo? El punto que estoy tratando de hacer es que el desarrollo de software se parece mucho a la ciencia: después de aprender los conceptos básicos, elige una o dos ramas y se especializa en ellas. No puede mantenerse al día con todas las tecnologías lanzadas, pero solo mantenerse al día con las nuevas cosas en su propio nicho podría ser más que suficiente.

Personalmente prefiero dejar de estresarme y hacer programas más divertidos.

Nunca, no sin esperanza de todos modos. Frustrado, sin embargo. Me he encontrado con proyectos escritos en 5 nuevos lenguajes y marcos. No es el fin del mundo. No te preocupes Hacer esto:

Divide tu aprendizaje de la misma manera que lo harías con un problema. ¿Qué es lo más importante que debes aprender? Profundiza en ello. Cree un proyecto propio que lo ayude a aprenderlo. Mi favorito para aprender nuevos idiomas es una aplicación de mensajería. Aprende algo de la interfaz de usuario, aprende a enviar mensajes a través de una red y aprende a hacer algún tipo de persistencia y enhebrado en cualquier idioma que esté tratando de aprender.

Para el aprendizaje automático, hay mucho que saber. Si cree que esto es algo que necesitará, hay muchos recursos en Internet para enseñarle. Comience con los conceptos básicos completos y avance. No solo descargue una biblioteca de aprendizaje automático y comience a tratar de resolverla. Hay un montón de lenguaje en torno al aprendizaje automático que es diferente al desarrollo de software convencional. No puedes implementar algo bien si realmente no entiendes lo que estás tratando de hacer o por qué.

Gracias por A2A!

No me siento desesperado y frustrado.

Hay millones de cosas que no sé hacer, y eso está bien.

Aprendes estudiando y practicando, sin importar si es algo simple o complejo.

Podría decirse que la teoría de cuerdas es más compleja que aprender a tocar la guitarra, pero las personas han aprendido ambas cosas y las aprendieron estudiando y practicando.

Literalmente, no hay razón para sentirse abrumado, simplemente analice el problema en cuestión y comience a resolverlo.

A medida que avanza, necesitará cosas que no ha tenido antes, y aprenderá, y si continúa, algún día se dará cuenta de que es un desarrollador de stack completo, porque aprendió todo el stack, usted aprendió a configurar y usar bases de datos, servidores de caché, servidores de dominio, servidores de correo electrónico, aprendió sobre la seguridad del cliente / servidor y un millón de otras cosas.

Pero no los aprende todos a la vez, aprende una pequeña pieza a la vez.

No me propuse convertirme en un desarrollador de pila completa, me propuse resolver un gran problema, y ​​seguí trabajando en ello, seguí resolviendo pequeñas partes del gran problema, hasta que un día … terminé, había tenido éxito en creando la versión 1.0 del gran problema.

Hoy pude resolver el mismo problema en una fracción del tiempo, porque resolví el primero, y el segundo, y el tercero, y así sucesivamente.

¡Solo sigue así, llegarás allí!

No. El mundo de la informática es demasiado grande para que una persona domine todo. Pero eso es lo mismo que el resto del mundo, que ha sido demasiado grande para que alguien lo domine todo. No estoy más preocupado por el hecho de que nunca seré un diseñador web front-end que nunca seré un médico. Me encantaría tener el conocimiento y las habilidades de ambas profesiones, pero eso no es razonablemente posible.

Trabajo para una empresa de diseño de chips. Como tal, trabajo con ingenieros de hardware. No me considero un ingeniero de software menor porque no tengo sus habilidades y conocimientos, pero diría que esas habilidades serían más relevantes para mí que, por ejemplo, las habilidades de Big Data. Pero cada uno de nosotros esculpe un área de conocimiento, con suerte con cierta superposición en áreas adyacentes. Entonces, aunque no puedo hacer el diseño de chips, entiendo los problemas y las limitaciones que enfrentan los diseñadores de chips, y por lo tanto puedo ofrecer formas en que el software a veces puede facilitarles la vida.

Para ser sincero, me siento bastante satisfecho de que haya bastantes tecnologías que decidí no aprender después de 40 años trabajando en software. ¿Por qué? Porque se han vuelto completamente obsoletos sin que tenga que invertir tiempo en ellos.

El truco es elegir qué durará lo suficiente como para que valga la pena aprenderlo. En este momento estoy aprendiendo desarrollo web (Angular 2 y TypeScript) porque es un buen complemento para el trabajo del lado del servidor en el que ya soy bueno y no puedo ver la tecnología desaparecer en los últimos 10 años de mi vida laboral. Pero nunca aprendí el desarrollo nativo de la GUI de Windows, ni aprendí ningún 4GL. Me volví bastante bueno en el lote COBOL, C y System / 370 JCL; pero trabajé usándolos el tiempo suficiente para no resentirme.

No soy adverso a inclinar cosas nuevas, pero no estoy molesto cuando desaparecen en la vista trasera antes de tener la oportunidad de aprenderlas.

Primero me metí en el desarrollo de software usando sistemas de autoría multimedia. No había mucha codificación real involucrada, pero aquellos de nosotros que podíamos codificar y entender algo de lo que estaba sucediendo bajo el capó, éramos mejores que nuestros colegas. Me volví muy bueno en lo que hice, y como resultado tenía demanda en un campo muy pequeño y volátil. No me molestó que hubiera innumerables tecnologías que no conocía. Disfruté el trabajo y estaba ganando lo suficiente para vivir cómodamente. Podía pasar fácilmente de un sistema de autoría a otro, y aprendí algunas tecnologías adicionales, incluyendo un puñado de lenguajes de programación, que me permitieron superar las limitaciones de los sistemas de autoría y hacer cosas que la mayoría de mis colegas no podían hacer.

Les dije a mis hijos que su papá aprendió a ganarse la vida. Y en gran medida, eso era cierto. Si había un problema que nadie en el equipo sabía cómo resolver, invariablemente terminaba en mi escritorio. De una forma u otra, encontraría una manera de hacerlo.

Con el auge de Internet, cambié mis habilidades a la web. En ese momento, la mayoría del código del lado del servidor estaba escrito en Perl / CGI, así que compré una referencia de Perl y aprendí una nueva habilidad.

Tuve una idea para un sitio web que generaría ingresos. Lo hizo mejor de lo que esperaba. Durante los últimos 14 años, obtuve un ingreso modesto manteniendo ese sitio web con la mayor parte del enfoque en expandir el código en el servidor.

Pero con el tiempo, el mercado ha cambiado y el sitio web ha ganado menos dinero. Ahora estoy buscando un trabajo secundario para ayudar a llegar a fin de mes. Mientras buscaba anuncios de ayuda para desarrolladores web, hice un descubrimiento sorprendente. No estoy totalmente familiarizado con la mayoría de las tecnologías que se utilizan para el desarrollo web en la actualidad. Dejé de aprender. Y si está en desarrollo de software, cuando deja de aprender, se vuelve irrelevante rápidamente. Así que ahora soy un desarrollador de software que se siente desesperado y frustrado porque hay innumerables habilidades técnicas que no conozco. No tengo dudas de que puedo aprender lo suficiente como para ser comercializables. Pero si usted es un gerente de contratación que busca un desarrollador web, y tiene la opción de contratar a alguien que conozca las tecnologías actuales y alguien que conozca las tecnologías de 15 años y probablemente pueda aprender las tecnologías actuales, ¿a quién contrataría?

Comencé desarrollando sistemas en ensamblaje. Luego tuve que mudarme a Pascal. Eso fue algo completamente diferente. Entonces C. Completamente diferente de los dos.

Después de 45 años, todavía no conozco muy bien a Python (nunca lo he necesitado), nunca he visto a Ruby y hay idiomas de los que apenas puedo recordar los nombres, pero nunca he visto ningún código en ellos.

¿Me siento desesperado y frustrado por esas cosas? No. El último hombre que lo sabía todo pasó su vida en una cueva, y conocía cada grano de arena en la cueva. IOW, puedes tener un conocimiento completo, fácil de obtener, en una pequeña gama de temas, pero no puedes aprender todo. Tómelo con calma (Mark Zuckerberg no escribió Facebook en el momento en que terminó de aprender PHP), y llegará allí.

El desarrollo completo de la pila no es difícil, solo tiene que aprender algunos lenguajes, algunos programas, otros no y algunas técnicas, y eso lleva tiempo. ¿Aprendizaje automático? No pude ayudarte allí: sé lo que es, pero después de 45 años de cortar código, aún no he pensado en aprenderlo.

Naturalmente, solo puedo hablar por mí mismo, pero tengo un fuerte sentido de que muchos programadores se sienten naturalmente atraídos por el aprendizaje continuo que es una constante en el desarrollo de software y en la tecnología en general. A medida que surgen nuevos proyectos, tiendo a disfrutar la oportunidad de explorar y aprender cosas nuevas y ampliar el juego de herramientas que se prueba y se prueba.

Me imagino que podría sentirse abrumado si trata de asimilar demasiado de una vez, por lo que le sugiero que identifique las cosas que están en el perímetro cercano de las necesidades inmediatas de su proyecto. Todo lo demás puede relegarse a la categoría de “bueno saber”, pero las cosas que realmente tocan su esfuerzo inmediato obtendrán un significado tangible debido a ese factor conocido.

Por ejemplo, supongamos que está desarrollando algún software de red, y puede que haya hecho algún software orientado a la red antes. La creación de redes es un tema enorme si se considera en masa, pero hay todo tipo de partes más pequeñas, y algunas de ellas son muy interesantes o valiosas para usted. Por ejemplo, puede optar por aprender sobre rastreadores de tráfico para evaluar o ayudar a depurar su código. O tal vez aprenda a usar algo como iptables como herramienta para modificar el entorno de trabajo nuevo como una forma de ejercer algo sobre su programa.

Al igual que en la resolución de problemas, el proceso de aprendizaje a menudo se maneja mejor utilizando un enfoque de divide y vencerás.

Nunca sin esperanza, como espero puedo aprender.

A menudo frustrado!

Es más una sensación de estar abrumado a veces. Como estar en un bote, y el horizonte hasta donde puedes ver sigue siendo el océano.

Sin embargo, es poco probable que mejore. El cambio es la única constante, parafraseando a Neil Peart.

No, es perfectamente normal tener muchas áreas y habilidades que no conocemos.

Ensamblaje MIPS, programación de juegos AAA, desarrollo de kernel, desarrollo de controladores, OCR.

Sin siquiera intentarlo, son 5 áreas de las que no sé casi nada. Podría pensar en 100 más, si tuviera la oportunidad.

Tienes 6 años, todavía es una especie de primeros días. He estado programando durante unos 30 años, y hay industrias enteras de las que no sé nada.

No se preocupe, ni un solo programador en la Tierra lo sabe todo, y apuesto a que todos los programadores experimentados aquí le informarán sobre áreas masivas de computación de las que no saben nada.

Aprovecho esto como una oportunidad para aprender más. Además, humilde aceptación de que no puedo saberlo todo.

Autor: El Manifiesto Ágil en inglés

Blog: Agile, Scrum, Kanban, Arquitectura de soluciones

Twitter: @tjain

No, no me siento desesperado, y nunca lo haré … y he estado haciendo esto mucho más tiempo que tú, ¿quieres la respuesta por qué?

Vea mi respuesta anterior aquí:

La respuesta de Peter Shaw a ¿Los programadores tienen algunos secretos de codificación que solo se aprenden por experiencia?

Entonces lo entenderás.

Respuesta corta sí, especialmente si tengo que comenzar un nuevo proyecto con el que no estoy familiarizado, pero también sé en qué soy bueno. Creo que muchas compañías están alimentando esto al olvidar que las computadoras son cosas complejas. Las entrevistas de software son un poco locas en estos días, donde todos buscan un candidato que tenga todas las habilidades perfectas para su trabajo, pero olvidan que la mayor parte del trabajo en software es aprender y descubrir cosas nuevas.

No Hace mucho tiempo aprendí que siempre habrá toneladas de cosas que no sé. Aprendo cosas que me son útiles en mi trabajo y / o que me parecen interesantes, y no me preocupo por el resto. Sobre todo, evito las modas y modas, lo que me ahorra mucho tiempo y esfuerzo cuando el nuevo y sofisticado concepto de software o paradigma cae en el olvido unos años después de ser la Cosa más importante del mundo.

La realidad en la tecnología de la información es que las cosas no cambian tanto. Hay muchas exageraciones e innumerables destellos en la sartén, así como frecuentes reinvenciones de la rueda. Siempre espero ver si una moda se convierte en algo realmente útil antes de invertir tiempo en ella. El noventa y nueve por ciento de las veces, desaparece tan rápido como llegó.

More Interesting

¿Cómo puede un ingeniero de software mejorar el crecimiento de los usuarios?

¿Cuál es la mejor herramienta para implementar indicadores de características en mi empresa?

¿Por qué no se externaliza todo el desarrollo de software a países con costos laborales mucho más bajos? ¿Los desarrolladores offshore son menos capaces? ¿Es un problema de comunicación? ¿Aumentaría drásticamente el rendimiento de un desarrollador offshore si le otorgara una visa H1B?

¿Qué metodologías y técnicas de desarrollo de software realmente ayudan a las nuevas empresas de software y cómo?

¿Por qué se hace referencia a los programadores como privados de sueño?

¿Qué debo hacer si mi entrevista salió bien pero cambié de opinión?

Cómo aprender Java sin experiencia en programación

¿Quiénes son los mejores desarrolladores de aplicaciones móviles en Italia?

¿Cómo debo prepararme para un rol de desarrollador de software senior en Google?

Me gustaría saber sobre trabajos de desarrollo de software en Lituania para un extranjero con una larga experiencia en C # que no habla lituano.

Cómo encontrar puestos de desarrollo de software de nivel de entrada, cuando parece que todos quieren desarrolladores senior

¿Cuáles son las cosas que un desarrollador de software debe saber aparte de los lenguajes de programación?

Cómo ser un desarrollador de software y psicología / terapeuta

¿Cuáles son las cosas que todo desarrollador de software de fondo debe saber?

¿Qué empresas de personal (EE. UU.) Utiliza para contratar trabajadores por contrato (principalmente desarrolladores de software) para proyectos a corto / mediano plazo? Necesito recomendaciones.