Get Time
TopCoder High School

Spotlight Sessions

Chat transcript from TCHS SRM 60: Spotlight Session with John Dethridge
Handle Comment
John Dethridgeg'day
jmpld40Hi John, thanks for coming
John Dethridgeno problem Jessie :)
binarywithmehii sir
msg555good day!
binarywithmeJohn Dethridge: hii sir
binarywithmeJohn Dethridge: u r welcome here
John Dethridgebinarywithme: thanks
rooparamwelcome sir
binarywithmeJohn Dethridge: sir tell us something about you in brief.
John DethridgeI'm a mathematician, currently working as a computer programmer, because I seem to be good at programming. :)
binarywithmeJohn Dethridge: r u studying right now or not?
John Dethridgebinarywithme: I'm working at Google now
NilayVaishjohn Dethridge: Which university did you study at?
John DethridgeMelbourne University
rooparamsir what do u mean by "I retire"
John Dethridgerooparam: oh that was a joke... I changed my quote to "I retire" after I won the championship. :)
ortschunJohn Dethridge: when did you start programming ?
John Dethridgeortschun: I started programming when I was 8, with basic on an Apple 2
irancoldfusionJohn Dethridge: Which Google office?
John Dethridgeirancoldfusion: Mountain View, California
vicleiJohn Dethridge: Hi John! You did very successfully in the ACM. What was your preparation like?
John Dethridgeviclei: I mostly did problems from previous ACMs. For about a month before the final my team would get together and solve previous regional contests and world finals
John Dethridgeviclei: for my first year at least... in my second year at the ACM finals I didn't train that much
ortschunJohn Dethridge: is 17 too late to start practicing for being a topcoder?
John Dethridgeortschun: it's never too late really if you're going to put the time into it. A lot of successful topcoders started late, although usually they were strong mathematicians already, which helps a lot
binarywithmeJohn Dethridge: sir if i will peform well in programming will the google give me job?
John Dethridgebinarywithme: they might, you should apply and find out!
superkinhluanJohn Dethridge: you're not working now?
John Dethridgesuperkinhluan: I'm working at Google
superkinhluanJohn Dethridge: I know you are working at Google, but you are not working right now?
John Dethridgesuperkinhluan: oh I see. No not right now, I'm taking a break! :) Although I have a bunch of programs running on our clusters, so I'm waiting for those to finish anyway.
John DethridgeL: exactly!
zdravko_bJohn Dethridge: hi john, i am a masters student, but I can still learn something from you ;)
John Dethridgezdravko_b: hi
FameofLightJohn Dethridge: How long you are coding
John DethridgeFameofLight: I started when I was 8, although I didn't do all that much coding when I was at school... I concentrated more on mathematics
binarywithmeJohn Dethridge: sir how much pratice n level should needed to reach at google.
John Dethridgebinarywithme: well, I guess a good minimum to get a job as a software engineer is to finish a college course on software engineering, and get some experience while you're doing it
hallan_csjohn Dethridge: I have a brother with 10 years old, I should teach him a programming language?
John Dethridgehallan_cs: sure, if he's interested :) I think a good way to start is to use a simple language and write a number of programs. Something like basic. Some people recommend python.
tharishallan_cs: no doubt
tharishallan_cs: Python FTW <- the best language in the world :)
Phicardotharis: after c
tharisPhicardo: Not! :p Python's great for everything! C's great for speed!
Phicardotharis: 0k, after Java xDD
tharisPhicardo: Fanboy! :p :D
Phicardotharis: :P
John DethridgeSomeone PM'd me a question about what areas of maths are useful in computer science... I think combinatorics and graph theory are the main areas. But any area with lots of proofs is useful as well, to develop skills in logical thinking.
FameofLightJohn Dethridge: Exactly How you define balance between Practice and Algorithm Study , If you weak theory background
John DethridgeFameofLight: I think the best way to figure out that balance is to figure out the skill level you're targetting... the stuff you need to learn to get onto your university's ACM team is going to be different to what you need to do well in a TCO...
John DethridgeFameofLight: so you should figure out what algorithms you want to know well, maybe by choosing chapters from a textbook, and then try to solve a lot of problems using those techniques
FameofLightJohn Dethridge: Not for ACM Team , Not for TCO , just to have good passion in algorithms
John DethridgeFameofLight: I guess if you were interested in algorithms, but not necessarily for competitions, then you could spend more time reading papers and less time coding
John DethridgeFameofLight: A lot of academics do that... they have a broad knowledge of algorithms but probably couldn't sit down and code them very fast
FameofLightJohn Dethridge: Thanks for Suggestion , I am little good in Mathematics at School , (Also success is motivation) so in college I started with Programming , being not good it feel bad
martins256John Dethridge: what math books you suggest for new computer scientists?
John Dethridgemartins256: maybe get some entry-level graph theory books. Maths competition problem sets, at a level you can solve, might be a good idea too
vicleiJohn Dethridge: What are some good team strategies for ACM?
John Dethridgeviclei: I think good team strategy depends on the relative strengths of your team. For example if you have a very fast coder on easy problems, let him start on one right away.
John Dethridgeviclei: If someone is good at tougher problems, have them read and think about the harder problems away from the keyboard
John Dethridgeviclei: knowing when to swap people away from the keyboard can be tough. It's also a good idea for the two people not typing to sync up on what they're working on
John Dethridgeviclei: so that you each have a better picture of where the team is on each problem
binarywithmeJohn Dethridge: sir how much hard world ifnal problmes are?
John Dethridgebinarywithme: the acm world finals (if that's what you mean) have been getting harder... there are often 2 or 3 tough problems when in previous years there might have only been 1
yiuyuhoJohn Dethridge: John, what makes you so good at this?
John Dethridgeyiuyuho: I think having a strong mathematics background helps a lot. Most of the top-ranked coders on TC do.
rooparamJohn Dethridge: i want to read Knuth, but it's maths makes me think like i have wasted my schooldays .... what should i do now ?
Sarkinjohn Dethridge: I have CLRs but I'm having difficulties reading it because of the math what do you suggest?
SarkinWhich books will help?
John DethridgeI guess if the math in CS textbooks is beyond what you know, you should go back and do more math... get high school or college freshman algebra textbooks
John Dethridgeyou rarely will need much calculus
ortschunJohn Dethridge: what was the most exciting moment for you in all competitions you've joined
John Dethridgeortschun: I guess challenge phase is the most exciting, in any TCO/TCCC final that's been close. :)
John Dethridgeortschun: also the last few minutes of coding phase, when you're not sure who will finish the problems they're working on...
tharisjohn Dethridge: what was your age when you: started programming, won your first match/competition?
John Dethridgetharis: I started at 8, but I was doing more mathematics than coding during school. The first programming competition I won was some national school-level competition.
John Dethridgetharis: There was an international contest I could have gone to that followed from that, but it conflicted with the IMO so I didn't go
binarywithmeJohn Dethridge: whould u plz give ur code of world final problems .so i can get some help
John Dethridgebinarywithme: you can read my code from past TCOs on the topcoder website.
John DethridgeBut some people might suggest that my code is not the clearest to learn from. :)
myprasannafi fj :)
John DethridgeLarry: yeah, some. "almost everyone" counts as "some" :)
Tavo92John Dethridge: John, are you better at maths or at programming? What is the difference between a person that is good in math and the one that is good in programming?
John DethridgeTavo92: I consider myself a mathematician, but on ranking I think I'm far better as a programmer. :) I think a math background helps once you get to much harder problems.
vicleiJohn Dethridge: Will you be coming to Australia anytime soon? :D
John Dethridgeviclei: probably :) I was in Sydney for the GCJ regional final there.
vicleiJohn Dethridge: Oh, wish I could have gone :( hehe
vexorianJohn Dethridge: Did you "retire :)" ?
John Dethridgevexorian: not really :) I am training less than I used to though. Perhaps semi-retired. :)
armansuleimenovJohn Dethridge: what would you suggest to concentrate on when preparing to TCO as opposed to ACM regionals?
John Dethridgearmansuleimenov: The TCO is harder than ACM regionals generally. I would do the practice rooms in the applet, especially rounds from previous TCOs.
John Dethridgearmansuleimenov: Then go to other online judge sites.
ortschunJohn Dethridge: do you check others results while you're coding? and have you ever felt that you're not gonna make that problem?
John Dethridgeortschun: yeah I do check the scoreboard pretty often. Especially when other people are solving in a different order. Then you get some information on how hard the other problems are.
wack-a-moleJohn Dethridge: What else do you do apart from coding?
John Dethridgewack-a-mole: What else do I do? I play a lot of other games. :) Computer games, card games, board games, etc.
nicolodavisJohn Dethridge: How many hours a day did you spend practising when you were working your way up, and what did you do?
John Dethridgenicolodavis: in the weeks before my first TCO, I spent about 3 or 4 hours a day coding. Mostly solving past problems.
John Dethridgenicolodavis: maybe a bit more than that
nicolodavisJohn Dethridge: ok
afonsecaJohn Dethridge: Do you think that a man (20 years) can learn math for programming in like 6 months?
John Dethridgeafonseca: well you can certainly learn enough, but more is better :)
afonsecaJohn Dethridge: hehe, that motivates me :)
skaterdude69John Dethridge: Did you get your PHD in Comp Sci.? I remember on CNN you said you were thinking about it.
John Dethridgeskaterdude69: nope, I left college and joined Google
GiorgiJohn Dethridge: I agree with you, I know a lot of algorithms , but I can't solve hard problems wich needs deeply mathematical knowledge, what would you advice, study math from beggining?
John DethridgeGiorgi: well, when I say math is important, it's not just that some hard problems use math. Usually the amount of mathematics you need to know for the actual problem is not that much, maybe a little geometry or number theory.
John DethridgeGiorgi: It's more that the skills you get in doing mathematics help in CS also.
John DethridgeGiorgi: but yes I would go back and do high school math if you need to, especially algebra and geometry.
GiorgiJohn Dethridge: ok thanks
QuelloquialismJohn Dethridge: Have you ever considered changing your name to "John Liferidge" to promote optimism?
skaterdude69Quelloquialism: LOL
tharisQuelloquialism: ROFL
John DethridgeQuelloquialism: I'll tell you what, I'll consider that seriously and get back to you. :P
srikanth_sgany nice material for learning stl?
srikanth_sgsuggest me please
John Dethridgesrikanth_sg: I used
wack-a-moleJohn Dethridge: What IDE and OS do you use?
John Dethridgewack-a-mole: for TopCoder, I just use the in-applet editor
vexorianJohn Dethridge: Considering you code like that, and you use no plugins or IDE, how do you manage to debug your code?
John Dethridgevexorian: I try not to have bugs. Otherwise, I put in printfs to see what's going on.
vexorianAre those provisions like not using plugins/IDE some sort of technique to avoid solving the problem very fast since people would think you are cheating?
John Dethridgevexorian: some people do use IDEs, I just prefer not to.
Tavo92John Dethridge: Do you think that it is "easier" to be a good coder in countries such as Poland, Russia, USA? Or it is having a good mentor or finding the right material?
John DethridgeTavo92: I think if you're self-motivated and have internet access, you have the same chance anywhere
zdravko_bJohn Dethridge: is academia less fun than google?
John Dethridgezdravko_b: hmmm there are parts of academia I would not enjoy, but you would perhaps have more freedom in what you worked on
zdravko_bJohn Dethridge: what exactly in academia don't you like (excluding payment ;) )
John Dethridgezdravko_b: paperwork, applying for funding. I can't really speak that authoritatively on it though, I've never been an academic.
Sarkinjohn Dethridge: If you started that early I think you participated in the IOI? if yes what medal did you get?
John DethridgeSarkin: Australia didn't participate in the IOI yet when I was in school. We do now though. I taught at a couple of our training schools. :)
vlad_DJohn Dethridge: yeah, but you have gold in ACM
John Dethridgevlad_D: yes
zdravko_bJohn Dethridge: is your work at google creative :) ?
John Dethridgezdravko_b: sure, there's a lot of room for creativity when your goal is broad
John Dethridgezdravko_b: say you want to improve the relevance of search results, for example... there's a lot of scope for trying different algorithms to do that
zdravko_bJohn Dethridge: i see
Tavo92John Dethridge: Why do you work at Google?
John DethridgeTavo92: I think Google has a lot of interesting problems to work on, and great people
John DethridgeTavo92: and a fun environment
Tavo92John Dethridge: But, in google you don't face "ACM-like" or "TC-like" problems, do you?
John DethridgeTavo92: yes we often do. Graph theory, DP, geometry, it's all relevant
ortschunJohn Dethridge: there's a rumor that google asks algorithm problems in their interviews is that right? :)
John Dethridgeortschun: absolutely. We want people who are good at algorithms.
John Dethridgeortschun: One of the most famous is how you sort a million phone numbers with only 2MB of ram, and variations on that
tharisjohn Dethridge: sort 1kk nrs with 2MB of RAM? how?
John Dethridgetharis: that's what you have to figure out :)
tharisjohn Dethridge: LOL I'm only 16... When I'm 30, I'll PM you with the answer, ok?
John Dethridgetharis: you can be more ambitious than that :)
tharisjohn Dethridge: I am! I'm looking for the Nobel! :) Coding and IOI are only hobbies! ;)
wack-a-moleJohn Dethridge: Is it true that Google has a firefighters' slippery pole for when you are hungry?
Tavo92wack-a-mole: Is that a joke xD ?
wack-a-moleTavo92: I saw it in an email :)
vexorianJohn_Dethridge: and is the pole really for when you are hungry, or for something else?
zdravko_bwack-a-mole: i've seen pictures, in zurich i think :)
John Dethridgewack-a-mole: yes I think the Zurich office has that :)
zdravko_bJohn Dethridge: which google are you at?
John Dethridgezdravko_b: Mountain View, California
geekru2John Dethridge: do you solve puzzles and mathematical problems? does it help iproving coding skills?
John Dethridgegeekru2: yes, I look at problems from the IMO and related contests pretty regularly
vicleiJohn Dethridge: So do companies like Google look for algorithmic ability for a practical purpose or more for distinguishing good problem solvers?
John Dethridgeviclei: Both. We do want employees who are strong in algorithms, and I think it's also a good way to assess problem-solving ability. That's my opinion anyway.
Blue_AntJohn Dethridge: Hello
John DethridgeBlue_Ant: hi
FameofLightJohn Dethridge: How important is code on paper for Topcoder
John DethridgeFameofLight: not very. I often scribble diagrams while I'm thinking, but I wouldn't ever write code.
rajeshsrJohn Dethridge: You participated at acm-icpc?
John Dethridgerajeshsr: yes, I went to the world finals in '00 and '01
iit2007106which language do u hthink would be better?
John Dethridgeiit2007106: I prefer C++. For a first language when learning to program, something simple like basic.
gowravjohn Dethridge: is it worth making myself good in C++ .. i am really hardworking on that but compnies like google use python .. m i right ??
gowravjohn Dethridge: what is best to master C++ or python as per googlist
John Dethridgegowrav: C++ is more useful than python I would say.
snguyenJohn Dethridge: private quesion, you can ignore : How old are you, JD? :)
John Dethridgesnguyen: 22. :)
zdravko_bJohn Dethridge: 22, wow, so young :)
John Dethridgezdravko_b: I lied. :)
ortschunJohn Dethridge: wow. and what about internship? do you have to be a top coder t be intern in Software Engineering department
John Dethridgeortschun: we have a lot of interns who are CS students with good grades.
geekru2John Dethridge: what is a good who knows a lot of algos? or one who can create algos on spot during contests?
John Dethridgegeekru2: both of those are important. You need to know a lot of algorithms, but even more importantly to get to the top you need to be able to adapt them or come up with new algorithms on the spot to solve problems
John Dethridgegeekru2: most final rounds avoid problems that can be solved just by one standard algorithm.
Tavo92John Dethridge: Is it more important to have good grades or to have competed succesfully in algorithm competitions?
John DethridgeTavo92: well, whenever you're applying for a job somewhere, they're going to consider everything. I think non-college achievements like success in competitions are a good way to distinguish yourself from other people who also have high grades.
rajeshsrJohn Dethridge: Can u share, how u practised for that?
John Dethridgerajeshsr: I mostly practise by doing previous contest problems
pdallagoJohn Dethridge: How do you keep improving your mathematical and algorithmic skills nowadays?
John Dethridgepdallago: I keep solving more problems to improve. Although I haven't been practising that much recently, apart from test-solving all of the GCJ problems. :)
gowravjohn Dethridge: whats is the most usefull language for criticle solutions! (this might change my world)
John Dethridgegowrav: C++
theexpositoryJohn Dethridge: Is there an algorithmic paradigm that you consider the most fundamental?
John Dethridgetheexpository: not really, I think you need knowledge in a broad range.
SoyojaJohn Dethridge: How about your record in World finals '00 and '01?
John DethridgeSoyoja: in ACM '00 we came second, or something, they had a bit of a screwup with the judging. In '01 much worse.
vexorianJohn Dethridge: Why do you think top contest coders tend to like C/++ so much?
John Dethridgevexorian: I think more top coders prefer C++ because of the low-level control that's available.
glue2gleeJohn Dethridge: what did you study at university? Math or CS ?
John DethridgeI did both.
deusemxJohn Dethridge: do you think perl has been replaced by ruby and python?
John Dethridgedeusmx: I don't really have an opinion on perl and python and ruby. :)
QuelloquialismJohn Dethridge: So I once lost a programming contest due to a small bug in my implementation of BFS, and ever since then I've hated coding BFS. Are there any algorithms you have a similar strong hatred for?
vexorianQuelloquialism: Do you use dijkstra for simple BFS problems since then?
Quelloquialismvexorian: No, I just grudgingly code BFS... =)
John DethridgeQuelloquialism: you should practise BFS more. :) I don't really have a dislike for any particular algorithm.
John DethridgeQuelloquialism: Computational geometry problems can be annoying when they have lots of special cases, but that's the same for everyone, not a special hatred I have for them. :)
vicleiJohn Dethridge: Thanks for the responses. Any chance you can come back to Melbourne to coach my team for the ACM finals? :P
John Dethridgeviclei: I probably won't be back for that long. Good luck though.
vicleiJohn Dethridge: Haha. Thanks :) Hope you can come come in to MU if you're around the area.
gowravjohn Dethridge: what should b learned now .. crossplatform or linux or windows as a good start
binarywithmeJohn Dethridge: linux is better thnx windows what u think ?froma programmer's point of view
John DethridgeI wouldn't worry too much about what OS you use
LarryJohn Dethridge: what do you do, practice-wise, about problems that you can't figure out the solution, but know that they exist?
John DethridgeLarry: I try harder until I get it. :)
theexpositoryJohn Dethridge: Is there a particular source/book that you prefer for solving geometry/probability/maze problems?
John Dethridgetheexpository: no not really. I learn mostly by solving problems.
Tavo92John Dethridge: What is your favorite food before a contest :) ?
John DethridgeTavo92: I usually have coffee and chocolate before competitions. :)
theexpositoryJohn Dethridge: Topcoder problems vs acm regional problems?
John Dethridgetheexpository: I think it's more important to do problems at the right level for what you're training for, rather than which contest they're from
HamedJohn Dethridge: Why did you retire? :)
John DethridgeHamed: I didn't really retire, it was a joke. :) I do practise less now though.
samshu**samshu hopes it is an easy SRM
vexorian**vexorian hopes the SRM is easy for him but no one else.
samshuvexorian: hehe
rooparambest of luck to all for coming SRM
rooparamthanks for ur time sir
ortschunJohn Dethridge: thank you so much for today :)
Blue_AntJohn Dethridge: See you
snguyenthx a lot JD, wish u the best!
ortschunJohn Dethridge: thank you so much for today :)
ortschunJohn Dethridge: bye
rajeshsrJohn Dethridge: Thanks u. Bye
John Dethridgenp :)