Python & Java: A Side-by-Side Comparison


Python Conquers The Universe

I wrote this little piece a long time ago — it was last updated in May 2007. In 2009 I moved it from my website to this blog. At this point I consider it an historical artifact, in the sense that I consider it frozen; I’m no longer going to update it when, for example, Java acquires a new programmer-friendly feature.

During the years when it was on my web site, I received a number of email comments. I responded to them all, but no one — other than their authors and me — ever saw the comments and my responses. By moving this piece onto a blog, I hope that folks who feel like commenting can do so more easily, and can share their comments with a wider audience.

During the years when it was on my web site, virtually all of the comments that I received were from…

View original post 2,238 more words

Python or Ruby: 6 Months on Hacker News


peak 5390

Front-page presence of Python and Ruby articles on Hacker News for the last 6 months. Front-page presence of Python and Ruby articles on Hacker News for the last 6 months.

I teach high school math and science, and over the last couple years I have started to teach an Introduction to Programming class.  This past spring I decided to reassess whether I should continue to base this class in Python.  I wrote a script to examine the presence of Python and Ruby on the front page of Hacker News, and the results of this investigation led me to stay with Python.  The script I wrote has been running for six months now, so I decided to take a look at the results once again.

I want to make sure I continue to teach a language that gives students a solid grounding in modern programming concepts and practices, not just whatever language I know best.  I was originally prompted to reexamine my language choice after…

View original post 350 more words

Applications Written in Python


Contents

See also:

3D CAD/CAM

  • FreeCAD is an Open Source CAx RAD based on Open Cascade, Qt and Python. It features some key concepts like Macro recording, Workbenches, ability to run as a server and dynamically loadable Application extensions and its designed to be platform independent… http://free-cad.sourceforge.net/

  • Fandango is planned to be a full featured CAD program. It has a C++ core extensible by scripts. Currently the memory core for entity management is ready, scripting works wonderfully thanks to the ease of embedding and extending of Python. A KDE+XML user interface is now in place, controlling the keyboard and mouse. http://www.soffernet.com/jaime/fandango/

  • PythonCAD is a CAD package written, surprisingly enough, in Python. The PythonCAD project aims to produce a scriptable, open-source, easy to use CAD package for Linux, the various flavors of BSD Unix, commercial Unix, and other platforms to which someone who is interested ports the program. Work began on PythonCAD in July, 2002, and the first public release was on December 21, 2002. In addition it has been ported to winXP http://www.pythoncad.org/

  • Blender is the free open source 3D content creation suite, available for all major operating systems under the GNU General Public License. It only uses Python as a scripting language, however.

  • Vintech RCAM is a CAD/CAM system for true shape nesting and NC programming of laser, plasma, oxy-fuel and water-jet cutting machines. Vintech RCAM is platform independent and now it runs under Windows XP, Windows 7 and Linux. The main programing language of the system is Python, which defines the advanced methodology and the dynamic system development. More information http://www.vintech.bg.

Audio/Video Applications

Console Applications

  • IPython – An enhanced Interactive Python shell

  • SQLPython – interactive Oracle database client (alternative to Oracle’s SQL*Plus)

  • See also PythonShells.

Enterprise Applications

  • OpenERP – A complete open source ERP & CRM; accounting, stock management, sales, and modular framework with over 750 modules. Originally called tinyErp, there is also a variant for Medical… see http://openerp.com.

  • Tryton – a fork of Tiny ERP providing a three-tier high-level general purpose application platform

  • Picalo – A data analysis toolkit for DBMS-type of data. Includes embedded Python scripting and wxWidgets GUI.

  • LinOTP 2 – a flexible and modular solution for strong two-factor authentication with one time passwords (OTP). Due to the modular architecture several OTP tokens and different OTP algorithms are supported.

  • RESTx – a RESTful, GPL licensed open-source data publishing and integration platform, which emphasizes simplicity, sane defaults and out-of-the-box usability. No complex configuration, no steep learning curve, instead up and running in 5 minutes. Components for data access or integration logic can be easily written in Python and Java, users create their own RESTful resources by posting parameters for those components or just filling out a small form in their browser.

File Formats

Image Applications

  • Gnofract 4D – A flexible fractal generation program

  • Gogh – A PyGTK-based painting program (or image editor) with support for pressure-sensitive tablets/devices. This application appears to no longer exists.

  • imgSeek – Photo collection manager with content-based search. You simply sketch the image you want to find.

  • MayaVi – Scientific visualization program based on VTK

  • VPython – Navigable 3D animations are produced as side effects of computations, making a normally difficult task exceptionally easy. The new 5.0 release candidate offers opacity, local lights, and materials such as wood.

Internet Applications

Mobile Applications

  • Aarlogic C05/3 – Ready to use GSM /GPS tracking PCB with Python engine on board with support of test server based on Google Maps http://track4free.com

  • AppBackup – an app for jailbroken iOS devices that lets one back up and restore the settings and data of App Store apps

  • Pyroute – a GPS-capable mapping/routing application for mobile devices

Office Applications

Personal Information Managers

Science and Education Applications

  • Pyrobot – A complete IDE, set of libraries, simulator, and course materials for exploring robotics in Python. Currently aimed for higher education, but work has begun for use in k-12 as well.

  • SimPy – a discrete event, object-oriented, simulation package, http://simpy.sourceforge.net/

  • PyChem – a multivariate data analysis application for Windows and Unix, including principal components analysis (PCA), partial least squares regression (PLSR) and discriminant analysis (PLS-DA), discrimiant function/canonical correlation analysis (DFA/CVA/CCA), cluster analysis (K-means, HCA), advanced evolutionary methods for variable selection. http://pychem.sourceforge.net/

  • ACQ4 – Neurophysiology data acquisition and analysis with emphasis on electrophysiology, photostimulation, and fluorescence imaging experiments.

  • MetaPath – A workflow-based metabolomics data analysis package. Includes support for principal components analysis (PCA), partial least squares regression (PLSR) and discriminant analysis (PLS-DA), metabolic pathway mining and data visualisations.

