¿Cómo debo prepararme para ser un ingeniero de software autodidacta?

Hacer amigos.

Mira, la ingeniería de software es un oficio profundo . Hay mucho que saber y mucho que puede equivocarse. Y realmente ganarse la vida con eso requiere que puedas convencer a alguien de que puedes hacer el trabajo, lo que generalmente se hace al pasar una entrevista y al presentar evidencia .

¿Alguna vez has visto la película Somm? Te sugiero que vayas a verlo.

Hay una lección ligeramente sutil en esta película, que me pregunto si la mayoría de la gente obtiene: esa preparación para cualquier prueba difícil, que la adquisición de cualquier tipo de conocimiento profundo, conocimiento en el que se pondrá a prueba, se realiza mejor en un grupo. El grupo puede apuntalar las debilidades de los demás, proporcionar críticas semi-objetivas y, en general, apoyarse mutuamente cuando las cosas se ponen difíciles. Que la persona que habla rápido con el ego perderá a las personas sociales que colaboran. Incluso si algunos de ellos también tienen grandes egos.

Entonces, prepárese buscando otras personas que estén en el mismo bote que usted y comience un proyecto. Aún mejor, comiencen una startup juntos. No tiene que tener éxito, pero sí debe esforzarse y comprometerse enormemente.

Luego, en el otro extremo, saldrás no solo con un inicio en tu currículum (¡pequeño mono inteligente, tú!) Sino con conexiones y experiencia construyendo algo que es, al menos en un sentido limitado, real.

HTH.

Estudié en Duke como ingeniero eléctrico, pero también tomé un par de cursos de informática. La mayoría de las cosas realmente básicas que estudias en la universidad suelen estar en cursos de nivel superior (redes de computadoras, compiladores, tecnología profunda), y las cosas de nivel inferior (diseño de software, estructuras de datos y algoritmos) probablemente puedes ingresar bajo un año con suficiente enfoque y trabajo. Lo único importante que casi todos los estudiantes universitarios de ciencias de la computación obtienen que no tienes es experiencia en pasantías, y no es un factor decisivo para comenzar (nunca tuve experiencia en pasantías haciendo ciencias de la computación, y aunque me lastimó significativamente, no terminó mi deseo de programación ni me impidió encontrar un trabajo 🙂).

Dicho esto, diría que es aconsejable tomar el camino de menor resistencia. Aprenda JavaScript primero (es un idioma real, un buen idioma hoy en día y ayuda a mucha gente a obtener resultados reales). C ++ se usa principalmente para aplicaciones centradas en el rendimiento, y Python no se usa tanto como JavaScript. La experiencia de programación que tiene en este momento puede y se transferirá fácilmente al conocimiento en JavaScript.

Obtenga un par de libros de JavaScript en línea o en Amazon (solo google los mejores libros de JavaScript para aprender a comenzar), y haga algunos ejercicios de FreeCodeCamp. Luego, cree su propia aplicación para resolver un problema que vea. Pude comenzar con cero JavaScript y experiencia profesional en codificación para construir una aplicación Express.js, React.js y PostgreSQL y conseguir un trabajo haciendo JavaScript en menos de cinco meses (y no soy especialmente inteligente, solo codifico todo el día todos los días).

Tuve el privilegio de poder quedarme en casa durante cinco meses para estudiar todo el día, así que si no tienes eso, intenta conseguir un trabajo razonable para pagar las cuentas y hacer lo anterior durante un tiempo de inactividad significativo y cuando estés fuera del trabajo.

Obtenga un trabajo de ingeniería de software, aplique un par de características principales a la producción, muévase a un equipo / producto diferente, repita los pasos 2 y 3 hasta que domine JavaScript. Luego aprenda otro idioma (por ejemplo, C ++) y haga lo mismo, o continúe aprendiendo JavaScript (he oído que es fácil comenzar y difícil de dominar). Encuentra mentores, lee libros, repite. Probablemente podrás traslapar a algunos de tus compañeros de clase, ya que tienes la conciencia de que no ha terminado hasta que haya terminado y la voluntad de estudiar por tu cuenta. Porque una ventaja no es ganar una carrera.

¡¡¡Buena suerte!!! Recuerda, siempre perdónate a ti mismo si te decepcionas, y solo compárate con la persona que fuiste ayer. También construya una red de apoyo y cuídese. Eso me ayudó en mis momentos más difíciles.

PD: Esto podría ser Duke, pero escuché que los ingenieros biomédicos probablemente lo tengan más difícil entre todas las especialidades en la universidad, por lo que la informática debería ser más fácil 😛

Primero apagado, graduado. Tener un título en ciencias hace que sea más fácil para las empresas contratarlo como desarrollador de software, incluso si no es un experto en informática. La Ingeniería Biomédica es un campo que la gente puede imaginar que está relacionado con el software. Incluso si no te importa el conocimiento, pagaste ese título. Ve a terminarlo.

Aprenda sobre algoritmos y estructuras de datos. Necesita este conocimiento porque muchas entrevistas de desarrolladores presentan preguntas de codificación que son preguntas de algoritmos y estructuras de datos. Vale la pena tomar la clase de algoritmos y estructuras de datos en su universidad, porque realmente necesita esta información para pasar las entrevistas. puede aprender algoritmos y estructuras de datos, pero el material no es simple. realmente necesitas analizarlo, hacer la tarea y todo.

