64 Online Resources to Learn to Code for Free

Get Our FREE Ultimate Guide to Coding for Beginners






1. Codecademy

Codecademy is where most people who are new to coding get their start. If you haven’t been to the site yet…where have you been!? The platform revolves around interactive learning; that is, you read a little, type your code right into the browser, and see results immediately.

Topics taught: HTML & CSS, JavaScript, PHP, Python, Ruby, Angularjs, The Command Line, and more

2. Codewars

Codewars offers a fun way to learn coding. With a martial-arts theme, the program is based on challenges called “kata.” Complete them to earn honor and progress to higher ranks.

Topics taught: CoffeeScript, JavaScript, Python, Ruby, Java, Clojure, and Haskell

3. Coursera

Large online course library, where classes are taught by real university professors. All courses are free of charge, but you have the option to pay for a “Coursera Verified Certificate” to prove course completion. These cost between $30 and $100 depending on the course. Coursera also now has specializations, which you do have to pay for.

Topics taught: Many (far beyond your basic coding/computer science)

4. edX

An open-source higher education program governed by MIT and Harvard. Offers 107 courses under the “computer science” category, teaching various coding languages.

Topics taught: Java, C#, Python, and many more

5. Free Code Camp

Teaches coding first through an established curriculum, then by giving you hands-on experience working on projects for nonprofits.

Topics taught: HTML, CSS, Bootstrap, JavaScript, Databases, DevTools, Node.js, React.js, and D3.js

6. GA Dash

General Assembly’s free online learning platform. Entirely project-based. You build a “project” with each walk-through.

They are one of the very few options that have a course on how to build a Tumblr theme from scratch.

Topics taught: HTML, CSS, JavaScript, and responsive design

7. Khan Academy

Tons of subjects (as their front page says, “You can learn anything”), including many on computer programming. A few courses are offered for younger kids, too.

Topics taught: Many

8. MIT OpenCourseware

Competition to get into MIT may be stiff, but accessing their course material has no minimum SAT score. They maintain an online library of every subject they teach, with no account required for access.

Topics taught: Many

9. The Odin Project

Made by the creators of Viking Code School—a premiere online coding bootcamp. The Odin Project is their free version. FYI: you can also work with others in in-person or online study groups.

Topics taught: HTML, CSS, JavaScript & jQuery, Ruby programming, Ruby on Rails

10. Udacity

Offers individual courses, as well as “nanodegrees” that train you for specific careers like front-end web developer or data analyst. Some course materials are free, but nanodegrees require a tuition fee.

Topics taught: Many

11. Udemy

Paid and free courses on a variety of subjects, including web development, programming, datascience, and more. Courses can be created by anyone, so make sure to read reviews. Coupons can also be easily found, too. Check out some of their top development courses here.

Topics taught: Many

12. The Code Player

A compilation of video tutorials to help you walk through a process from start to finish. Good for learning “smaller” projects or tasks one at a time.

Topics taught: HTML5, CSS3, Javascript, Regex, JQuery

YouTube Channels

13. Coder’s Guide

Features numerous series of videos on coding topics: a 19-video series on JavaScript, another 19 videos on HTML/CSS, and more.

Topics taught: HTML, CSS, JavaScript, Bootstrap, WordPress, iOS and Android, and more

Subscribers: 44,215

14. DevTips

One of Travis Neilson’s YouTube channels. Focuses on web design and web development, with occasional live Q&As.

Topics taught: HTML, CSS, responsive design, development advice

Subscribers: 82,907

15. LearnCode.academy

My personal favorite. Web-development-focused videos made by Will Stern.

Topics taught: Sublime Text, Responsive Design, Node.js, Angular.js, Backbone.js, deployment strategies, and more

Subscribers: 154,590

16. thenewboston

Over 4,000 videos on a range of programming languages, game development, and design. Has over one million subscribers.

Topics taught: Android development, C programming, MySQL, Python, and more.

Subscribers: 1,131,977

For a more comprehensive list of 33 YouTube channels where you can learn to code, look here.


17. A List Apart

Lots of authors. They write books, have events, and run a great development and design blog. See all code topics here.

18. CSS-Tricks

Goes deep into CSS with their big, bad CSS almanac. However, the blog now goes beyond just CSS and talks about other things like Sass, JavaScript, PHP, and more. Explore tons of resources and check out their code snippets.

