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
Post a Comment