Skip to content

Instantly share code, notes, and snippets.

@ayan-b
Last active January 20, 2021 20:56
Show Gist options
  • Save ayan-b/4e3227a09e8d5fae89b8453c6507b169 to your computer and use it in GitHub Desktop.
Save ayan-b/4e3227a09e8d5fae89b8453c6507b169 to your computer and use it in GitHub Desktop.
Modified FAQ

Frequently Asked Questions


1) Programming, YT channel

What is competitive programming (CP)?

Competitive programming, also called sports programming, is a mind sport (just like chess) about quickly solving programming/algorithmic problems. You need to come up with an efficient enough algorithm and then implement it in your language of choice. Some examples are solving Sudoku grid or maybe finding the shortest way to get from one city to the other. There is some input specified (like an array of size at most 500000) and your function should return or print the answer.

It’s a sport that some people are very passionate about and devote a lot of time for. Best competitive programmers are often good in maths, chess and board games - just analytical thinking in general.

Big competitions are organized or sponsored by companies that try to find and hire talented programmers. Since coding interviews are often about algorithms, a lot of people do some CP just to pass an interview. This creates demand and supply for CP but it will never be as popular as e-sports or standards sports like football because it isn't interesting to watch.

Read more about CP here.

Why two Youtube channels, Errichto and Errichto 2?

The first channel has short well-prepared educational videos for casual programmers. The second one has streams, problem solving, and is mainly for the competitive programming community. Not everybody would enjoy a 5-hour boring stream where I write editorials.

Computer configuration (OS, IDE, keyboard, etc.)

I mainly use Linux (Ubuntu) and sometimes Windows because it has better software for streaming. Geany is my favorite IDE (why not Vim? I don’t know how to use it). My setup is Blue Yeti microphone, camera Logitech C922, Wacom Intuos drawing tablet, Logitech UltraX Premium (old but amazing keyboard), M330 Silent Plus wireless mouse, and two iiyama ProLite XUB2492HSU-B1 monitors on a combined movable stand.

How to practice topic X? How to be good at competitive programming? How to train?

See "How to practice?" page, link.

What is your IDE setup / Geany setup?

See "Linux setup" page, link.

How can I support you / the channel / the stream? Do you accept donations?

Help me grow by telling your programmer friends about the channel. And you can give me suggestions for videos, streams or general ways to improve.

I don't need donations. Feel free to support a charity of your choice instead.

Social platforms? How can I contact you?

Youtube: https://www.youtube.com/errichto
Youtube 2: https://www.youtube.com/errichto2
Twitch: https://www.twitch.tv/errichto
Discord: https://discordapp.com/invite/UzaURu7
Facebook: https://www.facebook.com/errichto
Twitter: https://twitter.com/errichto (I don't reply to messages on Twitter, sorry about that)

What is your Git / Github repository?

https://github.com/Errichto/youtube

Why don't you record contest screencasts like Petr?

I'm not that good and my performance would tank if I did commentary in English during the contest. I would often be stuck for a long time. And I don't think it makes much sense to record anything without the commentary unless you are extremely good and it's just cool to watch it. I will keep making some problem-solving streams where I don't have time pressure, and let's leave screencasts to the very top competitors like Petr and Um_nik.

How much time do you spend on programming? How much should I practice?

If you are in school or university, it shouldn't be hard to find at least 10 hours per week to practice competitive programming. Perfectly, you should do 20 hours per week IMO. It's much harder when you have a job and/or a family. Then you are simply limited by your free time and that's fine - you don't have to hit some numbers. I currently spend a lot of time on competitive programming because it's my job, so maybe 30 hours a week, but I don't solve problems that much anymore. It used to be maybe 10 hours a week when I started.

What is Boring Programming Stream (BPS)?

My not-well-organized streams where I do random things, including reading articles on algorithms and also maintaining my Youtube channel, e.g. answering comments. Basically, boring stuff.

In particular, BPS is not meant to be a lecture. If I read or talk about some topic, it's because I'm doing some research or I'm curious how it's explained by others on the Internet. Maybe I'm preparing a Youtube lecture myself. Anyway, I won't necessarily explain everything.

Can you help me with a problem? How to solve this?

Read Asking for help FAQ.

Do you participate in Project Euler?

No, I don't. They have hard math problems and I'm not that good in them. I enjoy standard algorithms more. I also don't recommend it that much unless you are experienced in math and want to improve even more.

Will you write a book on algorithms or CP?

Not likely. I'm not a good writer. I enjoy thinking about the best way to explain something though, so maybe I will coauthor something eventually. And it's a huge time commitment while I have a lot of things to do currently.

Will you make a course on Udemy (free or paid)?

I don't think that it's better than what I'm currently doing on Youtube. I could make a paid course to make some money but I can reach more people on Youtube instead and I would feel that I need to spend a loooot of time to make the best possible product if somebody pays for it. I would basically need to stop doing other things now. And Udemy takes a big cut of the money.

What platforms do you recommend?

Atcoder and Codeforces. For more info, refer to How to practice?.

What to do when my rating doesn't grow? How to measure my progress?

If you learn new things and you would solve a problem that you couldn't a month ago, you're fine. Rating is a bit random and it's ok to focus on solving problems. Make your goal to be some number of not-easy problems solved in a month, and focus on achieving that.

