Plataforma de desarrolladores/programadores junior

¿Qué tengo que aprender para llegar a trabajar de X?

Cuando tengas claro que es la X busca tu roadmap aquí y empieza en ello https://roadmap.sh. No es obligatorio ni recomendable acabarlo todo antes de empezar a buscar, pero ya sabes cuales son las cosas que se te suele pedir.

¿Algún recurso para empezar?

desu

#4739 Entra en cualquiera, lo único que vas a aprender son malas practicas, sigue formándote por tu cuenta y cambia a producto con la experiencia.


Yo ahora tengo una entrevista, estoy tenso : - ( a ver que tal me va.

1 respuesta
pantocreitor

#4739 lo de siempre (puedes ver mensajes más atrás): las cárnicas son una lotería, sea cual sea te puede salir bien o mal.
Si eres competente te podrás buscar un curro mejor en poco tiempo y si no lo eres tardarás más.

1 respuesta
Petricor
#4741desu:

cambia a producto con la experiencia

¿a qué te refieres aquí?

La cosa, es que 2 de esas me lo vendieron tan bien, que rechacé en su momento una oferta que ya tenía, porque pensaba que iba a entrar en ésas en cuestión de días, y al final sigo esperando a que me encuentren proyecto (de casualidad me han encontrado uno ahora y tengo que hacer entrevista).

Y la otra, la conocí hace unos días atrás y el stack me interesa muchísimo, porque además usan un framework nuevo.

#4741desu:

Yo ahora tengo una entrevista, estoy tenso : - ( a ver que tal me va.

Ánimo y mucha suerte. Yo ayer tuve una y estuve tan tenso, que al acabar la entrevista me dio un bajonazo de energía que tuve que echarme siesta. Y tampoco dormí demasiado en la noche.

#4742 ya... esa es la cosa. Si mi primera empresa fue una cárnica, y está bien para cuando ya tienes X experiencia te contraten por una buena cantidad para que te quedes fijo, pero de inicio es una mierda.

¿Son las 3 cárnicas?

1 respuesta
pantocreitor

#4743 no está bien para cuando tienes xoeriencia quedarte porque no pagan bien, la idea es ir cogiendo experiencia y escalando en cárnicas y cuando seas bueno de verdad pasar a producto.

A tu pregunta sobre producto, pues son empresas que tienen su propio producto y se lo venden a clientes, por lo que se trabaja en algo propio, no en proyectos externalizados.

Estas empresas suelen pagar mejor, sobre todo si son extranjeras (aquí ya empiezas a cobrar por encima de 50k “fácilmente”, y llegar a 70k o así aunque no es fácil si es factible, cosa que en cárnicas no vas a ver)

1 respuesta
Petricor
#4744pantocreitor:

A tu pregunta sobre producto, pues son empresas que tienen su propio producto y se lo venden a clientes, por lo que se trabaja en algo propio, no en proyectos externalizados.

ah vale, en ese caso he estado en 2 empresas así, y sí, pagan bien

#4744pantocreitor:

no está bien para cuando tienes xoeriencia quedarte porque no pagan bien, la idea es ir cogiendo experiencia y escalando en cárnicas y cuando seas bueno de verdad pasar a producto.

bueno... yo hablo de lo que he visto estando en una, que se han traído gente de otras empresas y que, en esos casos, ya te pagan mucho más, aunque sinceramente no sé cuánto más es, eso es verdad, pero vamos, si me van a pagar lo que les he pedido, está rondando lo que me han pagado en las otras (un poco menos, para atraer su interés a mí)

1 respuesta
eryane

#4745 te cambias por menos dinero?

1 respuesta
Petricor

#4746 no, es que lamentablemente me quedé hace poco en paro, por eso. Si pido lo que estaba ganando (hasta +7k) entonces pasan directamente. Ha sido pedir 5k menos y les ha costado continuar con algunas entrevistas... xd

desu

Me ha ido bien la entrevista, me queda una.

2 1 respuesta
privet

#4748 Para ? Ánimo pajeet 💪

1 respuesta
desu

#4749 Si me sale ya compartiré detalles.

Rezo para que la parte técnica haya terminado... La suerte esta echada. Y que la fortuna nos sonría.

5
DaLmAu

Es posible que no sea el mejor sitio para preguntar esto pero como hay bastante gente por aquí que ha hecho DAW y ha terminado el grado hace poco o lo esta cursando actualmente, ¿me podriais recomendar algun proyecto final de grado?

Estoy mirando en el trabajo (nada que ver con DAW, trabajo en rrhh de un hospital) a ver si puedo crear alguna app que pueda ayudar pero al ser una empresa pública está todo complicado.

Me gustaría un proyecto que como MVP fuera suficiente para DAW y luego poder seguir con el desarrollo de más funcionalidades pero creo que es fantasear mucho. Si tenes alguna idea de alguna web/app o proyecto o algo que pueda estar bien estaría encantado de leerlo.

Gracias! :D

desu

Como curiosidad una prueba que hice ayer, estuve casi 3h de entrevistas, era refactorizar codigo y arreglar cosas.

Me dieron un codigo que tenia entre otras cosas un strategy pattern y dije, "pff esto es una mierda xq X,Y,Z, luego lo quito." Y el entrevistador: "si claro es la idea jajaja".

Entrevista junior: haz un patron de diseño
Entrevista senior: quita el patron de diseño

jajaj @Canary_r00lz si que es importante saberse los patrones... algunos son buenos, otros son malos. asi que hay que hacer los buenos, y evitar los malos. y sobretodo hay que entender como implementarlos.

Otro patron que me salió era que el código estaba en paralelo y tenia un sistema con canales, y dije de aplicar un worker pool de X manera, que eso era mi recomendación siempre para empezar y dejarse de cosas raras. el codgio estaba haciendo el paralelismo con alguna cosa rara de buffered channels y no era un worker pool, sino que era 1:1 y bloqueaba el main además...

Otro patron, buena practica, regla que me salio que se os tiene que quedar a fuego, que al entrevistador le gusto mucho es. Regla de oro: una interface con 1 metodo, puede ser una funcion. Esto es una regla / patron de la programación funcional, si tienes una interface asi puedes en su lugar pasarle una lambda y se usa mucho en todos los lenguajes python, js, java, c#... No siempre se cumple y a veces te interesa tener la interface, por ejemplo un Reader/Writer, pero por lo general es un patron que hay que saber.

Os dejo unos codigo snippet en python de ejemplo

strategy pattern enum
strategy con interface de 1 metodo
strategy con 1 lambda en lugar de 1 interface y clases

y bueno, la respuesta buena no os la digo, os la dejo para deberes, cual es la mejor implementación del patron de diseño "strategy" para resolver esto. pero bueno, los ejemplos que he puesto os deberían dar una pista.

1 1 respuesta
Ponx

#4752
Y qué opinas de la solución simple?

spoiler
2 respuestas
desu

#4753 bueno lo mismo q la lambda, no veo diferencia conceptual, y no en todos los lenguajes habituales puedes hacer eso fácilmente.

no me parece muy bueno ni este ni la lambda, el strategy ademas se debia usar en un entorno multi-thread y con async. paso de probarlo con python pero estoy seguro q puedo forzar un par de bugs.

hay una solución mas simple y q no tendra bugs.

NocAB

Hoy he tenido la segunda entrevista de un proceso que me ilusionaba pero he salido bastante decepcionado, no me ha gustado cómo lo he hecho ni cómo me han hecho la entrevista, me he quedado con serias dudas de que el día a día en esta empresa me pudiera gustar y no consigo entender que me haga la entrevista una persona que lleva tan solo 3 meses trabajando ahí.

#4718 te contesto desde mi experiencia y lo que he visto y leído porque es verdad que estas funciones a veces pueden no estar claramente definidas y solaparse.

Análisis de datos y ciencia de datos son las que más tienden a solaparse porque he visto ofertas para analista de datos con unos requisitos que parecían más para científico de datos y ofertas para científico de datos para el que pedían excel así que parecía más para hacer análisis bastante básicos.

Un analista de datos analiza lo que ha ocurrido consiguiendo explicarlo y dar respuesta.

Un científico de datos hace análisis predictivos, es decir, no se queda en analizar lo ya sucedido sino que es capaz de prever lo que ocurrirá. Normalmente debería tener bastantes conocimientos estadísticos y matemáticos, aplicar metodología científica en la que plantea hipótesis que luego valida o refuta, trabajar con algoritmos de Mahine Learning y de Deep Learning. Aunque si el puesto se centra más en el ML sería más bien un ML Engineer y si trabaja bastante con Deep Learning o LLMs probablemente digan que es un AI Engineer. La ciencia de datos es el campo más amplio porque muchas veces engloba a todos estos otros.

Un ingeniero de datos hace pipelines, las mantiene, monitoriza y cuida de la calidad de los datos. Es cubre la mayor parte del ciclo de vida de los datos (si no todo) desde la generación de los datos hasta sus conclusiones finales o representación en dashboards o informes.

Y faltan otros puestos relacionados con los datos como Data Ops (DevOps aplicado a datos), BI analyst...

Estoy seguro de que habrá gente con mucha más experiencia y una mejor visión de conjunto que podrán contestar mejor a esto. El primero que me viene a la cabeza es el mentor @richmonde y para profundizar en ciencia de datos @hda

2 2 respuestas
richmonde

#4755 Me pillas justo haciendo un break ahora xD

Le contestaré super rápido, porque tengo entre manos una cosa urgente:

#4718laZAr0:

¿y qué diferencia hay entre análisis de datos, ciencia de datos e ingeniería de datos? Hablo desde el total desconocimiento.

Te las listo por orden en una organización "madura". Suelen ser 3 personas/roles diferentes, pero en empresas pequeñas, startups, o trabajando sol@, puedes ser una, varias, o todas a la vez. Listadas por orden... seria tal que así:

  1. Ingeniería de Datos: Recoges los datos ya sea de tu producto, api, 3rd partners, o input manual, de todas las fuentes de datos posibles para documentar datos cuantitativos y cualitattivos de tu producto/servicio. Procesas dichos datos para que se puedan consumir de manera limpia y organizada (o se espera eso). Procesos ETL (extract-transform-load) o ELT (extract-load-transform) (depende mucho de la tecnologia, volumen, y hardware). El resultado de esto, pueden ser tablas relacionales o no relacionales, columnares, etc... y posiblemente reports internos corporativos (genericos).

  2. Analisis de Datos: Consume los datos previamente creados para atender a preguntas, solucion de problemas en relacion al negocio/producto, y usa desde SQL, Python, R, Java, etc... una plétora de lenguajes, para responder a dichas preguntas, y hacer dashboards mucho mas funcionales.

  3. Ciencia de Datos: Además de lo anterior del analista de datos, se espera un conocimiento superior y no solo quedarse en el analisis y report, sino que promueve, investiga y prepara escenarios donde como ese producto puede cambiar, experimentar con AB, realizar proyecciones de como funcionarían los experimentos, explorar nuevas formas de mejorar el producto mirando datos del Data Engineer, y en esencia, una especie de R&D con Data.

Obviamente, es una respuesta muy muy general, ya que dentro de la Ciencia de Datos hay muchos, muchisimos roles mucho mas especializados en machine learning, llm, nn, etc...

Supongo que @hda puede darte una opinion más centrada en la parte de DS en R&D, yo mucho mas encarada en ámbito comercial/produccion.

2 1 respuesta
hda

#4755 creo que lo has dejado muy claro, y #4756 también. Yo justo ahora mismo me he definido hacia mlops y ml engineer. Ya venía tocando mucho r&d con ml en mi recorrido como ds, así que es un salto muy natural.

Por lo que veo en el nuevo curro, no descarto ir acercándome a quant ai/ml. Pero por lo pronto tengo un año de camino de LLM engineer.

3 1 respuesta
desu
#4757hda:

quant ai/ml

Lo dices como si entrar en el campo mas dificil y competitivo, con mayor exigencia del planeta fuera facil.

Que opciones tu ves de quant? En que empresas?

edit: de ese post solo 2,3 y 4 son quant.

voonded

hola a todo el mundo, el problema que tengo no se si será muy básico pero yo al menos no he encontrado ninguna solución por Google, a ver si alguien me puede ayudar.

el caso es que en septiembre empecé DAW y para la asignatura de Lenguaje de marcas nos han mandado para este trimestre hacer una web con HTML y CSS, mi problema es que cuando inicio la pagina desde el Live Server de VSCode la pagina se ve perfectamente, pero cuando abro el index.html con Google Chrome las imágenes no se ven, creo que el problema no es de mi pc, ya que en el ordenador de clase también me da el mismo problema, pero sin embargo en otros ordenadores donde lo he probado a veces si funciona, el caso es que no tengo ni idea de como solucionarlo

3 respuestas
Konishi

#4759 abre hilo e incluye el HTML y la estructura de la carpeta donde está, sobretodo para ver donde están las imágenes

desu

#4759 abre la consola del navegador, busca como hacerlo en chrome. te dara un error en rojo diciendote que no encuentra la imagen. ese error lo buscas en google y te dira que ocurre.

se me ocurre que estas usando paths relativos en lugar de absolutos. "../imagenes/foto.jpg" vs "src/imagenes/foto.jpg" o como lo tengas.

1 respuesta
Don_Correcto

#4759 pienso lo mismo que #4761, así con la descripción que has dado diría que el problema son las rutas que le has puesto a las imágenes
abre el navegador y F12 a ver qué errores te da

desu

#4748 Mala suerte, no han levantado ronda este batch: https://www.mediavida.com/foro/dev/feda-dev-no-javascript-allowed-643822/2011#60330 Que penita siempre he querido mudarme a sillicon valley una temporada como en la serie.

#4753 esta fue mi prueba en rust si quieres comparar python vs rust jaja https://gist.github.com/vrnvu/872f9ff01505a691a2516b9f773f4f59 he simplificado el codigo para solo sea el strategy con la lambda que comentamos.

Como ves la solución no es "simple" aunque en python sean 4 lineas y aparentemente si lo parezca. Que por cierto, tu propuesta esta casi bien, solo tiene un problemita, pero casi lo tienes.

La prueba era esto + tener un worker pool. Te llegaban jobs al hilo principal y debias spawnear tareas, estas tareas tenían una strategy y revolvían el problema, lo publicaban a un validador, el validador comprobaba el resultado.

Cuando os hagan pruebas las hagais bien o mal, siempre pensad en hacerlas en casa... aunque sea una version mas facil para practicar y reforzar. Darles un par de vueltas. Yo justo habia hecho un worker pool parecido hace 2 meses en otro proyecto asi que supe ver como hacerlo rapido y ahora lo repasare el finde.

1 1 respuesta
Ponx

#4763 Vale creo que entendido, por lo que veo solo faltaba que cada strategy fuera asíncrona. En C# que domino más se puede hacer con la misma sintaxis que propuse para python(con async esta vez)

spoiler
1 respuesta
desu

#4764 Ese codigo es simple porque en tiempo de compilacion le estas asignando estaticamente a cada request una strategy, la idea es hacerlo en runtime. Cuando no sabes que estrategia debera hacer cada petición hasta que no lees del entorno, de argv del programa, de network...

Que para eso precisamente sirve el patron de strategy, cuando tu en tiempo de compilacion no sabes que vas a ejecutar sino que depende de cosas que aun no sabes.

No tienes

    var r1 = new Request(1, AggressiveStrategy);

Sino que tienes

 var dynamic_strategy = strategy_from_env() // strategy_from_network()
 var r1 = new Request(1, dynamic_strategy)

Y tu codigo lo puedo romper si en lugar de request id tienes algo mas complejo:

var request = Request { data: some_data() } 
var moved_data = &request.data;
var r1 = new Request(request, AggresievStrategy);
r1.Run()
... cosas
moved_data = "patapum pum pum";
var result_r1 = r1.await(); // ya no es lo que esperabas xq alguien ha modificado data

Habria que ver como el compilador de C# se queja de estas cosas si es que lo hace o necesitas un linter/static analyser.

Pero si, la idea es reducir los problemas de runtime programando de manera que sea clara y que nunca puedan existir esos problemas.

C# tiene buen soporte para tasks y cosas asyncronas. En Java o Python seria mas dificil y tendrias mas bugs.