You know, nearly a year ago I didn't even know java. I had just passed class 10 at that time and was nearly 16 years old. Today I am 17 and I have just entered class 12. I have been asked to represent my school in several programming competitions in many inter school programmes (collective event competitions) and also being expected to bring gold medals in these coding competitions. Here is my story.
In India, our system of education is very different than other countries. Unlike freedom of choice, we are taught all the basic subjects (and I mean each and every basic subject like Maths, Physics, Chemistry, Social Science, English, etc.) till class 10. Their no choice for you to choose what you want to study and what you don't. Only after passing class 8 you get a choice for class 9 & 10 between Computer and Economics (commerce also in most schools). I wasn't given computer because my overall marks (or grades) were not sufficient to get computer. So I was "sort of" forced to take economics. So I continued. After I passed class 10 with much improved marks,.... before that let me tell you, when a student passes class 10 in India, he or she is give a choice of three streams :- Science, Commerce and Arts. One has to choose only one stream between the three. I chose Science and I was awarded (given) six subjects, five of them were compulsory and there was but one choice - a choice between computer and biology. Now there was when the problem started. I hated biology because I didn't understand it, I was weak at it, and also class 11 biology was tough as hell. Also for computer, I hadn't studied computer in class 9 & 10 and without class 9 & 10 knowledge, no one could survive class 11 & 12, because java basics and much more are taught in class 9 & 10. I had learnt from my seniors that computer is pretty easy and very scoring, if you understand it. One of my senior friends also agreed to help me if I took computer. So I chose computer. I entered class 11.
Before the school started, 3 weeks of holiday was given to students who had taken admission to class 11. I made full use of that time and studied class 9 & 10 computer books to learn how to make java programs. This was tough because what most students did in 2 years, I had to do the same thing in 3 weeks. Completing 2 years of study in three weeks is not easy. But my friend did everything to teach me the java programming basics and all. I worked hard too. Three weeks went by in blink and came the first day of the new class.
I won't describe other periods except ones with computer. Thankfully our computer teacher started with the basics of java programming, just a quick revision. My first computer practical was a nightmare. Sir gave us simple (basic) java programs which I could make. I saw other's programs and I simply could not understand the "language" they were using for the programs. Seeing them I thought, did I make the wrong choice ?
But I didn't give up. I practiced more programs. One day it so happened that Sir (we addressed our teachers as "Sir" or "Mam") gave us 9 pattern programs (printing a certain pattern) to make in the computer practical class. Now we have 2 practical classes every week, each of an hour or more. Sir gave us 9 pattern programs which were not that easy and most boys completed those programs in 2 weeks. You know how much time I took to complete those 9 programs. 20 minutes. Yep, you heard (saw) it that right. Just after 20 minutes of getting the programs I called Sir to show them. After compiling and running all the programs in Terminal window, Sir called me "Master of pattern". There is where my success started.
I not only succeeded in pattern programs but also in all other types Sir taught us till date like String programs, Linked lists, Programs involving arrays, etc. I could do them all and I could do them 5 times faster than any other boy in the class, 5 times better than any other boy in the class, who by the way were the best programmers in the school till I came. My computer teacher was very proud of me. Hard work had payed off.
I was so good at computer that Sir said that I had a "gifted mind" and that "You are not like anyone I have ever seen or taught". I even created legends (stories) in the school, though they weren't that popular. For example, one day, I was surfing the Internet for topics for my science project. It so happened that I came across a computer projects site and there I found a project which told to write a program to check if a Sudoku solution (or simply a fully filled sudoku) is valid or not. (For those who don't know what sudoku is, don't ask me. Search the net). The whole program coding was given along with the explanations which was pretty easy. Then in the end of the page a question was asked saying "Do you think you are expert enough to make a program that can solve sudoku puzzles?". I decided to take up that challenge and started to think about it. I was at school, trying to find a solution as to how to make the program. I was trying to study the pattern, the no. of possible numbers that can be filled in a particular box and also trying to find an algorithm to predict the no. that can be filled in the empty box next to a filled box. A boy saw me busy and asked me "What are you doing?". I said "I'm trying to make a program that can solve sudoku puzzles, like the ones given in newspapers to solve." "Go to hell!" said the boy, "I tried to make this program once and wasted 1 month but could not make the program. It is impossible. How can you make the program." At that moment I decided, I had to make the program, and I said to him "I can." After that I went home, thought about my ideas day and night and made the program in 2 days.
And I was very exited while seeing the boy's face when I told him I did it in 2 days. After that he asked me to show him how I did it but I didn't give him the program. This is because when I had showed Sir the program he said that it was very good and not to give it to anyone. You may tell about it but not show because it was my own "invention". So I didn't.
Once it so happened that during recess I had finished my tiffin and was roaming about in the school. As I was roaming, I came across two of my friends who were playing chess. So I went to see their game. One of the saw me and said to the other, "Do you know, Abhilash is a great programmer. He made a program that can solve sudoku puzzles." "Wow", said the other boy and after some time he asked "Do you think you can make a program in which we can play chess?". "Let me think......... I think I can." Saying this I started on my new project, a program in which you can play chess or simply "Chess_game" as I named the program. But there was a problem- I didn't know how to make graphics programs nor applet programs. These things are taught in college level in our country, if you do BCA (Bachelor of Computer Applications) or MCA or CSE etc. So the problem was that I had to make the program such that the game runs in the terminal window. (Terminal window in java prints nothing but what can be inputted via keyboard and takes input too). So I improvised. For the board , used characters like '|', '---', to print board. For the chess pieces, I used symbols like 'WP1' for "White Pawn 1", 'BR1' for "Black Rook 1", etc. and printed them on the board in the following way:-
|---|---|---|---|---|---|---|---| |BR1|BH1|BB1|BQ1|BK1|BB2|BH2|BR2| 0 1 2 3 4 5 6 7 |---|---|---|---|---|---|---|---| |BP1|BP2|BP3|BP4|BP5|BP6|BP7|BP8| 10 11 12 13 14 15 16 17 |---|---|---|---|---|---|---|---| | | | | | | | | | 20 21 22 23 24 25 26 27 |---|---|---|---|---|---|---|---| | | | | | | | | | 30 31 32 33 34 35 36 37 |---|---|---|---|---|---|---|---| | | | | | | | | | 40 41 42 43 44 45 46 47 |---|---|---|---|---|---|---|---| | | | | | | | | | 50 51 52 53 54 55 56 57 |---|---|---|---|---|---|---|---| |WP1|WP2|WP3|WP4|WP5|WP6|WP7|WP8| 60 61 62 63 64 65 66 67 |---|---|---|---|---|---|---|---| |WR1|WH1|WB1|WQ1|WK1|WB2|WH2|WR2| 70 71 72 73 74 75 76 77 |---|---|---|---|---|---|---|---|
The numbers signify the position no. of a cell. In the program, you have to enter the piece which you want to move and then the position no. of the box where you want to move. I also included the rules of the game in my program to ensure that the pieces are moved according to the rules of chess, including special cases like promotion, en passent, castling, etc. I showed it to my teacher and he was so happy that he showed it to all other teachers and proudly said that I was his student.
Today I am in class 12. I am planning to go for MCA (Master of Computer Applications) degree after passing class 12 when I go to college and after that hoping for a bright future. Maybe get a job at Google or somewhere. In the meantime, I will be helping people with their problems. Thank you for reading. I will let know later about the competitions. Sir said to practice some very hard programs and I am consulting INOI (Indian National Olympiad for Informatics) problems for that. They are tough. (You can check IARCS website for INOI past years problems). Some hard programs will be warmly welcomed (But not time consuming ones, since time is less than 1.5 hours in competition). So try helping me get some hard programs (and when I say hard, I mean hard). My name is Abhilash Misra and I am from India. I study at Don Bosco School, Bandel in class 12. Thank You.