Quiero seguir una carrera en software, pero estoy teniendo dificultades para determinar qué proyecto seguir. ¿Qué debo hacer?

Quizás tou pueda probar estos pasos:

Defina las áreas que encuentre más fascinantes (aplicaciones web: diseño / interfaz o desarrollo / back-end, aplicaciones móviles, base de datos, BI, otros) y ordénelas en una lista.

Ahora repita los siguientes pasos con esa lista como entrada. Romper el ciclo si el análisis parece bueno para una de las opciones. Supongamos que desea desarrollar aplicaciones web y desea aprender cómo hacer un producto completo (backend más algunas habilidades básicas de interfaz):

1) Analice cuánta demanda de mercado hay en el lugar donde vive para el desarrollo web y qué tipo de empresas buscan desarrolladores. Analice qué tecnologías y habilidades buscan los reclutadores. O si va a trabajar por cuenta propia, lo que los clientes suelen buscar o lo que suelen utilizar los trabajadores independientes. Analice también el salario habitual y las condiciones laborales. Únase a los foros en línea para ver lo que dicen.

2) Analice lo que se necesita para ser empleado: ¿los títulos generalmente son un requisito para esos puestos, y necesita un título relacionado con la computadora o puede usar el actual y transitar a la TI? Además, ¿qué necesitas aprender y cuánto tiempo lleva?

3) Defina su conjunto principal de tecnologías y herramientas. Claro, hay muchas alternativas, pero el tiempo es limitado, así que primero dominemos un conjunto. Elija su lenguaje / marco de backend – Java? .¿Red? ¿O ir a cosas de Javascript como Node.js? O Ruby on Rails? Además, por ejemplo, si elige Java, elija los marcos iniciales con los que trabajará, como Spring, por ejemplo. Luego, aprenda una herramienta de paquete / compilación como Maven o ANT, elija un IDE, elija un servidor de aplicaciones (o servidor web, según las necesidades). También elija una base de datos para trabajar.
Asegúrese de que lo que elija esté de acuerdo con 1) y que tenga amplias fuentes de aprendizaje. Las tecnologías o herramientas que son difíciles de buscar y ayudan en google hacen que sea muy difícil de aprender.

4) Para aprender 3), crea un proyecto y aprende implementando cosas. Solo leer no está haciendo mucho, necesitas poner las cosas en funcionamiento para saber cómo hacerlo. Independientemente de lo que desee implementar en su aplicación y no sepa cómo hacerlo, busque en Google, únase a stackoverflow y obtenga tutoriales en línea.

5) Después de tener algunas habilidades, aprende a promocionarte. Por supuesto, no farolees, pero tampoco subestimes tu conocimiento. Cree un perfil de LinkedIn como si es donde muchos reclutadores buscan candidatos. Luego, si creó una aplicación web, póngala en línea para que pueda mostrarse como su logro / cartera. Si no ha creado un producto completo, tenga GITHub o Bigbucket para mostrar algunas cosas que codificó. Un blog que documente lo que ha estado aprendiendo, además de crear tutoriales o consejos simples, también puede ser un buen marketing, al tiempo que contribuye a la comunidad.

6) Su experiencia en TI, incluso si no es la más ideal, puede ayudar, ya que de alguna manera está familiarizado con el campo. Además, tus habilidades blandas también pueden ser relevantes. Asegúrese de describir cómo estos pueden convertirlo en un candidato potencialmente ideal.

7) Como alternativa a algunos de los pasos anteriores, hay cursos intensivos o cursos después del trabajo donde personas de diferentes campos y / o con diferentes grados quieren convertirse en programadores y aprender a programar durante unos meses. Ofrecen clases intensivas e incluso puede obtener pasantías a través de ellas con diferentes compañías. No estoy seguro de si está disponible donde vives, pero ciertamente es una buena alternativa y he visto algunos casos de éxito donde vivo. Asegúrese de buscar reseñas sobre estos cursos. Algunos pueden requerir que renuncies a tu trabajo para unirte a las clases a tiempo completo durante unos meses.

Has terminado de pensar esto. Comenzaré abordando las preocupaciones que ha enumerado:

1) Cree que no puede decidir sobre una aplicación, pero está enumerando entornos de aplicaciones. Esto es un error. La mayoría de las personas pueden decidir sobre la aplicación, pero no sobre su propósito, lo que hace que los programas sean increíblemente inútiles y teatralmente inútiles. Otros se encajonan en un idioma específico. Hay algo que decir para aprovechar tus puntos fuertes si eres bueno con un idioma en particular, pero en realidad todos los lenguajes de computadora son básicamente los mismos en el sentido de que están manipulando la memoria y la estructura de control de la computadora. Todos tienen sus peculiaridades y desventajas, por lo que esto no es realmente lo que debe pensar primero al decidir cuál será su aplicación . Mi consejo: Olvídate de diseñar una aplicación. Resolver un problema. Servir a un propósito. Después de que tenga un problema que resolver y un propósito que atender, descubra cómo podría diseñar una aplicación para hacer eso para las personas.

2) MVC es una idea muy antigua que ha resistido el paso del tiempo para la mayoría de los requisitos de la aplicación. Es probado y verdadero, y tiene mucho sentido. Sin embargo, a los clientes no les va a importar qué lógica de aplicación, arquitectura, etc., haya empleado para brindarles su querida aplicación. Solo les importa que sea fácil de usar y cumpla la tarea que les brinda servicio y valor. Aprender las mejores prácticas es importante, y obviamente puede hacerte un programador mejor y más rápido, pero en términos de tu aplicación, detenerte para aprender solo detendrá el desarrollo de tu aplicación. Hay muchos marcos en casi todos los idiomas que le proporcionarán esta interfaz y documentación para acompañarla, de modo que no tenga que preocuparse por si se hace correctamente o no, y puede concentrarse en su aplicación.

3) Hiciste esta pregunta en Quora. Obviamente estás interesado. Supongo que probablemente tenga que ver con su entorno (el trabajo del que habla principalmente) y otros factores en su hogar. Realmente no puedo hablar de esto con eficacia, excepto para decir que sus sueños deben cumplirse con atención, o no se logrará nada. Si estás demasiado cansado cuando vuelves a casa, despierta más temprano antes del trabajo y haz tu propio trabajo. Deja que tu horrible trabajo sufra. Cambiar trabajos. Encuentre un trabajo que pague más dinero, que sea más flexible o que le facilite la vida.

En cualquier caso, generalmente no encontrará un mentor real en un trabajo que lo limite intrínsecamente a su salario o establezca expectativas que no son increíblemente realistas. Me encantaría hablar más sobre tus desafíos. Envíeme un mensaje en Quora o envíeme un correo electrónico a [correo electrónico protegido] si lo desea. ¡Buena suerte!

  1. Recomiendo simplemente elegir algo e ir con él. Si desea saber si la habilidad que está buscando específicamente es comercializable, puede mirar monstruo y ver cuántos trabajos hay disponibles con algunas de esas palabras clave. Es bueno saber los algoritmos, pero me temo que normalmente están sobrevalorados. Son muy útiles para las entrevistas, y con menos frecuencia se aplican al trabajo (aunque cuando son útiles, son muy útiles).
  2. Desafortunadamente, no hay sustituto para la práctica. Construir de arriba hacia abajo y burlarse de sus objetos es una buena manera de hacer que las cosas sean comprobables.
  3. Necesita hacer un seguimiento de su propio progreso. Si dedicas más tiempo, progresarás más. Si crees que estás progresando lo suficiente en el trabajo, está bien. Si sientes que no eres feliz y no estás feliz donde estás, deberías dedicar algo de tiempo fuera del reloj.

Parece que no estás contento con dónde estás. Eso es encontrar, pero si eso es cierto, no deberías mirar a tus compañeros de trabajo para ver cómo llegaron a donde no quieres estar.

