diff --git a/docs/api/usage.md b/docs/api/usage.md
index b873169e491b8c4d6b80cf261a1d91a5451532fb..a037ce9454b0223fd823c41e74d9bd2efbe89da0 100644
--- a/docs/api/usage.md
+++ b/docs/api/usage.md
@@ -91,19 +91,21 @@ before using the API.  See the examples in [Bootstrap Reference].
 ## PHP (class.api.php)
 
 CiviCRM v3.4 introduced an object-oriented API client, `class.api.php`.
-This class be used locally or remotely to invoke APIs, as in:
+This class can be used locally or remotely to invoke APIs, as in:
 
 ```php
 require_once 'your/civicrm/folder/api/class.api.php';
-$api = new civicrm_api3();
+$api = new civicrm_api3(array(
+  // Specify location of "civicrm.settings.php".
+  'conf_path' => 'your/sites/default',
+));
 $apiParams = array(
   'first_name' => 'Alice',
-  'last_name' => 'Roberts'
+  'last_name' => 'Roberts',
 );
 if ($api->Contact->Get($apiParams)) {
   //each key of the result array is an attribute of the api
   echo "\n contacts found ".$api->count;
-  'contact_type'=>'Individual','return'=>'sort_name,current_employer')) {
 }
 else {
   echo $api->errorMsg();
@@ -111,8 +113,11 @@ else {
 ```
 
 If you call the API in the object oriented fashion, you do not have to
-specify 'version' as a parameter
+specify 'version' as a parameter.
 
