My Learning list for 2023: Plan and Resources 📑
Tags: career, community, books
Published: 2023-01-22 04:59:57

> **Hi, this post was originally posted at [DaniDiazTech.com](https://danidiaztech.com/learning-list-2023/)**

It's January 21st, 2023. The AI apocalypse has just started, and the
transition to a robot-dominated society is upcoming. We've to get prepared.

Jokes aside, the only way to not be replaced by a bot now, is to keep
learning, be as creative as possible, and attempt to be a good and healthy human being.

Here's all the stuff I'll do my best to learn this year.

## 1. Hardcore Problem Solving 📚

I've struggled to level up my rating on [Codeforces](https://codeforces.com/profile/DaniDiazTech).
But as some friends in my university's CP group advised me since I started,
the key thing is to learn rather than to grind some insignificant rating.


![Perhpaps, not so insignificant?](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/g8wynsf4g7k7s2aebe2w.jpg)

This year, I'll solve all the core problems available on [CSES](https://cses.fi/problemset/). I'm halfway
through the dynamic programming section. This involves learning graph algorithms, range queries (mainly segment tree problems),

I've found some really cool resources on CP:

- [Competitive Programmer's handbook](https://cses.fi/book/book.pdf) by Antii Laaksonen (also creator of the CSES problem set).
- [Andres Mejia](https://www.youtube.com/@andresmejia1418) (for Spanish speakers),
[Colin Galen](https://www.youtube.com/@ColinGalen), and [Errichto](https://www.youtube.com/@Errichto) YouTube channels.
- The [USACO guide](https://usaco.guide/) is the best CP roadmap I've found.
- Mind-blowing book [Competitive Programming 3](https://amzn.to/3GW3YEw) by Steven Halim (paid book). In my opinion, much harder than
the handbook.

The whole idea of this madness is to classify and perform well in the Latin ICPC Latin America contest.

## 2. Calculus and Linear Algebra 🧮

Really? Calculus in the 21st century?

Yeah! Aside from the fact that I must master (differential, integral, and vector) calculus to thrive in my computer engineering degree,
I think calculus is one of the most creative things you can learn.

From an engineering perspective, calculus and linear algebra help us to solve many problems and it's the foundation of machine learning,
which is something I've been recently interested in.

I also believe it can be helpful when solving competitive programming problems. Not particularly applying an integration method,
but in being fast in math reasoning, and intuition.

For now, I'll go with the only way of learning I've found effective: Doing loads of exercises and
continuously learning from the mistakes I make. However, I know for a fact that math is also about demonstrations,
and theoretically understanding hard concepts.

I'll happily read [Calculus: Early Transcendentals](https://amzn.to/3kn11VE) by James Stewart. I bought it a while ago
and only made it through a couple of chapters. Also, learning Numpy or SciPy would be a cool way to improve both,
my theoretical and practical knowledge of linear algebra.

## 3. Astro Framework 🚀

I built my [entire site](https://danidiaztech.com/) with [Astro](https://astro.build/) — and some React components.
I loved the whole development process, and they have one of the best documentation I've ever seen.
On top of that, server-side rendering improves the performance in absurd ways, just see the
Lighthouse score of my site.


![Lighthouse score](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/mxlccp2zdzr81in4f2yd.jpg)

I am very excited about this framework. As of the time of this writing,
The Astro devs have just announced the [Astro 2.0 beta release](https://github.com/withastro/astro/releases/tag/astro%402.0.0-beta.3)!

## 4. FastAPI and React ⚡

FastAPI has recently [surpassed Django in monthly downloads](https://twitter.com/tiangolo/status/1602397568947916815). I know this is not an
accurate stat to measure the popularity of a framework, but I will give FastAPI a try.

Because FastAPI is only useful when building APIs (shocking, right?),
my UI framework of choice is React. I think React is going nowhere.

These two will be my main technologies of choice when building
web applications for this year.

There are already some good tutorials combining FastAPI and React:

- SPA with FastAPI and React on [testdriven.io](https://testdriven.io/blog/fastapi-react/).
- freeCodeCamp's courses [Microservices with FastAPI](https://www.youtube.com/watch?v=Cy9fAvsXGZA) (the author uses both React and FastAPI),
[FastAPI Course for Beginners](https://www.youtube.com/watch?v=tLKKmouUams&t=1s), and [Event-Driven Architecture with React and FastAPI](https://www.youtube.com/watch?v=NVvIpqmf_Xc).
- The FastAPI's documentation is pretty good (thanks for everything [tiangolo](https://twitter.com/tiangolo)).

I know, this isn't a complete stack, but I'll figure out things as I
build projects — which I think it's the best way to learn.

## Wrapping up 🧐

I have only 344 days to learn all the stuff above, so
I only included the core knowledge, that I want to
learn badly.

Do you have any set of skills you want
to learn this year? Share it in the comments below!

Or [visit my site](https://danidiaztech.com/)!