PHP and MySQL Certificate Program

Characteristics Of This Class:


CERTIFICATE OF COMPLETION

All students who finish this certificate program will receive a signed certificate of completion verifying their participation in the program.


In this accelerated certificate program you will learn the fundamentals of developing server-side applications on the LAMP stack (Linux, Apache, MySQL, and PHP). During the <%=globIntensive%> you will build a simple but modern and secure PHP/MySQL application from scratch. No prior programming experience is assumed but skill with HTML, CSS, and a serious interest in learning to program is.

Read more about what makes our certificate programs unique.

Prerequisites

Participants should already have a working understanding of HTML and CSS since this is not a design course, an HTML course, or a Dreamweaver course. In-class coverage of HTML and CSS will be minimal, and we'll be editing all of our code by hand using a text editor. We'll be using HTML5 and CSS3 as implemented in modern browsers. If you can't write HTML and CSS blindfolded with one hand tied behind your back, take our Web Design Certificate Program first and start practicing! We also recommend

Equipment

BDA provides an iMac workstation with all the necessary software. However, we strongly encourage you to bring your own computer for this course. If you do, you'll need the following:

  • An Apache HTTP server with PHP 5.x and a MySQL 5.x server. We recommend MAMP (for Mac - free version is fine) or XAMPP (for Windows) - both are standalone *AMP stacks that are simple ways to get everything you need with a simple one-click installation.
  • Text Editor: TextMate, BBEdit, or similar (Mac); Notepad, Notepad++, or similar (Windows)
  • Browser: Mozilla Firefox (preferred), Google Chrome, or Safari.
  • Firebug for Firefox or the latest version of Safari or Chrome with web developer tools enabled
  • FTP Program: Interarchy, Filezilla FTP client or a similar FTP program
  • Sequel Pro (Mac), MySQL Workbench (Windows)

The instructor will be using TextMate, Firefox, Firebug, Sequel Pro, and Interarchy.

Schedule

The first five sessions will mostly focus on general programming concepts and skills. The last five will focus on applying those skills to web development, and the course as a whole will culminate in the presentation of a small personal project.

Session 1

In our initial meeting we'll talk about logistics and get our local environments set up for development. After a brief review of HTML and CSS, we'll look at basic PHP syntax and write our first dynamic PHP-powered web pages. Hello, PHP!

Session 2

Next up, we will dive straight into the basic means of interactivity in server-side applications: forms. How do you capture user input? We'll make our dynamic webpage controllable by the user. We'll also build the initial markup for the application we'll be fleshing out over the course of the course: a guestbook.

Session 3

Programming happens by means of a handful of basic data types and operations on those types. Our second session will look at the array (literally) of things one can do with numbers, strings, booleans, and functions. The second assignment will involve some schoolbook-style exercises and also making our guestbook halfway — well, maybe an eighth of the way—functional.

Session 4

Our guestbook is less than useful at this point partly because HTTP is stateless. Most web applications need some way to persist data between page loads, and ours is no different. Our PHP program lives and runs on a computer which happens to have a filesystem, so our first approach to persistence is to store guestbook entries in a file. Reading and writing to a file in PHP is actually pretty easy. The trick will be in picking what to write. Initially, we'll write straight markup.

Session 5

Our guestbook is working! Seemingly. Mostly. But there are some problems. What happens when we want to add a field to the guestbook? What happens if we want to change the style of the entries? How will the server perform with our approach when we get millions of entries (which we undoubtedly will)? Our next step is to take a hard look at the problem of content versus presentation. You may have heard of this concern in terms of CSS and semantic HTML markup. What step can we take to separate the two in this case? We'll review a couple of data formats and settle on JSON for now. We'll also look at some immediate benefits of separating content and presentation, or data and views on that data.

Session 6

So now we've got a respectable data format and we are keeping our data clean of any unseemly presentation concerns. Our guestbook is working. Things are going well. This is the point when you need to ask yourself: “OK, how can things go wrong?” (Actually with experience you'll learn to start asking that question right away.) In this session we'll look at data validation, sanitization, error handling, and user experience. This is arguably the most important session in the course. Most of the effort of programming often seems to come down to handling failure gracefully. Coming to peace with this early on is probably a good career move!

Session 7