Personalmente trato de hacer un seguimiento aproximado de dónde estoy, aunque estoy muy contento con el trabajo que tengo ahora. Me aseguro de que si mi trabajo se fuera, creo que estaría calificado para el trabajo que quiero. Aproximadamente cada año o dos hago una búsqueda de mini-trabajo: no estoy buscando trabajo, solo estoy buscando asegurarme de que mis habilidades estén actualizadas.

Definitivamente puse menos tiempo fuera del trabajo ahora que lo hice cuando estaba en la universidad. Paso por períodos en los que no hago ninguna programación fuera de mi trabajo. También paso por períodos menos frecuentes donde la mayor parte de mi tiempo libre es programación fuera del trabajo.

Simplemente sumérgete en cualquier cosa, pero definitivamente comienza con un objetivo, una “cosa” que quieras producir. En el curso de hacer que esa “cosa” funcione, debe encontrar una variedad de partes del mundo real que necesitará descubrir, muchas de las cuales no sabía cómo hacer y pueden conducir a proyectos abstractos.

Sé ambicioso, aquí. Por ejemplo, cada libro sobre programación web quiere que cree una aplicación de “lista de tareas”. Garantizado, nadie los termina, porque son aburridos, solo ocupados. No creo que haya terminado uno de esos, yo mismo.

Pero piense si su programa de listas realmente hace algo con esa información. Como posibilidades rápidas:

  • Mantenga un registro de los horarios de los usuarios para saber que las cosas no se pueden hacer de 9 a 5 entre semana.
  • Recuerda cosas como esa, probablemente deberías cortarte las uñas cada semana y media y cortarte el cabello todos los meses.
  • Averigua dónde debes estar para tus tareas y agrúpalas por ubicación.
  • Si necesita viajar para realizar tareas, considere la distancia y el clima.

Un proyecto como ese, probablemente terminarás. Hay muchas cosas que aprender y verificar, y partes a las que puedes cambiar cuando golpeas una pared en otro lugar. Incluso si no lo termina, obtendrá más experiencia y tendrá un sentido mucho más fuerte de lo que necesita aprender.

Sin embargo, no descarte la experiencia laboral de mantenimiento y documentación. Especialmente en un rol de tipo junior, generalmente eso es lo que las empresas necesitan. Hasta que sepan que pueden confiar en usted con más, la principal prioridad es mantener el trabajo “aburrido” de las personas con más experiencia en el producto y, por lo tanto, deben ocuparse de las decisiones de alto nivel.

En tu lugar, evitaría cosas súper abstractas (como: “mi algo súper rápido perfecto para decirte cuántos pasos son necesarios para alcanzar x comenzando desde y en una secuencia de Collatz”) y prefiero encontrar algo que realmente te guste o al menos lo aprecio.

Construye un juego , una calculadora , una página web elegante como primer paso.

Luego, algo más, luego vuelve a tus proyectos anteriores y ve si puedes rociarles un poco más de magia.

Si realmente desea seguir una carrera en software, necesita ser más disciplinado y poder mejorar sus habilidades en la noche después del trabajo. Hay muchos buenos cursos gratuitos en línea que puede tomar en programación que lo guiarán a través de cómo crear una aplicación completa. En cuanto a qué proyecto perseguir, adivina qué, no importa. Elija uno y termínelo, luego elija otro. La clave es que debes mejorar tu habilidad: idealmente, obtendrías una licenciatura en informática. En lugar de eso, debe poder demostrar sus habilidades con el código de trabajo: sitios web basados ​​en bases de datos, aplicaciones móviles, etc. ¡Los mejores deseos!

Es difícil descubrir cuál sería un proyecto apropiado para usted sin una lista extensa de sus intereses. Lo que funcionó para mí al principio es escribir juegos de computadora. La mayoría de las personas disfrutan los juegos de computadora lo suficiente como para que no parezca trabajo.

Detener. No pienses demasiado en las cosas. Prueba algo y dale tiempo para que se hunda. No te acostumbras a las cosas de la noche a la mañana.