Software Development

System Administration Applications

  • Enomalism – The Enomalism Virtualized Management Console (VMC) is a open source web-based systems administrator management tool for XEN hypervisor. Servers with hundreds of multiple isolated virtualized systems can be managed like a standalone server. Enomalism also includes a virtual server creation wizard and templates to facilitate virtualized server configuration, application deployment and centralized software patch management. http://www.enomalism.com

  • radiusContext – RADIUS log analysis program (user accounting for ISPs) http://www.tummy.com/Community/software/radiuscontext

  • Salt Stack – A high-performance remote execution and configuration management engine.

X-Window Manager

  • PLWM – The Pointless Window Manager: a python toolkit for making a wm. It’s hostile towards rodents, and ease of configuration is not an objective, not so actively developed, but might be usefull for keyboard-loving hackers. Somebody might even have a use for the code, though PyWM’s ideas seem better. http://plwm.sourceforge.net/

  • PyWM – a small, simple python-programmable X window manager that’s packed with features yet very easy to learn and use. http://pywm.sf.net(More up-to-date), http://www.freenet.org.nz/python/pywm/index.html

Unclassified

  • Calix – An xwindows gamma calibration tool using Py-GTK and the xgamma command. http://creationix.com/OpenSource/Calix/ (this link do not contain anymore information)

  • CD-Store – a data cd archiving (indexing) with full search and browse capabilities using a Py-GTK interface http://creationix.com/packages/cdstore.tar.gz (this link do not contain anymore information)

  • ruleCore – A reactive event-driven rule engine for event pattern detection http://www.rulecore.com

  • L.I.S.A – The L.I.S.A project is a Digital Life Assistant for a house. You can ask things to LISA by voice or by text and LISA will execute some actions and/or answers you. LISA can control a home automation system to have an artifical intelligence in the house. http://www.lisa-project.net/

Editorial Notes

The above lists should be arranged in ascending alphabetical order – please respect this when adding new entries. If, as the developer of a listed application, you disagree with the classification of the work, please move it into the appropriate category or create a new category, respecting the ascending alphabetical order of the categories. When specifying release dates please use the format YYYY-MM-DD.

From : https://wiki.python.org/moin/Applications

List of Python software


From Wikipedia, the free encyclopedia

The Python programming language is actively used by many people, both in industry and academia for a wide variety of purposes.

Integrated development environments for Python

Python package managers and Python distributions

  • Anaconda, Python distribution with conda package manager
  • Enthought, Enthought Canopy Python with Python package manager
  • pip, package management system used to install and manage software packages written in Python
  • Python(x,y) a “free scientific and engineering development software for numerical computations, data analysis and data visualization based on Python programming language, Qt graphical user interfaces and Spyder interactive scientific development environment.”[1]

Applications

Web applications

  • ERP5, a powerful open source ERP / CRM used in Aerospace, Apparel, Banking and for e-government
  • Gate One, an open source terminal emulator and SSH client
  • GNU Mailman, one of the more popular packages for running email mailing lists
  • MoinMoin, a wiki engine
  • OpenERP, new name Odoo, an open source comprehensive suite of business applications
  • Planet, a feed aggregator
  • Plone, an open source content management system
  • Pyrat is a Laboratory Animal Facility Management Software (or Lab Animal Colony Management Software) written in Python. Its name means “Python based Relational Animal Tracking”
  • Roundup, a bug tracking system
  • Tor2web, an HTTP proxy for Tor Hidden Services (HS)
  • Trac, web-based bug/issue tracking database, wiki, and version control front-end
  • Turntable.fm, a discontinued social media site for interactively sharing music[citation needed]
  • ViewVC, a web-based interface for browsing CVS and SVN repositories

Video games

Web frameworks

  • CherryPy, an object-oriented web application server and framework
  • Django, an MVC (model, view, controller) web framework
  • Bottle, A fast, simple and lightweight WSGI micro web framework
  • Flask, a modern, lightweight, well-documented microframework based on Werkzeug and Jinja 2
  • Google App Engine, a platform for developing and hosting web applications in Google-managed data centers, including Python.
  • Pylons, a lightweight web framework emphasizing flexibility and rapid development
  • Pyramid, is a minimalistic web framework inspired by Zope, Pylons and Django
  • Quixote, a framework for developing Web applications in Python
  • Topsite Templating System, another Python-powered web framework
  • TurboGears, a web framework combining SQLObject/SQLAlchemy, Kid/Genshi, and CherryPy/Pylons
  • web2py, a full-stack enterprise web application framework, following the MVC design
  • Zope, an application server, commonly used to build content management systems
  • Tornado, a lightweight non-blocking server and framework

Graphics frameworks

UI frameworks

  • Kivy, open source Python library for developing multitouch application software with a natural user interface (NUI).
  • PyGTK, a popular cross-platform GUI library based on GTK+; furthermore, other GNOME libraries also have bindings for Python
  • PyQt, another cross-platform GUI library based on Qt; as above, KDE libraries also have bindings
  • PySide, an alternative to the PyQt library, released under the BSD-style licence
  • Tkinter is Python’s de facto GUI it is shipped in most versions of Python and is integrated in the IDLE. It is based Tcl command tool.
  • wxPython, a port of wxWidgets and a cross-platform GUI library for Python

Scientific packages

  • Astropy, a library of Python tools for astronomy and astrophysics.
  • Biopython, a Python molecular biology suite
  • graph-tool, a Python module for manipulation and statistical analysis of graphs.
  • Pathomx, a workflow-based metabolomics analysis tool.
  • NetworkX, a package for the creation, manipulation, and study of complex networks.
  • SciPy, a library of scientific and numerical routines
  • scikit-learn, a library for machine learning.
  • scikit-image, a library for image processing.
  • SymPy, a symbolic calculation package
  • Veusz, a scientific plotting package
  • VisTrails, a scientific workflow and provenance management software with visual programming interface and integrated visualization (via Matplotlib, VTK).

