albeXL's blog

By albeXL, history, 4 weeks ago, In English

Have you ever wondered what's the fastest way to land a programming job in the modern-day software engineering industry?

Back in 2020, I did too. I had just recently graduated from university and was eager to make some money from all the "useful" skills I had learned over the past five years. My primary skillset revolved around solid knowledge of algorithm design and thousands of hours of coding in C++.

None of that got me my first job.

Instead, doubling down on learning Python allowed me to land a Backend Developer position after just one month of trying, and to this day, has gotten me into all my positions as a software engineer.

  • Python is easy to learn.

  • Python is extremely versatile.

  • Python is the most popular programming language in the world.

If you want to learn how to secure a position more successfully in the software industry, let me save you some time and give you the reasons why learning Python is the correct choice.

Reason #1: Python is easy to learn.

First things first, I knew barely any Python when I started job-hunting for the first time in my life.

I have to admit that I panicked when one of my friends offered to help me get a job as a Backend Developer using Django Rest Framework. I got home that day and started devouring the framework's documentation and creating my first toy server apps. It took me only two weeks to feel comfortable enough to call my friend and say I was up for that challenge.

I worked for that company for over 18 months before I finally decided to go in pursuit of other adventures.

Reason #2: Python is extremely versatile.

In 2021, while working my first job, another company approached me with an offer.

They wanted me to join their team and help them create geospatial algorithms to improve the performance of one of their developing apps. If this sounds scary and advanced, it is because it was. However, because the project was written in Python, all the libraries I needed to do the job were exquisitely well-documented, significantly lowering the entry barrier for me.

After a few weeks of getting familiar with the new skill set, I was working two jobs, getting two salaries, and coding in the same language.

Reason #3: Python is the most popular programming language in the world.

In 2022, I was contacted by a Swedish company and started an interview process to join their team.

After two successful interviews, during which I got to know some of the company's members, came the technical interview. They sent me a project so I could get familiar with it for a week, and then we had a live coding session where we simulated adding new features to the project. I was responsible for doing all the coding, and they could provide me with some help if needed.

The project was written in Python, and I could finish the technical interview with an extra 30 minutes to spare.

To this day, I still code in Python.

Two years later, I live in Sweden and have switched companies twice, always looking for a project where Python is the main programming language.

I have been a backend developer, a geospatial data scientist, and a DevOps engineer and never had to code in a different language.

Python is easy to learn, has many use cases, and is in high demand.

It should feel natural to want to learn it.

PS…If you are a software engineer trying to improve your career by focusing on your work, health, and relationships, then Algorithmically Speaking is where you hop on (so that you don’t get left behind):

  • Full access to all subscriber-only posts and the entire archive (I send 4 paid articles each month).

  • Instant access to the private community chat on Substack (AMA sessions and behind-the-scenes).

  • Priority on publishing guest posts on this newsletter (averaging 16k views a month).

Plus, you will never miss out on any new framework or resources we create.

Subscribe here: https://albexl.substack.com/subscribe

Full text and comments »

  • Vote: I like it
  • -29
  • Vote: I do not like it

By albeXL, history, 7 weeks ago, In English

I have teamed up with Jesús Manuel López Ponce, a former competitive programmer, for a series of posts about the intricacies of C++.

In this first edition, we discuss the simplest change that you can make to your code to improve its performance significantly.

Give it a read and share to help someone learn something today.

If you want to share your experiences with competitive programming, software engineering, or anything similar to an audience of 2300+ subscribers, please reach out. I'll be more than happy to collaborate with you.

Full text and comments »

  • Vote: I like it
  • -9
  • Vote: I do not like it

By albeXL, history, 7 weeks ago, In English

Hello there,

As some might know, I am a double ICPC World Finalist and Computer Scientist. I compiled a collection of graph theory problems to help you become more proficient in Bipartite Graphs, Functional Graphs, and Eulerian Paths.

This is a comprehensive list of 15 problems of medium to hard difficulty, with all the reasoning and formal proofs needed to solve them. It goes deeper than the usual experience of solving problems in competitive programming, where the formal aspect is usually overlooked.

The problems are taken from:

  • Codeforces

  • AtCoder

  • Andrew Stankevich Contests

  • ICPC World Finals

This book is for you if you are up for a challenge and willing to allocate time to solving these 15 problems. The ideas exposed here are not only challenging but also some of the most beautiful ones I was exposed to during my competitive programming years.

This book is also for you if you are a complete beginner in graph theory. It contains an introductory section with all the basic knowledge needed to understand the presented problems.

Also, the book is not free. This is why:

  • It takes time and effort to create a product with this depth.

  • You will use the book best if you have already paid. I've seen this often where people don't do what they should because they don't have something to hold them accountable. If you are willing to pay money, you will be willing to learn from the book.

