Free Online Coding Tools for Developers
“No frills” online compiler/interpreter and simple collaboration tool. Compiles and runs your code, and also gives you a short URL to share with others. Supports C, C++, Haskell, PHP, Perl, Python, Ruby, and more.
What we think: Does the job, but pretty bare bones.
What we think: Two thumbs up. These guys seem to have thought of everything.
Enter HTML and CSS and immediately see the results.
What we think: Very useful for experimenting with static layout and styling.
Online compiler and debugging tool which allows you to compile source code and execute it online in more than 60 different programming languages.
What we think: Close runner-up to CompileOnline.com, but doesn’t support quite as many languages and is a bit less flexible. Still a very useful coding sandbox, though, that may be your first choice depending on the language you’re working in and what you’re trying to accomplish.
What we think: If you’re looking for something collaborative, JSFiddle is the way to go.
Allows you to enter your own custom schema, populate the database, and run queries interactively.
What we think: Great for playing around and experimenting with a schema, without having to setup a test instance of your database in your own environment.
Free Collaboration Tools
Real time collaboration for screen grabs and other graphics. Easily upload a screenshot or other graphic from your computer, share the link, and collaboratively view and annotate.
What we think: Couldn’t be easier to use. Once you use it, you won’t be able to stop. Incredibly useful.
Group chat, audio, video, and screen share.
What we think: Video for groups is free (unlike Skype). Can sometimes be a bit flaky, but usually more stable than Skype. Some of the features of Skype, some of the features of join.me, and a number of its own fun features (in typical Google fashion).
Group chat is free; video and screen sharing requires paid license.
What we think: Although the free version is limited to group chat, does have some advantages. Perhaps most notably, mobile version doesn’t kill your battery. Has some nice usability features too.
Online collaborative meeting tool that supports group audio and screen share.
What we think: Relatively easy-to-use and intuitive interface. Better screen sharing for groups, and usually more stable, than Skype.
Group chat, audio, and video (1-on-1 video is free, group video requires paid license). Also supports screen sharing and transmission of files.
What we think: Buggy but very popular. Reasonably good for day-to-day collaboration and communication. Generally good for phone-to-computer communication, but connection quality and stability can be very unpredictable. Screen sharing and video are suboptimal and require high speed Internet to be useful.
A whole new way to manage your team, your workflow, and even your personal to do list. Drag and drop cards between lists to show progress. Add as many people as you need and drag them to cards. Add and reorder lists as you need. See everything just by glancing at the board, and it all updates in real-time. There’s nothing to set up and everyone gets it instantly.
What we think: One of the easiest-to-use and most intuitive interfaces we’ve ever seen. Makes you wonder how you worked without it once you get hooked. Many consider it a real productivity booster and an essential for collaboration.
Open Source Tools / Code for Common Algorithms and Tasks
Simple open source authentication solution in Ruby. Flexible, well-designed API includes a plethora of hooks to allow you to modify or extend default behaviors. Supports both Rails 3 and 4 (a branch is available for Rails 2).
What we think: Two thumbs up for flexibility and extensibility.
A powerful and flexible authentication framework, written in Ruby that aims to abstract away the difficulties of working with disparate authentication providers. Designed to be hooked up to just about any system, from Facebook to LDAP.
What we think: Well architected and solid framework. We also really like that there’s a community-maintained list of OmniAuth authentication strategies, released individually as RubyGems. Good stuff.
Inspired by OmniAuth for Ruby, Opauth enables PHP applications to do user authentication with ease. Provides a standardized method for PHP applications to interface with authentication providers. The Opauth API allows developers to create strategies that work in a predictable manner across various PHP frameworks and applications.
What we think: All the advantages of OmniAuth, but for PHP rather than Rails. Well architected and solid framework, with a growing list of predefined authentication strategies.
An Express-compatible middleware framework for Node.js-based authentication. Passport’s approach is conceptually analogous to OmniAuth (for Ruby) and Opauth (for PHP), authenticating requests via an extensible set of strategy plugins. Simple, straightforward API.
What we think: Clean, easy-to-use authentication framework for Node.js. Need we say more?
Bayesian Belief Network Package, supporting creation of, and exact inference on, Bayesian Belief Networks specified as pure Python functions.
What we think: This library is being actively worked on and expanded. Well designed. Worth keeping an eye on.
An introduction to Bayesian methods and probabilistic programming with a “computation/understanding 1st, mathematics 2nd” point of view. Built using Python and PyMC.
What we think: Meant as an introduction to the domain, and is good as such. If you’re new to Bayesian Networks and Probabilistic Programming, this can be a great starting point.
A Python module that implements Bayesian statistical models and fitting algorithms, including Markov chain Monte Carlo. Its flexibility and extensibility make it applicable to a large suite of problems. Along with core sampling functionality, PyMC includes methods for summarizing output, plotting, goodness-of-fit, and convergence diagnostics.
What we think: Very comprehensive, clean API, very well documented. If you’re experienced in the domain, or know very specifically the functionality you’re looking for, PyMC is probably the way to go.
Extends the usability of NumPy and Pandas to distributed and out-of-core computing. Blaze provides an interface similar to that of NumPy’s ndarray or Pandas’ DataFrame but maps them onto a variety of other computational engines like Postgres or Spark.
What we think: Powerful library, but actively being worked on so might be worth marking with “under construction”. Not all the documentation, for example, has kept pace with the evolution of the code. There’s good stuff here though.
Mature, web-based application for analyzing data with Apache Hadoop. Supports Hive, Pig, Impala, Spark, Oozie editors, Solr Search dashboards, HBase, Sqoop2, a file browser, and more. Hue’s libraries are also packaged as an SDK to facilitate building apps on top of Hadoop. Even available in 8 other languages (Spanish, French, German, Portuguese, Brazilian Portuguese, Japanese, simplified Chinese, and Korean).
What we think: Wow, there’s a lot here. Powerful and has a fairly prestigious list of adopters. Note, though, that setup requires satisfying a number of dependencies, so not for those who are technically fainthearted.
H2O scales statistics, machine learning, and math over Big Data. H2O is an extensible Java library that enables you to explore, munge, and model datasets using a range of simple to advanced algorithms. Supports familiar interfaces like R, Excel, and JSON, as well as various data types including HDFS, S3, NoSQL, SQL, CSV, and more.
What we think: Fairly comprehensive, solid Java library. Documentation is OK, but more usage examples would really be helpful.
Open source, distributed SQL query engine for running interactive analytic queries against data sources of all sizes ranging from gigabytes to petabytes. Designed and written from the ground up for interactive analytics, approaching the speed of commercial data warehouses while scaling to the size of organizations like Facebook. Supports pluggable connectors for Hadoop/Hive, Cassandra, and TPC-H.
What we think: Man, this is good stuff. Very comprehensive and well documented. Well worth a look.
Text classifier based on Decision Trees ID3, Naive Bayes and KNN algorithm in C++ and Java.
What we think: Fairly basic, but does the job.
Generalizes the Spark MLLIB K-Means clusterer to support arbitrary distance functions. Written in Scala.
What we think: K-Means clustering in Scala. Woo-hoo!
Web mining module for Python, with tools for scraping, natural language processing, machine learning, network analysis, and visualization. Well documented and bundled with over 50 examples.
What we think: Refreshing to see a library written with such an eye toward usability. Great features, clean API, excellent documentation. Kudos.
An out-of-the-box Python workbench for data analysis, statistical modeling, scientific programming, data mining, machine learning, mathematical programming, and visualization. Runs IPython and all the associated tools in a sandboxed virtual machine.
What we think: Lots of features, but lots of dependencies. But if you already use IPython, this could be a good option for you.
Library based on C, Python, and Matlab that provides optimized (multi-threaded, Blas/Lapack, low level optimization) implementations of computationally demanding functions, such as k-means and exact nearest neighbor search. Several sample programs are provided.
What we think: Works as advertised and sample programs are helpful. An interesting alternative.
Cross-platform Java game development framework based on OpenGL that works on Windows, Linux, Mac OS X, Android, a WebGL-enabled browser, and iOS. The framework provides an environment for rapid prototyping and fast iterations. Instead of deploying to test after each code change, you can run and debug your game on the desktop, natively. Desktop JVM features like code hotswapping reduce your iteration times considerably.
What we think: Really does simplify Java game development. And the Developer’s Guide is refreshingly well written and comprehensive. Two thumbs up.
Fast, free, open source 2D game framework for making HTML5 games for desktop and mobile web browsers, supporting Canvas and WebGL rendering.
What we think: What’s really nice about Phaser is that it has lots of great features for the experienced game developer, while at the same time providing clear documentation and examples to help orient the game developer newbie. We’re impressed.
Game development suite for rapidly building native iOS and Android games with Objective-C and Xcode.
What we think: SpriteBuilder is for iOS and Android what Phaser is for HTML5. Whether you’re an expert developer or just getting started, SpriteBuilder helps you build top-quality games in a fraction of the time.
What we think: These guys “strive for the best possible performance, precision, visual quality, ease of use, platform support, and content” and it shows. Hey Cesium team, keep up the good work.
GeoNode is a web-based application and platform for developing geospatial information systems (GIS) and for deploying spatial data infrastructure. Facilitates the creation, sharing, and collaborative use of geospatial data by Python developers.
What we think: Comprehensive and well-documented. And kudos for being OGC-compliant.
What we think: Wow, if all software was designed, written, and documented this cleanly, the world of software would be a much better place. It’s simple, it’s elegant, and it’s powerful.
Toolkit for developing desktop or web-based mapping applications. Written in C++ with Python bindings provided. Uses the AGG graphics library, which offers world-class anti-aliasing rendering with subpixel accuracy for geographic data.
What we think: Good capabilities and reasonably well documented. Heavy emphasis on presentation and graphics quality, so worth a look if that’s your priority.
What we think: Although originally developed to support proprietary software, its developers deserve much credit for morphing it into an open source project that could be used independently to easily add dynamic mapping to a web page. Clean API and OGC-compliant. Nicely done.
Geospatial data library for writing location-aware applications in Ruby. Includes the rgeo-geojson gem to generate and interpret GeoJSON data for communication with common location-based web services as well as the rgeo-shapefile gem for manipulating ESRI shapefiles.
What we think: A great GIS solution for the Ruby environment.
Graph visualization library using web workers and jQuery. Rather than trying to be an all-encompassing framework, arbor provides an efficient, force-directed layout algorithm plus abstractions for graph organization and screen refresh handling. Leaves the actual screen-drawing to you which means you can use it with canvas, SVG, or even positioned HTML elements.
What we think: A great choice for sophisticated web developers, due to its flexibility. But if your a graphing newbie or are looking for easy out-of-the-box functionality, you should probably look elsewhere.
Dynamic HTML5 visualization supporting fast interactive HTML5 charts.
What we think: Dynamic and fast but fairly rudimentary. Documentation is adequate but not great.
Interactive visualization tool for networks and complex systems (link analysis, social network analysis, etc.) as well as dynamic and hierarchical graphs. Runs on Windows, Linux and Mac OS X.
What we think: A powerful, comprehensive, and high performance tool. Really well documented too. Pretty awesome.
Easy-to-use and feature-rich application for drawing graphs of mathematical functions. Makes it very easy to visualize a function and paste it into another program. Also supports performing some mathematical calculations on the functions.
What we think: If you’re looking for a graphing application that is mathematically sophisticated, this is probably the right choice for you. But it’s an application (albeit open source), not a library.
Python 2D plotting library that produces publication quality figures in a variety of formats. Generates plots, histograms, power spectra, bar charts, error charts, scatterplots, and more, with just a few lines of code.
What we think: We agree with their self-assessment: “matplotlib tries to make easy things easy, and hard things possible”. Easy to use, well documented, feature rich. Good stuff!
Dynamic SVG charting library written in Python. Supports a wide array of chart types and lots of options for customization.
What we think: A nice selection of chart types that take advantage of the features of SVG, and with a fair amount of flexibility and customizability provided. Worth checking out.
What we think: Easy to use, easy to customize, uses SVG. What a toolkit should be. Two thumbs up!
What we think: If web-based network visualization, manipulation, and exploration is your goal, this is almost certainly the library you want to be leveraging.
What we think: It’s simple, works without plugins, and has a comprehensive API. We like.
What we think: True to its claims, lets you write object-oriented easy-to-read code that mirrors the maths it represents. Good stuff.
Makes working with social networks easier on the Android platform. Provides a common interface for Twitter, LinkedIn, Facebook and Google Plus.
What we think: Still under development, but so far, so good.
Plugin for Ruby on Rails applications that provides all the features of a basic community site (user profiles, blogs, private messaging, events, forums, and more). Strong developer community, being actively used on sites that serve hundreds of thousand visitors monthly.
What we think: Strong, solid technology. Works as advertised. Definitely a good choice for Rails developers to easily build a community site.
Ruby on Rails Framework for building distributed social network websites. Modular, flexible, component-based architecture makes it easy to employ only those capabilities needed for your site.
What we think: Very well architected. These guys were really thinking of how developers would want to use this when they designed it. Nicely done.
Social networking widgets are generally heavyweight and slow to load, especially on high-latency mobile connections. SocialCount is a jQuery plugin for lightweight, lazily-loaded, mobile-friendly social networking widgets (to show share counts from Facebook, Twitter, and Google Plus).
What we think: Nice to see someone actually paying attention to performance. Very clean design and well thought out architecture. Can dramatically reduce load time when compared with other social networking widgets.
What we think: This is really the way libraries should be built. Highly functional, highly efficient, highly modular, and easy to use. Need we say more?
Comprehensive set of tools for creating rich interactive data visualizations. Supports a rich set of features for data modeling, visualization, and interaction. Provides optimized data structures for tables, graphs, and trees. The original Prefuse toolkit provides a visualization framework for the Java programming language. The Prefuse Flare toolkit provides visualization and animation tools for ActionScript and the Adobe Flash Player.
What we think: Lots of features. Fairly complex but also well documented. Not for the faint of heart, but a great toolkit for a more advanced developer.
Free (but not open source) tool for visualizing dynamic graphs. Distributed in binary form as a standalone server that responds to requests via XML-RPC, so can interoperate with virtually all major programming languages today. Can be used to visualize and debug complex algorithms and data structures, to discover hotspots in your program through a real-time visual profile, and more.
What we think: Although we are big fans of open source (which this is not), this is still a very valuable free tool that can easily integrate with your application to provide some fairly advanced functionality.
Screen scraping and web crawling library for PHP. Provides a clean API to crawl websites and extract data from the HTML/XML responses.
What we think: Plain vanilla, no frills, but does the job.
Web scraping utility using Node.js and jQuery.
What we think: Helpful, but really basic.
Lightweight Ruby web crawler/scraper that extracts structured data from pages.
What we think: Ideal if you don’t want to deal with all the complexity of getting the page and parsing it into your own data structure. Wombat handles all that for you and provides you with its own set of structured data. Great if that’s what you want; can be a bit frustrating if you want to “get at the guts” yourself. But well designed for what it does and for its intended audience.
Free Online Tutorials, Courses, and Information
What we think: A nice way to get an intro to a new technology, but it does tend to be intro-level.
What we think: A nice and very interactive way to get exposed to a new technology, but it does tend to be intro-level.
Free online courses including, but not limited to, computer programming. Features online, often multi-week, courses taught by college professors and often sponsored by major universities such as Duke, Standford, MIT, and more.
What we think: More advanced and even senior developers take these courses to learn a new technology well enough to start using it at work right after. Impressive.
Free courses on a wide array of topics. Includes course selections for computer programming and cryptography and information theory. These generally consist of short videos each focused on a fairly specific topic. You can string these videos together to build a custom curriculum for yourself.
What we think: Perfect for filling gaps in your math, engineering, or physics knowledge.
Ask questions about anything; get answers, opinions, and thoughts from others. See what others are asking and share your knowledge. Create a blog to share knowledge by writing posts about any topic. Choose from over 400,000 topics to create a feed of information tuned to your interests. Kind of like Wikipedia, but less structured and in Q&A form. (Also see StackExchange below.)
What we think: We’re addicted. Follow the right people/topics, and it will become one the few sites you visit every day.
Conceptually very similar Quora, but generally attracts a different type of question. Although there are exceptions, as a general rule, the difference between Quora and StackExchange can be summed up as follows: Quora is about getting information, whereas StackExchange is about getting solutions to problems.
What we think: The go-to for specific technical questions. If you’re stuck, this is probably one of the first places go. Bookmark this one.
What we think: Attention visual learners! This is your resource. These elegant videos walk you through Front-end concepts.
Online courses including, but not limited to, computer programming. Courses are mostly free, but for a fee you can get access to projects, code-review and feedback, a personal Coach, and verified certificates.
What we think: A mixed bag. Some truly great resources and some not so great. It’s a good idea to check the reviews of a specific course before signing up.
What we think: An official authority on all things web and software. Online tutorials, live coding exercises and more. Not the fanciest experience but plenty of authoritative content for aspiring developers.
Software Industry Trends and Forecasts
Hiring Trends and Outlook
Source: Information Week