The following questions should serve as a guide for what a web developer should know or seek to learn throughout their career. Some of these questions have straightforward answers while others are more subjective. Many of the questions are conceptual and their significance might not be apparent until you've gained more experience.
Use this list as a reference point for what areas you might need to work on during your time at Launch Academy and into your career as a web developer.
- What are some basic data types in Ruby?
- How does Ruby evaluate an expression? How are variables/method calls handled?
- What is a conditional expression?
- How do we pass data in and out of methods?
- What are the benefits of defining methods?
- How can I model information using Arrays and Hashes?
- What is a ruby gem and why are they useful?
- What is the difference between a string and a symbol? Why would you use one over the other?
- What's the difference between the Ruby language and the Ruby interpreter?
- How is an interpreted language different from a compile language?
- (If you've programmed in another language) How does Ruby differ from other programming languages you've used? What are some potential benefits/drawbacks from using Ruby over that other language?
- What is HTTP? What are the benefits of using a communication protocol?
- How does a browser communicate with a web server?
- What information is sent in an HTTP request? Which parts are optional?
- What is the difference between a GET and a POST request?
- What information is returned in an HTTP response?
- What is a response code? What are some of the common response codes?
- What does it mean when we say HTTP is stateless? What are the benefits and drawbacks of having a stateless protocol?
- What is an HTTP cookie? When should they be used?
- What is SQL?
- What is PostgreSQL? How is it different from SQL?
- What is CRUD?
- Why do we need databases for our web applications?
- What are the SQL commands for inserting, updating, and deleting data?
- How are tables defined in SQL?
- What are database constraints?
- How are data linked between tables?
- What is a primary key?
- What is a foreign key?
- What is a one-to-many relationship and how do we model them?
- What is a many-to-many relationship and how do we model them?
- How do I query all rows from a table?
- How do I filter the rows returned based on some condition?
- How do I select at most 1 row?
- How do I sort the rows from a query?
- How do I query data from multiple tables?
- What is an index and when are they needed?
- What's the difference between an INNER and OUTER JOIN?
- What is an aggregate query?
- What does it mean when a database is ACID compliant?
- How do I ensure that multiple inserts/updates/deletes happen all together or not at all?
- What are the advantages of object-oriented programming?
- What is the difference between a class and an object?
- How do instance variables differ from local variables?
- How do I define a new class?
- How can you pass information into a new object?
- What is the difference between an instance method and a class method?
- What is the purpose of attr_reader and attr_accessor?
- What is encapsulation?
- What is composition?
- What is inheritance? How does it differ from composition?
- What are the SOLID principles?
- What is duck typing (and polymorphism)?
- What is JavaScript?
- Why do we need JavaScript? Why can't we write all of our code in Ruby?
- What is the difference between JavaScript and jQuery?
- What is the DOM?
- What are event handlers?
- What are HTML and CSS used for?
- Why do we separate HTML from CSS?
- What does it mean for markup to be semantic?
- What does it mean for markup to be standards compliant?
- What are the benefits of using inline styles vs. an external stylesheet for CSS?
- What is responsive design?
- What are the benefits/drawbacks of using a framework for HTML and CSS (e.g. Foundation or Bootstrap)?
- What are the first steps in debugging cross-browser issues?
- What is MVC?
- What is ActiveRecord? Why use it over raw SQL queries?
- What are migrations and how do they affect my database?
- How are requests handled in Rails (i.e. how do we know which controllers, models, and views to use)?
- Why should I have skinny controllers?
- What does it mean for resources to be RESTful? Why is adoping REST of benefit?
- How does Rails differ from Sinatra?
- What testing frameworks exist for ruby?
- What does "red, green, refactor" mean?
- What is test-driven development (TDD) and what are its benefits?
- What is behavior-driven development (BDD)?