Sí, puedes, pero necesitarás mucha motivación, debes encontrar a alguien que pueda ser tu mentor y salir a conocer a los desarrolladores.
Trabajo en la Escuela de Ingeniería de Software de Holberton en San Francisco, donde he visto un entorno donde los estudiantes interactúan regularmente con ingenieros de software de la vida real y líderes de la industria. Los mentores ayudan a los estudiantes de muchas maneras diferentes y aseguran que el plan de estudios se mantenga actualizado. Algunos mentores crean algunos ejercicios y proyectos para mantener actualizados los niveles de habilidad.
Respuesta larga
Quienes logran hacerlo (porque es muy difícil) tienden a ser buenos desarrolladores, al menos técnicamente hablando (lo que no es suficiente para ser un gran ingeniero de software). Lo que necesitas es MUCHA motivación.
- Cómo aprender a usar WordPress en 3 días.
- Cómo aprender telugu en un corto período de tiempo
- ¿Cómo se relacionan el valor contable y el valor de mercado actual de una acción?
- ¿Qué puedo usar para aprender coreano gratis?
- Quiero empezar un parque, ¿por dónde empiezo?
Si decides ir a aprender por ti mismo, aquí hay algunos consejos:
- Encuentre un mentor: el mundo del software es grande y hay muchas cosas que puede encontrar en Internet al respecto, también, sea honesto, es demasiado y es difícil saber por dónde empezar. Encuentre a alguien que haya estado en la industria por un tiempo y que se mantenga actualizado. Define un plan con esta persona sobre lo que debes estudiar.
- Revise el código: por lo general, hay muchas maneras de lograr algo y muchas formas muy malas. Si bien Internet está lleno de grandes recursos, está lejos de ser perfecto. Asegúrese de pedirle a su mentor que revise su trabajo de vez en cuando, para que no esté aprendiendo de la manera incorrecta.
- Aprender haciendo: leer libros y tutoriales es bueno, pero hacer es rey. El software es como un oficio, es practicando que lo dominarás.
- Practique con algo significativo: seguir los tutoriales tiende a ser molesto, una vez que se sienta lo suficientemente cómodo con una tecnología, intente idear una idea de proyecto personal en la que tenga que usar lo que esté aprendiendo. Eso te ayudará enormemente a mantenerte motivado y a estar orgulloso de ti mismo. Recuerde que PUEDE HACERLO, es una cuestión de tiempo y perseverancia, pero el camino puede ser largo.
- Diviértete: CodinGame es una gran plataforma para practicar, hecha de videojuegos que controlas utilizando un lenguaje de programación de tu elección. HackerRank es una plataforma donde puede probar su habilidad de programación, muchas preguntas son un tipo de entrevista técnica que las empresas están utilizando para seleccionar candidatos, una buena manera de ver cuál es su posición.
- Salga y conozca a los Ingenieros de Software: hay muchas cosas que necesita saber para ingresar al mundo de la Tecnología, mucho que solo podrá saber cuando hable con los Ingenieros de Software reales. Vaya a reuniones y hackathons, pocos sitios web que recomiendo para esto son Meetup.com y Eventbrite. Si vives en el Área de la Bahía de San Francisco, visita nuestra página de Meetup.
Al hacerlo, puede convertirse en un buen desarrollador y ser parte de la nueva generación de collares azules, lo que no es nada malo en absoluto, pero será difícil llegar a las principales compañías como Dropbox, Apple, Docker, Google …
Para ser un gran ingeniero de software, necesitarás 3 habilidades:
- Tener un conocimiento de la pila completa
- Poder aprender por ti mismo
- Habilidades blandas
Tener un conocimiento de la pila completa
Si bien todos tienen una definición diferente de “pila completa”, aquí hay una que me gusta. Las aplicaciones de software son sistemas complicados compuestos de muchas tecnologías y partes: frontend, backend, base de datos, servidor web, red … Por ejemplo: cambiar una consulta en el frontend afectará a la base de datos si el desarrollador no tiene idea de cómo funcionan las bases de datos. podría traer el sitio hacia abajo.
Primero debes aprender un mínimo acerca de lo que llamamos la pila, mientras que cada uno tiene su propia definición de pila, un buen comienzo es saber sobre:
- Algoritmo y estructura de datos
- Programación de alto nivel (lenguajes de programación de objetos orientados)
- Administración del sistema y un poco de networking.
Con esto, un ingeniero de software podrá navegar por casi cualquier sistema / aplicación y podrá tomar una decisión de ingeniería bien pensada.
Poder aprender por si mismo
Los conceptos básicos del software rara vez cambian, pero las herramientas que utiliza la industria cambian constantemente. La industria del software es probablemente una de las que cambian más rápidamente, por eso necesita actualizar constantemente la aplicación de su teléfono inteligente y que sus sitios web favoritos traigan constantemente una mejor experiencia y características.
En este contexto, los ingenieros de software necesitan constantemente evaluar y quizás aprender nuevas herramientas que les ayudarán a hacer su aplicación más rápida, mejor y más confiable. Los nuevos lenguajes de programación y las bibliotecas vienen constantemente y uno no puede regresar a la universidad cada vez que surja una nueva tecnología. Los mejores ingenieros de software son los que pueden mantenerse al día con las últimas tendencias. Por eso es fundamental que puedas aprender por ti mismo.
Habilidades blandas
A menos que esté dispuesto a trabajar solo, podría ser la habilidad más importante.
Hay un buen libro sobre esto, “Cómo ganar amigos e influir en las personas” porque este libro es muy importante para aprender a ser un ser humano exitoso.
- Comunicación
- verbal: hablar en público, presentación…
- Escrito: documentación, correo electrónico, post mortem, redacción técnica…
- Colaboración
- Ayudando a un compañero de trabajo en un proyecto
- A bordo de un recién llegado
- Saber cuándo preguntar
- Espíritu de equipo
- Entendiendo a otros compañeros de trabajo
- Fomento de la colaboración con otros equipos (si es en una gran empresa)
No se puede imaginar cómo el ser amable con las personas y ayudarlas a hacer su trabajo les traerá mucho más. Recuerda que para una empresa, si haces bien tu trabajo, eres un 1X. Pero digamos que también está ayudando a 10 personas a hacer bien su trabajo, entonces usted es un 11X y ese es el tipo de personas que necesitan las empresas exitosas.
Si puedes obtener estas 3 cosas, serás un programador increíble y todos querrán contratarte.
¡Buena suerte en tu camino convirtiéndote en un gran programador!