+The object-oriented client can connect to a local or remote CiviCRM
+instance. For details about connection parameters, see the docblock in
+[class.api.php](https://github.com/civicrm/civicrm-core/blob/master/api/class.api.php).
 
 ## REST
 
diff --git a/docs/basics/skills.md b/docs/basics/skills.md
new file mode 100644
index 0000000000000000000000000000000000000000..dd560e20c424fb28e0bbcef63ed904eb7dfda6c4
--- /dev/null
+++ b/docs/basics/skills.md
@@ -0,0 +1,85 @@
+# Prerequisite skills
+
+## Learn how to *use* CiviCRM
+
+Before diving into CiviCRM development, it's worth mentioning that a solid
+understanding of CiviCRM from the *user's* perspective can really help. You
+pick up the standard user interface patterns that you can re-use in your work,
+and you might even realise that the UI already provides the functionality you
+wish to develop. To that end, please see the
+[User Guide](https://docs.civicrm.org/user/en/stable/).
+
+
+## Learn these developer skills
+
+Below we've outlined the major technologies that CiviCRM is built with.
+You don't need to be a pro at everything listed here to get started, but it's
+useful to understand at least of couple of them well, and have a basic
+understanding of how they fit together to create CiviCRM.
+
+Technologies which are contained within the CiviCRM project
+(e.g. civix, buildkit) are covered in detail within this guide, but
+other technologies (such as PHP and Git, which are not CiviCRM-specific) are
+outside its scope. As such, this guide assumes that readers
+arrive with a baseline understanding of these developer skills. This page lists
+these prerequisite skills, along with pointers to usher the reader towards
+appropriate resources for closing skills gaps, wherever necessary.
+Items listed towards the top of this list are, generally-speaking, more
+important skills for CiviCRM development, but the specific skills needed to
+accomplishing a particular development goal, certainly vary.
+
+-   **PHP** - the main programming language in which CiviCRM is written
+    -   [Language reference](http://php.net/manual/en/langref.php)
+-   **Git** - a version control system for tracking changes to source code
+    -   [Official documentation](https://git-scm.com/documentation)
+    -   [15 minute interactive tutorial](https://try.github.io/levels/1/challenges/1)
+-   **Command line / bash** - in general, "the command line" refers to using a
+    text-only interface to run programs such as `civix`, `git`, and many more.
+    Bash is the most common "shell" program used to execute these commands on
+    Unix computers (i.e. Linux and OS X).
+    -   [Unix command line tutorial](http://www.ee.surrey.ac.uk/Teaching/Unix/)
+    -   *Microsoft Windows has a command line shell which functions very
+        differently from bash. While developing CiviCRM on Windows is possible,
+        it will be a slightly more uphill battle, for this reason and others.*
+-   **Javascript** - another programing language used in CiviCRM, especially
+    for any logic that happens within the web browser. *(Note that "javascript"
+    and "java" are entirely different technologies and should not be confused.)*
+    -   [Javascript tutorial](http://www.w3schools.com/js/default.asp)
+-   **jQuery** - a javascript library that makes manipulating elements on a web
+    page easy
+    -   [jQuery documentation](http://api.jquery.com/)
+-   **HTML** - the markup used so transmit page content to a web browser.
+    -   [HTML tutorial](http://www.w3schools.com/html/default.asp)
+-   **Smarty** - a "template engine" which allows developers to write an HTML
+    file for one web page, while easily including content dynamically generated
+    from PHP
+    -   [Smarty documentation](http://www.smarty.net/docs/en/)
+-   **CSS** - a programming language used to specify consistent visual style to
+    be applied to many different elements within a web page. Different web
+    browsers interpret the CSS code in slightly different ways.
+    -   [CSS tutorial](http://www.w3schools.com/css/default.asp)
+    -   [Can I use](http://caniuse.com/) - good for seeing which web browsers
+        have implemented certain CSS features
+    -   [Comparison of layout engines](https://en.wikipedia.org/wiki/Comparison_of_layout_engines_\(Cascading_Style_Sheets\))
+        another helpful comparison of the differences between web browsers
+-   **Drupal / Wordpress / Joomla!** - CiviCRM must be installed within one of
+    these content management systems, and learning more about the underlying
+    CMS will aid CiviCRM development. Drupal is favored by most CiviCRM
+    developers and CiviCRM actually borrows many development practices from
+    the project, so learning Drupal is a good place to start if you are unsure.
+    -   [Drupal documentation](https://www.drupal.org/docs/)
+    -   [Wordpress documentation]()
+    -   [Joomla documentation]()
+-   **SQL / MySQL** - "SQL" is a standardized language used by many different
+    kinds of databases to manipulate data in the database. "MySQL" is one kind
+    of database which CiviCRM uses to store all its data. The query syntax
+    that MySQL uses conforms [almost](http://troels.arvin.dk/db/rdbms/)
+    entirely to the SQL standard, so learning SQL is basically synonymous to
+    learning MySQL.
+    -   [SQL tutorial](http://www.w3schools.com/sql/default.asp)
+    -   [MySQL statement syntax](http://dev.mysql.com/doc/refman/en/sql-syntax.html)
+    -   [MySQL Workbench](http://www.mysql.com/products/workbench/) -
+        an intuitively designed GUI tool for inspecting and interacting with a
+        MySQL database (great for learning more about the CiviCRM data model).
+
+
diff --git a/mkdocs.yml b/mkdocs.yml
index 69654bf278005dd130aad371013d8372bc43060a..213354713dc9705ec25a33af5755130f823e2e29 100644
--- a/mkdocs.yml
+++ b/mkdocs.yml
@@ -11,6 +11,7 @@ pages:
 - Home: index.md
 - Basics:
   - Developer Community: basics/community.md
+  - Prerequisite skills: basics/skills.md
   - Requirements: requirements.md
   - Planning your project: basics/planning.md
   - Build: build.md
diff --git a/redirects/wiki-crm.txt b/redirects/wiki-crm.txt
new file mode 100644
index 0000000000000000000000000000000000000000..97f84fc5cdc0212602795669389e59ade9ed45ba
--- /dev/null
+++ b/redirects/wiki-crm.txt
@@ -0,0 +1 @@
+Documentation+Infrastructure+Canary develop
diff --git a/redirects/wiki-crmdoc.txt b/redirects/wiki-crmdoc.txt
index 963e632b274aec5b3408743e04de2146fc51b851..0432d8f3ea807ed5e0bc33212eb68f7ddfd4d61d 100644
--- a/redirects/wiki-crmdoc.txt
+++ b/redirects/wiki-crmdoc.txt
@@ -3,5 +3,4 @@ The+developer+community basics/community
 Create+an+Extension extensions/basics
 Before+you+start basics/planning
 Recommendations basics/planning
-The+codebase core/architecture.md
-
+The+codebase core/architecture