19. David Walsh

Run by David Walsh (a senior developer at Mozilla), although there are others who write on the site too. Tutorials, how-tos, demos, and more.

20. Scotch.io

Covers lots of topics related to web development and workflow. To name a few: Angular, Node.js, Laravel, Sublime Text, and more.

21. SitePoint

They have lots of writers and publish often. Topics range from HTML and CSS to entrepreneurship. SitePoint now also has paid books and courses on their child site Learnable.

22. Tuts+

Tons of free tutorials, as well as paid options like actual courses. Has over 570 expertly-instructed video courses (on all topics, not just computer-related). Also publishes eBooks.

The Command Line

23. Command Line Power User

Free video series created by Wes Bos. More at an intermediate level, so not for total newbies.

24. Conquering the Command Line

Free online book by Mark Bates. Very in-depth. Can purchase hard copy and screencasts.

25. Learn Command Line the Hard Way

Free online book by Zed Shaw. (My personal favorite command line resource.)

Git and GitHub

26. Try Git

An interactive series of challenges to learn about and experiment with Git. Created by Code School.

27. Git Immersion

A guided tour to teach you the basics of Git. Set preferences and create your own projects.


28. Skillcrush’s Coding Bootcamp

Skillcrush’s free coding bootcamp is a perfect place to start for absolute newbies. You’ll learn what it means to work in tech, get digestible definitions of common industry lingo, and get the chance to write your first lines of code.

29. Learn CSS Layout

This website will teach you CSS fundamentals that are used in setting up a website’s layout. It’s best for those who already have basic HTML and CSS know-how.

30. Marksheet.io

For beginners. Broken down into four chapters: The web, HTML5, CSS3, and Sass. It’s like an online ebook, but under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License. So you can adapt it for your needs.

31. Mozilla Developer Network

Free documentation on HTML and CSS (also JavaScript). Has tutorials for people of different levels, introductory to advanced.

32. HTML5 Dog

HTML beginner tutorial here. (They also offer intermediate and advanced HTML tutorials.) And ones on CSS.


33. Eloquent Javascript

Another online book, longer than most. It has big-tech financial backers like Mozilla and Hack Reactor (“the Harvard of coding bootcamps”).

34. Javascript.com

Created by Code School. Quick and perfect for absolute beginners. (Warning: JS in real life is a lot tougher.) 9 mini-lessons. At the end, it points you to more in-depth JS learning materials.

35. JavaScript for Cats

It’s like a single-webpage book broken down into sections. Created by programmer Max Ogden. Filled with non-cat gifs but has cat pics at the end. Just because. Lol.

36. Learn JS

Go through lessons, type in the window at the bottom. Created by the same folks who make learnpython.org.

37. NodeSchool

Has in-person workshops and events all over the world, as well as an active web presence. See online tutorials here.

38. That JS Dude

A website that teaches JavaScript. Specifically this, scope, hoisting, closures, inheritance, and more. It relies on videos as well as text to explain concepts. Created by @mdkhan005.

39. The Node Beginner Book

Written by Manuel Kiessling, this book targets people who have some experience in other programming languages. While the free version online is a shortened version of the full book, it still teaches a lot about Node.


40. WordPress.tv

Recordings of live WordCamp lectures around the world. Created by Automattic.

41. WPBeginner

Website for beginner WP users. Great WP glossary of terms, plus coupon deals, video tutorials, and a blog which publishes useful articles by different authors.


42. A Byte of Python

Free online book for beginners. Can choose to download it as a PDF for free or invest in the hard copy.

43. LearnPython.org

Interactive online tutorial to learn Python coding. Has a little window at the bottom where you can write your code as you go through the lessons.

44. Learn Python The Hard Way (Website)

The book costs money, but the website is free. Written by Zed Shaw. (I used the book when I first started learning.)

45. Python Spot

Beginner and intermediate Python tutorials. Most come in a written form. There’s also some tutorials on game development, databases, and more. All using Python, of course.


46. Learn Ruby the Hard Way

Free HTML version of the book online. Buying the hard copy also gets you access to videos. Another book written by Zed Shaw.

47. Rails For Zombies

An interactive way to learn Ruby on Rails right in your browser. (This is a better choice for people who know some Ruby already.) Created by Code School.

