¿En qué debería centrarme, ser un desarrollador de software desempleado?

No soy un experto en el tema de ninguna manera, pero aquí va:

  1. Comience revisando estructuras de datos y algoritmos básicos. Solo un poco para obtener un poco de confianza. Y asegúrese de practicarlos todos utilizando un lenguaje que prefiera, ya sea C, Python u otra cosa.
  2. Una vez que se sienta un poco seguro después del paso 1, diríjase a plataformas de codificación en línea como HackerRank, HackerEarth, Codechef, entre muchas otras. Practicar sus habilidades de codificación aprendidas seguramente ayudará mucho.
  3. No espere para comenzar este paso hasta después de completar el anterior. Comienza a buscar proyectos de código abierto en Github, donde puedes filtrarlos según tus intereses y habilidades. Aprenda de ellos, las prácticas de codificación que adoptan y las técnicas de optimización y documentación que utilizan.
  4. Una vez que esté bastante familiarizado con todo esto, comience a buscar inspiraciones a su alrededor. ¿Hay algún problema que pueda resolverse? ¿Existe una aplicación (móvil, web o de otro tipo) que pueda comenzar a construir para resolverla?
  5. Después de señalarlo con alfiler, busque el mejor lenguaje posible que sea el más adecuado para ese escenario. Puede ser algo que ya sabes. Si es así, genial! Dispara esos IDEs y comienza. Si no, ¡Codecademy y Udemy para el rescate!

Espero que haya ayudado de alguna manera.

Aprende las tecnologías de Windows . No muy popular en quora, pero muy popular en el mundo real. C #, ASP.NET, Winforms, SQL Server, Azure, etc.

Windows está en casi todas partes en los negocios. La mayoría de las empresas tienen algún tipo de infraestructura de Windows en algún lugar (con algunas excepciones, lo sé). Soy un arquitecto técnico independiente … Windows me ha mantenido en un trabajo muy bien remunerado durante 20 años. No un día sin trabajo … Y ser independiente me da la flexibilidad para perseguir mi otro interés: el culturismo.

He trabajado en todos los sectores: tecnología, farmacia, energía, gobierno, bienes raíces y, por supuesto, finanzas / banca. Algunos de los trabajos de desarrolladores mejor pagados en Londres están haciendo C # para bancos de inversión.

Entonces, si desea una buena paga, variedad y mucho trabajo disponible, vaya a Microsoft … y posiblemente mirar a los trabajadores independientes.

Lee esto:

  • Patrones de programación de juegos
  • Java Puzzlers
  • Patrones de diseño y refactorización

Y juega aquí:

  • Practica la codificación con divertidos desafíos de programación – CodinGame
  • aplicación pirateada

Resolver problemas:

Brillante | Excel en matemáticas y ciencias.

Esto es suficiente para ser relativamente bueno. La mayoría de los programadores ya no son tan buenos. (De ahí la relatividad)

Notarás que pongo 2 referencias en patrones de diseño. Estas son herramientas muy útiles.

El truco es recordar que los patrones de diseño no son soluciones enlatadas. Responden las preguntas más comunes y rara vez puede usarlas “tal cual”. Desviarse de ellos es una buena práctica.

Java es un buen lenguaje porque es estricto y estáticamente tipado. Verá que Python puede hacer más con menos, pero permitirá ser flojo / flojo. También los lenguajes dinámicos son a menudo más difíciles de usar en proyectos complejos. (Eso puede mitigarse de alguna manera con micro servicios, pero no siempre es un buen diseño)

Resolver problemas le enseñará una habilidad que la mayoría de los desarrolladores pasan por alto: comprender rápidamente y la capacidad de discriminar información útil. También enseña empirismo, descomposición de problemas y morfismo.

En algún momento, debe comprender que un idioma es solo una forma de expresar una solución. Los algoritmos BFS son fáciles cuando piensas de esa manera. No dude en explicarle las soluciones en términos simples. Entonces es cuestión de “codificarlo”. (Este consejo solo es muy valioso)

Según el idioma que elija, lea el manual de fu ***. Y hablo en serio. ¡He visto a muchos desarrolladores introducir errores sutiles reimplementando los componentes incorporados!

Al leer esta respuesta ya has mejorado; -)

No solo se centre en las tecnologías de aprendizaje, sino que también mejore sus conocimientos de programación. La programación se trata de resolver problemas con la ayuda de computadoras (no principalmente sobre tecnologías o sobre lenguajes de programación o bibliotecas). Y la programación es difícil . Leer http://norvig.com/21-days.html

Sugiero leer (si no los conoce) algunos libros básicos como SICP, Introducción a los algoritmos, Sistemas operativos: Tres piezas fáciles, el Libro del dragón púrpura, El manual de recolección de basura, Pragmática del lenguaje de programación

Los lenguajes de programación y las tecnologías son solo herramientas.

Instale y use alguna distribución de Linux en su computadora, porque está hecha principalmente de software libre cuyo código fuente puede estudiar y contribuir. Leer programación avanzada de Linux

Elija algún proyecto de software libre existente (con una comunidad de varios desarrolladores, o con un solo autor que sea un desarrollador senior dispuesto a guiarlo) y contribuya a ese proyecto de software libre .

Si está interesado en las tecnologías web, busque otras no convencionales como Ocsigen o Hop.js, etc. No pierda su tiempo en tecnologías pasadas como PHP.

Conozca a algunos desarrolladores de software libre cerca de usted.

Perfecciona tus habilidades. Leer libros y hacer proyectos. Podrías involucrarte con proyectos de código abierto. Y recuerde, la mayoría de los proyectos no necesitan otro súper codificador, necesitan a alguien que pueda limpiar el código, hacer documentación y otras cosas. Participe, aprenda el código, vea cómo funcionan todos. Haz algo de trabajo. Entonces, un día, encontrarás un proyecto que se ajuste a ti o podrías comenzar el tuyo una vez que hayas adquirido habilidades en el desarrollo de código abierto.

