Quiero estudiar la informática y reiniciar mi carrera de desarrollo de software a los 31 años, ¿qué debo hacer? Quiero cambiar mi carrera de desarrollador frontend a back-end y desarrollo de aprendizaje automático, ¿cómo debo comenzar?

Primero, felicidades, ¡ya has comenzado! Usted ha establecido el objetivo: convertirse en un mejor desarrollador con backend y herramientas de aprendizaje automático.

Entonces, enumere los problemas que le impiden alcanzar esa meta. Normalmente escucho cosas como:

  • Trabajo todo el día y no tengo tiempo
  • No puedo darme el lujo de dejar mi trabajo y volver a la escuela
  • Los cursos son muy caros.
  • No puedo ingresar a una buena escuela / no puedo pagar todas las solicitudes
  • Me va mejor con un instructor

Asumiendo que estos son algunos de los desafíos, diseñe un plan para superarlos. Quizás reduzca gastos o tome cursos nocturnos o pruebe cursos en línea. Muchos de los cursos son gratuitos y ofrecen una excelente introducción.

Mire los cursos en una institución respetable y vea qué libros usan en el curso. Obtenga copias de esos libros, léalos, haga los ejercicios. Necesito reducir costos, pero una versión anterior del libro. A menudo, las versiones anteriores se pueden obtener realmente a bajo precio.

Descargue los entornos de desarrollo que necesita: un buen IDE, R, Python, … la mayoría de estas cosas son gratuitas.

Comience con un buen análisis de algoritmos libro / clase. La mayoría de ellos lo llevará a través de las estructuras de datos necesarias. Como en su mayoría estará desarrollando OO, puede usar los objetos fundamentales de la estructura de datos (listas, colecciones, árboles, …) a través de su interfaz externa. (Por confirmar, no digo que no aprendan CÓMO funcionan las estructuras de datos; solo ofrecen la opinión de que no es necesario comenzar allí).

Escribe algunos programas usando las clases. Elija ejemplos del mundo real, no solo repita los ejemplos en el libro. Aquí hay algunos que me gustan:

  • tomar datos de un sitio web de listado (bienes raíces, barcos, equipos). Ordenar los listados por algunos criterios derivados y trazarlo. (Por ejemplo, costo por pie para veleros)
  • Para el aprendizaje automático: descargue los datos de LendingClub e intente predecir las pérdidas de préstamos. Si obtiene resultados lo suficientemente buenos, puede ganar dinero. Si no puede obtener resultados lo suficientemente buenos, descubra por qué.

Para el aprendizaje automático hay una serie de buenos cursos en línea. Comience por ahí. Haz los ejercicios y luego algunos ejemplos del mundo real. Un gran lugar para encontrar ejemplo es Kaggle. Muchos desafíos, fuentes de datos, etc. Aplique diferentes soluciones: knn, análisis bayesiano, categorización, clasificación, … para que aprenda qué enfoques se ajustan a diferentes problemas.

Esto es realmente una cuestión de disciplina. Establezca objetivos intermedios y hágase responsable de cumplirlos. Lea dos capítulos para el viernes. Codifique algunos algoritmos fundamentales en el idioma que elija. Prueba un desafío de Kaggle durante la próxima semana.

Perspectiva: una maestría en informática es de 7 a 10 cursos en CS. Cada curso es de 3 horas semanales de lectura + 3–6 horas semanales de trabajo externo. Cada semestre es de aproximadamente 12 semanas. Entonces 10 cursos a las 10 horas / semana multiplicado por 12 semanas = 1200 horas. Eso es 23 horas / semana durante 52 semanas.

Si solo desea fortalecer sus estructuras de datos y aprender ciencia de datos, probablemente necesite del 50% al 75% de eso.

¡La edad no es un factor limitante para comenzar la Carrera de Desarrollo de Software!

