TalentBuddy: solve programming challenges in 14+ languages

TalentBuddy is an online service to try your programming skills. It has a collection of practice problems that can be solved in any of 14+ programming languages. While it’s fun solving the problems if you are good at programming, TalentBuddy also has some courses to learn web development from established mentors. There are two categories – Beginner and Expert. If you are a strong web developer yourself, you can also apply for teaching. The mode of teaching is over the internet through video lectures. The duration is 15hours per week for 3 months.

Webpage: TalentBuddy

Hacker School: free course on advanced programming

hacker_compThe original article that prompted me to write about Hacker School is from Julia Evans. The concept behind the school is quite interesting and innovative – a 3 month full-time course in New York to learn programming from the gurus. Wow! I’m excited myself! This is a bit different from the Eudyptula Challenge because there is a real vibe around Hacker School and definitely warrants a lesser degree of self-motivation.

The Hacker School accepts applications only from individuals with some experience in programming. The course is free of cost with case-by-case grants for female attendees. The environment is friendly and supportive. The final perk is a job offer from well-known companies (which is of course, not obligatory). This is also the way the organization earns from these companies. Some of the sponsors of Fall 2013 were Dropbox, Tumblr, Etsy. You get the picture: Hacker School doesn’t give you a degree, it turns you into a professional programmer!

The course is practical oriented. Students contribute to various open source projects as they learn. Instead of teachers, facilitators assist students. They can pair with students, review code, brainstorm project ideas, help get dev environment set up, refer to other Hacker Schoolers or residents and anything else that makes the time more productive and educational. However, no one dictates how make the best use of the resources. Residents are accomplished programmers who visit for a couple of weeks and work directly with students. They deliver lectures, run small workshops, and does a lot of code review and pairing.

Individual from all spheres come to Hacker School – from experienced programmers to physicists, chemists, biologists, professionals, parents, undergraduate and graduate programmers. Application can be sent online and needs some programming skills. Batches overlap and applicants are free to choose a batch that fits their schedule.

Some of the projects which Hacker School students have developed are:

  • WebStack.jl, a web framework for Julia
  • webRTC.io, an abstraction layer for webRTC
  • Stork, a new programming language
  • Turtles, a Lisp interpreter for the Apple IIe
  • a Dropbox client for Haiku
  • a BitTorrent client in Python
  • and many more

If interested, head on to their webpage and apply! It would be fun!

Webpage: Hacker School

Cloud based IDEs for development

Are you a programmer or a technical interviewer? If yes, you’re in luck! We’ve just compiled a list of excellent online services to carry on all your development and interviews in the cloud. We use some of them regularly too! We’ve put them in 3 categories: compiler, project hosting, coding interview. There’s a surprise section at the end of the article as well! To keep things to the point we will skip code editor features in the list as most of them offer common and desirable features like code completion, search and find, code folding etc.

Compilers

Codenvy

  • Primarily for web apps development
  • Supports factories, plugins and APIs
  • Included code analyzer and debugger
  • Languages: CSS, HTML5, JAVA, JS, PHP, Python, Ruby on Rails, XML…
  • Frameworks: many!
  • Factories: Android, AngularJS, BigML
  • Configure a public or private cloud or get an ISV solution
  • Monitor remote Git repository
  • FTP, SFTP and FTPS deployment
  • Shell console

Cloud9 IDE

  • Varying level of support for different programming languages
  • Develops and builds on Ace which supports syntax-highlighting of 100+ languages
  • SSH and FTP support
  • Cmdline, Git and Mercurial support
  • Run and debug code
  • Deploy on server targets like Windows Azure, Cloud Foundry, Heroku, OpenShift…
  • Adaptive themes

koding_comgKoding

  • An Ubuntu VM in console mode at your service
  • Supports pretty much any language as it’s an operating system!
  • FTP, HTTP access
  • Tight integration with Github
  • Interesting extensions to ease coding
  • Awesome VM network speed
  • Koding has its own issues. Check this article on Koding.

CompileOnline

  • Supports languages starting from Assembly, C, C++ to web techs (check homepage)
  • Many text formatting supported (MathML, Markdown, Tex…)
  • Compare files
  • Compile and execute

Ideone

  • Suitable for quickly testing stub code
  • Supports 60 languages
  • Provide optional input data
  • Samples and templates
  • Simple editor, compiler and debugging tool
  • Execute your programs
  • Easy to use

Coding Ground

  • Code in almost 90 major languages
  • Rich editor with many options
  • Compile and execute
  • Supports full projects
  • Shell available
  • Hosted on Fedora 21

Glot

  • The latest service on the list
  • Supports several programming languages
  • Works as a psatebin with runnable snippets

Project Hosting & Version Control

SourceForge

  • Probably the most popular one in this category
  • Web-based file manager
  • Project homepage, tickets, wiki, discussion
  • Git, SVN, Mercurial support

Google Project Hosting

  • Git, SVN, Mercurial support
  • Document and track
  • Share releases
  • Public project summary, members, source description

Github

  • Supports Git only
  • Project page, wiki, dashboard
  • Online code compare, change compare, code review
  • More flexible than the others and growing in popularity

More services for hosting code:

Programming Interview

Online interviews are trending. People are busy and they do not want to spend a lot of time in interviewing candidates who are not comfortable in coding. Besides that, often illegible handwriting is a great problem too. So we thought of adding this category for this article. Almost all the tools for online programming interviews do the following some way or other:

  • Provides an editor to code
  • Compile and execute
  • Chat in real-time
  • Support several programming languages with syntax highlighting
  • Candidate screening tools

And we thought of just listing them instead of writing similar features repeatedly. There are many options in this category. We chose the following:

Surprise!

While we were at interviews, we found two websites specifically designed for helping interviewers as well as candidates. Check them out:

Exercism: collaborative reviews to learn coding

Exercism was written by Katrina Owen, an instructor teaching at a small technical school in Colorado. The purpose was to teach her students learn collaboratively and learn how to write good code. Exercism has exercises for new developers which they need to complete before they can review others’ code. The goal is to write quality readable code. Current languages supported in Exercism are Clojure, CoffeeScript, Elixir, Go, Haskell, JavaScript, OCaml, Objective-C, Perl5, Python, Ruby, and Scala. Support of languages like Java, Rust, Erlang, PHP, and Common Lisp are in the pipeline. It is open source and works through a browser. However, there is a downloadable client tool to try it from the console too. The web interface needs GitHub authorization to start trying out Exercism.

To get the first problem from the console:

  • Download the latest client from here.
  • Run the demo:
    $ ./exercism demo

If you want to install it locally for your organization, head on to the GitHub project page for the source code and follow the steps to install it on a local server.

Webpage: Exercism