Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
D
Developer Documentation
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Wiki
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Build
Pipelines
Jobs
Pipeline schedules
Artifacts
Deploy
Releases
Package registry
Container Registry
Model registry
Operate
Environments
Terraform modules
Monitor
Incidents
Service Desk
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
brienne
Developer Documentation
Commits
5e2ec847
Commit
5e2ec847
authored
8 years ago
by
Sean Madsen
Browse files
Options
Downloads
Patches
Plain Diff
new page: Prerequisite skills
parent
e79a5ffe
No related branches found
Branches containing commit
No related tags found
No related merge requests found
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
docs/basics/skills.md
+77
-0
77 additions, 0 deletions
docs/basics/skills.md
mkdocs.yml
+1
-0
1 addition, 0 deletions
mkdocs.yml
with
78 additions
and
0 deletions
docs/basics/skills.md
0 → 100644
+
77
−
0
View file @
5e2ec847
# 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 is very important.
To that end, please see the
[
User Guide
](
https://docs.civicrm.org/user/en/stable/
)
.
## Learn these developer skills
Becoming a proficient CiviCRM developer requires skills in many different
technologies, some of which are contained within the CiviCRM project
(e.g. civix, buildkit) and thus covered in detail within this guide. But
other technologies such as PHP, and Git (which are not CiviCRM-specific) are
outside the scope of this guide. 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.
You don't need to be a pro at everything listed here to get started, but it's
worth focusing more effort towards the top of this list first.
-
**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
)
-
**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).
This diff is collapsed.
Click to expand it.
mkdocs.yml
+
1
−
0
View file @
5e2ec847
...
...
@@ -11,6 +11,7 @@ pages:
-
Home
:
index.md
-
Basics
:
-
Developer Community
:
basics/community.md
-
Prerequisite skills
:
basics/skills.md
-
Requirements
:
requirements.md
-
Build
:
build.md
-
Customize
:
customize.md
...
...
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment