LeetCode made building boring
Being hands-on is the best way for you to learn. Practice interesting programming challenges like building your own BitTorrent client, Redis, DNS server, and even SQLite from scratch on CodeCrafters.
Good engineers are never scared to compete
Most good engineers I met were highly competitive but in a good way. When they saw a better code, they absorbed it and used the pattern the next time in their code. When they heard someone talking about an interesting algorithm, they looked that up to understand it in detail.
Most people consider it jealousy, but this is a fuel that helps them get better than others. In most cases, they needed worthy opponents who pushed themselves beyond their limits and ensured that they not just met the bar but raised it entirely.
I have been fortunate to have some of them as my direct reports, and I had to ensure that they understand that competitive spirit is not about tearing down others, instead, it is about pushing yourself above them.
So, next time you see someone doing better than you, writing better code, learning something interesting, or working hard, take it as an external push to become better than them.
Make competition your constant drive to be better.
Also, remember a → b ≠ ~a → ~b
?? Video I posted this week
This week I posted How PostgreSQL parses the query and constructs the Parse Tree?
Spent some time this week going through the source code of PostgreSQL to understand its query parser. I compiled my learnings in a video along with a code walkthrough covering interesting internal details about what happens when a Postgres server receives a SQL query from the client, and how it parses the query to create the parse tree.
?? Paper I read this week
This week I spent reading Take Out the TraChe: Maximizing (Tra)nsactional Ca(che) Hit Rate
This weekend I am reading a paper that reimagined caching for transactional systems. The paper introduces a new metric - transactional hit rate - a measure of how effectively the cache reduces latency for entire transactions.
Their approach, DeToX, outperforms traditional methods even on real-world workloads and they do this by leveraging transactional dependencies to make smarter decisions about what to cache and evict.
领英推荐
You can download this and other papers I recommend from my papershelf.
LeetCode made building boring
Why most engineers today are not thrilled by building something ground up, like their databases, programming languages, game engines, etc?
Leaving aside people who are not interested (at all), I see people starting the projects, but giving up pretty soon as they hit their first roadblock. Remember, we can build anything if we persevere enough, but why are we not doing it then?
Building something takes consistent time and effort over a long period. But because we are getting wired with quick rewards, there is no fun in struggling and building.
Don't get me wrong, doing LeetCode-like questions is fun and has its perks, like, you do become great at problem-solving, writing efficient code, and using the right data structure and algorithms to solve a problem, but the quick feedback loop is kind of messing up with us.
Spending hours building something ground up is fun. Spending hours looking at a massive codebase to understand what that one piece of function is doing is fun. Spending hours building that one thing you always wanted to do is fun.
Once you are done with enough LeetCode, look beyond those 80/100 lines of code snippets and experience the joy of building something from the ground up. The struggle is real but worth it.
ps: I have built my database (dice - redis re-implementation in Go) and a programming language (Revine - visual language for kids). It took me 3-4 months each to build them, but the learnings I got were immense and something that made me a better engineer.
?? Interesting articles I read this week
I read a few engineering blogs almost every single day, and here are the three articles I would recommend you to read.
Thank you so much for reading this edition of the newsletter ?? If you found it interesting, you will also love my courses
Consultor Emprendimiento y Empresarial | Direccionamiento y Planeación Estratégica | Estructuración Organizacional | Administración y Gestión Productiva | Gestión de Costos y Presupuestos | Planes de Negocio |
10 个月Un interesante enfoque planteado en este artículo, con la descripción de un excelente aspecto de gran relevancia para seguir creciendo y avanzando en cualquiera sea su campo o disciplina de desempe?o. El estar en autoevaluación y búsqueda continúa de retos consigo mismo, con base a su cualificación y competencias planteándoselas en paralelo en su desempe?o y así estar superándose en nuevos proyectos y planteamientos. Vivir en esta permanente alerta a nuevos retos hará que este en continuo crecimiento, mejoramiento, fortalecimiento y pulimiento personal.?
Data | Software & Machine Learning Engineering | Kaggle Competitions Master
10 个月Wow! This block-: > Most people consider it jealousy, but this is a fuel that helps them get better than others. In most cases, they needed worthy opponents who pushed themselves beyond their limits and ensured that they not just met the bar but raised it entirely