Mathematical libraries

  • Matplotlib, an extension providing MATLAB-like plotting and mathematical functions
  • Plotly is a scientific plotting library for creating browser-based graphs.
  • NumPy, a language extension that adds support for large and fast, multi-dimensional arrays and matrices
  • Sage is a large mathematical software application which integrates the work of nearly 100 free software projects and supports linear algebra, combinatorics, numerical mathematics, calculus, and more.
  • SymPy, a symbolic mathematical calculations package

Additional development packages

  • Cheetah, a Python-powered template engine and code-generation tool
  • Construct, a python library for the declarative construction and deconstruction of data structures
  • IPython, a development shell both written in and designed for Python
  • Jinja, a Python-powered template engine, inspired by Django‘s template engine
  • mod python, an Apache module allowing direct integration of Python scripts with the Apache web server
  • PYthon Remote Objects, a Distributed Object Technology
  • PyObjC, a Python to Objective-C bridge that allows writing Mac OS X software in Python
  • Setuptools, a package development process library designed to facilitate packaging Python projects by enhancing the Python distutils (distribution utilities) standard library.
  • Sphinx (documentation generator), which converts reStructuredText files into HTML websites and other formats including PDF, EPub and Man pages
  • Twisted, a networking framework for Python
  • VPython, the Python programming language plus a 3D graphics module called Visual

Embedded as a scripting language

Python is, or can be used as the scripting language in these software products.

Commercial uses

  • CCP hf uses Stackless Python in both its server and client side applications for its MMO Eve Online[5]
  • Google uses Python for many tasks including the backends of web apps such as Google Groups, Gmail, and Google Maps, as well as for some of its search-engine internals [6]
  • NASA is using Python to implement a CAD/CAE/PDM repository and model management, integration, and transformation system which will be the core infrastructure for its next-generation collaborative engineering environment[citation needed]. It is also the development language for OpenMDAO, a framework developed by NASA for solving multidisciplinary design optimization problems.
  • reddit was originally written in Common Lisp, but was rewritten in Python in 2005[7]
  • Yahoo! Groups uses Python “to maintain its discussion groups”[citation needed]
  • YouTube uses Python “to produce maintainable features in record times, with a minimum of developers”[6]
  • Enthought uses python as the main language for countless custom applications in Geophysics, Financial applications, Astrophysics, simulations for consumer product companies, …
  • EDF uses Python for their finite element solver Code Aster in combination with Fortran

Python implementations

  • ActivePython, the Python implementation from ActiveState, includes a Windows Script Host scripting engine called PythonScript. Scripts written in PythonScript have the default file name extension of .pys.
  • CPython – the reference implementation, written in C89.
  • CLPython Common Lisp
  • Cython is a programming language to simplify writing C and C++ extension modules for the CPython Python runtime.
  • IronPython – Python for .NET and Mono platforms
  • Jython – Python coded in Java
  • Parrot – virtual machine being developed mainly as the runtime for Perl 6, but with the intent to also support dynamic languages like Python, Ruby, Tcl, etc.
  • Psyco – not an implementation, but JIT compiler for CPython
  • PyPy – Python (originally) coded in Python, used in conjunction RPython, a restricted subset of Python that is amenable to static analysis and therefore aJIT.
  • Stackless Python – Python with coroutines
  • Unladen Swallow – the Python implementation from the Google team

References

External links

Some information for learning Python


10 Resources to Learn Python Programming Language

10 Resources to Learn Python Programming Language

Coding in Python is not hard, in fact – it has been acclaimed as the easiest programming language to learn for a long time. It is a good starting point if you’re looking to get into web development, even game development – as there are so many resources for building games with Python. It’s one of the ways of learning the language quickly.

Many programmers have used Python as the beginning of their journey, to later pick up languages like PHP and Ruby. It’s also one of the hottest web programming languages in 2014, and highly recommended to learn. But, how to learn Python? Where to go to begin learning?

I’m here to solve that problem for you, as I’ve myself relied on many of these resources to learn programming, and begin development. Just a friendly tip and word of advice, the best way to learn is by doing – and these books, resources are here only to guide you in the right direction.

Read: Minimal Web Frameworks for Python

It can be EXTREMELY frustrating to begin learning, but once you get the basics down – it comes to you naturally, and you’re building things without thinking about it.

Python for Beginners

Python for Beginners

If you’ve been meaning to get your Python development journey under way for a while now, this course might be a really good start. The Python for Beginners course as instructed by Alex Bowers is one of the most comprehensive, yet easy to digest Python tutorials on the web right now. Yes, it comes at a price tag, but do you want to learn alone, or alongside 30,000 other students?

The advantage of signing up for this course is that you’re granted access to a members only forum, where Alex (the instructor) himself is residing, and will gladly help to tackle your Python problems, whenever possible. I mean, it goes over everything that any of the other resources in this list would, with the exception that you get a community feel for having invested a little bit of dough into it.

You can use the coupon code: CODECONDO – it will give you a solid 75% discount, though it is going to be active only up until 30/09/2014 – so hurry up, you can always purchase the course and then work with it later, don’t waste your money by missing this deal!

Learn Python the Hard Way

Learn Python the Hard Way

The absolute easiest way of learning Python is by completing this book. You’ll be amazed at how easy it is to pickup the basics, and you get that sense of real learning process, acquiring new knowledge as you move forward. I also learned that it is very encouraging to try and create your own programs.

Those programs might be small, but they’ll definitely help you better understand the language and how the syntax works. It’s highly popular, and so if you ever get stuck, it’s more than likely that there are several answers available on sites like StackExchange, just do a Google search when you need a solution or help.

You’ll learn how to:

  • Setup Python Programming Environment on All Platforms
  • Write Python Programs
  • Understand Python Syntax and Documentation
  • Think Like a Programmer
  • a lot more!

