Key 4: Thinking out-of-the-box for the algorithms.
An algorithm is how we solve a problem. The most common issue of not being able to solve the problem is to not being able to define it properly. Normally, we look to apply an algorithm only at a small level, such as in a small functionality, or sorting in a function. We, however, do not think about algorithms when the scale increases, mostly the stress is on how fast it is. Let's take a simple requirement of sorting a file and sending it to a user. If the file is, let's say 10-20 KB or so, it will be best to simply use the Python sorted function to sort the entries. In the following code, the file is of format where columns are ID, name, due, and due-date. We want to sort it based on dues, as follows:
10000000022,shy-flower-ac5,-473,16/03/25 10000000096,red-water-e85,-424,16/02/12 10000000097,dry-star-c85,-417,16/07/19 10000000070,damp-night-c76,-364,16/03/12 10000000032,muddy-shadow-aad,-362,16/08/05 def dosort(filename...