Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Why learn python in 2017?


Published on

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.

Published in: Technology
  • Be the first to comment

Why learn python in 2017?

  1. 1. Why learn python in 2017? by Karolis Ramanauskas
  4. 4. TOP U.S. Universities choosing python as intro language Resource -
  5. 5. Companies using Python
  6. 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
  7. 7. Hello, world!
  8. 8. But python is slow…* * can use Cython, Jython, Numba for performance which compiles to native C, C++, Java code
  9. 9. Most of the time it doesn’t matter
  10. 10. Python boosts developer time and that’s what matters most
  11. 11. Python (130 lines) vs. C++ (1580 lines)
  12. 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)
  13. 13. Application areas
  14. 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. 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. 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. 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. 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. 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. 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. 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. 23. TIOBE INDEX TIOBE counts hits of search queries containing “<language> programming”. Python staying quite stable over the years with some recent growth.
  24. 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. 25. Redmonk ranking RedMonk focuses on comparing language discussion through StackOverflow (tags) and usage through GitHub (projects). Python is 5th. * live updates at
  26. 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. 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. 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. 29. Best resources for learning python Read “Fluent Python” by Luciano Ramalha Solve programming challenges at Listen to on your commute Go to Python meetups Best of all, think of a cool project and make it happen!
  30. 30. Thanks for your time! See you on the NEXT MEETUPS. We need speakers! get in touch at Info