No empieces a buscar los mejores y más grandes productos, como el kernel de Linux, NodeJS o cualquiera de los más populares. El tráfico puro y la velocidad de desarrollo harán girar incluso a los programadores más experimentados.

Echa un vistazo a algunos proyectos de NodeJS o elige cualquier otra tecnología, mira si lo que están inventando es lo mismo una y otra vez. Crea un paquete en NPM que resuelva esto, obténlo en GitHub, hazlo incluso si solo estás copiando código que no escribiste tú mismo. Dar créditos donde el crédito se debe. Luego haga una solicitud de extracción de su código en estos proyectos.

Esto puede llevar algo de tiempo. Mire la velocidad de los proyectos, los compromisos totales y al principio, encuentre algo que se adapte a usted.

O haga algo que resuelva algunos problemas para usted. ¿Tienes un restaurante favorito? ¿Taller mecánico de automóviles? ¿Alguna otra tienda de servicios públicos? Tienda de juegos ? ¿No tienen un sitio web? Bueno, haz uno para ellos. Descargue un sistema CMS, haga algo y luego muéstrelos. Haz los primeros incluso gratis con 6 meses de alojamiento gratuito. Después de eso, pueden pagar o tirar del sitio, que sea un año si lo desea. Asegúrese de que google (herramientas para webmasters) encuentre el sitio y tal.

Podrías terminar siendo tu propio jefe.

Simplemente no te sientes allí y no hagas nada. Te vuelves loco de esa manera y vago. Mira esto como un regalo, alguien te dio tiempo para hacer lo que quieras, aprovecharlo al máximo.

Si estuviera en su posición, lo primero que haría sería dar un paso atrás y volver a evaluar. Antes de apresurarse a aprender más habilidades de software, primero verifique que esto sea lo correcto para usted. Trate de tener en cuenta todas las opciones posibles (cambio completo de carrera, capacitación, especialización …) y evalúe los aspectos positivos y negativos de cada una de ellas (tiempo, costo, esfuerzo, oportunidades laborales, salario, complejidad …)

Si, después de este ejercicio, todavía ha seleccionado una carrera en software, al menos debería haber descubierto para qué rama de software debería estar entrenando, eso lo pondrá en su camino.

Si te has decidido por un camino diferente, está bien. Prepárate para eso.

No asuma automáticamente que, dado que actualmente es un programador (fallido), esta es su única opción.

Producir una aplicación. Soñarlo Imagine a un cliente con un problema, diseñe una aplicación para abordar ese problema, haga un prototipo (o producto mínimo viable) e repita hasta que termine.

No importa mucho lo que haga la aplicación, pero debería ser útil para alguien. Incluso si ese alguien eres solo tú.

No importa si sabes cómo escribir esta aplicación, de hecho, es mejor si no lo sabes. El objetivo aquí es aprender lo que necesita saber para hacer esta aplicación. La aplicación es solo algo para que sigas avanzando y para ayudarte a contar la historia durante tus próximas entrevistas.

Golpearás obstáculos. Ese es todo el punto. No sé lo que necesita aprender, pero estoy bastante seguro de que el proceso de producción de una aplicación le mostrará lo que necesita aprender. Así que aprende esas cosas, sean lo que sean. Crea la aplicación.

Cuando su entrevistador le pregunta qué hizo mientras estaba entre trabajos, tendrá una historia que contar. Incluso si no terminas antes de ser contratado. Algo como:

“He estado trabajando en una aplicación para ayudar a [describir al cliente] a lidiar con [el problema]. Cuando comencé, no sabía lo suficiente sobre [características, tecnología, plataforma, etc.], así que para aprender, [libro, sitio web, lo que sea], y encontré [información, técnica, ejemplo, etc.] “Tendré preguntas sobre todo esto, pero el proyecto estará fresco en tu mente para que no tengas problemas para responder.

Probablemente tenga que aprender un montón de cosas, para que podamos dedicar mucho tiempo a ello. Si no, comienza de nuevo con una aplicación más difícil. 🙂

Siempre entro en una entrevista con algunas preguntas enlatadas en mente que con suerte le darán al candidato oportunidades para impresionarme. Cuando una entrevista gira en esta dirección, es realmente fácil para el candidato mostrarme las habilidades y actitudes que quiero que tengan mis compañeros de trabajo.

Esta no es la única forma de hacer que marque la casilla “contratar”, pero ha funcionado de manera bastante consistente.

¿En qué enfocarse? Yo diría que busca trabajo.

Uno nunca está listo cuando se trata de buscar trabajo. Puede pensar que es mejor aprender algo y hacer algunos proyectos pequeños para crecer como desarrollador antes de solicitar un empleo, pero a decir verdad, es sobre todo una procrastinación.

Los desarrolladores web tienen una gran demanda en este momento, definitivamente puedes encontrar un trabajo en algún lugar. Puede ser una empresa pequeña, puede ser un papel no tan interesante, pero después de todo será un trabajo en el que puede trabajar en proyectos reales, aprender tecnologías según sea necesario y buscar el asesoramiento de colegas.

Entonces es el momento de averiguar qué tipo de trabajo realmente quieres hacer, y qué se necesita para conseguir ese trabajo. Cada desarrollador web de pila completa tiene su propia pila, con enfoque principal en algunas tecnologías centrales y exposición a muchas otras. Con la experiencia que tiene del papel no tan interesante, tendrá el conocimiento suficiente para elegir lo que le gustaría poner en su propia pila.