The HTML online version is completely free, and it’s also what most people use – I do encourage you to donate / purchase the full book, as the author has put a lot of effort into making it happen, and the premium version also includes videos – if you find learning from videos a lot easier.

The Python Challenge

The Python Challenge

It might be a little tricky to get this one going, if you’ve never in your life programmed before, but it goes together well with the above book, and you should definitely give it a go. There are 33 levels (puzzles), which can be solved by using your Python programming skills.

Millions of people have attempted to solve this, and even if you’re unable to complete all of the levels, you’ll have learned quite a few new things – especially in the field of critical and sharp thinking. Your brain is going to overheat, but that’s programming!

Learn Python Programming @ Codecademy

Learn Python Programming I Codecademy Online Tutorials

You’ll find that many ‘elite’ programmers will tell this interactive platform off, but that’s not the point. What we want is to see / test how the basic syntax of a programming language works, and what can be done when its combined with functions, other than the usual ‘Hello World!’ we’re printing.

In this Codecademy course you will learn how to work with files, how to use loops and how they work, what are functions and what they’re good for. It’s all very basic, and very beginner friendly. There is community forums available for those who need help, but usually everything can be understood from within the dashboard you’re working with.

You won’t need to install any tools, and the only thing you might need is a Notepad++ editor, to rewrite the code on your own computer – for gaining better understanding of it. It’s what I do, and I recommend it to everyone who wants to learn programming, be it Python or any other language.

Intro to Computer Science @ Udacity

Advance Your Career Through Project-Based Online Classes - Udacity

Udacity offers a great course at free of charge, for introducing yourself to the Python programming language and learning more about search engines, and how to build your own little web crawler. It certainly is a fun course to take part of, and it offers extensive guides and community support to help you along the way.

You can enroll as premium student to receive guidance from the instructors, and gain a certificate by the end of the course – or you can start the free courseware to get going right away, unfortunately – the premium full course is at limited capacity, and so you have to signup for a waiting list.

In total, there are 11 classes, all of which are thoroughly explained and documented. Go to the official page to learn more and find more answers to the questions you might have.

Google’s Python Class

Google's Python Class - Educational Materials — Google Developers

Google itself is powered by a lot of Python code, and so it only makes sense that they support the community and want to help others learn the language. This is one of my favorite guides / classes I’ve ever viewed, it’s really detailed and the videos are very beginner friendly and also entertaining to watch.

Just watch a couple of minutes of the first lecture above, to get a better sense of whether you like the instructor or not, and then perhaps start learning! The official Python Class page has all of the links to exercises and examples.

A Byte of Python

A Byte of Python

Very similar to LPTHW, but offers a slightly more in-depth introduction on how to get your perfect setup up and running, and how to take the first steps so you don’t overwhelm yourself. It has been recognized as one of the best beginner guides for those who want to learn Python, definitely check it out and see the first few chapters to figure out whether you like the style of writing.

Think Python

Think Python_ How to Think Like a Computer Scientist

Think Python is an introduction to Python programming for beginners. It starts with basic concepts of programming, and is carefully designed to define all terms when they are first used and to develop each new concept in a logical progression. Larger pieces, like recursion and object-oriented programming are divided into a sequence of smaller steps and introduced over the course of several chapters.

You can find a lot of the example code by following this link, it’s one of the most professional books and have a strict “teaching you computer science” policy. It costs nearly $40 to purchase, but you can download the PDF and HTML versions for free, I’d definitely take advantage of this – if I was to learn Python from the beginning.

Python at Learnstreet

Python at Learnstreet

You’d think that a site offering programming courses would know how to add a HTML title for their pages, lol. In all seriousness though, Learnstreet offers a great interactive programming course for learning Python, its beginner friendly as everything in this post is – and if you ever run into problems, its best to Google them.

What I like about Learnstreet is the amount of hints / explanation you get with each of the exercises, right within the same dashboard that you write your code in.

The New Boston

List of Videos for Python

If you’re more like someone who likes to learn from video tutorials, I’m not sure there is anything as comprehensive as The New Boston video tutorial series for learning Python, and many other programming languages as can be seen on their YouTube channel.

The only downside is that there is no real material for you to read or download, and it all comes in video format. I’m the type of programmer who cant withstand having to watch videos all the time, but that might clash with my opinion with the Google’s Python class – which was pretty sweet.

Python @ Coursera

Learn to Program_ The Fundamentals I Coursera

This course is intended for people who have never programmed before. A knowledge of grade school mathematics is necessary: you need to be comfortable with simple mathematical equations, including operator precedence. You should also be comfortable working with simple functions, such as f(x) = x + 5.

It should be completed with ten weeks, spending around ten hours of work on the tasks each week. If you’re able to find the time to do it, and not overwhelm yourself – I do recommend signing up and completing this course, it will only strengthen your knowledge, and it can be combined with any of the above mentioned resources for better understanding.

Where to Learn Python?

It turns out that I’ve tried most of these courses myself, I was actually hoping there would be more resources and links to add to the list, but we’ve just taken a look at all of the major ones and there is so much stuff and new things you’re going to be learning about.

What is your experience with programming, and what are you looking to do with your newly found skills? I think that anyone who wants to build their expertise, should first acknowledge what they want to build and then work on that project until it gets done. The beauty of doing that is that you’ll learn specific things, and recreating similar projects will be much easier.

Interactive platforms are cool, but they’re not yet ready to replace books or courses provided and narrated by professionals. I wish you the best of luck with learning Python, and please – if you’ve got any questions to ask, do so in the comment box.

photo by hdwallon

http://codecondo.com/10-ways-to-learn-python/

—————-

Website for Learn Python : 

http://code.tutsplus.com/articles/the-best-way-to-learn-python–net-26288

http://reeborg.ca/index_en.html

https://www.enthought.com/

http://www.codeabbey.com/

https://realpython.com/

https://www.python.org/about/gettingstarted/

http://www.learnpython.org/

http://www.codecademy.com/en/tracks/python

http://inventwithpython.com/hacking/downloads/

