My experience with Python


I have used Python for a limited amount of time but have had experience using it to build a Machine Learning solution to a problem. Python is an interpreted programming language used for scientific and mathematical computing, web applications and software applications. I wanted to give a bit of evaluation of my experience with the programming language similar to my blog post on Angular.
The best thing about Python is it’s so easy to learn and use. It reduces unnecessary syntax which can often confused anyone starting out trying to learn a new language. It’s dynamically typed which means variable type names are known at run time. On top of this Pythons use of indents makes code readable and easy to understand. At the start it took me a while to get used to but after a while it helped in making sense of my code. My favourite thing about using Python was getting rid of all the excess effort in getting to the point where you can print “Hello World!” This ensures a focus on development.
However in contrast to this the vast amount of libraries Python provides is fantastic in the sense it allows flexibility and allows a lot of additional features.  There are libraries for pretty much any use case you can come up with, from image manipulation, to scientific calculations, to server automation. 

Despite of this what I found when developing a Machine Learning application with python was the amount of new libraries I had to work with. This lead to difficulties in the syntax and working with the libraries functions. Sometimes I would be confused at how to implement the various libraries using python and connecting pieces of other libraries to work in combination. Perhaps this was due to the complex nature of the Machine Learning problem at hand. In a sense Python was perfect to deal with the problem due to the libraries needed to deal with the problem. Yet it was difficult in identifying errors and problems in my code as I wasn’t able to pinpoint where the problem resided.
Another great feature about programming with Python is the brilliant community surrounding the language. The Python Programmers community is one of the best in the world and is very active. Some of the best IT minds in the world are willing to provide help on support forums. Being a part of that community can help you stay motivated in continuing with your projects. As well as this Python has a big part to play in the development of young coders. PyCon 2013 offered workshops to provide information to young programmers in learning how to hack and mod Raspberry Pi’s. I do feel it is doing a good job in teaching the next generation of programmer’s key skills.
A slight negative I have found with Python is that it can be quite slow. As it is an interpreted language its speed of execution is much slower. Having said that the speed of writing code in Python is tenfold to most programming languages so you could argue that this combats its slightly slower execution time. In my case I did find, I could create a Machine Learning solution and build it very quickly due to online resources and how quickly Python allowed me to change and manipulate code. In this sense Python is perfect for making prototypes. Python’s language constructs allow for fast development which is ideal for projects like a proof of concept. Therefore you could argue Python is suited to an iterative development cycle for eliciting requirements from the customer.
In conclusion I believe Python is an excellent beginner learning language due to it’s easy to use features and mild learning curve. It provides libraries for almost anything you can imagine. However from personal experience I felt overwhelmed with using a multitude of libraries at once. You could also argue there are many disadvantages of a language being dynamically typed and the run time errors you incur. However I preferred the quick variable declaration and assignment nature without worrying about any of the hassle. Overall I enjoyed using Python for the brief period I had and it would be interested in perhaps making a personal project using a Raspberry Pi! 

 

Comments