Thursday, July 13, 2017

Beginners Guide: Google Ranking. Tips for Improvement In Ranking

What is Google Page Rank:

Page ranking by Google follows an algorithm called PageRank (PR). The purpose of this algorithm is to rank websites to display in Google search engine and use this resultant rank to order websites in that search engine to put the more popular pages to the front. The basics of the algorithm is to calculate the a website’s quality by determining the number of links of various other websites pointing to the website and also the quality of the aforementioned links. In simple mathematical terms, if a page provides quality content, it is considered more important to a wider population of internet users. As a result, it will get a higher number of links from other websites.
When Google first launched its search engine, this algorithm was used. It is the best-known algorithm so far, though other algorithms have been developed since that time.
If you want a comprehensive description and analysis of PR algorithm, check out the wikipedia page for Google PR.

For bloggers interested in SEO(search engine optimization), this term comes up sooner or later because they want to put their blog or website at the front pages of google or any other search engine. This blogpost discusses the factors to use this concept for one’s benefit i.e. to make one’s website rank higher in the search engine.

WHY Does Google Page Rank (For SEO) Matter:
Many believe Pagerank is dead- a propaganda spouted everywhere. This is incorrect. This is a very important algorithm that will always be used to rank websites. Many SEO practitioners don’t understand it well and may say it’s not important. But it would be wise not to pay heed to such ill advice. Many think so because Toolbar PageRank is indeed dead. So what is Toolbar PageRank? It is a webtool to determine the rank of a page by analysing search information from Google’s database.
It used to help SEO bloggers since the tool was updated several times but now according to this source, Google has now decided to remove this tool.  On their part it’s a considered as a ‘smart’ business decision to stop the manipulation of search results.
The real algorithm, however, is still running but the visual tool used by the bloggers is now taken out. Since the algorithms is running behind the curtain to influence the search results, it is still relevant for bloggers to pay attention to this, if they want to bring their pages forward in the search engine. Thus Google PageRank still matters, though we may not have a visual of the results.
What Should A Blogger Do To Improve Google Page Ranking:
  1. Post  Quality Content:  At first plan what to write and do some research. Writing relevant and informative content is the most important thing for any blogger before thinking about any other SEO strategy. Creating posts for a specific group increases the probability of increased site traffic. Try to think from a reader’s perspective. What do they want in your article? Are you, the poster, providing enough information to satisfy the need of the reader? What will the reader search about in the google search bar to get to your website? All these questions should come to your mind before heading to write a post. For example check out this blog-post (Best Programming Websites for Beginners) from A Programmer’s Experience where the article is targetting beginner programmers and their confusion about where to learn and practice programming. They wanted to see a compiled list of websites ready for them to browse through along with information to let them know what they can expect from each link. They frequently search the web for “programming websites for beginners” and such. Some may fill their posts with keywords but that will ruin the quality of the post and the popularity of the website will eventually decrease. So you must be careful of that.

  2. Frequent Update:  Many feel lazy after a while and start delaying their posts. This is a big no-no especially for the beginner bloggers. Google checks the regularity of websites. Websites that are updated regularly are considered to be more important by PageRank algorithm. Infrequent updates or posts is a leading cause for websites to slowly lose their viewership.

  3. Metadata: Metadata is the information about the page. You can see this youtube video about the definition of metadata. It is very important since search algorithms use this to analyze the popularity of search keys and relevance of pages. They can be added to titles and description. Descriptive metadata should be like an advertisement since they are shown below the link to a page in the search results. For example in the blog-post for Beginner's Guide: Discrete Mathematics And Programming Contests. A descriptive metadata has been added-“It's a Beginner's guide to discrete mathematics and its importance for and  relation to programming contest”. And this is shown in the search result in the following figure





  1. Links to Relevant Websites: If links to other websites are added, be sure the websites you are linking to are popular websites and the links work properly. These not only help the linked websites to rank better but also help you get more viewers since the PR algorithms recommend your websites to have a higher rank. But there is small but important trick here. Rather than writing “click here” or “here” or “this website”, spell out the website name or a keyword referring to that website.

  2. DescriptiveImages:  Alt tags or alternative text descriptor are highly recommended to be used when inserting images or videos in your blog posts. This alt tags help Google to locate and rank a page which is the most important factor for any page/post. Learn more about alt tag in Accessibility’s article about Alt Tag.

  3. Social Networking:  Whenever a new post is written, share it on various social platforms. Some of the popular ones are facebook, twitter, pinterest , google+, youtube and quora. They help you get instant views. The increase in viewership will obviously be noted by the PageRank algorithm for better ranking. Also posting in these platforms, the links to your website will also increase internal count variables of the algorithms which are used to determine page ranks. They can also be used as advertising platforms.



There are so many other advice out there in the internet but these are considered to be the most important for any blogger to follow.



If you are interested in programming problem solutions, reviews of programming websites and useful articles for beginners, feel free to check out A Programmer’s Experience.





Thursday, July 6, 2017

Lucky Day!! Getting Blogger Recognition(Trafotoz) AND Liebster Award(Nikkistalk)