http://docs.python-guide.org/en/latest/intro/learning/

———-

Top 50 Resources for Programming Web Applications with Python

Authored by: Rackspace Support


Python is a general purpose, object-oriented programming language that has achieved popularity because of its readability and clear syntax. Guido van Rossum created Python in late 1980s. It is a ‘high level’ scripting language used by most programmers for its simplicity of use. Python can be written once and run on any computer. It’s a ‘multi paradigm programming language’ compatible with many other programming languages such as .NET, CORBA, Java, Perl.

  • Python Programming Language: Link to the official website of the Python programming language that has everything that you need to know about the language
  • GIMP-Python: A document that outlines the interfaces to GIMP Python
  • How-to install Python for Unix/Windows: A complete how-to guide for installing Python for Unix to Windows migration
  • py2exe: Tutorial for py2exe, a distutils extension that converts Python scripts into executable Windows programs
  • Python Programming Course for Scientists: A link to an online Python programming course, specially designed for non-professional scientists so that they can control their computers for their research
  • How to Think Like a Computer Scientist: Learning with Python 3 (RLE): The link leads to online lessons that teach Python programming language
  • Python vs Perl: A detailed comparison between the Python and the Perl programming language
  • Why choose Python?: Why choose Python over other scripting languages? If you want to know the answer, then follow the link
  • Dive into Python: A free download link to the well-known ‘Dive into Python’ book, specially written for experienced programmers
  • Python/Unix Tutorial: An online tutorial that covers the basics of working in a Unix/Python environment
  • Macpython: An online resource guiding how to integrate Python into Macintosh environment
  • Common Python Pitfalls: A document that discusses the common pitfalls that a programmer may face while running Python scripts under Windows
  • Python v2.6.5: A link that leads to everything and anything that you want to know about Python v2.6.5
  • Python with Ubuntu: A how-to guide for programming Python with Ubuntu
  • Python Essentials: List of links leading to essential Python resources
  • Biography: A link to a short biography of the creator of Python, Guido van Rossum
  • History of Python: A link to the history of the Python programming language
  • Python Imaging Library: List of links that lead to free download of Python Imaging Library (PIL)
  • Python 3.1: A link to an introduction to Python 3.1 for beginners
  • Basics of Python: A beginners Python tutorial course that attempts to teach basics of the programming language
  • Advanced Python Course: Link to an online advanced Python course for professional programmers
  • Working with Arrays in Python
  • Tkinter: This link leads to an online tutorial for Tkinter, a Graphical User Interface widget set for Python, and its application
  • wxPython: Link to wxPython GUI, a Python extension module that summarizes the wxWidgets C++ class library
  • pyglet: Free Download link for pyglet, a multimedia library for Python
  • DrPython: A document that provides information for DrPython’s downloads, a highly customizable text editor for writing programs in Python
  • Eric: Want to know everything about Eric, a full featured Python editor? Follow this link
  • NLTK: A link to NLTK, an open source Python module
  • Python Open Source Projects: A lead to open source software projects implemented for or in Python for building data mapping and Web services
  • How Python fits into Web: A link that provides information on how Python fits into the Web
  • TurboGears: A link to the TurboGears tutorial. TurboGears is one of the key web application frameworks written by Python programmers
  • Python Tutorial: A link that leads to the comprehensive online Python programming tutorial
  • Python & Java: A Side-By-Sidie Comparison
  • Python for Lisp: A link to a short introduction to Python for Lisp programmers
  • Comparison of Scripting Languages: A link that leads to bilateral comparison of all the scripting languages, including Python with other languages
  • Python vs. Lua: A link to detailed comparison between Lua and Python web applications
  • Python vs. Lisp: A link to a document that comprehensively compares Python with Lisp
  • Python for Research: A link to document that enlists ten reasons why Python is best for Research
  • Python trends: A link that highlights the ups and downs of Python programming language
  • Why Choose Python Over PHP
  • Python vs. Ruby: A link to the detailed comparison of the languages, Python and Ruby
  • Python vs. Perl vs. Ruby: Python vs Perl vs Ruby, comparative analysis of all the three programming languages
  • Python-excel: A website that contains excellent information about how to use excel files with Python
  • HTML with Python: A link to a website that describes HTML processing in Python programming language
  • pymps: A download link for pymps – a PYthon Music Playing System
  • Ounk: A link to the installation instructions for Ounk, Python’s audio scripting environment
  • Python Software Applications: A link to list of software applications written in Python programming language
  • Python with CGI: A link to an introductory course on how to use Python with CGI
  • Jython: A link to a document on Jython – a high level, object oriented language – Python written with Java
  • IronPython: A link to IronPython, an implementation of Python running under .NET and Silverlight
  • Stackless Python: A link to Stackless Python, an improved version of Python programming language that avoids depending on C call stack for its own stack
  • pypy: A link to pypy, an implementation of Python programming language and its download link
  • Python with XML: This link aims to introduce the basic concept on how to use Python for processing XML data

Ref: http://www.rackspace.com/knowledge_center/article/top-50-resources-for-programming-web-applications-with-python

SocketCAN Support in Python


LibBits

Since version 3.3 Python provides support for SocketCAN. You can specify AF_CAN protocol family as you do in C. Below you’ll find slightly modified example provided in the original SocketCAN patch.

To get started just copy the code into example.py and start it as follows provided your CAN interface is can0:

python example.py can0

Use build_can_frame() and dissect_can_frame() to build/dissect CAN frames. Interface management like bitrate settings or getting statistics will be made as usual via iproute2 utility.

View original post

10 Trang web dạy lập trình trực tuyến mà bạn nên biết


Bài viết được dịch từ Hongkiat.com

Đã qua rồi cái thời mà các ngôn ngữ lập trình chỉ dành cho những lập trình viên bậc thầy giống như Bill Gates, người mà sau đó đã thống trị toàn thế giới bởi hệ điều hành Windows của mình. Bây giờ thì bất cứ ai cũng có khả năng, cơ hội để học và thành thạo các ngôn ngữ lập trình một cách dễ dàng. Hôm nay, chúng tôi sẽ cung cấp cho bạn danh sách 10 trang web học trực tuyến sẽ giúp bạn làm điều đó.

