This has been a discussion that Robey (partner), and I have been discussing for a while.  Learning how to make the most efficient code, in particular what makes it efficient.  From my understanding a program is more efficient the fewer iterations (times it must run through a process) it incurs.  So, if you’re using a program and it takes a long time, most often it will be because it must run processes multiple times.  One of the simplest ways to work on making your program more efficient would be to lessen the amount of times a program must run in order to find a result.  An example of how this works in programming is in the idea of the ‘range’.

Using ‘range’ in python has you run through a range of (for example), numbers.  You could compare information through a certain range, until you get to the answer you want.  Therefore you must go through a range of numbers before you come up with your solution and subsequently check each one.  If your answer doesn’t show up until one of the last numbers in the range is reviewed, it could take a while to find a solution.  

‘Lists’ are another example.  Sometimes lists (list=collection of information you could be querying, a list), can take a while to go through as some things go through your list in a linear fashion.  Just like the range discussed above, it doesn’t come upon your solution for a while if your solution is at the end of the ‘List’.  

There are many other aspects that affect efficiency in coding, but those are some of the main ones I understand right now.  If what I discussed above makes sense to you, think about it when interacting with any program you use.  Many times it can help to explain lagging in various programs.  Inkscape especially has taught me that lag can also occur because you don’t understand the way the program works.  That seems to be one of the fundamental reasons why open source programs are generally thought of to be lower quality.  They are as high a quality as many of the programs to be bought on the market, however they just require that the user have more base knowledge of programming in order to use them effectively.  Understanding some of the basics of programming can make the simplest things regarding computers make more sense.  Keep that in mind next time you’re banging your head when working on something and you think it’s the computer’s fault.  It could be the computers fault or it could be you!