What books do you recommend? Is Introduction to Algorithms good?

Competitive Programmer's Handbook is great for beginners and it's a free PDF online, https://cses.fi/book/book.pdf. Generally, books aren't important and nowadays it's ok to just solve problems online, as long as they have editorials. When you can't solve a problem, read the editorial and you've just learned something new.

How to practice math for CP? Is math important?

Benq (IOI winner) answered this in detail: https://github.com/bqi343/USACO/blob/master/Resources/Competition%20Math.md

My answer would be this: I have a strong math background from school, and it helps a lot in CP. I don't know which books or other resources are best if you want to catch up. Well, you can always get a book on combinatorics and go through it.

How to handle sadness after failure in a contest?

Feeling sad after a failure is natural and it gets better with time. If you care so much about contests and your performance, use that to motivate you to practice more. And remember that losing CF rating makes it only easier to gain rating in the next contest.

2) Personal

Who are you?

My name is Kamil Dębowski (or Errichto) and I'm quite good at competitive programming. I'm a finalist of multiple big programming competitions like ICPC, Facebook Hacker Cup and Google Code Jam (even got 2nd place in 2018). I also organize competitions, which means inventing and preparing problems.

What language do you prefer?

C++. It is very efficient and thus most popular in competitive programming. I also know some Java and Python.

How old are you? What’s your age? When did you start coding?

I was born 1995. I was 13 when I wrote my first code, and 15 when I started doing competitive programming.

Where do you live? Where are you from?

I live in Warsaw, Poland.

What is your job?

I teach programming. I organize competitions and workshops and I'm interested in algo/programming education in general. I give private coaching but I'm not accepting new students (so don't ask me about it). I make videos and streams for Youtube and Twitch. Maybe it will be a source of income for me one day.

Why not Google, Facebook, etc.? Why don’t you work for big companies?

Why should I? I do something I like and I’m happy with that. Working for Google is a dream for some people but not for everybody. The bigger the company, smaller is the impact you have yourself (you are a tiny cog in a huge machine). You are partially limited in what you can do - especially if you are not willing to relocate to another country. I have friends and family in Poland, so at least for now I want to stay here. There aren't a lot of possibilities in Warsaw office of Google.

Have you ever thought of starting a business or a startup?

Yes, it's something very exciting to me. My strength is algorithms knowledge so it will likely be something related to programming camps or online courses.

Have you had some coding interviews? Did you apply for a job in a company?

Yes, I did and I actually have 100% acceptance so far (5 out of 5, I think), which surprises me because I didn't know some basic stuff a few years ago like unit testing or language-specific details. I did some short part-time working or an internship, and also rejected some offers. I was also offered normal full-time jobs. I didn't try any big company so far though.

Are you still in the university? Do you have a degree?

No, but I tried a few fields: maths, CS and economics. Each time I hated some subjects. I eventually decided to just pursue a career without graduating. I still visit maths&informatics faculty of the University of Warsaw to attend some extra lectures or ICPC trainings/contests. I still hang out most with people from maths&informatics faculty of the University of Warsaw.

Have you participated in ICPC or IOI?

I started doing CP quite late, so in high school I wasn't good enough to get to IOI. I did participate in ICPC though. I got a bronze medal (12th place) in 2015 and didn’t get a medal in 2018 (14th place), which was a disaster for me because we were one of the best teams and we fought for the win.

How did you start with competitive programming? How old were you?

I was good in maths and a friend told about POI (Polish olympiad) so I checked the problems out and was able to solve some in a few days (the first stage lasts for a month). I was 15. I learnt from Polish websites because I didn’t know English well. My skills greatly improved by reading Cormen’s Introduction to Algo but I don’t recommend it. It’s outdated and there are better resources. If you want a book, read Competitive Programmer’s Handbook.

What algorithms or topics do you like most?

Ad-hoc, dp, geometry, combinatorics and probability. I don't like graphs, strings and number theory.

Do you personally know Radewoosh, mnbvmar, tourist, etc.?

Yes. I know all competitive programmers from Poland and many from abroad.

Why do you stream? Why did you decide to start streaming?

I like teaching and I think I'm quite good at explaining stuff. There isn't a lot of video content on algorithms and competitive programming, so I can fill the niche. I don't earn money from Youtube and Twitch currently, but maybe eventually it will be my source of income.

Have you contributed to any open source projects?

No, I haven't. I'm not really that good software engineer. My coding skills (like style of code and knowledge of libraries) are not better than an average programmer. Instead, I contribute by making educational content and teaching for free.

What languages do you speak?

Only Polish and English. I know the Russian alphabet (Cyrillic) and some words - mainly those that are the same in Polish. These two languages are quite similar.

What are your hobbies?

Other than programming, I'm a quite casual person. I watch movies and tv series. I used to play chess, poker and volleyball. I like board games, e.g. Splendor and 7 Wonders. I have a PS4 for its amazing exclusives like Uncharted and The Last of Us. I read a book from time to time. The Witcher saga rules, and so does the Witcher 3 game. The last game I played (as of February 2020) is Frostpunk.

What's your WPM / typing speed?

Around 80 WPM on average, and up to 110 WPM for very simple English words. There are free tools online if you want to practice fast typing.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment