• Log InLog In
  • Register
Liquid`
Team Liquid Liquipedia
EDT 22:26
CEST 04:26
KST 11:26
  • Home
  • Forum
  • Calendar
  • Streams
  • Liquipedia
  • Features
  • Store
  • EPT
  • TL+
  • StarCraft 2
  • Brood War
  • Smash
  • Heroes
  • Counter-Strike
  • Overwatch
  • Liquibet
  • Fantasy StarCraft
  • TLPD
  • StarCraft 2
  • Brood War
  • Blogs
Forum Sidebar
Events/Features
News
Featured News
[ASL22] Ro4 Preview: Mirror Mirror4[ASL22] Ro8 Preview: Within Reach5[ASL22] Ro8 Preview: In A Tizzy11[ASL22] Ro16 Preview: Holy Diver5[ASL22] Ro16 Preview: Rough Waters10
Community News
Weekly Cups Results (Sep 28-Oct 4)0SC4ALL: II SC2 Complete Invited Player Lineup10StarCraft II 5.0.17 PTR Patch Notes (Sept 30, 2026)75Weekly Cups (Sept 21-27): herO and ByuN double2Weekly Cups (Sep 13-20): herO scores triple3
StarCraft 2
General
StarCraft II 5.0.17 PTR Patch Notes (Sept 30, 2026) How do you feel about the mass reverts in the 5.0.17 PTR? Weekly Cups Results (Sep 28-Oct 4) SC4ALL: II SC2 Complete Invited Player Lineup Back to SC2 after 14 years - Protoss CTRL groups?
Tourneys
ISSL (IntoTheTV x SOOP SC2 League): Premier Stellar Fest TWO the Moon (Dec 16-20) Sparkling Tuna Cup - Weekly Open Tournament 2026 GSTL Grand Finals Sea Duckling Open (Global, Bronze-Diamond)
Strategy
[H] ZvP Mid-Late Game: Stalkers Collossi HT
Custom Maps
[M] (2) Sweltering Sands [M] (2) Frigid Storage
External Content
Mutation # 546 Catch the Train The PondCast: SC2 News & Results Mutation # 545 And Drops and Rifts Mutation # 544 Double Trouble
Brood War
General
20-year-old Valorant player starting StarCraft Sagi.gg Launcher Released Bot on ladder BGH Auto Balance -> http://bghmmr.eu/ Fantasy returning?
Tourneys
[ASL22] Semifinal B [ASL22] Semifinal A [Megathread] Daily Proleagues [ASL22] Ro8 Day 4
Strategy
Cliff Jump Revisited (1 in a 1000 strategy) Replay Review Process - What do you do? Simple Questions, Simple Answers
Other Games
General Games
General RTS Discussion Thread Nintendo Switch Thread Warcraft III: The Frozen Throne Stormgate/Frost Giant Megathread Total Annihilation Zero
Dota 2
Dota 2 Champions League Season 3 Begins April 25! Official 'what is Dota anymore' discussion
League of Legends
[TL LoL EUW IHs] Teemo shall perish
Heroes of the Storm
Heroes of the Storm 2.0
Hearthstone
Deck construction bug
TL Mafia
TL Mafia Community Thread
Community
General
US Politics Mega-thread Russo-Ukrainian War Thread Canadian Politics Mega-thread Dating: How's your luck? Artificial Intelligence Thread
Fan Clubs
Serral Fan Club
Media & Entertainment
Movie Discussion! [Manga] One Piece Diablo Animated Series on Netflix
Sports
Football (Soccer) Thread MLB/Baseball 2023
World Cup 2022
Tech Support
Computer Build, Upgrade & Buying Resource Thread
TL Community
Recent Gifted Posts
Blogs
[ASL22] Ro4 Day1 Ticket Giv…
bITt.mAN
Escaping Into Video Games: G…
TrAiDoS
38 yo Retired SWE loo…
PurE)Rabbit-SF
Can Bots Beat Pros?? Starcr…
namkraft
[meme] I finally understa…
LUCKY_NOOB
Regacy Esports:Our Goa…
regacyesports
Customize Sidebar...

Website Feedback

Closed Threads



Active: 5740 users

Chemistry Olympiad and Computer Programming

Blogs > XXGeneration
Post a Reply
1 2 Next All
XXGeneration
Profile Blog Joined November 2010
United States625 Posts
Last Edited: 2011-06-25 01:22:23
June 25 2011 01:10 GMT
#1
Hey Teamliquid,

This is my first blog post, so forgive me if I'm not conforming to any rules in the blog section.

My first question is about the US Chemistry Olympiad tests. Has anyone on Teamliquid ever studied for the tests in an attempt to qualify for the team? If so, I'm wondering how I should be going about preparing for this and if there's anything I should know. My school district is highly competitive (one of the two high schools in my district alone had 13 people accepted into Princeton this year), and only two people per school are invited to take the national exam every year, which sorta makes me nervous heh .

I'm just going into 9th grade and I've studied chemistry from textbooks that my brother had when he was in high school. I've also taken the year 2000 and 2001 local exams for this test, scoring a 39 and a 45 respectively. Now I'm going through this large book from Schaum's, consisting of "3000 solved problems in Chemistry" in an attempt to "mass-problems".

Any advice is much appreciated.


Because I have so much time this summer aside from studying chemistry and doing the various schoolwork, I would like to learn computer programming. Browsing through old threads in TL I found out about the IOI, the International Olympiad in Informatics. Because I always had an interest in computer programming but never thought it would have much use, I sort of put it off. Now, however, it seems like the time is right to learn something, and programming seems to fit the bill.

My question is, how should I go about learning programming?

My brother took computer science courses for two years in college, and he has always tried to get me to learn some programming. When I asked him about it yesterday about which language I should start off in, he recommended I partition my hard drive and dual-boot Linux and learn C, so that I can eventually convert to C++. Another option is to learn programming with Java. Which would be a better choice? Keep in mind I have 2-5 hours a day I could put into learning programming.

After I choose a language, I honestly have no clue how I'm going to go about learning it. Should I look for books, or should I just use online tutorials?


Thank you for your time and answers!

Edit: Bolded some parts that are the most important if you're just skimming lol
Edit2: In retrospect it probably would've been smarter to make the title "Computer Programming and Chemistry Olympiad" considering the demographic of people on Teamliquid

*
"I was so surprised when I first played StarCraft 2. I couldn't believe that such an easy game exists... I guess the best way to attract people these days is to make things easy and simple." -Midas
EtherealDeath
Profile Blog Joined July 2007
United States8366 Posts
June 25 2011 01:27 GMT
#2
Learn programming by making random projects for yourself and learning along the way.

Books for background/basis until you are familiarish with things, then books for side reading and google to guide the way.

Screw C. Learn Java or C#. Learn Python, PHP, or Ruby for scripting as well, Python if you give no shits about making websites (people tend to use PHP/Ruby for that). Or, if you are a WoW whore and want to make addons too, use Lua.
Oracle
Profile Blog Joined May 2007
Canada411 Posts
June 25 2011 01:29 GMT
#3
If you want to be an implementation jockey and just create cool programs and stuff learn Java or C#, the easier languages.

If you care about theory (algorithms, turing machines, automatas, math, problem solving) go to school for it or watch MIT open courseware.
Eti307
Profile Blog Joined March 2004
Canada3442 Posts
June 25 2011 01:57 GMT
#4
My brother took computer science courses for two years in college, and he has always tried to get me to learn some programming. When I asked him about it yesterday about which language I should start off in, he recommended I partition my hard drive and dual-boot Linux and learn C, so that I can eventually convert to C++.


that's really bad advice... you don't need linux to learn programming and learning C is not a good idea. If it's only recreational C# or Java is your best bet, if you want to do more complex stuff,learn memory management etc. learn C++
Yukidasu
Profile Blog Joined September 2009
Australia125 Posts
Last Edited: 2011-06-25 01:59:46
June 25 2011 01:58 GMT
#5
I've been to the ACM world finals and done heaps of other IOI type competitions.

If you're going into competitive programming you want to learn C. C++ has some useful additions that eventually make things easier, but you don't need them right away. Java is also ok but it's a slight disadvantage due to speed, it's not as easy to do simple things like input, and it's fairly similar to C anyway. Other languages are generally not allowed in competitions.

Learning Linux is good, you could also install cygwin and get the linux shell + compilers from windows without having to reboot or stuff around with partitions. It's good to learn with the whole thing though. Alternatively, Dev-c++ is decent and easy to set up.

Good luck!
Lost in a groundless dream. You can't fly if there's nowhere to fall.
huameng
Profile Blog Joined April 2007
United States1133 Posts
June 25 2011 02:00 GMT
#6
If you want to do IOI I think C++ is your only (reasonable) option. Only c++, c, and pascal are allowed as far as I know, although I've only read about it.
skating
XXGeneration
Profile Blog Joined November 2010
United States625 Posts
June 25 2011 02:07 GMT
#7
On June 25 2011 10:58 Yukidasu wrote:
I've been to the ACM world finals and done heaps of other IOI type competitions.

If you're going into competitive programming you want to learn C. C++ has some useful additions that eventually make things easier, but you don't need them right away. Java is also ok but it's a slight disadvantage due to speed, it's not as easy to do simple things like input, and it's fairly similar to C anyway. Other languages are generally not allowed in competitions.

Learning Linux is good, you could also install cygwin and get the linux shell + compilers from windows without having to reboot or stuff around with partitions. It's good to learn with the whole thing though. Alternatively, Dev-c++ is decent and easy to set up.

Good luck!


How do you propose I learn C? Should I find books?
"I was so surprised when I first played StarCraft 2. I couldn't believe that such an easy game exists... I guess the best way to attract people these days is to make things easy and simple." -Midas
oxidized
Profile Blog Joined January 2009
United States324 Posts
June 25 2011 02:17 GMT
#8
I took the chem olympiad one time like seven years ago. I don't remember specifics, but I remember nothing being out of reach for an AP chem student. Basically if you know your chemistry, you should be fine. The best way to practice for this type of test is to take a bunch of practice tests and study up on your weaknesses.

Because it's the chem olympiad, there's going to be some random knowledge questions which you cannot rely on always knowing the answer to. The best way to go about those is to make an educated guess based on periodic trends, etc. (Don't remember if they penalize for wrong answers).

Good luck

On June 25 2011 10:27 EtherealDeath wrote:
Learn programming by making random projects for yourself and learning along the way.

This is pretty much what you should do. I learned programming by making programs to do my math homework for me. Obviously go through a couple tutorials for basics, but then you should have a goal for each project (like automate a solution to a math problem) - and then solve it. You can't learn without doing random programming projects.
Chimpalimp
Profile Joined May 2010
United States1135 Posts
Last Edited: 2011-06-25 02:29:46
June 25 2011 02:28 GMT
#9
I have learned C++ (By learned, I mean I've programmed with C++ for about a year. But you never really fully learn a language) and I would definitely recommend it, its a great language to start with as it lets you touch on a little of everything, and is fairly useful to know overall. C is also a good language to know, but its a bit of a pain. As for learning C or C++, a textbook wouldn't be a bad idea, but I don't think its totally necessary. A textbook is great to have for reference, but the internet is a much more useful tool. I would recommend trying out the MIT open coursework, and finding a decent professor's online notes. Those would be good staples to learn whats going on, and then use online references such as cplusplus.com.

Programming is a cool subject because everything you learn, you can actually do, and put it to good use. Thus the best way to learn programming, is to program. Just find a bunch of projects a professor posted online, and try it out.

As for using linux just to learn programming, while it is useful, I don't think its totally necessary. You won't really tap into the advantages of linux until you are an experienced programmer, windows or mac os will do fine until then.
I like money. You like money too? We should hang out.
blankspace
Profile Blog Joined June 2010
United States292 Posts
June 25 2011 02:33 GMT
#10
Wow if you're starting on chemistry this early, surely you'll be able to make the top four team in two years or even next year (not that many people compete in chem). From what I've heard, just work through some good textbooks carefully.

For IOI, I never did it but I think you need to learn graph theory and algorithms.
Hello friends
Yukidasu
Profile Blog Joined September 2009
Australia125 Posts
Last Edited: 2011-06-25 02:36:45
June 25 2011 02:35 GMT
#11
On June 25 2011 11:07 XXGeneration wrote:How do you propose I learn C? Should I find books?


It depends. If you haven't programmed much before, a lot of what you'll learn is how to think about things formally, which applies to any language. You'll learn that with any good book, but I'd recommend learning with specific goals (I want to solve this problem!). I'd say get on to train.usaco.org as soon as you know the basics and just work on things. You can probably find basic tutorials online.

Feel free to pm me if there's anything specific you want to ask

edit: Chimpalimp makes some great suggestions.
Lost in a groundless dream. You can't fly if there's nowhere to fall.
SleepTech
Profile Blog Joined December 2010
United States222 Posts
June 25 2011 03:23 GMT
#12
I learned C and C++ by messing around with text games, or Multi-User Dungeons (MUDs). I pretty much just taught myself, although I don't know if I would suggest this in that most of the text games out today probably aren't the best written forms and you'll probably learn bad habits. I've been programming on a game since 2004, but it's definitely fun and interesting.

But for me, it's all recreational, I never meant for it to be a job, just a hobby.

I'm not sure what your wants are for it.
Incanus
Profile Joined October 2009
Canada695 Posts
Last Edited: 2011-06-25 03:49:25
June 25 2011 03:44 GMT
#13
If you're going to learn from in an unstructured setting, C and C++ would be horrible choices. It's ridiculously common to come across bad practices in these languages, and unless you have a guide attempting to learn them will only hinder your programming knowledge. Besides, they are both uninspiring languages to beginners (apart from the fact that so many popular programs are written using them).

Java would be a significantly better language to learn. Speed is not an issue because:
1) Java is nearly as fast (and faster in certain cases) as C++.
2) Java is safer than C and C++, which makes speedy debugging (ie. within time limited contests) more doable.
3) In programming contests, it's often only the asymptotic behaviour (or at least some large constant based on your algorithm's implementation) that matters.

Better than Java, would be to learn Python, which is more likely to be benefitial to your programming skills. It is also great for writing contests with more flexible math functions and rapid prototyping. There exists a great knowledge base for it as well.
Flash: "Why am I so good?" *sob sob*
affinity
Profile Blog Joined October 2007
United States266 Posts
June 25 2011 03:53 GMT
#14
Google has great courses on Python and C++
http://code.google.com/edu/languages/index.html

2-5 hours is more than enough to learn programming, but IMO learning a language because of a project you have in mind > learning the language just for kicks.
Vinnesta
Profile Blog Joined April 2010
Singapore285 Posts
Last Edited: 2011-06-25 04:14:40
June 25 2011 04:11 GMT
#15
Not to intentionally be a wet blanket, but casually learning computer programming with the hopes of entering IOI is a far-fetched dream. IIRC, only high school students are allowed to enter the IOI, which gives you 3 or 4(?) years to fully master programming AND learn advanced mathematics (relative to high school standards). Among my friends, the only ones who got into IOI were those who had intensively studied programming and mathematics for about 4 to 5 years before getting a chance to enter the Olympiad. Thus, unless you are a genius with IQ of over 180 or something, choose either the chemistry or informatics Olympiad, and dedicate yourself to it fully.

As others have already said, C++ is the most universally accepted algorithmic language at this level. It may help to have some experience with C, but learning C++ from the get-go shouldn't be a problem. However, remember that the programming language is only a tool to process your ideas. What distinguishes mediocre programmers from the best is their problem-solving ability. Ultimately, IOI is a test of your mathematical and logical skills in solving questions. Fluency with programming language can improve your efficiency and allow you to write a more elegant solution, but without the ability to solve questions, programming skills are useless. For example, look at these past paper questions:

Flood (IOI 07)
Sails (IOI 07)

There is almost no aspect of programming being tested in the problem, and an intelligent person without any experience in programming could probably solve it. If you still want to participate in an informatics competition after all that I've blabbered on about, good luck and remember to hone your problem solving skills (try doing those two examples!)
Same difference is not an oxymoron!
roflpie
Profile Blog Joined April 2010
Estonia93 Posts
June 25 2011 04:51 GMT
#16
Don't you be a pussy and start with Python or Java, that hide the more complex stuff from you. Starting with C and moving on to C++ will help you understand computers better and once you know C++, you can pick up most of the other languages easily. You could start straight with C++ aswell, there's a great free book with sample code: "Thinking in C++" by Bruce Eckel. http://mindview.net/Books/TICPP/ThinkingInCPP2e.html
igotmyown
Profile Blog Joined April 2009
United States4291 Posts
June 25 2011 05:04 GMT
#17
If you're completely on top of everything you can learn in AP chemistry, most of the Chemistry Olympiad shouldn't be a problem. If you know everything, you'll get every problem right (right?) Then again, if you you don't get some of the stuff, you shouldn't be taking it.

They do have some content that is not in AP chemistry (maybe 5%). That includes some Organic Chemistry and something else, which I thought was kind of unfair... But you can still do well enough.

In my opinion, the hard part of making the team is the lab portions in the later rounds.
v3ctor
Profile Joined May 2011
Canada53 Posts
June 25 2011 05:13 GMT
#18
On June 25 2011 13:11 Vinnesta wrote:
There is almost no aspect of programming being tested in the problem, and an intelligent person without any experience in programming could probably solve it. If you still want to participate in an informatics competition after all that I've blabbered on about, good luck and remember to hone your problem solving skills (try doing those two examples!)


That's not completely true, the sails problem requires use of some fairly complex data structures if you want to solve it completely (with their time/memory limits) In general, for these competitions there's a repertoire of algorithms that you'll need to learn and remember - and more importantly, remember how to code within the contest time. So although the code required isn't complex from a language feature point of view, it's still pretty intricate and requires a fair amount of practice.

Most IOI problems can be solved with less than 100 lines of code, so yes, programming skill is definitely not the limiting factor. If you're serious about practicing for these competitions, it's essential to practice all the various types of problems that can show up - a poster above mentioned train.usaco.org, and that's probably the best place to go first. You should try some of those problems and see if you're still interested before pursuing it any further (as it really takes a lot of dedication and practice if you want to qualify, especially for the US team)
Servius_Fulvius
Profile Joined August 2009
United States947 Posts
June 25 2011 05:43 GMT
#19
On June 25 2011 10:10 XXGeneration wrote:
I'm just going into 9th grade and I've studied chemistry from textbooks that my brother had when he was in high school. I've also taken the year 2000 and 2001 local exams for this test, scoring a 39 and a 45 respectively. Now I'm going through this large book from Schaum's, consisting of "3000 solved problems in Chemistry" in an attempt to "mass-problems".

Any advice is much appreciated.


That's a LOT of solved problems. I'm not sure if "solved" problems should be the ones you're looking for. Yeah, you can check your work and see if it's right, but you gain no confidence in solving a problem when you can't check and see if it's right. It's much more valuable to learn how to think, so if you MUST used the solved problems make sure you do a bunch of them and talk over the theory and problem-solving before you check your work.
Incanus
Profile Joined October 2009
Canada695 Posts
June 25 2011 06:56 GMT
#20
On June 25 2011 13:51 roflpie wrote:
Don't you be a pussy and start with Python or Java, that hide the more complex stuff from you. Starting with C and moving on to C++ will help you understand computers better and once you know C++, you can pick up most of the other languages easily. You could start straight with C++ aswell, there's a great free book with sample code: "Thinking in C++" by Bruce Eckel. http://mindview.net/Books/TICPP/ThinkingInCPP2e.html

Typical of beginner C++ programmers to think that complexity is a measure of the depth of a language. You don't gain nearly as much understanding (of computers, algorithms, or programming) by learning the 50000 quirks of your language as you would by learning 2 or 3 vastly different (and simpler, more elegant) languages or by studying a good algorithms book.
Flash: "Why am I so good?" *sob sob*
1 2 Next All
Please log in or register to reply.
Live Events Refresh
PiGosaur Cup
09:00
#102
CranKy Ducklings104
davetesta37
Liquipedia
[ Submit Event ]
Live Streams
Refresh
StarCraft 2
WinterStarcraft339
ByuN 286
RuFF_SC2 148
ViBE92
CosmosSc2 71
StarCraft: Brood War
Rain 2340
GuemChi 1386
Artosis 654
Sharp 163
910 61
MaD[AoV]19
Bale 18
Dota 2
monkeys_forever433
LuMiX1
Counter-Strike
taco 712
minikerr13
Super Smash Bros
hungrybox815
Other Games
summit1g8976
Day[9].tv781
JimRising 616
C9.Mang0423
Trikslyr33
Organizations
Other Games
gamesdonequick796
Dota 2
PGL Dota 2 - Main Stream29
[ Show 14 non-featured ]
StarCraft 2
• CranKy Ducklings SOOP52
• EnkiAlexander 48
• Letter145
• AfreecaTV YouTube
• intothetv
• Kozan
• IndyKCrew
• Migwel
StarCraft: Brood War
• BSLYoutube
• STPLYoutube
• ZZZeroYoutube
League of Legends
• Lourlo182
Other Games
• Day9tv781
• Shiphtur569
Upcoming Events
Patches Events
13h 34m
The PondCast
1d 7h
INu's Battles
1d 8h
Percival vs SHIN
Zoun vs herO
OSC
1d 19h
Replay Cast
1d 20h
OSC
2 days
BSL: Ladder Tournament
3 days
Sparkling Tuna Cup
4 days
Patches Events
4 days
BSL Open Qualifier
4 days
[ Show More ]
BSL Open Qualifier
4 days
WardiTV Weekly
6 days
PiGosaur Cup
6 days
Liquipedia Results

Completed

CSL 2026 AUTUMN (S22)
Blizzard Classic Cup 2026
Copium Cup

Ongoing

ASL Season 22
Super Anchor Qualifying S3
Acropolis #5
Acropolis #5 - GSB
ESL Pro League Season 24
Stake Ranked Episode 4
1win Private Club #1
Logitech G Play Connect 2026
SL StarSeries Fall 2026
FISSURE Playground #3
BLAST Open Fall 2026
Esports World Cup 2026
BLAST Bounty Summer 2026
BLAST Bounty Summer Qual

Upcoming

Acropolis #5 - GSC
BSL Season 23
SC4ALL II: Brood War
BSL 23: Non-Korean Championship
HSC XXX
Stellar Fest 2: Lunar Cup
SC4ALL II: StarCraft II
Kung Fu Cup 2026 Grand Finals
RSL Offline Finals
HCC Season 3
eXTREMESLAND 2026
PGL Major Singapore 2026
Stake Ranked Episode 6
BLAST Rivals Fall 2026
IEM Beijing 2026
Stake Ranked Episode 5
PGL Masters Bucharest 2026
1win Private Club #2
Thunderpick World Champ. '26
TLPD

1. ByuN
2. TY
3. Dark
4. Solar
5. Stats
6. Nerchio
7. sOs
8. soO
9. INnoVation
10. Elazer
1. Rain
2. Flash
3. EffOrt
4. Last
5. Bisu
6. Soulkey
7. Mini
8. Sharp
Sidebar Settings...

Advertising | Privacy Policy | Terms Of Use | Contact Us

Original banner artwork: Jim Warren
The contents of this webpage are copyright © 2026 TLnet. All Rights Reserved.