Professor Java
Your Ad Here
There are a lot of great programmers out there who want to compete and measure their skills against each other, in competitions. However, there are not that many programming competitions out there. What are some good ones? I'm here to help.

USACO, or United States of America Computing Olympiad, is a great competition for those under 18. It features three levels of competitions, from bronze to silver to gold, which contain problems from easy to difficult, encompassing dynamic programming, flood fills, etc. It is really useful as it provides training pages, which allow you to hone your skills and teaches you very valuable programming techniques, a help forum, and competitions almost monthly. Definitely check it out if you're under 18. In addition, high scorers in their once-a-year event the Open allows you to qualify for the IOI (International Olympiad in Informatics) which brings together the best young coders from all over the world. 
USACO problems make you take input from a text file, with code such as
BufferedReader f=new BufferedReader(new FileReader(""));
and return through a text file
PrintWriter out = new PrintWriter(new FileWriter("problem.out"));
(Code above for Java)
The submissions for the problems may seem a little strange if you've never worked with input from a file before, but it doesn't take that long to get used to.

One of, if not, the largest programming competition in the world. Open for all ages (13 and up) it features many different types of competitions, including Algorithm, Marathon, Assembly, and etc. Note that you can make money through TopCoder competitions, with the exception of Algorithm and Marathon unless in very rare situations. I will be focusing on Algorithm and Marathon because they require the least amount of GUI knowledge and can be done very easily.
TopCoder Marathon and Algorithm matches take place at specific times, and fairly often (almost 2 times a week). The problem statement gives you a question, and your formatting to answer it, unlike the USACO, is much more simpler. Write a public class, and a public method with the same signature they give you: ex. public int add(int a, int b). You simply write the code inside it and return what is asked, which is then compared to the correct answer to score you. Marathon matches are identical, except the questions are much more difficult and give you a 2 week deadline. In addition, TopCoder has many practice problems (past contest problems) which are available to use to train with. They also have a really good ranking system, so you can tell exactly what you place among all the coders in the world. Many languages are accepted, and they have two Divisions: Division 1 and Division 2. You start out at Division 2, but if your ranking gets high enough, you move to Division 1, where the problems are harder. In addition, TopCoder holds their own marquee event, the TopCoder Open, which attracts many people and has a finale in Las Vegas (finalists get all expenses convered) with many prizes for the winners. You can also write problems for the competitions and make money for it; their are a lot of ways to make money on TopCoder. A must-see, available for virtually anyone!

As I've been working on my website, it has almost gotten to the point where I can start submitting it to search engines and the like to get more traffic. SEO, or search engine optimization, is the key to success in getting more visitors. Here is a list of ways you can "optimize" your site so it will get to the top of search engines for relevant searches.

1) Submit your Site!
First and foremost, giving your webiste link to search engines is an important first step.
Submit to Google:
Submit to Yahoo:
Submit to Bing:
These are three of the largest serach engines and your website should definitely be submitted to them. However, note that url submissions take notoriously long before getting indexed (put into Google's list of sites) and I will explain below how to speed up that process.

2) Create backlinks to your website!
A backlink is a link from another website back to yours. Backlinks are very important as they not only drive visitors directly to your site, but Google uses a "PageRank" for your site based on the amount of links you have which are important on determining where you are in their searches. Email another webmaster with a similiar site to yours, offering to exchange backlinks with them (you each post a link to each other's website). This is beneficial to both of you, increasing both websites' PageRank. In addition, joining a popular forum is useful too, becacuse by posting your website URL in your signature, you create a lot of backlinks which are quite often viewed. A good forum to start at are the Digital Point forums.

3) Submit a sitemap
Submitting sitemaps to popular search engines such as Google or Yahoo provide them with a digital map that allows them to crawl and index all pages of your site. It has a .xml extension, and can be created for free (just google free website sitemap maker).

4) Submitting to directories/Writing articles
Writing articles and submitting to directories help create valuable backlinks for your site. A popular free article submission site is, where you can submit articles for free and link to your site. Directories store useful sites into categories, and are greatly beneficial to your website's PageRank because they themselves have very high traffic. Getting into some directories such as DMoz is hard and can take very long, but it is worth submitting your site to.

5) Advertising
Another way to publicize your website is through advertising. Sign up through a program such as Google AdWords, where you pay for a certain number of clicks. AdWords is not that expensive, and can range anywhere within your budget, but if you choose to pay more, your ads will be seen more frequently and in better places. Most to almost all of the traffic is genuine, as Google efficiently places the ads during relevant searches for keywords relating to your site.

6) Site Descriptions/Keywords
It is important to write a site description as well as having relevant keywords in your site title/headings. Use concise keywords, but make it readable. For example, if a webpage is a javascript calculator, you could write "Math Javascript Calculator" which includes all important relevant keywords. Your headings should contain valuable keywords, as well as the site descriptions and <meta> tags. Google weighs these fairly heavily, so spend a lot of time maximizing these.

In website design, there is the motto "Content is King". This cannot be more true. Visitors are attracted to sites that contain a lot of useful information that is regularly updated. There is no way around this. Spend time and create useful content and you will see that your website traffic will gradually increase. Note that Search Engines favor heavily newly updated websites, so be sure to keep your content fresh. Also note that Search Engines read html the easiest, and give preference to these sites, so be sure to have a lot of html content or it might not rank to well (Java applets are cool, but don't make your site completely Java based). Finally, search engines seem to like blogs a lot, so maintaining a blog and posting a lot will help you get listed quickly.

All in all, SEO or Search Engine Optimization is very important for website owners and if done correctly can increase your traffic by 10 times. The best advice I can give you is to follow the seven rules and guidelines listed above, but pay particular attention to number 7: CONTENT. Keep adding content and sooner or later you will acheive the web traffic you want.

Happy website building! Leave comments below.
To get to the goodies: the old post I gave which had the code for the address bar alert trick can be shortened quite a lot. This is useful because it is especially effective on smartphones, where you cannot Ctrl-Alt-Delete or Force Quit, so your friend is forced to manually shut down and restart his/her smartphone. The new code: javascript:while(1)alert('haha'); and you can replace haha with your personal message. 1 is the boolean value for true, so you don't need 1==1, and the brackets are unecessary since alert is one line long.

Ok, so I have been doing pretty well on my website and after I finish my math functions completely along with the javascript calculators directly online, I will start publicizing my website, etc. I have put up forums for other people to build a community and answer each other's questions, as well as a "Submit a Question" that allows people to ask me questions directly to my email. I will put up an Arrays/Sorting tab directly afterwards, which will have popular sorts, such as bubblesort, quicksort, etc. and binary search, etc. After that, I will make an "ad hoc" or random popular java programs page, where popular things that don't really fall into any category go. This will include the popular Towers of Hanoi recursion and other things as well.

Lots of new things comming up, so stay tuned! Leave comments.
I was messing with javascript and read online that you could write and execute javascript in the address bar. So i sat down and created a devious program. Copy and Paste into your friend's browser, and see the mayhem unfold! They will never be able to close the alert box that pops up and cannot do anything except Ctrl-Alt-Delete.
Paste this code:

javascript: var a=0;while(a<1){alert("haha");}

Very short code, but truly evil. Paste into the address bar (where you would type is and it will work.
Note: replace "haha" with your personalized message, but you still need the quotation marks or the code won't work.

I made an official Evil Buttton for my website, in my side projects/cool stuff part: evil button.

Anyways, have fun wrecking mayhem on the web and your friends with your new tool.
Leave comments please.

Like I said before, I made a side projects/cool stuff section of my website. Check it out- it has my first javascript game which is a simple addition game- called Fun Addition Game How many points did you score in 60 minutes? Post comments and lets see how high you can go! I was fairly impressed with my code because I had just learned javascript and html just three days ago and I seem to have gotten the hang of the basic stuff. Drop me a comment for improvements- always love to hear improvements! Also, I am planning on making an expanded version- with difficulty levels, addition, subtraction, multiplication, division and crazy stuff that will make you never want to do math again. Also, for those who want to know good javascript/html tutorials, I used for their javascript tutorial and for their html tutorial. You should definitely check both out, they are really great and are a super crash course. In addition, just for some complicated javascript stuff, I got JavaScript Cookbook by Shelley Powers, published by O'Reilly. However, the book is not a neccessity, just useful for some references. I only got it yesterday but it seems chock-full of so called "recipes" and useful answers to some common programming questions with great explanations. I would give it a try if I were you.
Thanks for listening, play my Fun Addition Game and tell me how you liked it, and your high score!
Finally got my first official page up at isPrime. I have javascript on it too, check it out! You can see if a number is prime by inputting it on my website. Also, I am almost done with a javascript game/ side project. I will add a section to my page called Side Projects; it will have random bits of cool code, either java, javascript, or any other thing I choose to do. I will answer miscellanious cool questions I get in this section too. Bear with me, the site is still new but I am trying to add lots of cool stuff.
In case you guys didn't know, my website was built completely for free using This is just a quick blog post to show the advantages/disadvantages of a free hosting/domain vs. a paid hosting/domain.

Technically, you can't get a free domain name. Usually, free domain name providers give you a subdomain, such as If you want your own domain, such as, you will have to buy your own domain, which can cost from $5 a year upwards. Now, once you have decided to get a domain name, whether free or paid, you need a hosting service to host your website. Most free services offer both the subdomain a hosting together, and even some sites offer free hosting if you buy your domain name off of them. However, free hosting and paid hosting have very important differences you should know before proceeding.

First of all, if you have little/no knowledge of HTML, free hosting sites is the way to go. You can build a website for free without knowing how to code, using simple drag-and-drop interfaces. Paid hosting will give you much more complete control of your website, but will not give you a simple way to build your website, instead giving you nothing and having to build your website from scratch through code. However, paid hosting allows you to do things such as embed java applets that you can not do through sites such as weebly. When you upload a file through weebly, it is saved on their server. Using html to embed the applet requires you to know the location of where you uploaded the file, but it is difficult to find. I am still trying to get around this, drop a comment if you know. Also, free hosting only allows you to run client-side languages with HTML and Javascript. THese are still powerful tools you should use if building a website, as it allows interactability with your user. However, free hosting/domains don't' give you the ability ot use server-side languages such as PHP, while paid hosting/domains do. Server-side languages offer stability as well as more control, because the code for your website is run on the server, so if it works once, it will work on all machines. You can process user input on your site and do things automatically and efficiently with PHP. Last thing to remember though: if you are set on using a free hosting/domain, I recommend It's what my site was built on, and offers quite a lot of control and gives your site a professional look with features such as drop-down menus easily.

In general, rules to follow: If you are new and do not know much about programming, building a website just for fun, or don't want to invest money on a website, try free website domain/hosting. If you want complete control over your website and have proficiency at building a website, or can hire someone to build you a professional website, choose paid domain/hosting.

Above all, have fun building your website!

Hey guys! I've decided to create a blog to chart my progress as I expand and build my website. Plus random updates, and things you can expect. Feel free to comment for any suggestions, or if you want me to code for you FREE. First post, much more to come. I'm just working on getting some of my code and explanations for useful math functions up right now, as well as trying to get some html/javascript up so you can use my functions online such as the totient of a number without compiling/running code.
Provided by site.
Your Ad Here