Benjamin
Benjamin

新人工程師,偶爾分享工作心得(預計?

Introduction to the online program problem solving system

Recently, a family member is learning python programming by himself. In addition to the coursera online course he is looking for, I also recommend some online programming problem solving websites that I have used before, which are helpful for programming learning.

The online judge system can be used for practice or competition. The answerer pastes the code to the website and sends it for verification. The pros and cons of logic.

Regarding learning programming, my experience is that learners can find a basic teaching course or book, and start writing from the simplest topic after understanding the most basic rules of the game, trying to understand the characteristics of programming language or Matters needing attention, the rest can be encountered in the process of solving the problem and then go back and check the learning resources.

Taking this opportunity, I have also sorted out the problem solving systems that I have used, including those that I have not recommended to my family. The following will give a brief introduction to the systems that have been used one by one.


High school students program problem solving system (Zero Judge) , supports four languages including C, C++, Java, python, etc. It is used in many high school computer classes in China. The website has a wide range of topics, from hello world to domestic and international programming competitions. The topics are all collected, among which the topics of the international competitions are translated into Chinese, which is a good entry site for those who are not good at English or who just want to practice solving the problems themselves.


UVa Online Judge (UVa Online Judge) , supports five languages including C, C++, Java, python, Pascal, etc. There are 519 questions in the UVa question bank of the problem solving system for high school students, but the complete question bank on this website exceeds 4,000 questions. The questions have a certain degree of difficulty. In addition to being proficient in basic logic, it is best to have knowledge of data structure and algorithm to challenge. The University Program Proficiency Examination (CPE) adopted by some domestic employment departments selects topics from it.


Paiza is a Japanese IT job search and job transfer website. The questions are divided into five levels of difficulty from D to S, with a total of about 500 questions. There are not many but more than ten programming languages are supported. I heard that if you perform well in solving problems, you may receive an interview from an IT company. invite.

Should it be said to be Japan? In addition to pure questions and courses, there are also new program learning games, such as dress-up games, which stimulate learning motivation by solving problems and get new clothes. It is a genuine entertaining and entertaining experience, especially recommended. For otaku and otaku.


Leetcode , the most frequently recommended website for IT interview preparation, "To prepare for the whiteboard questions asked on the spot during the interview, go to leetcode". Supports more than ten programming languages, and the difficulty is divided into three types, but the simplest Easy is also difficult. After working in the industry for a few years, you may not even be able to write the questions you have answered before, perhaps because the primary goal of the industry is not these strange cases. , but the delivery time and a good enough program.

In addition, unlike the previous websites, Leetcode does not need to write a complete program including parsing the input text. The title has already established a function to specify the input and output format, as long as the middle part of processing data can be completed, so through Understanding functional programs for these topics is also a good choice.


codewars has a large number of questions and a wide range of difficulty. Similar to Leetcode, it limits the answering range by functionalization. The supported languages are not fixed. You can also learn how to write test functions in different programming languages.

Codewars not only records the passed questions, but also which programming languages are used for each question, and uses these data to display the proficiency level of the user's language. You can learn by using different programming languages to reproduce the same logic and answer the same questions. .

There is another difference from other websites. The social ratio of codewars is quite high. After the answer is officially sent through the test, you can see other people's answers. Refer to how other people use the same language to face the same problem, except that you can compare the efficiency with In addition to keeping the code clean, sometimes you will also learn the unique writing style of unfamiliar programming languages, which is especially likely to happen in the case of learning a new language by reproducing the same logic as mentioned in the previous paragraph.


The website I recommend to him is codewars. After all, the goal is to understand the existing programs and fine-tuning, and it is not necessary or too late to learn too advanced topics, so UVa and Leetcode are excluded; he does not know Japanese and is not homey enough, so Paiza also skips it. ; For high school students, the problem is that the gap between the problems is too large. It is not a super simple problem or a competition problem, which is not suitable for his current needs.


Recently, due to work needs, I need to use the shell scripting language I wrote in college to manage the installation and configuration of the server package. Therefore, I will return to the codewars practice topic in my spare time, and absorb better writing methods from the programs submitted by others. From time to time, seeing unexpected practices will make you feel suddenly opened. This kind of broadening your horizons and learning new knowledge is really good. I recommend you to try it.

CC BY-NC-ND 2.0

Like my work?
Don't forget to support or like, so I know you are with me..

Loading...

Comment