Tôi nên học lập trình ở đâu?Những trang web dạy lập trình theo phương pháp tương tác giúp người học tiếp thu kiến thức rất hiệu quả.


Đúng vậy, hãy quên đi những cài đặt phức tạp với dòng nhắc lệnh đen ngòm và lạnh lùng khiến bạn chỉ muốn ngừng học ngay trước khi bắt đầu, và nói xin chào tới 10 trang web với những bài giảng tương tác nhanh sẽ dạy bạn về các ngôn ngữ lập trình như HTML, CSS, PHP, Ruby và thậm chí cả iOS. Bạn sẽ được học từ những giáo trình, video và thậm chí là cả những bài thực hành tốt nhất từ những chuyên gia danh tiếng trong ngành.

Hãy bắt đầu con đường mới của bạn để tiến vào thế giới lập trình ngay hôm nay nhé!

1. Codecademy

Codecademy rõ ràng là trang web nổi tiếng nhất trong việc dạy bạn học lập trình thông qua tương tác, giao diện trang web rất chuyên nghiệp và các khóa học thì được thiết kế rất tốt. Ngay khi bạn ghé thăm trang chủ, bạn đã có thể bắt đầu cảm nhận được cái phong thái lập trình ở đây, bằng một cửa sổ dạng console để thôi thúc bạn. Bạn hãy chọn một khóa học mà Codecademy đưa ra gồm Web cơ bản, PHP, JavaScript, jQuery, Python, Ruby và các API.

codecademy

Bên trong mỗi bài học thì giao diện sẽ chia làm hai phần, phần bên trái sẽ giải thích những kiến thức cần thiết và có những chỉ dẫn. Phần bên phải sẽ cho phép bạn gõ những dòng code của mình, sau đó cho phép bạn kiểm tra xem liệu đã viết đúng hay chưa. Đừng lo lắng về việc gõ sai, cả hai thanh panel chỉ dẫn và lập trình nói trên sẽ cảnh báo những lỗi dùm bạn, và cung cấp những hướng dẫn để bạn có thể sửa lỗi. Học kiểu này cũng giống như là đang có một giáo viên thực thụ đứng bên cạnh dạy cho bạn vậy.

2. Code Avengers

Code Avengers được thiết kế với mục đích làm cho bạn yêu thích môn lập trình. Mặc dù hiện tại nó chỉ cung cấp các khóa học về HTML5, CSS3 và JavaScript, nhưng mỗi khóa học đều được thiết kế rất cẩn thận và thực sự lôi cuốn, nhằm nâng cao kỹ năng lập trình của bạn một cách nhanh nhất. Sau khi hoàn thành mỗi bài học thì bạn sẽ được chơi một trò game nhỏ nhằm mục đích giải tỏa căng thẳng và giúp bạn có thêm động lực để học được lâu hơn.

code-avengers

Code Avengers có một hướng tiếp cận dần dần tới việc học tương tác. Nó không giảng giải quá nhiều kiến thức mà chưa cần thiết cho người mới bắt đầu, chỉ là một ít code và những chỉ dẫn vui vui, nhằm tạo ra những thứ rất dễ để hiểu. Bạn hãy thử vọc vậy cùng với những dòng code và sau đó nhìn thấy những thành quả ngay tức thì. Các giáo trình ở đây được thiết kế rất chu đáo phù hợp với cách suy nghĩ của người mới học.

3. Code School

Sau khi đã hoàn thành các khóa học tại Codecademy hoặc Code Avengers, thì bạn đã sẵn sàng tiến xa hơn để nâng cao khả năng của mình. Code School là trang web chất lượng tiếp theo mà bạn nên ghé thăm. Không giống như hầu hết các trang web dạy học tương tác khác, Code School đưa ra các khóa học rất có chiều sâu để dạy và biến bạn trở thành một chuyên gia trong ngành với những bài tập thuộc loại tốt nhất.

Toàn bộ các khóa học được chia ra làm 4 mảng chính, đó là:

  • Ruby
  • JavaScript
  • HTML/CSS
  • iOS

code-school

Hầu hết tất cả các khóa học đều được chau chuốt bằng giao diện thiết kế ấn tượng và những video chứa nhiều thông tin có giá trị, mặc dù những thử thách phía sau mỗi video có thể hơi khó một chút đối với những người mới học. May mắn thay, tất cả đều có những hướng dẫn và đáp án để bạn tham khảo khi cần. Trong khi phần lớn các khóa học ở đây là miễn phí, nhưng cũng có một số khóa học sẽ yêu cầu bạn trả một khoản phí khoảng $25 đô-la/tháng để có thể truy cập toàn bộ khóa học, bao gồm cả các video, bài tập thực hành và tất cả các khóa học khác tại Code School.

4. Treehouse

Các khóa học của Treehouse thì phần nhiều là định hướng sản phẩm hơn là định hướng ngôn ngữ, vì thế nó rất phù hợp cho một lập trình viên mới vào nghề cùng với một mục đích đã lên kế hoạch từ trước, như là xây dựng một trang web hoặc một ứng dụng. Ví dụ, khóa học về Website thì sẽ hướng dẫn bạn về việc xây dựng một trang web dạng responsive (có thể hiển thị tùy theo từng loại thiết bị là PC hoặc Smartphone), trang web tương tác hoặc thậm chí là thiết kế theme cho WordPress – theo một cách rất thiết thực và hiệu quả để thành thạo các ngôn ngữ lập trình liên quan. Tuy nhiên, ở đây cũng có rất nhiều khóa học cơ bản cùng với cách dạy là hướng dẫn bằng video sau đó là phần hỏi đáp.

treehouse

