
vudduu
@vudduu
Actualmente trabajo como Ingeniero de Software y Community Leader parte de la red de profesionales TOPTAL.
Publicados por vudduu
-
Free Books of Springer
Springer has released a bunch of books for free
Free Books of Springer PDFs (includes Skienna's The algorithm design manual)
-
Samsung Hiring Challenge
Contest Details:
Contest window opens at: 13th September 2019, 19:00 hrs IST
Contest window closes at: 23rd September 2019, 19:00 hrs IST
Duration: 3 hours -
RE: Toptal Interview
Teoría recomendada para aprobar una entrevista de algoritmos (Coding Interview)
- Estructura de Datos
1.1. Arrays (filter, easy sort, mutations)
1.2. Strings (split, substring, parse, etc.)
1.3 Union-Find Disjoint Sets
1.4 Conjuntos (sets, objects in javascript)
1.5 Matrix Distances (Euclidean Distance)
1.6 Binary Tree - Busquedas (y Ordenamiento)
2.1 Busqueda Binaria
2.2 Busqueda Ternaria
2.3 Sorts
2.4 Meet in the middle - Paradigmas de Programacion
3.1 Brute Force
3.2 Recursive Complete Search
3.3 Greedy
3.4 Divide and Conquer - Programacion Dinamica
4.1 Memoization
4.2 Knuth's word wrapping algorithm
4.3 Longest Common Subsequence
4.4 Longest Increasing Subsequence - Grafos
5.1 Data Structure Graph
5.2 Depth First Search (DFS)
5.3 Breadth First Search (BFS)
5.4 Flood Fill
5.5 Kruskal
5.6 Shortest Paths (Dijkstra's algorithm, etc.) - Advanced
6.1 Matrix Exponentiation
6.2 Grafos
6.2.1 Bipartite Graphs
6.3 Estructura de Datos
6.3.1 Segment Tree
6.3.2 Binary Indexed Tree (BIT, Fenwick Tree)
- Estructura de Datos
-
Toptal Interview
Toptal se conoce por su top 3% de ingenieros el cual es obtenido a través de severos filtros y rigurosas entrevistas. Para esta te sugerimos prepararte por lo menos con 1 o 2 meses de anticipación en áreas comunes de entrevistas, ya sea saber explicar tus proyectos pasados hasta poder codificar algoritmos en tiempo real.
Prepara los siguientes puntos antes de tu entrevista.
- Ingles
- Algoritmos (nivel medium/hard)
- Base para un proyecto (backend and frontend faciles de usar)
1. Ingles
El consejo que les doy para aprender ingles de manera rapida y economica es seguir EngVid (https://www.engvid.com/) una pagina con varios canales en youtube donde explican muy bien gramática y pronunciación del inglés.
Una vez te sientas confiado no tengas miedo y contacta amigos que saben ingles para realizar charlas y entrevistas de simulacro, de esta forma ambos podran verse beneficiados frente a futuras entrevistas.
2. Algoritmos
Para Algoritmos te recomendamos leas CrackingTheCodingInterview, con este libro fácilmente podrás prepararte para resolver problemas utilizando tu código.
Es muy importante que durante tu entrenamiento utilices el lenguaje con el cual quieres postular y posteriormente trabajar, aunque esto no es obligatorio (ej: puedes resolver problemas en C++ y hacer tu proyecto en JavaScript) puede darte puntos decisivos en tu postulación.
Antes de postular asegurate de resolver y practicar con los exámenes (similares a los que encontrarás en las entrevistas) que prepare anteriormente:
http://leagueofcoders.org/topic/12/practicas-para-coding-interviewsAlgunos enlaces y videos recomendados
https://www.youtube.com/channel/UCxX9wt5FWQUAAz4UrysqK9A
https://www.youtube.com/channel/UC4xKdmAXFh4ACyhpiQ_3qBw
https://www.youtube.com/channel/UCOf7UPMHBjAavgD0Qw5q5ww
https://www.youtube.com/user/MIT/playlists3. Base para un proyecto
Es muy importante que tengas a la mano base para realizar un proyecto desde inicio a fin, en las entrevistas te dirán que programes un proyecto en la area que te estas postulando, donde se calificara tu código pero sobre todo la correcta implementación de todos los puntos/features deseados.
Para esto necesitas tener una base donde puedas avanzar rápido y que ya tenga un orden y estructura limpia y entendible para los entrevistadores.
Este proyecto necesita ser entregado funcionando por lo que también necesitas saber como ponerlo online, en otras palabras hacer un build completo y posterior deploy.
Si piensas entrar a trabajar como front-end puedes utilizar Firebase/Firestore para presentar tu proyecto final.
4. Una vez completes tu entrenamiento
Una vez culmines tu entrenamiento y te sientas listo para postular utiliza el siguiente enlace de invitación/recomendación para crear tu cuenta.
ENLACE INVITACIÓN PARA TOPTAL
Para cualquier consulta o duda contactame directamente:
email: vudduu@gmail.com
facebook: https://www.facebook.com/vudduu -
Codility - Rubidium 2018
At Deutsche Bank, we’re designing and building the digital bank of the future and you could help shape that. We’re looking for innovative thinkers and curious minds to transform our business through advanced applications, challenging programming projects and cutting-edge tech like AI and blockchain.
Contest Link: https://app.codility.com/programmers/challenges/rubidium2018/
-
React - Cross Platform
Una práctica que se vuelve común en nuestros días es que las aplicaciones puedan ser compatible con múltiples plataformas, es entonces donde teníamos dificultades para hacer funcionar nuestras aplicaciones diseñadas para la web (ReactDom) en dispositivos móviles por ejemplo (ReactNative).
Te presento un conjunto de pensamientos simples a la hora de desarrollar y de esta manera puedas reutilizar el código que tienes.
styled-components/primitives
Una muy buena práctica que comparten los devs de AirBnb es de no utilizar el abanico de componentes en react-native, en otras palabras intenta hacer todo con los siguientes componentes.
- Animated: Declarative animations.
- Image: A base component for Image rendering.
- StyleSheet: Styling the primitives.
- Text: A base component for Text rendering.
- Touchable: A base component for interaction.
- View: A base component for Layout.
Segun los desarrolladores que ya utilizan estas primitivas en sus proyectos, un 99% de los componentes necesarios para una aplicación funcional pueden ser totalmente completados con estos.
direct DOM manipulation
Siempre que hagas aplicaciones multiplataforma debes tener en cuenta no utilizar o manipular el DOM directamente, facil decir pero a veces complicado implementar.
En casos extremos donde estás obligado a utilizar el DOM puede que ayas considerado utilizar
!!window
condición que darátrue
en web y cuando utilices react-native darafalse
. En muchos casos puede ser la solución pero si tienes acceso a la configuración de tu proyecto intenta configurar una variable de entorno!!process.env.REACT_DOM
de esta forma toma la responsabilidad de tu código y no de la ausencia de la variablewindow
.Por último les dejo este video muy util y con buenos consejos y prácticas.
Video de Leland Richardson (AirBnb)
React as a Platform: A path towards a truly cross-platform UI - Leland RichardsonAPRENDAMOS DE LOS ERRORES DE OTROS !
-
React - Estructura de Archivos
A la hora de estructurar folders y archivos en tu proyecto seguro te haz preguntado que tan amigable es el nombre que escogiste y algunas veces te preguntaras si alguien que está entrando a tu proyecto podrá entender la estructura y encontrar las diferentes secciones de la aplicación.
https://reactjs.org/docs/faq-structure.html nos algunas pautas de como debemos organizarnos y al mismo tiempo si utilizamos create-react-app nos dara una estructura inicial que es muy común en los proyectos en React dando a todos los desarrolladores una fácil detección de ciertas areas de codigo.
A la hora de nombrar nuestras carpetas debemos considerar esta regla o al menos intentar nombrar nuestros archivos con una clara idea de lo que contienen eslint-plugin-filenames.
Ahora hablemos de LIFT una serie de buenas practicas a la hora de elegir nombres de archivos, carpetas y la estructura general de la applicacion.
- L — locating code is easy
- I — identify code at a glance
- F — flat structure as long as we can
- T — try to stay DRY
LIFT siempre debe estar en nuestro pensamiento a la hora de crear nuevos archivos y folders. Estas de acuerdo ?