Ada Developers' Academy

Ada Developers' Academy’s 24-week introduction to web application development is meant to cover both a wide breadth of topics and particular depth into key knowledge areas. At the program’s completion, students will be well on their way to being proficient web developers with the tools and skills to build most web applications.

What are Web Applications?

Static websites and web applications have little distinction to many people. What's the difference?

Static websites are one or more documents that do not (or rarely) change. An example of this type of web content is your local dentist's website. There might be 5 pages: a homepage, rates, location, contact, and testimonials. The content typically does not change, and if it does, an administrator will update the document on the server. Each individual document is transferred and displayed to the requester.

Alternatively, a web application is software that is hosted on a server. The user requests a page in a similar manner to the way they'd visit a static website, but the software receives the request and generates the response (the page) dynamically. This can be seen in Facebook. All of the data is stored in a database. The software determines the most relevant information for the user, formats the data in HTML and sends the dynamic content back to the web browser. Web applications are popular because of their ease of use, access, distribution, flexibility, and maintainability over desktop applications.

Other common examples include:

  • Webmail
  • eCommerce / Online Stores
  • Online Auctions
  • Wikis

Development

Web application software can be written in many ways. Software developers will run the application's code on a local server to be able to quickly test and use the application without the need to deploy code to a remote server. Development is often simplified by using frameworks such as Ruby on Rails and shared within a team using version control software such as Git. Developers will build the software according to specs, user stories, wireframes, and guidelines specified by the project owners. Quality assurance (QA) and testing play an important role in the development and maintenance of any web application.

Prerequisites

We want to ensure that everyone coming into Ada Developers' Academy has similar baseline knowledge. Programming simply takes practice, and the more time you devote to it, the better you’ll be. To that end, please carve out some time to prepare for your first day.

Assignments

The following assignments are due before the first day of class. ADA mentors will be available during business hours to help with any problems that you encounter.

Classroom

At ADA, we want to provide a learning environment that is comfortable, positive and packed with learning. To do this, each day will be loosely structured in the following way:

  • Instruction - Instruction will be 1-4 hours, presented by an instructor or a mentor. This is how new topics will be introduced. Students may be asked to install software, follow along, and execute code during the lesson, so be prepared to listen, interact, and ask questions.
  • Assignments - Each day students will be given daily assignments to complete. The assignments will be relevant to the day's topics. Each assignment must be completed and submitted to GitHub by the following morning. The day's assignments will range from 1-10 short problems and will vary in difficulty depending on the circumstances.
  • Projects - Starting in week two, students will have to complete projects. Projects are larger assignments that will have a variety of issues to address and allow students to get creative by designing and implementing their own solutions to complex problems. Projects may last anywhere from three days to three weeks depending on complexity. Many projects will be in teams. Students will be expected to work with each other by collaborating on code via git and pair programming.
  • Project Time - Students will be given time to work on projects in the classroom when applicable. During project time, students can ask questions and request the help of available instructors or mentors.
  • Speakers - Mentors and guest speakers may occasionally be scheduled to lecture on a variety of topics, from technical coding to programming culture.
  • Reading Assignments - Reading assignments will be given on a weekly basis. Students are expected to read the material outside of class.
  • Review - Students will occasionally review their progress with the instructors. Instructors will typically schedule reviews every couple of weeks, but students are welcome to request a review at any time.

Typical Day

  • 8:00 - 10:00 - Instruction of new material
  • 10:00 - 10:30 - Daily assignments presented and explained
  • 10:30 - 10:45 - Break
  • 10:45 - 12:30 - Continued instruction
  • 12:30 - 1:30 - Lunch
  • 1:30 - 2:30 - Guest speaker
  • 2:30 - 5:00 - Project work
  • 4:00 - 5:00 - Student review with instructors