Luego, busque un fabricante de dispositivos médicos con una oferta de trabajo de software. Su título de Ingeniería Biomédica les parecerá relevante para que puedan obtener entrevistas.

Una vez que haya tenido un trabajo de software, el siguiente es más fácil de conseguir.

Como han dicho otros, definitivamente termine su título de ingeniería. Aún no lo sabes, pero tu verdadera educación ni siquiera comienza hasta que dejas la escuela. Dejar la escuela con un título es un lugar mucho mejor para comenzar una educación real que irse sin un título.

A cualquiera se le puede enseñar la sintaxis básica del lenguaje de programación. Pero los desarrolladores de software verdaderamente excelentes son los que pueden concebir y desarrollar excelentes modelos. Con eso quiero decir tomar un problema del mundo real y ser capaz de cortarlo y cortarlo en un modelo mental que luego pueda describirse en código.

Aquí es donde su título de ingeniero puede distinguirlo de los graduados de ciencias de la computación. ¿Cuál es el lenguaje de modelado más poderoso que existe? Matemáticas El hecho de que haya aprobado todas las clases de cálculo y ecuaciones diferenciales muestra que tiene un grado único de habilidad de modelado y cierta habilidad para pensar de manera abstracta.

Hay muchos ingenieros que se transformaron en desarrollo de software. En mi experiencia, la mayoría de los mejores desarrolladores de software que he conocido eran todos ingenieros por educación. Algunos graduados en ciencias de la computación llegan a un nivel de sombrero y otros no. Los que tienden a provenir de universidades como Georgia Tech que incluyen el mismo cálculo y clases DiffEQ que los ingenieros toman en el plan de estudios de informática.

Lo que haría es esto: obtendría un título en ingeniería biomédica.

Es posible que haya notado que gran parte del trabajo de ingeniería biomédica se basa en la construcción de dispositivos que tienen, necesitan o pueden usar el control de la computadora. Si aprende a programar razonablemente bien, puede utilizar sus conocimientos de biología y medicina para escribir software para dispositivos. Uno de los trabajos mejor pagados que me ofrecieron fue trabajar para una empresa que escribe software de verificación para un dispositivo médico implantable; Esta fue una tarea complicada porque las personas que escribieron el software sabían poco sobre ingeniería de software porque tenían que saber cosas sobre el cuerpo humano y la medicina y la sangre y esas cosas, lo que todos sabemos es asqueroso y desagradable. Ya aprendiste todo eso, así que también podrías ponerlo en práctica.

Te recomiendo que tomes seis cursos:

  1. Programación de introducción
  2. Programación orientada a objetos
  3. Estructuras de datos y análisis de algoritmos.
  4. Matemáticas discretas
  5. Cálculo
  6. Estadística

Probablemente tenga 5 y 6, y podría omitir 1 si comprende variables, bucles, condicionales, lógica, matrices y funciones. Es posible aprender estas cosas de los MOOC (al menos en teoría), pero necesita mentores para hacer preguntas. En los EE. UU., Es relativamente fácil encontrar cursos en 2 en universidades comunitarias y de 4 años, y 3 y 4 en la mayoría de las universidades de 4 años. Es posible que pueda encontrar trabajo sin esos cursos, pero tómelos pronto o aprenderá todo de la manera difícil, reinventando la rueda.

La Ingeniería Biomédica es un campo excelente, ¿simplemente no le interesa? Aún debes graduarte. El grado es importante. Demuestra que puedes completar una tarea. Entonces debes haber tomado algunas matemáticas, a través del cálculo, ¿verdad? Deberías tomar algunas clases de informática. El conocimiento básico de C ++ no es muy valioso sin alguna idea de la metodología OO, los patrones de diseño y las estructuras de datos, los algoritmos también son importantes.

Deberías comenzar a aprender el lenguaje Jave o PHP. Puedes ir a http://www.youtube.com o http://w3schols.com .

More Interesting

¿Cuántos ingenieros de software trabajan en Silicon Valley y Nueva York?

¿Cuál es su mayor temor como ingeniero de software?

¿Debo usar la optimización de Markowitz para proteger mis RSU como ingeniero de software que trabaja en una empresa que cotiza en bolsa?

¿Necesito saber ingeniería de software para hacer una contribución significativa al aprendizaje profundo?

Siendo un ingeniero de software experto en la última tecnología (IoT / AI), ¿qué puedo hacer para regresar a mi ciudad natal donde no tengo esas oportunidades?

Cómo encontrar un Tutor de Algoritmo que me haga un buen Ingeniero de Software

¿Cuáles son las buenas pautas de construcción de software? ¿Algún libro sobre este tema?

Tengo un tercer año (6to sem), Ciencias de la Computación en una universidad decente en India. ¿Qué puedo hacer en este momento para agregar valor a mi currículum?

¿Qué debe saber todo ingeniero de software sobre la seguridad del software?

¿Cómo es trabajar como ingeniero de software en una empresa emergente / tecnológica frente a una gran empresa como un banco?

Cómo emigrar a Canadá como ingeniero de software

¿Los ingenieros de software de nivel básico generalmente realizan poco trabajo, que en su mayoría son correcciones de errores y agregan una pequeña funcionalidad?

¿Qué debo comenzar a hacer para sentirme bien conmigo mismo como desarrollador de software?

¿Qué empresas tienen los estándares más rigurosos para los ingenieros de software?

¿Se paga demasiado a los ingenieros de software?