-
Notifications
You must be signed in to change notification settings - Fork 522
FAQ
- What is competitive programming (CP)?
- Why two Youtube channels, Errichto and Errichto 2?
- How to practice topic X? How to be good at competitive programming? How to train?
- What is your IDE setup / Geany setup?
- How can I support you / the channel / the stream? Do you accept donations?
- Social platforms? How can I contact you?
- What is your Git / Github repository?
- Can you record screencasts with commentary?
- How much time do you spend on programming? How much should I practice?
- What is Boring Programming Stream (BPS)?
- Can you help me with a problem? How to solve this?
- Do you participate in Project Euler?
- Will you write a book on algorithms or CP?
- Will you make a course on Udemy (free or paid)?
- What platforms do you recommend?
- What to do when my rating doesn't grow? How to measure my progress?
- What books do you recommend? Is Introduction to Algorithms good?
- How to practice math for CP? Is math important?
- How to handle sadness after failure in a contest?
- Hardware
- Software, OS, IDE
- Can you explain your templates (debug functions in C++)?
- Who are you?
- What language do you prefer?
- How old are you? What’s your age? When did you start coding?
- Where do you live? Where are you from?
- What is your job?
- Why not Google, Facebook, etc.? Why don’t you work for big companies?
- Have you ever thought of starting a business or a startup?
- Have you had some coding interviews? Did you apply for a job in a company?
- Are you still in the university? Do you have a degree?
- Have you participated in ICPC or IOI?
- How did you start with competitive programming? How old were you?
- What algorithms or topics do you like most?
- Do you personally know Radewoosh, mnbvmar, tourist, etc.?
- Why do you stream? Why did you decide to start streaming?
- Have you contributed to any open source projects?
- What languages do you speak?
- What are your hobbies?
- What's your WPM / typing speed?
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.
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.
See "How to practice?" page, link.
See "Linux setup" page, link.
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.
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)
https://github.com/Errichto/youtube
I can't talk and focus at the same time. I sometimes add commentary afterward. I think that screencasts without sound are quite boring but I sometimes do them and upload on https://youtube.com/errichto2. Generally, 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.
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.
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.
Read Asking for help FAQ.
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.
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.
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.
Atcoder and Codeforces. For more info, refer to How to practice?.
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.
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.
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. Or check out this recent video series https://codeforces.com/blog/entry/77137.
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.
My setup is Blue Yeti microphone, Logitech StreamCam, Wacom Intuos drawing tablet, Logitech UltraX Premium (old but amazing keyboard), a random wireless mouse (M330 Silent Plus), and two iiyama ProLite XUB2492HSU-B1 monitors on a combined movable stand. I use a small lamp YN600 Air for better video quality. I also own Playstation 4 and Oculus Rift S.
PC's specs: i9-9900K, RTX 2070, 4TB HDD, 1TB SSD, 32GB RAM
in detail: Asus Rog Strix GeForce RTX 2070 Super A8G Gaming 8GB, SSD Samsung 970 EVO Plus 1TB, mobo Gigabyte Z390 AORUS MASTER, be quiet Pure Base 600, RAM Corsair Vengeance LPX, DDR4, 32 GB,3000MHz, CL15 https://www.userbenchmark.com/UserRun/28953221
I mainly use Linux (Ubuntu) and sometimes Windows because it has better software for streaming. Geany is a good editor for simple things like Competitive Programming (why not Vim? I don’t know how to use it), VS Code is fine too.
On Windows, I use OBS Studio for streaming and recording, OneNote for drawing (but it has flaws and I don't recommend it), Adobe Premiere Elements and Photoshop Elements for editing.
Maybe I will make such a video one day. They are very hacky and ugly though, don't use them.
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.
C++. It is very efficient and thus most popular in competitive programming. I also know some Java and Python.
I was born 1995. I was 13 when I wrote my first code, and 15 when I started doing competitive programming.
I live in Warsaw, Poland.
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 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.
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.
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.
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.
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.
I was good in maths and a friend told me 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.
Ad-hoc, dp, geometry, combinatorics and probability. I don't like graphs, strings and number theory.
Yes. I know all competitive programmers from Poland and many from abroad.
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.
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.
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.
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.
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.
I didn't want to bother with a green screen and instead a bought a so called wind screen with science formulas (physics, maths, biology, chemistry, etc.).