So recently I have received a "Blogger Recognition Award" from Trafotoz, along with 8 other blogs. And nikkistalk nominated me for Liebster Award along with 4 others. You can view the award page with all the nominations in here  Blogger Recognition Award page(Trafotoz) and Liebster Award(nikkistalk). The Awards are about posting interesting contents on a regular basis.
For me this is a very exciting and good news because I've only started blogging for about a month using the platform google's blogger.com . And now I've received this achievement for my hard work and time investment behind my blog Programmer's Experience.

What's my blog about?

I have started my blog to share my experience as a CSE student of the best engineering university of Bangladesh BUET (Bangladesh University of Engineering and Technology). Since I had to practice a lot of programming problems using many websites/platform such as Hackerrank, Codeforces, Codechef  and Hackerearth  and I also had to complete a lot of class projects in C++, C , Python, Java , HTML,CSS, Javascript , SQL , Assembly etc, I decided to write about these experience in a blog to help other people who are interested in programming /coding or are students of CSE. And what's the best way to share my ideas and experience? The answer is blogging. 

My blog includes reviews, programming problem solutions and advice for beginners on programming. As of now I've written 16 posts in the span of a month and  the response was very positive and now I've received the recognition I've sought since the beginning. I plan to continue my effort and contribute more to the programming community. 

Some tips to newbies...(from my experience)

  1. Write contents with necessary links and it should be at least 100-150 words
  2. Post the blog-post links to appropriate forum, facebook groups and pages, youtube and google+
  3. Use quora.com  to embed your blog-post links to your answers to get more views.
I've followed these simple yet effective rules to get quick views and a growing viewership. I hope it works for you to. 
Don't forget to share and subscribe. Leave your comments below. 

Saturday, July 1, 2017

Beginner's Guide: Discrete Mathematics And Programming Contests

As a student of CSE, one must complete a course on Discrete mathematics. Many then become confused why they should even learn this mathematical subject. Discrete mathematics is a vast topic, but here are some essential things that you should know to be able to solve programming contest problems:
  • Counting : You are going to see a lot of problems like "Count the number of ways to do X". In most of the cases, enumerating all possible ways is simply not going to work, and you are expected to use some kind of dynamic programming. To be able to solve counting problems properly, you need to have a good understanding of certain topics such as:
    • Recurrence relations : Ubiquitous in counting problems. In particular, learn to come up with recurrences for counting. Also, learn to convert recurrences of high complexity to lower complexity
    • Matrix exponentiation : In the case of recurrences that have constant coefficients, it is possible to express the final state vector as the product of the power of a matrix and the initial state vector. A good example is calculating Fibonacci numbers using matrix multiplication. This trick helps to reduce the complexity of finding Nth term of some recurrences from O(N) to O(Log N)
    • Binomial coefficient : Many counting problems with symmetries can be reduced to finding a few cases and multiplying them with some binomial coefficients. So learn to calculate these efficiently depending on the type of problem. There are different kinds of precomputations one does. Also, try to learn the properties of binomial coefficients modulo primes.
    • Pigeonhole principle : More of a proof-aid technique rather than something that you directly apply. But I have used this in cases where I was required to find two cases which share some property. Birthday attack can be thought of as the probabilistic variant of pigeonhole principle, but it is not that commonly used.
    • Inclusion–exclusion principle : How to formalise dealing with double counting. It is sometimes so much easier to double count in the beginning and use inclusion-exclusion later than to try some double counting avoiding recurrence
    • Subsets and Permutations : Learn to generate subsets of a set and permutations of a sequence. There are some counting problems where you are expected to sum up quantities over permutations or subsets. DP over subsets is something that you should learn too in this regard.
    • Indistinguishable and distinguishable objects : Learn the difference, and learn how counting changes between the two cases.
    • Lattice problems : Counting the number of ways to go between two points on a lattice with various kinds of restrictions is a very common problem. Learn the basic method, and how things like binomial coefficients and Catalan numbers appear in the solutions.
    • Counting on graphs : The questions of this type that I have seen commonly include tree DPs. Counting problems on non-tree graphs are usually hard. You see problems coming up based on Kirchhoff's theorem once in a while too.
    • PĆ³lya enumeration theorem : I have seen this coming up in contests only a couple of times. But learn this and if something comes up, it should be easy for you.
  • Learn to work with moduli : Most of the times, you are asked to do the counting mod some big prime (most favourite is 10^9 +7). Learn to do the calculations without overflow, and learn some basic properties of primes from group theory which help solve some problems.
  • Probability and Expectation value : Here are the basic things you should know:
    • Calculating probabilities as ratios of counting problems : Do this and you can calculate things to very good accuracy
    • Recurrences for probabilities and expectation values : In a lot of cases, even when you can count and take ratios to get probabilities, it is much easier to find a recurrence directly in terms of probabilities. Taking care of double counting can be a pain though
    • Linearity of expectation value : Learn to use it right (I can't) and many expectation value problems should be cakewalks for you
    • Random walk : Modified random walk problems come up very often as probability/expectation value problems, so learn the basic results
    • Coin toss problems : Another set of practically overused problems

Interview Questions at Enosis(Part 3)

In Part 2 , I have discussed 3 coding problems out of 6. Here we will talk about the next 3 coding problems. Problem 4: Write a function...