D
D
Dmitry Kuznetsov2015-11-15 21:40:13
Programming
Dmitry Kuznetsov, 2015-11-15 21:40:13

Olympic programming in 2 days?

Good afternoon.
I am a student. It seems to have been associated with programming for a long time, but this occupation was completely careless, and when I realized it was too late. That's not even the point. My task at the moment is to earn my diploma. The ideal goal is the ITMO Olympiad in Informatics, but there is also programming there, although it is quite simple.
I am afraid to rely on ITMO alone, I want to try to take Lomonosov, 2nd level, at least a little far, as it seems to me, from serious Olympiad contests, where the road is closed to me. My knowledge is very narrow: implement a bean. search, qsort, merge, dp, long, simple data structures. Actually a poor set. And all this I write, decide, implement at a very slow speed, with errors, for a long time I try to debug them. Those. Also, the code itself comes out bad, of poor quality. Even simple tasks sometimes I solve very cumbersome, not effectively.
I realize that this is all decided by time and training. I have very little of it. I would like to know from you what benefits are available, maybe tips that can help me at least speed up the process of writing and debugging programs.
Improve understanding of execution, compilation of programs. I am essentially a layman in this matter, but I will try to accurately convey my thoughts to you. Those. so that I do not have errors associated with working with types, i.e. when converting short to int, when working with floating point numbers. And all those moments. There is a book by Tanenbaum "Computer Architecture". But it is wildly large even for free reading in a minibus, and there is a lot of superfluous stuff, even if there is something useful.
And the second question: there are resources informatics.mccme.ru acmp.ru and the book competitive programming.
Informatics - I've been working with him for a long time, I'm slowly solving problems. For any dynamics (For example, Levenshtein Distance), for recursion earlier, I solved problems for several days. It takes a very long time, and when I get problems at the Olympiad, I can’t solve anything quickly. As I understood from a friend’s story, he stupidly solved most of the tasks with a different condition, so there are no particular problems to find out the method, and then implement it. I always have this problem. Well, only if "Find the maximum, count the number of all ..," I understand that, most likely, the dynamics.
acmp.ru - 0 theory, a lot of tasks, I tried to solve it before, only after the teacher's lectures, 0 sense.
competitive programming is a new book, I have no idea what to expect from it. A friend kindly shared, said it would be useful. But I think that it needs a lot of work, now it's not the best option for me.
Sorry for the porridge, for a lot of extra words.
Thank you very much in advance. I think, on leading questions, I can then turn this chatter into a more or less specific problem and question.
The main goal after all: to increase the time of writing and the quality of the code. Less time for debugging, fewer bugs, less understanding of the trash that I write, i.e. write less trash.

Answer the question

In order to leave comments, you need to log in

6 answer(s)
S
Saboteur, 2015-11-15
@El_Dmitro

Growth usually goes like this:
First, school education, textbooks, introductory courses - the very foundation.
Then there are usually puzzles, online courses - for simple consolidation and development.
But normal becoming goes like this:
You just write programs. Lot. Or many small or one large. You solve specific problems. Wrote my own calculator. I wrote a program for myself that displays the schedule in html, I wrote a site for collecting statistics of matches in the DotA and work with these statistics to figure out the build order or some other points. I wrote my script for backing up important documents. I wrote my own photo resizer converter.
The main thing is that the final result of the program execution is clear to you personally, and you can decide for yourself when it suits you, and when to finish it.
Between writing programs, you read various books, and already when you have PRACTICAL experience in writing programs, in books you can stumble upon a better solution to the problem that you encountered and already wrote a bicycle.
There will be no quick methods to become a good programmer by reading a book, because without personal experience of pounding your forehead against a wall, it will not be clear to you what exactly you read and how important it is.
The correct advice was already given to you in the first answer - that there is no super book. All books are relative, and they will not be able to make an Olympiad participant out of a beginner in 2 months. Therefore, just try to program and at the same time read just popular books on the language that you are currently using.

V
Vladimir Martyanov, 2015-11-15
@vilgeforce

Well, of course there is a miracle book that will replace your many years of development experience. Only everyone is so insidious that they will not say what kind of book this is. And search engines also delete data about it instantly. Why don't you think about the reasons that prevented you from finding such a book yourself?

O
Oleg Tsilyurik, 2015-11-15
@Olej

I am a student.

I always like this most of all, to the point of tenderness: every schoolboy (or student) always knows exactly what and in which book is superfluous ...
What a pity that all the people who know better than others how to run the state are already employed and work as hairdressers and taxi drivers!

X
xozzslip, 2015-11-16
@xozzslip

You can try to find a tutor. Leave a request on some resource, a person will be selected for you. I'm doing it myself now. The teacher is purple on codeforces. The profit is huge.

N
Neonoviiwolf, 2015-11-16
@Neonoviiwolf

There is a series of 9 books, publishing house "Fatal Mountain".

V
Viktor, 2015-11-15
@master2016

"The main goal is still: to increase the writing time"
Well, this is elementary.

Didn't find what you were looking for?

Ask your question

Ask a Question

731 491 924 answers to any question