Exercism is a great coding exercise website that is completely free of charge. Exercism contains many challenges and supports a variety of languages. There are many mentors available, who quickly evaluate your code and provide you with useful tips to improve it. The website lets you choose an IDE to code wit...
ProCompletely open source
ProLearn and teach simultaneously
ProCompare your solution with the solutions of other programmers
ProIntroduces concepts of Test-Driven-Development (TDD)
ProHuman review and feedback
ProPractice with production tools
ConCustom commandline client
ConNot a good starting place for beginners
Although Basic is considered a "not marketable skill" by a lot of professional programmers, I feel this bad reputation is undeserved as nowadays there are really excellent Basic versions which are a match for other languages. To name an example: in VB.NET you can achieve everything you can in C#. M...
ProLots of information available
ConNot highly regarded by professionals
Justus (2.1K karma) recommendsTemplate Haskell
Although Haskell itself is a static language with no support for classical metaprogramming, GHC can run any Haskell code as Template Haskell during compile-time. Thus, you get almost as poweful macro capabilities as in a Lisp, while still retaining the safety net of the static type checker, which greatly red...
ProSame language for macros and runtime
I've been writing golang professionally for about 3 years now, and I have to say: It's a joy. The language is quite minimal and simple, much like one of its main influences (C). There's relatively few keywords and language constructs, making the language easy to learn. Overall the language is inc...
ProVery complete, mature tool chain
ProBuilt-in unit testing
ProThe go compiler compiles binaries instantly — as fast as a scripting language interpreter
ProEasy to install and configure; simple to compile software
ProProgrammers don't have to argue over what 10% subset of the language to implement in their software project
ProProvides tools for automatically formatting code for your entire software project
ProExceptionally simple and scalable multithreaded and concurrent programming
ProSimplified C-like syntax that is as easy to read and write as Python
ConReally annoying time formatting system