/* Ok, I survived a pandemic, and got into my dream university. Let's set some learning goals for 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. 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.
This year, I’ll solve all the core problems available on CSES. 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 by Antii Laaksonen (also creator of the CSES problem set).
- Andres Mejia (for Spanish speakers), Colin Galen, and Errichto YouTube channels.
- The USACO guide is the best CP roadmap I’ve found.
- Mind-blowing book Competitive Programming 3 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 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 with Astro — 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.
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!
4. FastAPI and React ⚡
FastAPI has recently surpassed Django in monthly downloads. 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.
- freeCodeCamp’s courses Microservices with FastAPI (the author uses both React and FastAPI), FastAPI Course for Beginners, and Event-Driven Architecture with React and FastAPI.
- The FastAPI’s documentation is pretty good (thanks for everything 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!