Para ingresar a cualquier campo, debe saber qué se espera en ese campo. Una buena manera de encontrarlo son las preguntas que se pueden hacer en una entrevista para ese puesto.

Las preguntas de la entrevista dan una gran idea de cuál es el nivel de conocimiento esperado de su área de back-end de software.

Si está orientado a Java, Python, etc., es posible que le hagan preguntas sobre estos lenguajes, así como áreas relacionadas como Spring, Hibernate, Cloud Computing, etc.

Puede estudiar los fundamentos de estas áreas y luego prepararse para las preguntas de la entrevista según las tendencias actuales.

Algunos de los buenos libros sobre entrevistas técnicas de Java son:

  • Las 200 preguntas más frecuentes de la entrevista técnica de Javaamazon.comamazon.com
  • Las 100 preguntas más difíciles de la entrevista Java
  • Las 50 preguntas más recientes de la entrevista de Java 8
  • Las 100 principales preguntas de la entrevista de subprocesos múltiples de Java
  • Las 100 principales preguntas de la entrevista sobre colecciones de Java
  • Las 100 preguntas y respuestas más importantes de la entrevista de primavera
  • Las 50 preguntas principales de la entrevista de Hibernate

Puedes seguirme en Gautam Gupta porque escribo regularmente sobre entrevistas de Java y temas de arquitectura.

Parece que haces varias preguntas, y no estoy seguro de poder responderlas todas. Mi separación de su pregunta en partes no es un insulto a su situación, pero las preguntas diferentes tal vez necesiten respuestas diferentes.

<< reiniciar mi carrera de desarrollo de software a los 31 años >>

Creo que tu edad es irrelevante. En cuatro años cumplirás 35 años sin importar lo que decidas hacer con tu carrera. Fui técnico de 22 a 37 años, administré de 38 a 44, enseñé en la universidad durante un par de años, hice programación por contrato por diez y vine a la Universidad a los 55, hace cuatro años. IOW, deja el maldito calendario y deja de preocuparte, y hablo como un preocupado experimentado.

<< Soy un desarrollador frontend y no puedo avanzar debido a mis débiles fundamentos de CS, >>

Entonces, ¿qué dirección es “hacia arriba”? Creo en la idea del cilindro de carrera en lugar de la escalera. A algunos de nosotros nos gusta cambiar en qué estamos trabajando, lo que se podría considerar como una órbita alrededor del borde. Algunos de nosotros qué mover hacia adentro para ser la persona con un dedo en cada pastel. Algunos de nosotros queremos movernos verticalmente, hacia la cima de la empresa.

Es poco probable que el conocimiento en informática le ayude a ascender en la escala a menos que su empresa esté dirigida por ingenieros. Le ayudará a participar más fácilmente en varios proyectos diferentes. Y si quieres ser el “hombre ideal” para tus compañeros de trabajo, entonces es esencial. De hecho, es posible que desee considerar esta propaganda: la respuesta de George Flanagin a ¿Qué saben los grandes programadores que los programadores promedio no?

<< Quiero volver a estudiar Ciencias de la Computación para mejorar mi estructura de datos y habilidades de algoritmos, >>

Entonces … esto es algo que no entiendo. ¿Son innecesarias las estructuras de datos y los algoritmos en el desarrollo front-end? Ha pasado un tiempo desde que trabajé que cualquiera puede “ver”, pero parece que incluso las páginas web básicas requieren conocimiento de estos temas.

Es un gran mito que haya algún tipo de conocimiento secreto de las estructuras de datos. Todos eran conocidos cuando las computadoras requerían tarjetas perforadas para programar, y la salsa secreta está más estrechamente asociada con saber qué algoritmo funciona para su problema que cómo una lista doblemente vinculada realiza un seguimiento de la asignación y punteros del montón.

<< También quiero cambiar mi carrera al desarrollo de backend y machine learning >>

Primero, eliminemos el aprendizaje automático. Afortunadamente, hay bibliotecas de aprendizaje automático en varios idiomas; Las bibliotecas de Python son las únicas que conozco un poco.

Backend significa tecnología de base de datos, y la falta de comprensión de las bases de datos es la brecha que veo y he visto con mayor frecuencia. La incapacidad de comprender las bases de datos es debilitante. Su carrera (y, por implicación, su cambio de carrera) será más exitosa si tiene un buen conocimiento de los métodos de almacenamiento y recuperación. Juega con SQLite. Aprende cómo funciona git. Obtenga una idea de NoSQL.

Ninguna de las cosas que usted enumeró son difíciles en trineo por sí mismas, sin embargo, necesitará vivir y respirar computadoras y programación para hacerlo todo. Por favor, lea mi respuesta de George Flanagin a ¿Cuál es la diferencia entre un programador, un buen programador y un gran programador? ¿Cuál es el camino para convertirse en un gran programador?

Todas las respuestas proporcionadas aquí son excelentes y brindan información / ruta sobre cómo puede fortalecer sus fundamentos de CS y comenzar una carrera como desarrollador de back-end. Me gustaría hablar muy brevemente sobre dos cosas: su preocupación por la edad y, por supuesto, cómo comenzar a aprender las cosas que mencionó …

  1. preocupación sobre la edad: déjame contarte un secreto sobre tu edad, ¡es solo un número! ahora déjame contarte un gran secreto sobre la mente humana: “la mente es el límite”, ¡que nunca está limitado por la edad! Espero que hayas entendido lo que estoy tratando de decir. no te detengas por un mero número. Y como cualquier otro ser vivo, la edad humana sigue la progresión aritmética: ¡deja que siga su camino y tú sigas el tuyo! [PD: solo para estimularte, actualmente estoy haciendo mi maestría después de trabajar durante 9.5 años]
  2. Si quieres ser un desarrollador web de back-end, algunas de las cosas que debes aprender. muchos han sugerido excelentes recursos aquí, así que no los estoy repitiendo. Lo único que diría es que: priorizar, establecer objetivos a corto plazo que conduzcan a objetivos a largo plazo y comenzar a trabajar en ello. por ejemplo, comience con ruby ​​o python: estos dos son idiomas muy fáciles y puede comenzar con mucha facilidad. lentamente comience a hacer proyectos y programe desde HackerRank, TopCoder, etc. y una vez que se sienta cómodo, comience a aplicar. Luego, vaya a temas más complejos como la minería de datos, el aprendizaje automático, etc.
  3. Para los fundamentos de CS, hay una tonelada de cursos en línea gratuitos sobre diferentes MOOC: ¡comience HOY! O bien, si desea dejar su trabajo y unirse a una universidad, eso también puede hacerlo.

Le deseo todo lo mejor para su camino de aprendizaje y espero que logre su objetivo.

Lo hice a los 26 años, ingresé directamente a una Maestría en Ciencias de la Computación (Cardiff, Reino Unido) sin título universitario al citar experiencia relevante en TI y tener más de 25 años.

Tomó un aprendizaje automático / IA doblado en Msc y luego realizó una investigación de posgrado en el mismo tema. Muy contento de haberlo hecho y restableció completamente mi carrera.

Hable con los departamentos de CS de la universidad, por lo general están desesperados por pagar a la gente de MSc, aunque fingirán que le están haciendo un favor.

No te rindas si el primero no es útil y elige los buenos.

Restablezca mi carrera: a los 40 años tengo un negocio de software y servicios profesionales con 20 personas que gana más de £ 2 millones por año y ahora estoy trabajando para llevar esto a los £ 100 millones.

Anímate: no hay nada peor que el aburrimiento de un trabajo sin salida en el que no estás interesado.

También agregaría que si está siguiendo sus intereses al ingresar a cursos de cs para aprendizaje automático y algoritmos, entonces la academia debería ser excelente para usted, rodeada de personas inteligentes y de mentalidad.

El próximo siglo seremos historia. Tener 31 años todavía está bien. 🙂

Tienes razón. Comience con estructuras de datos y algoritmos.

  1. Lista todos los DS y Algo que quieres aprender. Elegir uno. Di: XYZ
  2. Busque en Internet: “Qué es XYZ”, “Aplicaciones de XYZ”, “Pros y contras de XYZ”, etc. Siga los primeros tres enlaces y vea cuánto tienen sentido (no se moleste si el enlace es de Wikipedia , escuela popular, blog, corporación, lo que sea. Google es lo suficientemente bueno como para clasificar los artículos por usted).
  1. Repita la búsqueda en YouTube (use 1.5 o 2x velocidad para videos si es necesario).
  • Refine los términos de búsqueda y / o los recursos web para buscar y continuar leyendo y escuchando hasta que obtenga ese XYZ y sus usos.
  • SI se está preparando para las entrevistas, vaya a geeksforgeeks (o cualquier sitio web ‘relevante’ y relevante) y busque problemas específicos de XYZ. ¿Eres capaz de resolver algunos (5–10) problemas aleatorios sin mirar sus respuestas?
    1. Sí → Ir al paso 5.
    2. No → Ir al paso 3.
  • Elija el siguiente elemento en su lista. Ir al paso 2.
  • Aquí está la lista con la que le recomiendo comenzar:

    Estructuras de datos: matriz, lista vinculada, pila, cola, tabla hash, BST, mapa (hash vs árbol), conjunto, trie, gráfico.

    Algoritmos: complejidad de tiempo, complejidad de espacio, recursión, clasificación, búsqueda, BFS y DFS, programación dinámica, manipulación de bits.

    ¡Felicidades, te diste cuenta de lo que quieres! Estar en desarrollo de software exige un aprendizaje constante. Recientemente me inscribí en una Maestría en Ciencia de Datos mientras trabajaba a tiempo completo como Ingeniero Principal de Datos. El curso de maestría es de maestría vespertina a tiempo parcial de 6 a 9 pm y 3/4 días a la semana. Además, tengo un bebé de seis meses. Disfruto de lo que estoy haciendo y de aprender CS en la universidad, ayudándome a enfocarme en Algoritmos, Matemáticas y Estadísticas.

    Te sugiero que busques un maestro de medio tiempo / tarde. Si puedes permitírtelo, por supuesto, ve por los maestros de tiempo completo. Y enfóquese en las habilidades fundamentales requeridas para cualquier campo elegido. Conocer los fundamentos es muy importante, ya que te hace pensar con claridad y te ayuda a encontrar nuevas ideas para resolver problemas. Y por favor, dedique algo de tiempo para adaptarse, y no será increíble en una semana o un mes. Pero la perseverancia es clave cuando cambias tu carrera hacia algo nuevo.

    He cambiado mi carrera varias veces, y estoy muy contento de haberlo hecho sin temor al fracaso. Sinceramente, creo que tú también puedes hacerlo. Entonces, entienda qué es lo que quería hacer. Luego mapee las habilidades requeridas para entrar en esa área. Comience a trabajar para mejorar sus habilidades, vaya a reuniones, elija un mentor, vaya a la universidad que ofrece los cursos particulares, tome cursos básicos en Coursera y EDX, etc.

    “Marcha. No te demores. Avanzar es avanzar hacia la perfección. Marchar y no temer a las espinas ni a las piedras afiladas en el camino de la vida”.

    – Kahlil Gibran

    Tengo 35 años ahora y mi viaje hasta ahora:

    1. Repartidor de papel | 1996
    2. STD / ISD stand boy | 1996
    3. Vendedor puerta a puerta vendiendo cajas de plástico | 1997 y 98
    4. Vendedor de libros de impuestos | 1997
    5. Ayudante en tienda de vinos | 1998
    6. Cantinero | 1998
    7. *** Vigilante nocturno en Computer Institute | 1999
    8. Operador DTP | Salario: 30K INR por año | 1999
    9. Vendedor en tienda de tarjetas de felicitación | 2000
    10. Diseñador de tarjetas de felicitación | 2000
    11. Entrenador informático que enseña diseño gráfico | 2000
    12. Diseñador gráfico | 2002
    13. Analista de datos | 2004
    14. Desarrollador de bases de datos | 2007
    15. Desarrollador Senior | 2008
    16. Desarrollador SQL / BI | 2011
    17. Arquitecto de datos | 2014
    18. Ingeniero principal de datos | 2016

    Primero elija un lenguaje de programación que le resulte útil para el desarrollo del backend. Una vez que tenga una idea básica del lenguaje de programación, comience a resolver las declaraciones de problemas disponibles en varios sitios de codificación (HackerEarth: desafíos de programación y trabajos de desarrollador, competencia de programación, concurso de programación, programación de computadoras en línea, HackerRank, etc.).

    Para mejorar la estructura de datos y las habilidades de algoritmo, primero necesita fortalecer sus fundamentos. Hay varios libros de algoritmos y estructura de datos disponibles que puede leer para obtener un conocimiento profundo. Comience a implementar la estructura de datos primero como un algoritmo y luego vuelva a escribirla usando el lenguaje de fondo.

    Pocos de los libros de algoritmos y estructura de datos que puedo sugerir:

    1. Introducción a los algoritmos (por Thomas h. Cormen)

    2. Estructuras de datos y algoritmos simplificados en Java / C ++

    No tengo mucha idea sobre el aprendizaje automático. Pero aún necesitará un lenguaje de back-end para comenzar a trabajar en el aprendizaje automático (los lenguajes populares son python, Java, R, etc.)

    ¡Feliz codificación!

    Primero, asegúrese de conocer el paisaje. Descubre qué trabajos hay por ahí. Busque pistas sobre qué tecnologías utilizan, preste especial atención a cualquier biblioteca o tal. Google y Amazon pueden hablar en voz baja sobre los aspectos internos de su IA como servicio, pero mire videos e investigue lo que han publicado. También investigue cualquier palabra clave que mencione y busque trabajos académicos sobre eso. Habrá otras tiendas más pequeñas que desearán experiencia en una biblioteca de código abierto o bibliotecas que implementen diferentes tipos de Machine Learning.

    Entonces veo dos caminos posibles.

    1. Simplemente hazlo.

    Aprenda un lenguaje de fondo sólido de alto rendimiento estándar de la industria como JAVA / C # / Go y también aprenda una biblioteca de aprendizaje automático que lo acompaña.

    Aproveche sus habilidades de front-end para crear un sitio web que haga algo de aprendizaje automático, utilizando esa biblioteca en el back-end. Supongo que en 1 o 2 años podrías tener dos sitios web geniales. Póngalos en su currículum vitae y solicite empleo.

    También vuelva a RR.HH. y descubra si la experiencia de CS Bachelor u otra falta fue la que marcó la diferencia. A menudo pueden ser el factor decisivo, pero tenga en cuenta que a menudo estarán con los labios apretados sobre las cosas. Aproveche al máximo su conocimiento de JavaScript escribiendo más sitios web javascript / AJAX como pueda. Tal vez encuentre bibliotecas de JavaScript con las que pueda comprometerse y ayudar a construir. Cuanto más complejo sea el código en el que trabaja, mejor, y hay algunos programadores de clase mundial que prefieren escribir JavaScript.

    Si tiene un sitio web con 100K líneas de código de back-end y una sólida experiencia de JavaScript, creo que sería un zapato para cualquier trabajo de back-end de nivel de entrada. También preste atención a las tiendas más pequeñas con menos de 4 a 5 personas, es probable que le den más libertad para hacer todo, lo que le dará la capacidad de decir honestamente que escribió código en ese lenguaje de fondo por dinero. La mayoría de las aplicaciones hoy en día tienen un componente frontal, por lo que estar cómodo es una ventaja.

    2. La ruta académica

    Es posible que deba seguir este camino para apuntar al aprendizaje automático, honestamente no lo sé. Pero un Máster o un Doctorado en IA y tal podría valer la pena. Idealmente, haga lo que sea necesario para ingresar a una escuela conocida por la IA, observe dónde están los profesores en esos trabajos académicos. Una vez más, iría por lo que se alinea con su investigación sobre qué rama del aprendizaje automático estudiar. Obviamente, hay una mayor inversión y una pérdida de unos pocos años de efectivo, pero dependiendo de la gravedad de su situación y su situación, esta podría ser la diferencia que necesita para ingresar rápidamente. Solo asegúrese de que esto es lo que quiere hacer, la otra opción que arriesga menos a medida que se desarrolla y pivota.

    “CS50” es una de las formas más rápidas de comprender los conceptos básicos de la informática. CS50 – Wikipedia

    Aquí está el programa de estudios para “CS50” ofrecido por Harvard:

    (CS50 | Portal O Introducción a la informática)

    Cubre más o menos los temas que ha mencionado en su pregunta y también tiene muchos ejercicios prácticos.

    ¡He escuchado varias historias de éxito de los participantes del curso!

    Tenga en cuenta que Computer Science + Programming requiere mucha aplicación práctica. Si desea familiarizarse con las estructuras de datos, algoritmos, etc., la mejor manera de aprender es solo por PRÁCTICA. Dedique la mayor parte de su tiempo a dividir los conceptos en vez de leerlos repetidamente.

    Los mejores deseos…

    ¿Es una crisis de mediana edad? Supongo que todavía tienes tiempo para llegar a esa situación de “crisis de la mediana edad”.

    La gente generalmente se aburre en los trabajos y tareas actuales. Quieren explorar opciones, quieren salir de la zona de confort actual durante la crisis de la mediana edad.

    La “formación en línea” ofrecida por tantas empresas / universidades es la tendencia actual. ¿Por qué no buscas cursos en sitios como

    • Coursera | Cursos en línea de las mejores universidades. Únete gratis
    • Udacity – Clases gratis en línea y nano grados

    ¡Ya tienes control en tu front-end, por lo que sabes qué herramientas / lenguaje de programación usaste en el backend!

    ¿Por qué no intentas convertirte en desarrollador de pila completa?

    Creo que debería abordar pequeños problemas e intentar desarrollarlos utilizando sus habilidades de front-end y un lenguaje de programación de fondo en lugar de desviar el tiempo completo en esas estructuras de datos.

    Aprenda estructuras de datos o mejore sus habilidades cuando las necesite en su desarrollo de aplicaciones de pequeño tamaño.

    Ir al modo de estudio “a tiempo completo” será una mala idea.

    Disfrutar

    Creo que no es necesario volver a la universidad. Muy bien puedes aprender por tu cuenta.

    Me gradué de bachiller en CS hace 18 años. No sabíamos que Java, Linux era algo para aficionados incondicionales, Mongo, Node ni siquiera fueron descubiertos, las bases de datos eran lentas, JavaScript era un montón de dialectos implementados por varios navegadores, JQuery, Angular, JSON, AJAX incluso no se descubrieron en ese momento. Aprendí el desarrollo de GUI con TurboVision y el desarrollo web con CGI (combinado con mi idioma de elección en ese momento, FoxPro, cada solicitud dinámica tomó aproximadamente 5 segundos).

    Siempre aprendí tecnología sobre la marcha. La razón es que la universidad me enseñó no solo tecnología, sino también principios. Si bien la tecnología es transitoria, los principios derivan menos. Por ejemplo, teníamos Map-Reduce antes de lanzar Map-Reduce, solo que no lo llamábamos MR. Los algoritmos realmente nuevos son muy pocos.

    Bueno, en primer lugar, no hay nada de malo en el desarrollo front-end, también existen desafíos de estructuras de datos, algoritmos, comprensión del sistema operativo, redes, etc.

    Al mismo tiempo, “backend” y “machine learning” son bastante diferentes. El aprendizaje automático es una adaptación de las matemáticas o la denominada ciencia de datos. Difícilmente se puede cambiar de un campo a dos campos diferentes y nuevos simultáneamente.

    Tu pregunta es una revelación absoluta de que eres reacio a profundizar en lo que haces y miras otras áreas con un poco de escapismo. ¿Su motivación es poco clara? Habilidades o dinero?

    Si crees que tus fundamentos de CS son débiles, estudia en una universidad o toma un curso en coursera / edx.

    Casi no hay excusa en la ingeniería de software hoy para no tener suficientes oportunidades de buen trabajo / aprendizaje. Hay más trabajos que ingenieros, hay más cursos en línea que tomadores. No necesitas nada más que una computadora portátil para aprender. Hay suficiente software de código abierto para aprender libremente. Hay elaborados tutoriales escritos por blogueros, hay desbordamiento de pila, etc.

    Lo único que el mundo no puede crear para usted es la motivación, eliminar distracciones, el deseo de abrir libros y tutoriales y leer en lugar de quejarse. Entonces aquí es donde debes comenzar: – Deja de pensar, comienza a hacerlo.

    Gracias a algunos de los excelentes sitios web y MOOC en línea, Computer Science se ha vuelto muy accesible para todos, por su ayuda, le recomendaré que pruebe los cursos de Computer Science disponibles gratuitamente con los siguientes recursos:

    • prakhar1989 / awesome-cursos
    • Coursera | Cursos en línea de las mejores universidades. Únete gratis
    • edX
    • Udacity – Clases gratis en línea y nano grados

    La mayoría de las personas que estudian CS y se convierten en programadores hace mucho tiempo que olvidaron las estructuras de datos y los algoritmos, y algunos de los desarrolladores más inteligentes (especialmente en el desarrollo de software de línea de negocio) no tienen capacitación formal en CS.

    Dada su edad, supongo que ha estado en el trabajo durante al menos 5 años. Debes tener una buena idea de tus habilidades. A los 31, tenemos más capacidad para ser honestos con nosotros mismos que a los 21.

    La habilidad que está buscando es “resolver problemas escribiendo software”. No es algo que se enseña en la escuela, y no es algo que se pueda medir (todavía). ¿Puedes hacer cosas como bucles anidados al acceder a miembros de una colección de colecciones? ¿Puede usted, ante un problema, encontrar un punto de partida? ¿Sabes cómo usar el control de fuente y, si no, puedes aprender?

    Podría terminar desperdiciando una gran cantidad de dinero (y pagar altos costos de oportunidad) estudiando CS, cuando el problema podría resolverse mediante un mejor aprendizaje en el trabajo / autodirigido, o una transición a algo como Análisis Empresarial o aprendizaje Scrum.

    Lo que decidas, la mejor de las suertes, siempre es bueno querer mejorar uno mismo.

    Comience centrándose en las estructuras de datos y haciendo algunos problemas de programación más simples, como los que se encuentran en Kattis. Después de eso, elija un idioma y aprenda su sintaxis y luego escriba programas de tamaño pequeño a mediano para tener una idea de ello. Si el aprendizaje automático y el back-end son sus áreas de interés, sugeriría usar Python ya que es realmente fácil de comenzar y tiene muchos paquetes para computación, marcos de back-end y aprendizaje automático.

    • Computación: SciPy, NumPy o Anaconda Suite.
    • Marcos de backend: Flask o Django
    • Aprendizaje automático: flujo de tensor

    Para conocimientos básicos de CS, recomiendo este MOOC gratuito: Algoritmos, Parte I – Princeton University | Coursera (y parte II). Comenzando en un par de semanas.

    Impartido por Robert Sedgewick. Muy accesible pero cubre todo el territorio de los algoritmos de importación. Pocas pruebas, principalmente solo código y cómo funciona.

    Empiezas dejando de preguntar y en realidad comienzas. ¿Dijiste que quieres mejorar la estructura de datos y las habilidades de algoritmos? Estudiar estructuras de datos y algoritmos … Investiga un poco y encuentra los mejores libros, cuando estés atascado, busca en Google y mira videos. Si no sabes cómo enseñarte, estarás atrapado aquí para siempre.

    La clave es que sigas intentándolo y eventualmente encontrarás una manera. Hacer preguntas en Internet es la mejor opción para posponer las cosas. Te da una excusa para no estar haciendo algo en este momento mientras te dices a ti mismo que estás esperando respuestas clave.

    Hazlo ahora. Deja de preocuparte por la edad, el tiempo, cómo, dónde … Sólo. Comienzo. En cualquier sitio. Ahora. El camino se vuelve más claro cuanto más cavas. Encontrarás el camino que necesitas siempre que lo intentes.

    Su pregunta no incluye detalles de geografía o educación previa. Presumiré que el interlocutor ya posee una licenciatura.

    Depende de la economía personal de uno. El camino más directo es emprender un título de posgrado CS (por ejemplo, MS o PhD). Uno puede tomar una maestría en informática a tiempo parcial. Los programas de doctorado generalmente se basan en becas, lo que significará un compromiso con varios años de un estilo de vida de bajos ingresos, que puede o no ser factible en su situación personal.

    Antes de comenzar cualquiera de los programas, se recomienda que estudie por su cuenta, principalmente involucrando estructuras de datos y algoritmos. Muchos programas también requieren el GRE en Ciencias de la Computación, por lo que la revisión del material relevante para el GRE general y el tema también estaría en orden.

    ¿Has echado un vistazo a la MS en línea en CS en Georgia Tech? Tienen una especialización de aprendizaje automático. Inicio | OMSCS | Instituto de Tecnología de Georgia | Atlanta, Georgia

    Además, hay varias respuestas sobre quora relacionadas con “¿cómo aprendo el aprendizaje automático?” Yo personalmente recomendaría:

    Aprendizaje automático | Coursera

    y las lecciones de aprendizaje automático en http://www.dataquest.io

    More Interesting

    ¿Está saturada la informática?

    ¿Cómo volver después de perder 4 años en la universidad (informática)? ¿Qué cursos específicos debo aprender?

    ¿Qué es un desarrollador front-end?

    ¿Cuáles son algunos cursos adicionales que puedo tomar en línea mientras estoy en mi segundo año de ingeniería informática, siendo un estudiante promedio?

    ¿Puede Hack Reactor servir como sustituto para obtener un título universitario en CS?

    ¿Qué puede hacer un estudiante de informática de 4to año que no tiene habilidades de programación?

    Soy estudiante internacional y recién graduado de ingeniería informática, ¿cómo puedo obtener una pasantía en una de las mejores empresas de informática?

    ¿Cuál es un marco de tiempo realista desde el principio para aprender a programar y conseguir un trabajo como programador, mientras construyo mi cartera en el medio?

    ¿Qué computadora es mejor para un desarrollador?

    Como ingeniero informático principiante, ¿qué debo hacer desde el 1er año en adelante, para que al final del 3er año sea competente en mi campo?

    ¿Puedo crear un motor de juego 3D que funcione después de haber dominado C ++, OpenGL y Blender3D?

    ¿Cuál fue el proyecto informático más difícil que hiciste como estudiante de CS / CPE?

    ¿En qué área de la informática debería centrarme para obtener el mejor trabajo de programación?

    ¿Debo obtener una maestría en informática o comenzar a trabajar en la industria?

    Cómo prepararme para ser ingeniero de software haciendo proyectos reales