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.

Reply via email to