By purchasing this product, you will gain access to the current draft and receive all future updates for free, ensuring that you stay ahead of the curve.

Take a look here: https://albegr.gumroad.com/l/competitive-programmer-graphs-handbook

Full text and comments »

  • Vote: I like it
  • -17
  • Vote: I do not like it

By albeXL, history, 2 months ago, In English

Throughout my competitive programming years, I developed valuable skills that I still use in my daily work as a software engineer. Here are some of the most useful. Please share yours in the comments.

Full text and comments »

  • Vote: I like it
  • +1
  • Vote: I do not like it

By albeXL, history, 2 months ago, In English

Hello there. My name is Alberto. I'm a two-time ICPC World Finalist.

I come from Cuba, where I did my Master's Degree in Computer Science, and I live in Sweden after getting hired by a Software Development company based in Gothenburg.

I want to emphasize the transformative power of the skills I learned during my competitive programming years. They were instrumental in securing job offers and acing technical interviews. From solving complex algorithmic problems to developing excellent communication and collaboration skills, these abilities have significantly changed my life and that of my family. They can do the same for you.

Today, I want to help you make that quality jump that can secure you a position in a decent job where you feel appreciated and can make good use of your skills. So far, I have shared some of my knowledge through my newsletter posts and my graph theory book. But I'm aiming to provide a more personal experience for you.

If you want to level up and learn from my experience as a former competitive programmer and current software developer working in the automotive industry for Volvo Cars, please reach out.

The best way to do so is to contact me on LinkedIn.

Have a great day!

Full text and comments »

  • Vote: I like it
  • +9
  • Vote: I do not like it

By albeXL, history, 2 months ago, In English

Over the years, I have been deeply involved in competitive programming, and I can confidently say that adopting a competitive mindset can lead to significant personal growth and numerous benefits when approached with the right perspective.

Today, I'd like to discuss three main aspects to consider if you're interested in incorporating more competition into your life as a means of making progress (whatever that may mean to you).

These are:

  • Recognizing that competition should be against yourself, not against others.

  • Understanding that competition brings more joy and generates more value when done as part of a team.

  • Making use of the fact that competition has two modes: the practice mode, where you strive for perfection, and the performance mode, where you execute.

If you're interested in delving deeper into these topics, I've written an article that explores them further. You can read it here.

Full text and comments »

  • Vote: I like it
  • -17
  • Vote: I do not like it

By albeXL, history, 4 months ago, In English

Recently, I found some of the most interesting problems I've solved in a long time. I wrote a post sharing my solutions. Please take a look here.

The problem is this one. In case you want to give it a try before reading my solution.

I strongly suggest you try this problem. Let me know how it goes.

Have a great day,

Alberto.

Full text and comments »

  • Vote: I like it
  • 0
  • Vote: I do not like it

By albeXL, history, 4 months ago, In English

I write weekly posts on computer science topics on my blog. Currently, I'm looking for collaborators who want to share their own take on any issue related to algorithms, data structures, software development, artificial intelligence, etc.

If you want to take a look at an example post to get a more grounded feeling of what this blog is about, please do so here:

If anything of the above sounds enticing, please reach out.

Update: Thanks for reaching out. To collect all your proposals in one source, please contact me at albexl@substack.com.

Have a great day,

Alberto

Full text and comments »

  • Vote: I like it
  • +7
  • Vote: I do not like it

By albeXL, history, 4 months ago, In English

Would you like to know what Uber, Google Maps, and your favorite airline have in common?

They all know how to solve the Connectivity Problem.

This post is the third (and last) of the introductory series in my upcoming book, The Competitive Programmer Graphs Handbook.

Take a look at the post to understand the foundations of graph traversals and connected components before we dive into more complex topics in future editions.

Enjoy.

https://albexl.substack.com/p/the-connectivity-problem

Full text and comments »

  • Vote: I like it
  • +5
  • Vote: I do not like it

By albeXL, history, 4 months ago, In English

My upcoming book covers three major topics in graph theory: bipartite graphs, functional graphs, and Euler paths.

For you to fully understand those topics, we need to cover some basics first. Here is an article reflecting some of the content I shared in the Fundamental Definitions chapter of the book.

If you find this post beneficial, please consider sharing it with your network. Together, we can expand our knowledge and strengthen our community.

Have a great day,

Alberto

Full text and comments »

  • Vote: I like it
  • +10
  • Vote: I do not like it

By albeXL, history, 4 months ago, In English

Hello there!

The Competitive Programmer Graphs Handbook has been updated since its announcement post.

Getting early access to the book is a unique opportunity that provides you with a set of exclusive benefits:

  • Lifetime access to all the updates.
  • Fully functional implementations of all the proposed problems.
  • A private Discord channel available exclusively for early-access purchasers. Here, you can ask questions about the book, get help with your assignments, and share your feedback. It's an excellent opportunity to interact with other readers and the author (me), enhancing your learning experience.

Read all the details in the announcement post.

Full text and comments »

  • Vote: I like it
  • -1
  • Vote: I do not like it

By albeXL, history, 4 months ago, In English

I've just penned a post on Mathematical Induction, focusing on its practical application in graph theory to prove theorems and propositions, making it more than just a theoretical concept.

In this post, I'll introduce a fundamental proposition of graph theory and guide you through its proof. Rest assured, the content is designed to be easily understood by all, regardless of your experience in proving theorems in mathematics.

Whether you are a math connoisseur or a total newb to the field, I think you will benefit tremendously from today’s discussion. This example shows why people like me invest a considerable part of their lives diving deeper and deeper into science, specifically looking at the intersection of math and computer science and how these principles can be applied in real-world scenarios.

If you're interested in delving deeper, you can find the full post here. I'm eager to hear your thoughts on this topic. Thank you for your time and interest.

Full text and comments »

  • Vote: I like it
  • +16
  • Vote: I do not like it

By albeXL, history, 4 months ago, In English

Over a year ago, I created a blog about algorithms, covering data structures, graphs, and dynamic programming, to get people interested in Computer Science and Software Engineering. With 1300+ subscribers, 1700+ followers on the Substack app, and 36 articles later, I decided to share it with the Codeforces community, where I honed my problem-solving skills. This platform certainly played a fundamental part in my Competitive Programming journey, leading to my participation in two ICPC World Finals (Porto 2019, Moscow 2020), where I achieved decent results.

This post is a call for readers and collaborators. If you share a passion for algorithms, problem-solving, crafting software, or even more theoretical and philosophical topics in Computer Science, I invite you to join me on this journey. My blog covers a wide range of topics, from data structures and graphs to dynamic programming, and I'm open to exploring new areas based on your interests. I want to share this journey with you, who were my rivals, friends, and family during my Competitive Programming years.

If any of the above resonates with you, please look at the blog and let me know. Please share your feedback in the comments below, and let me know if there is any particular topic you would like me to cover in detail or that you would like us to collaborate on.

Thank you for your support and for being part of this journey! I am truly excited about the potential collaborations and your valuable feedback. I am excited to work together in the future. Have a great day!

Alberto

Full text and comments »

  • Vote: I like it
  • +2
  • Vote: I do not like it

By albeXL, history, 4 months ago, In English

Hey everyone, I'm thrilled to share with you my upcoming book on graph theory! As a former competitive programmer, I have found graph theory to be one of my favorite topics. I've curated a collection of problems to captivate you and help you dive into this fascinating subject.

By publishing this book publicly and updating it based on your early feedback, I'm offering you a unique opportunity to be part of the entire process. Your support will give you early access to the ebook at a discounted price, lifetime access to all versions and future editions, and a chance to shape the evolution of this book. Let's embark on this exciting journey into graph theory together! For more details, check out the post.

Update. Here is the list of the topics published so far.

Update #2: Here are the articles covering some of the topics I am writing about in the book, in case you want to have a feel of what the book is about in a more grounded fashion:

Full text and comments »

  • Vote: I like it
  • +31
  • Vote: I do not like it

By albeXL, history, 3 years ago, In English

I recently ended up my career as an eligible ICPC contestant. I realized that I have participated in a lot of codeforces's Gym contests in order to train for ICPC contests.

At the beginning of training in the Gym, neither me or my teammates were able to see the submissions for problems we hadn't solve yet. I remember it was difficult to find editorials for some of the contests present in the Gym also. So, here is a repository (https://github.com/albexl/codeforces-gym-submissions) with all the contests that I (together with my teammates) participated in.

For those who want to consult some solution and still have no gym privileges feel free to use it.

I suppose there should be other ways to see submissions from the Gym. But I'm happy that I can, at least, give one extra alternative.

Full text and comments »

  • Vote: I like it
  • +46
  • Vote: I do not like it

By albeXL, history, 6 years ago, In English

Where can I find problems related to finding the minimum enclosing circle of a set of points? Thanks in advance

Full text and comments »

  • Vote: I like it
  • 0
  • Vote: I do not like it

By albeXL, history, 7 years ago, In English

Can someone help me solve this problem? Given N <= 16 strings I need to find the shortest(in length) string that contains all N strings as a substring, in case of a tie I need to find the smallest one in lexicographic order. Thanks in advance

Full text and comments »

  • Vote: I like it
  • +8
  • Vote: I do not like it