Alright, now we've got a guestbook! We can throw anything at it and it responds with grace and equanimity. What more could we possibly do with it? Well after error handling, a major “hidden” concern of programming is not just getting it to work under duress, but designing your programs in ways that enable maintenance, understandability, and, most importantly, re-use. DRY is an acronym that means “don't repeat yourself”. We'll look at what this means in general and for us in particular. The goal for this session will be to create an interface for our implementation of a guestbook datastore, and for our specific guestbook. In a sense, it's taking content vs presentation a step further.

Session 8

We're approaching the finish line now. The next major topic will be migrating our app to use a more robust datastore: a MySQL database. This will enable a number of nice features of the sort that we all expect to find on modern web apps. Luckily, with all the abstraction and design work we've done, this step proves to be pretty painless! Since we so assiduously observed the DRY imperative, the amount of code we have to change is surprisingly small. One catch: there is a little extra work we'll have to do to protect our app from malicious attacks. This isn't a hard step, but it is a critical one.

Session 9

Our app is pretty much complete. It was a long haul for such a simple app but most of the concerns we explored are things every app will need to address in some way. But our app doesn't exist in a vacuum. The web is an ecosystem: full of interconnections and relationships. Can we tap into that in some way? In this session we'll take a look at APIs: how web apps talk to one another. We'll add code to leverage a API, enhancing our app with images and interactivity.

Session 10

Review questions, tie up loose ends.

Instructor

Craig KendallEric Miller has a background in software, architecture, and music, and wowed his friends in high school by playing Tetris with his toes. He has been coding something or other since 1995 and has been creating software for the web professionally since 2007. Eric has a BS from Stanford University, an M.Arch from the University of Colorado, and a black belt in Aikido, but has sadly allowed his mad Tetris skillz to wither.

Location

This certificate program will be held in the Boulder Digital Arts Boulder location classroom.

Eric Miller

Eric Miller

Eric Miller has a background in software, architecture, and music, and wowed his friends in high school by playing Tetris with his toes. He has been coding something or other since 1995 and has been creating software for the web professionally since 2007. Eric has a BS from Stanford University, an M.Arch from the University of Colorado, and a black belt in Aikido, but has sadly allowed his mad Tetris skillz to wither.


I just finished this program and was very impressed. My biggest concern with paying to take classes is that I won't get my money's worth and this wasn't the case. The instructor, Eric Miller, works in the field every day and it shows. He was always taking the time to show how the curriculum fit into the real world and made sure everyone had a solid grasp of the material before moving on. As with all programs and classes, the material is given in an accelerated pace so you have to make sure you know what's going on before you accept the next challenge, but the small class size allows for it.

Chris, 4/14/2014

This class moves fast and covers a lot of ground for beginners new to programming but it was very helpful and informative.

Steven, 10/25/2012

I wanted a solid basic understanding of PHP and MySQL and I got it. The instructor was very kind - not intimidating, easily approachable.

Amelia, 2/22/2012

The instructor was great!

Jake, 8/10/2011

Related Classes & Workshops

Below is a list of classes & workshops that are related to the one you are reading about now. We also encourage you to take a look at our "help me choose" page for much more information on choosing which BDA program is right for you.

Optional Payment Plan for :

We want to make our training as accessible as possible so we offer a simple payment plan for our . Each of the 4 payments is 25% of the total registration fee with no finance charges or other costs. The first payment will be taken when you register and the remaining 3 payments are paid every month for the following 3 months (detailed payment information in the table below). It's easy to take advantage of this option and we encourage you to sign up early since these programs often fill up fast! If you're interested, don't register online. Instead, please contact BDA staff at 303-800-4647 or email us with the name and start date of the class you wish to attend (info@boulderdigitalarts.com) and we'll get you setup, take your first payment, and confirm your registration.

 

Payment Program Details

  BDA Member Non-Member
Payment 1
Paid at time of registration.
$252.25 $277.25
Payment 2
Due one month after registration.
$252.25 $277.25
Payment 3
Due two months after registration.
$252.25 $277.25
Payment 4
Due three months after registration.
$252.25 $277.25
Note: registrants using the payment plan are not eligible for the early registration discount and always pay the standard registration fee ($1,009.00 for BDA members and $1,109.00 for non-members).

Registration Fees

BDA Members: $999.00

Non-Members: $1,099.00
Become a member now and save $100.00

Scheduled Dates

Sorry, this event isn't currently scheduled.
+ Follow this event
+ Email us to request the class

Notifications




GET INSTANT ALERTS ABOUT

NEW CLASSES & EVENTS!

SIGN UP FOR OUR NEWSLETTER!

WIN FREE CLASSES BY CONNECTING WITH US!

CLOSE THIS THING