48. Rails Tutorial

12-chapter book by Michael Hartl. Can purchase ebooks, screencasts from author, and more. Or just read it for free online.

49. RubyMonk

Entirely free, though you have the option to donate. Based on interactive tutorials, where you read a lesson and type in code. Lastly, “run” it. RubyMonk has one beginner course option, two intermediate, and one advanced.

50. Try Ruby

Also created by Code School, this is a better option for beginners. Type into an in-browser prompt window as you go through the exercises.


51. Learn SQL the Hard Way

Another resource created by Zed Shaw. This free online book takes you through 33 exercises. By the end, you should understand SQL, how to design data, and know a bit about database optimization. You don’t need to know how to program to work through the book, but it helps.

52. MongoDB University

Courses on MongoDB. Lessons come in video form. There are also quizzes and graded exercises along the way. Courses last seven weeks, but you can work through at your own pace. As of now, 200,000+ people have already taken courses on MongoDB University.

53. MySQLtutorial.org

Offers a range of MySQL tutorials including how to use MySQL as a developer and database administrator. They offer over ten different MySQL tutorials in total.

54. SQL for Web Nerds

Free digital book created by renowned computer science professor at MIT, Philip Greenspun. It contains 16 sections including data modeling, simple queries, transactions, trees, and more.

55. Vertabelo

This free platform has three different SQL courses: SQL Queries, Operating on Data in SQL, and Creating Tables in SQL. On Vertabelo you’ll learn in an interactive code editor, table, and console.

Design/User Experience

56. HackDesign

HackDesign is, “an easy to follow design course for people who do amazing things.” There are 50 lessons total, all taught by different instructors. Topics include typography, interaction design, front-end design, and more. You can get a design lesson delivered to your inbox once a week or you can view all the lessons on their site.

57. UX Apprentice

Created by Theresa Neil and the team at Balsamiq. This is like a UX 101 course — perfect for beginners. Three main parts: discovery, strategy, and design. As you go through, you are quizzed and shown related resources.

58. UXPin

While UXPin has paid offerings, there are a variety of free UX books available on the site. All you need to do is provide your email to access the material. They have books on minimalism, color theory, flat design, interaction design, and more.

Online Communities

59. CodeBuddies

Learn with others in peer-to-peer organized Google Hangouts. Great for those who want to study with others or do pair programming. CodeBuddies also has a Slack chatroom as well as Facebook group where people can congregate and ask questions.

60. CodeNewbie

CodeNewbie has a variety of tools for beginners including a Slack community where you can ask questions, a Twitter chat every Wednesday, a weekly podcast, and more. Now there are also some in-person meetups – like in Atlanta.

61. Newbie Coder Warehouse

Full disclosure: Newbie Coder Warehouse is my Facebook group of 2,200+ self-taught coders (and counting!). It’s a great place to ask questions as well as connect with others. And it’s super simple to join: all you need is a Facebook profile!

In-Person Workshops

62. codebar

codebar’s goal is enable underrepresented groups to learn how to code. They do this by offering free weekly workshops and events. Keep in mind codebar is based in the UK.

63. Girl Develop It

Girl Develop It (GDI) has chapters across the US and Canada. While most of GDI’s in-person workshops cost money, all of their course materials are readily available online for free. GDI also has free events, like their Code & Coffee meetup.

64. Women Who Code

Women Who Code is a non-profit with networks around the world. They have different events and workshops, all relating to code.

What’s next?

Relying on free courses and books is great when you’re just starting out. However, they can only get you so far.

Once you have the basics down, you’ll want to explore other options – like the Skillcrush Blueprints. If you’re brand new to the Skillcrush blog (welcome!) make sure to check out the free 10-day coding bootcamp. It’s the perfect way to test the waters, and see what Skillcrush is all about!


Laurence is a self-taught freelance web developer, focusing primarily on front-end technologies. In her spare time she manages learntocodewith.me, a blog geared to beginners teaching themselves how to code. Laurence is addicted to side projects and travel.


Refer: https://skillcrush.com/2016/03/15/64-online-resources-to-learn-to-code-for-free/



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


See also:


  • 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


  • 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]


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


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



Website for Learn Python : 












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


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.


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 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
  • iOS


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.


Đố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 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.


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.


Đ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 đó.


Đầ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.


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.


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ị.


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/