Đối với Treehouse, mỗi khóa học sẽ được chia làm bốn giai đoạn hoặc mô-đun khác nhau, và khi bạn học xong giai đoạn đầu tiên thì sẽ được yêu cầu trả một khoản phí thuê bao hàng tháng là $25 đô-la để truy cập toàn bộ khóa học với trên 650 video và bạn sẽ được là thành viên của diễn đàn tại Treehouse. Nếu bạn có ý định nghiêm túc theo đuổi nghề lập trình trong tương lai thì bạn có thể chọn thuê gói thuê bao theo tháng với giá $49 đô-la để xem được những phỏng vấn chuyên sâu với những chuyên gia trong ngành và các giáo trình nâng cao khác.

5. LearnStreet

Nếu bạn là dạng người không thích những thiết kế hào nhoáng mà chỉ thích làm việc với những dòng code, thì LearnStreet được thiết kế ra để dành cho bạn. Nó hiện tại chỉ đưa ra các khóa học về JavaScript, Python và Ruby ở mức độ dành cho người mới học. Với một cú click chuột vào nút “Start Course” thì bạn sẽ bắt đầu bài học ngay cùng với một bài tập, một trình thông dịch code và một thanh hiển thị những thuật ngữ (rất có ích cho những lập trình viên mới vào nghề).

learnstreet

LearnStreet có một bộ thông dịch code theo phong cách dòng nhắc lệnh (command prompt) cùng với những hướng dẫn để giải thích các chức năng và khuyến khích bạn bất cứ lúc nào có thể. Tuy nhiên, bộ thông dịch code có thể hơi khiếm nhã theo chuẩn của nó, và nó luôn yêu cầu bạn phải gõ thường xuyên những dòng code và những nội dung mà nó yêu cầu.

Một điểm nữa đó là nó rất dễ sử dụng và khá thú vị, và quan trọng nhất là hoàn toàn miễn phí. :)

6. Udacity

Udacity là một sự kết hợp của những bài học bằng video có chiều sâu và những câu hỏi vấn đáp để có được cảm giác tương tác dành cho học viên, vì thế nó rất lý tưởng dành cho những ai không thích đọc nhiều, thay vì đó họ sẽ nhận được những hướng dẫn qua video từ các chuyên gia trong ngành, như là các nhân viên của Google chẳng hạn.

udacity

Bạn sẽ được xem một video từ các chuyên gia bàn luận và hướng dẫn về một chủ đề nào đó, sau đó bạn sẽ trả lời những câu hỏi mang tính logic về lập trình để mở rộng vốn hiểu biết hoặc rèn luyện kỹ năng thực hành. Một điều đáng nói là Udacity cung cấp số lượng video nhiều hơn hẳn các trang web khác, và những người hướng dẫn thường là các giáo sư đại học hoặc là các chuyên gia kỳ cựu ở trong ngành.

Chỉ có một nhược điểm là hầu hết các khóa học ở đây không liên quan đến nhau nhiều cho lắm, vì thế Udacicy thường không phải là nơi để bạn bắt đầu học lập trình, nhưng nó là một trường đại học ảo cung cấp cho bạn rất nhiều kiến thức trong con đường học vấn sau này.

7. CodeHS

Đến thời điểm này thì tất cả các trang web đề cập ở trên chủ yếu tập trung vào phát triển web và khoa học máy tính, nhưng CodeHS là một trang web đem lại cho bạn sự đơn giản và thích thú bởi các bài học lập trình game, hướng dẫn cách giải quyết vấn đề, JavaScript, hiệu ứng động, cấu trúc dữ liệu, thiết kế game và những thử thách khác.

codehs

Điểm nổi bật của CodeHS là nó sẽ dạy bạn cách nghĩ và giải quyết một vấn đề giống như một lập trình viên thực thụ ngay trong khóa học đầu tiên. Các bài học ở đây rất vui nhộn kiểu như bạn sẽ học cách sử dụng code để di chuyển một con chó, cho tới việc hoàn thành một tác vụ nhất định và khó hơn như nhặt bóng hoặc xây tháp. Nó cung cấp cho bạn những khái niệm lập trình nền tảng và phương pháp giải quyết vấn đề một cách có hệ thống ở trong đầu.

Bạn phải đăng ký với mức phí $25 đô-la/tháng để tiếp tục khóa học của mình, nhưng nó là một trang web hoàn hảo để học lập trình game cơ bản một cách khá hiệu quả.

8. Khan Academy

Mặc dù các khóa học của Khan Academy không có cấu trúc bằng các khóa học tại CodeHS, nhưng nó phục vụ như là một sân chơi mở dành cho cả lập trình viên mới vào nghề lẫn những người không chuyên mà có sở thích trong việc vẽ, hiệu ứng động và tương tác người dùng cùng với code. Khan Academy không nói về một ngôn ngữ lập trình xác định nào cả, nhưng những code pattern ở đây thì có thể áp dụng ở khắp nơi, và những ngôn ngữ lập trình phổ biến đều chia sẻ chung những pattern đó.

khan-academy

Đầu tiên bạn có thể tham gia vào khóa lập trình cơ bản để xem qua và học các khái niệm căn bản trước, sau đó khám phá những đoạn code được cung cấp phía sau mỗi bài hướng dẫn bằng video để củng cố thêm kiến thức. Cùng với Khan Academy, bạn có thể lưu lại những chỉnh sửa của bạn như là một “sản phẩm” để cho mọi người có thể tham khảo và tùy chỉnh lại. Có đến hàng trăm sản phẩm chỉ từ một bài học trong một khóa học, vì thế bạn hãy tưởng tượng với số lượng lớn học viên trong cộng đồng thì tính hiệu quả của khóa học sẽ lớn đến nhường nào.

9. Scratch 2.0

