¿Debería un desarrollador autodidacta centrarse en algoritmos o proyectos paralelos para conseguir un trabajo?

No puedo responder su pregunta directamente de la manera que desea porque no puedo recomendarle hacer una u otra.

Soy un programador autodidacta que tiene un título universitario en Humanidades clásicas y un título de Juris Doctor . Comencé a programar cuando tenía 11 años en una computadora TRS80 e hice pequeños proyectos paralelos a lo largo de mi vida. Después de practicar leyes durante cinco años, dejé la ley y entré en un programa de maestría en CS. Terminé renunciando temprano porque un divorcio requería mi empleo inmediato. Casi había terminado la maestría en CS (quizás 3 clases y una tesis / proyecto restante) cuando obtuve mi primer (y actual) trabajo como ingeniero de software (llevo aquí más de 3 años).

Diría que las cosas en las que tendrá que pensar son:

  1. Mostrar dominio de sus lenguajes de programación de destino: poder responder preguntas comunes de entrevistas sobre ellos
  2. Mostrar conocimiento básico de algoritmos y estructuras de datos. Ser capaz de hacer análisis O (n) básicos de algoritmos. Conocer las ventajas y desventajas de las estructuras de datos (por ejemplo, cuáles son los pros y los contras de la lista vinculada frente a la matriz).
  3. Ser capaz de codificar de forma rápida y segura (en la pizarra) problemas de programación comunes en sus idiomas de destino
  4. Buen conocimiento de los principios de diseño orientado a objetos y la capacidad de aplicarlos para resolver problemas. Sea capaz de distinguir entre el diseño orientado a objetos buenos y malos y sugerir mejoras cuando sea necesario.
  5. Alguna demostración de buena programación orientada a objetos en contexto profesional o de proyecto paralelo. Si es un proyecto paralelo, deberá hacer algo para aumentar su credibilidad. (Comencé un negocio por diversión para anodizar tornillos de titanio e hice un proyecto paralelo programando un arduino y una computadora para hablar con escalas lineales económicas para proporcionar un DRO barato para la fresadora de mi empresa). El negocio nunca despegó realmente en términos de rentabilidad, pero mi trabajo allí me ayudó en mi búsqueda de empleo.

Realmente necesitas poder hacer todas estas cosas. Ser autodidacta probablemente será más débil en los principios de diseño orientado a objetos, así como en algoritmos / estructuras de datos. Si ese es el caso, concéntrese en esas deficiencias. Sin embargo, probablemente deba poder hacer todo lo anterior.

¿Hay actividades de desarrollo en su campo no técnico? En caso afirmativo, recomendaría aprender algunos algoritmos relacionados con el software en su campo, luego trabaje en algunos proyectos (tal vez complementos para abrir el código fuente).

Un músico, por ejemplo, con algunas habilidades de codificación, probablemente le resultaría mucho más fácil comenzar en un lugar como Kurzweil, particularmente después de trabajar en Audacity.

Del mismo modo, la mayoría de los campos, técnicos o no, utilizan algunas herramientas basadas en software. Estás mejor posicionado para trabajar para alguien que hace herramientas en tu propio archivo, como experto en la materia con habilidades de codificación, y luego salir como un programador novato en busca de un trabajo de nivel de entrada.

Lea este libro y estará listo para las entrevistas: Escribir un libro: El manual del impostor – Rob Conery

También soy autodidacta y creo que el libro es perfecto para llenar el vacío entre los estudiantes de CS y las personas autodidactas.

// No tengo afiliados

Si quieres obtener un 15% de descuento, sé mi amigo y yo por la tarde. Tengo un código de cupón pero no sé si puedo compartirlo aquí. El correo electrónico dice que puedo compartirlo con un amigo .. =)

More Interesting

¿Cuál es una explicación simple de por qué BFS bidireccional se ejecuta en [math] \ Theta (\ sqrt {n}) [/ math]?

¿La complejidad de los algoritmos de clasificación está relacionada con la cantidad de suposiciones que hago? ¿Por qué?

¿Cuál es el mejor y el último algoritmo de última generación para encontrar documentos similares?

¿Cuál es el enfoque algorítmico para encontrar el tamaño de la submatriz rectangular máxima que tiene todos los 1 de una matriz que contiene 0 y 1?

¿Realmente utilizas los algoritmos informáticos que aprendes en la universidad cuando consigues un trabajo? En caso afirmativo, ¿cuál es el mejor trabajo que puede permitirse en algoritmos?

Cómo crear una matriz de intervalos de fechas a partir de una matriz de fechas estáticas en JavaScript

¿Se puede aplicar BFS a gráficos ponderados?

¿Cuáles son los problemas de programación que resolvió que le hicieron decir "¡Guau! ¡Lógica asombrosa"?

¿Cuáles son algunos campos en CS en los que puedo considerar entrar si mis intereses principales son las matemáticas y el diseño de algoritmos?

¿Cuáles son los problemas de toma de decisiones?

¿Cuál es la explicación teórica más fácil posible sobre el algoritmo de clasificación de burbujas y el programa que usa C, ya que soy un viejo estudiante de 50 años completamente nuevo en programación?

¿Por qué las funciones recursivas son tan difíciles de entender?

¿Cuáles son las consideraciones más importantes para convertir un algoritmo en codificación?

¿Cuál es el algoritmo o algún factor relevante de la clasificación de Google Play?

¿Qué tan rápido irá un bote de semi desplazamiento de 24.5 m LWL x 6.4 m con una viga de 80 t con 1200 hp? ¿Tiene actualmente 2700 hp y pesa 85 t y va a 34 kts?