Semi-motivational talk about why today is a great time to learn Python. Slides include a brief overview of the current state of the language, its application areas, and Python's future.
4. TOP U.S. Universities choosing
python as intro language
Resource - http://cacm.acm.org/blogs/blog-cacm/176450-python-is-now-the-most-popular-introductory-teaching-language-at-top-u-s-universities/fulltext
6. So what’s the big
deal about Python?
Easy to learn
Clean syntax
Comprehensive standard
library
Excellent documentation
Immediacy of writing and
running a script
General purpose
List comprehensions
12. 90% THERE
Python is a 90% language, it will help you get almost any
task done in 90% of the cases
“Python where we can, C++ where we must” - first Googlers
(Sergey Brin, Larry Page, Craig Silverstein)
14. Scientific computing
The “third pillar of science”, standing right next to
theoretical analysis and experiments for scientific
discovery.
Python is most widely used for the purpose.
Packages:
● SciPy - solves common science and engineering
tasks;
● NumPy - multi-dimensional arrays and matrices;
● Matplotlib - plotting library;
● Pandas - high-performance, easy-to-use data
structures and data analysis tools;
● SymPy - symbolic mathematics library.
15. Data Science
Data Science is a BIG buzzword. Nevertheless,
Python plays a crucial role there.
Machine Learning:
● Scikit-learn
● TensorFlow
Data Engineering:
● PySpark
Data Analysis:
● NumPy
● Pandas
Data Mining:
● PySpyder
● Scrapy
Data Visualization:
● Matplotlib
16. Web development
Frameworks:
● Django
● Pyramid
● Flask
● Sanic
● Zope
In-built support for Internet protocols:
● HTML and XML
● JSON
● E-mail processing
● FTP, IMAP
● Socket interface
Task runners:
● Celery
Other widely used libraries:
● Requests - HTTP client library.
● BeautifulSoup - HTML parser.
● Feedparser- RSS/Atom feeds parsing.
17. Computer vision
Computer vision is concerned with the automatic
extraction, analysis and understanding of useful
information from a single image or a sequence of
images.
Packages:
● SimpleCV
● OpenCV
● Scikit-image
● PCV
18. GAME DEVELOPMENT
● Blender
● Turtle (great for beginner learners)
● Pyglet
● Pygame
● Kivy
● Panda3D
● Python-ogre
Some examples of famous games:
● Eve Online
● Pirates of the Caribbean
● Mount and Blade
● Battlefield 2 (server logic)
19. EMBEDDED PROGRAMMING
~95% of embedded system code is C++.
Python is starting to get used more and more.
Microcontrollers / microcomputers:
● Micro:bit
● RaspberryPi
● Arduino
● Adafruit
Python subsets optimized for microcontrollers:
● MicroPython
● PyMite
20. Others
● Shell scripting
○ sh
● Embedded scripting
○ Vim
○ Maya
○ Ableton Live
● Language processing
○ NLTK
○ spaCy
● System administration
○ OpenStack
○ Ansible
○ SaltStack
○ Graphite
● Desktop GUI
○ TkGUI
○ wxWidgets
○ Qt via PyQt or PySide
● Probably dozens more application areas
21. CAVEAT
● For each of the application areas listed in the previous
slide, there is probably an even better language.
● For scaling, Java would do better. For Computer Vision,
Machine Learning, C++ would be the best. For Game
Development lots of choices that are better than Python.
● However, Python will get you 90% in any scenario.
● Development speed and flexibility as a feature!
● Ability to “mix and match”:
○ Django, pandas and scikit-learn all in the same project;
○ OpenCV combined with PyGame, and so on.
23. TIOBE INDEX
TIOBE counts hits of search queries containing “<language>
programming”.
Python staying quite stable over the years with some recent growth.
24. PYPL (Popularity of language) INDEX
PYPL is based on Google Trends and measures keyword “<language>
tutorial”
Python grew the most in the last 5 years (7.6%)
25. Redmonk ranking
RedMonk focuses on comparing language discussion through StackOverflow
(tags) and usage through GitHub (projects). Python is 5th.
* live updates at http://langpop.corger.nl/
26. IEEE spectrum ranking
Most comprehensive ranking of all. Tracks Google Search, Google Trends,
Twitter, GitHub, StackOverflow, Reddit, Hacker News, CareerBuilder,
Dice. Python is 3rd.
27. Future of python
● Python moving from version 2 to 3.
○ Transition done. Python 2 can be regarded as legacy Python and Python
3 as just Python.
● Type annotations in Guido’s plan. Currently, can use MyPy
for the purpose.
○ Type annotations will enable more robust, faster development.
● Async programming paradigm.
● Starting to get used as enterprise software as myths
about Python are being debunked and knowledge improves.
28. So, who should learn Python?
● Beginners learning programming
○ I hope children in Lithuania start learning it at school!
● Professionals in area <X> wanting to speed their
development process;
○ Embedded systems;
○ Computer Vision;
○ Data Science;
○ Web Developers;
○ General Software Engineers;
○ System administrators;
○ Lots of others...
● People who have nothing better to do but learn new
programming languages (just kidding);
29. Best resources for
learning python
Read “Fluent Python” by Luciano
Ramalha
Solve programming challenges at
codewars.com
Listen to talkpython.fm on your
commute
Go to Python meetups
Best of all, think of a cool
project and make it happen!
30. Thanks for your time!
See you on the NEXT MEETUPS.
We need speakers!
get in touch at
Info @vilniuspy.lt