Nếu bạn nghĩ rằng CodeHS và Khan Academy vẫn còn quá khó cho lũ trẻ nhà bạn có thể học được, bởi vì chúng chưa có những kiến thức căn bản. Thì cũng đừng lo lắng, có một thứ thậm chí còn dễ hơn cho khao khát của bạn về một thế hệ lập trình tài năng kế tiếp, và nó được gọi là Scratch. Trước đây nó là một phần mềm cài đặt trên máy tính cá nhân để cho phép lũ trẻ có thể tạo, tải và chia sẻ những dự án của chúng một cách thích thú, nhưng nay Scratch đã chuyển lên giao diện dạng web 2.0 một cách hoàn toàn.

scratch_20

Tuy nhiên nó không chỉ đơn thuần là về lập trình, mà nó là một sự kết hợp của các khối dòng lệnh để điều khiển hành vi của đối tượng, như là ra lệnh cho đối tượng con mèo di chuyển 10 bước, hoặc kêu ‘meo meo’ khi nó chạm đến chân của ông chủ. Bằng cách sử dụng phương pháp lập trình trực quan sinh động, các em nhỏ sẽ hình thành nên một thói quen chia các vấn đề lớn thành những khối nhỏ hơn và giải quyết chúng từng cái một theo trình tự logic.

10. SQLZOO

Structured Query Language (SQL) chỉ là một ngôn ngữ được thiết kế chuyên về lưu trữ và truy xuất dữ liệu từ cơ sở dữ liệu, vì thế hãy hình dung ra sự nhàm chán mà bạn sẽ phải trải qua khi lập trình với một chương trình quản lý dữ liệu lớn. Vì thế SQLZOO muốn bạn học SQL một cách vui vẻ hơn cùng với nhiều tương tác thú vị.

sqlzoo

Thực ra không có gì nhiều để giải thích về một ngôn ngữ không phức tạp lắm như SQL, trang web này sẽ chỉ yêu cầu bạn thay thế một số biến như tên thành phố hoặc số dân, và tăng dần mức độ khó lên cao dần. Một điểm khá đáng tiếc là trang web này lại không có phần gợi ý, các câu đáp án và diễn đàn hỗ trợ, vì thế có thể bạn sẽ gặp phải một vài khó khăn trong việc giải quyết các câu trắc nghiệm tại đây.

Bảng so sánh giữa các trang web

Sau đây là bảng so sánh giữa các trang web trên về những ưu và nhược điểm của chúng, cũng như là mức phí dành cho mỗi khóa học.

Trang web Khóa học Đặc trưng Học phí Độ khó
Codecademy HTML, CSS, JavaScript, jQuery, PHP, Ruby, Python, API Bộ thông dịch code, Progress Saver, Project, Diễn đàn Miễn phí Dễ – Trung bình
Code Avengers HTML5, CSS3, JavaScript Bộ thông dịch code, Progress Saver, Project, Ghi chú Miễn phí Dễ
Code School HTML5, CSS, CSS3, jQuery, Ruby, Ruby on Rails, iOS Bộ thông dịch code, Screencast, Progress Saver, Diễn đàn Miễn phí, $25 đô-la/tháng Trung bình – Khó
Treehouse HTML, CSS, CSS3, JavaScript, jQuery, Ruby, Ruby on Rails, iOS, Android, UX, Database Bộ thông dịch code, Screencast, Progress Saver, Project, Diễn đàn Miễn phí, $25 đô-la/tháng, $49 đô-la/tháng Dễ – Khó
LearnStreet HTML, CSS, JavaScript, Python, Ruby Bộ thông dịch code, Progress Saver, Project, Diễn đàn Miễn phí Dễ
Udacity Phát triển Web, HTML5, Python, Java, Khoa học máy tính, Thuật toán, Trí tuệ nhân tạo Bộ thông dịch code, Screencast, Progress Saver, Diễn đàn Miễn phí Trung bình – Cực khó
CodeHS Giải quyết vấn đề, JavaScript, Hiệu ứng động, Lập trình Game Bộ thông dịch code, Screencast, Progress Saver Miễn phí, $25 đô-la/tháng, $75 đô-la/tháng Dễ – Trung bình
Khan Academy Lập trình căn bản, Canvas Drawing, Hiệu ứng động, Tương tác người dùng Bộ thông dịch code, Screencast, Progress Saver, Project, Diễn đàn Miễn phí Dễ – Trung bình
Scratch 2.0 Lập trình trực quan Visual Editor, Project, Diễn đàn Miễn phí Dễ
SQLZOO SQL Bộ thông dịch code Miễn phí Dễ – Khó

Bạn đã từng học tại bất kỳ trang web nào trong số những trang web mà chúng tôi liệt kê ở trên chưa? Bạn thấy như thế nào? Liệu chúng tôi có liệt kê sót một vài trang web dạy lập trình tương tác tuyệt vời nào chăng? Hãy chia sẻ cho chúng tôi những kinh nghiệm của bạn nhé, vì điều đó sẽ giúp ích được cho rất nhiều người khác !

Các bài viết liên quan:

Tham khao: http://vinacode.net/2014/06/16/day-lap-trinh-truc-tuyen/

10 Quan niệm không đúng trong việc học lập trình


VinaCode

Bài viết được dịch từ Hongkiat.com

Có vô số những ngộ nhận và lầm tưởng xung quanh công việc lập trình. Nhiều người cho rằng đó là một công việc chỉ dành cho những con người rất tài năng. Một con đường nghề nghiệp chỉ dành riêng cho geek (những người đam mê các hoạt động về trí não), hoặc có năng khiếu toán học, và là một công việc không cho phép bạn mắc sai lầm.

Có quá nhiều quan niệm sai về nghề lập trình phần mềm mà tôi đang theo đuổi!Có quá nhiều quan niệm sai về nghề lập trình phần mềm mà tôi đang theo đuổi!


Ở bài viết này chúng ta sẽ tiến hành gỡ rối, khám phá và sửa chữa những ngộ nhận trong nghề lập trình viên, và có thể được xem như là một lời tư vấn đáng tin cậy cho những ai đang cân nhắc xem liệu công việc lập trình có phải là con…

View original post 2,746 more words