Hi Alfonso, Nice to meet you, must say that was a rather long reply :). I agree that experience counts, I have quite a decent amount of that too, almost 5 years now. But I failed to qualify even though I correctly solved 2 problems because of issues like wrong case in the output and little debugging!
I solved Magicka quite comfortably but I didn't test it enough, tried for the small input and got it correct! I proceeded for the long input and since that result comes only after the competition, only after the competition did I realize I had a very stupid mistake in my input parsing logic because of which the entire input characteristics were getting messed up and hence the algorithm didn't even matter :/. I also solved the Candy Splitting problem very quickly, it was a no-brainer for me since I quickly saw the XOR pattern there. I solved it probably in less than 15 minutes and tried for the small input only to get it wrong, I read, re-read and re-re-read the problem several times, revisiting the algorithm (if we can call it that), tried a few variations here and there. I tried a lot of things but after 3 attempts my mind was fucked enough to doubt my understanding of the problem and I quit. When the contest was over I quickly read the contest analysis, only to cause more frustration and then I downloaded someone's solution and ran it, then ran mine and did a diff of the two outputs. And there was my sad story right there in the diff. Instead of output 'NO' in the case the XOR is non-zero and hence the candy's can't be split without making Patrick cry, I was outputting 'No'. I doubt if i've ever felt dumber, but alas I can't do anything now, none of that experience really counted so much. Practice makes a huge difference, it helps you get used to such situations, and I am sure had I actually ever practiced, I would have at least thought of checking for output case... Well I still enjoyed though, i'll be back next year :) On Tue, May 10, 2011 at 16:19, Alfonso J. Ramos <[email protected]> wrote: > Hi, I'm not a 40 minutes guy, I would like to be. But I'm in my second > Google Code Jam, and I did no practice in contests, and still went > from 4000 and something to 1600 and something in rank in the > qualification round. Passed from being 13th from my country to be 3th. > > How comes? > > Well, I have been being a developer. > > I have been a developer too much that I did not have time to practice... > did I? > > If they say years of experience don't help, it's a lie. Experiences > helps, practice for the sake of practice is a mimic of experience... > but, if you are just writing the same information system once and > again, and all that takes complexity in mapping your objects to the > data base (it is all getters and setters and a few loops in the > forms)... yes, TopCoder is much better. But if what you are doing for > job or pet project (every developer should have a pet project) makes > you write parsers, game loops, your own framework, image processing, > hardware ports IO, or whatever (that's not database centric), then you > are already getting good practice. > > What you need is to learn different things, and of course practice > them, because you need to be good at it... it's just that my practice > comes from my work. I learned PHP and some Python in the last year > because I had to, learned how to do closures and to use T4 in visual > studio because they helped me get work done. > > I remember when I learned to write Java for cell phones, It was in > fact my first time with Java. And when I did it then object oriented > programming was no longer a way to isolate the state of modules into > instances, but a way of thinking. Something fell in place in my mind > that improved my skills in other languages. The same happened when I > learned PHP, I was all my life using static typed languages, at first > I just kept trace of the types to avoid mistakes, but at some moment I > noticed that the the dynamic typed aspect of PHP was saving me time, > and then somewhere distant neuron connected together in my brain, I > had a new skill to master and when I became good at it, it started > helping me with .NET and desktop apps too, I know, .NET is static and > blah, blah. But it's a way of thinking. At the end it all is ASM at > the CPU. If you want to be able to solve more problems you should have > more things to try, knowing what to try is the next step. > > The past year, I used to set everything as objects, but knowing > different styles, languages and paradigms opens you to different kinds > of solutions. When doing something becomes natural for you, knowing > how to use it, even when to use it is "intuition"**, but intuition > that comes from experience, you just don't know how you know, you just > know. And that experience is from... yep, practice. > > ** Replace that with heuristic if you feel better with that. > > So, yes there is analysis. But more that analysis as a rational > process, to be able to visualize the situation and do a judged guess > on what may be the result of the things you try is what matters at the > end, you may do a methodical analysis at one edge and just get it and > the other, we are all somewhere in between, moving to the "just get > it" side takes experience and practice. > > I wouldn't say that it is as math or sports, it more like speaking a > foreign language. I'm from Colombia, my first language is Spanish. > When speaking English I still do mistakes, that's not what's > important, what's important is that I can think in English, I no > longer need to think in Spanish and translate that to English in order > to express it. It just comes natural, and for me that is an important > foundation to handle English, I need to practice more hearing > different accents and learn more vocabulary [today I learned > "methodical"], but that's it. > > I also need to learn to write shorter messages. > > 2011/5/8 vivek dhiman <[email protected]>: > > How come some guys are so fast ? > > > > within 40 minutes. Am I missing something ? > > > > Regards > > Vivek Dhiman > > > > -- > > You received this message because you are subscribed to the Google Groups > > "google-codejam" group. > > To post to this group, send email to [email protected]. > > To unsubscribe from this group, send email to > > [email protected]. > > For more options, visit this group at > > http://groups.google.com/group/google-code?hl=en. > > > > -- > You received this message because you are subscribed to the Google Groups > "google-codejam" group. > To post to this group, send email to [email protected]. > To unsubscribe from this group, send email to > [email protected]. > For more options, visit this group at > http://groups.google.com/group/google-code?hl=en. > > -- Thanks & Regards, Dhruva Sagar <http://dhruvasagar.net> ---------------------------- Technical Developer - Mentor, Artha42 Innovations Pvt. Ltd. <http://www.artha42.com/> Become an expert in Rails. Join our 3 day Rails workshop and learn Ruby, Rails 3, Cucumber and Git. http://www.railspundit.com -- You received this message because you are subscribed to the Google Groups "google-codejam" group. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/google-code?hl=en.
