Going further.
Rails is incredibly good for quickly prototyping database-backed RESTful web-based applications.
You can build an MVP of a product using Ruby on Rails, PostgreSQL, HTML, CSS, and Javascript, and deploy it to Heroku. You can collaborate with git over GitHub.
That's already a lot! But employers will expect you to fill different positions that require better understanding of web technologies and different architectures. It's good to know who knows tools are good for which tasks. You don't have to learn them all straight away, but it's good to know enough to be able to maintain a conversation with an interviewer. Try a beginners tutorial or at least read and takes notes from a Wikipedia article!
Here's how to dig deeper on the technologies we learned.
Read about the language itself. What makes it stand out? Why is it called dynamic? What is "duck typing" and what are its pros and cons? What are the main principles of OOP in general and how are they used in Ruby? Try your hand at metaprogramming and learn how to create your own simple gem!
What makes HTML the main building block of the web? What separates good markup from bad markup? Why some tags are "semantic" and some are not? Learn as much tags as you can! Should a developer care about accessibility and what tools HTML gives us to ensure a page can accommodate all users?
What does a "cascade" mean in CSS? Why this idea is powerful, but at the same time causes a lot of problems for modern web? What would you do differently about CSS? Why is it important to care about browser support for different properties? Would you prefer CSS or JS for animations or simple UI elements?
Read about the language and design decisions that went into it. Why did it become so popular? Why do we say JS has "good parts" and "bad parts"? What is ECMAScript? What are the main features of ES6? How is OOP done in Javascript and why it so different? What is "bundling" and why is it so important for modern websites? What are the main tools for that? What is a DOM? What separates frontend and backend Javascript? Learn about more advanced language features, like closures. Try building your own simple JS library!
What kinds of databases do you know? What is a relational database? Learn some history behind SQL, as it is one of the oldest and ubiquitous languages out there. Which SQL databases have your heard about? How are they different? Read about PostgreSQL and why did it become so popular. What are advantages and disadvantages of Active Record? Be confident with JOINs, brush up your basic SQL commands and know their AR implementations.
What is a web framework? Who are Rails main competitors? What are the main design principles behind Rails? Which problems do they solve? What are the main frameworks inside Rails? How does Rails handle HTTP request-response cycle? Read about Rails patterns and antipatterns, learn testing in Rails with RSpec and Minitest. What are the advantages and disadvantages of "monolithic" web apps? Read and re-read all available Rails Guides! How did framework evolved over time? What are Rails most common pains and gains?
Full-stack is a rare profession nowadays, mostly found at small startups who look to save cost, or small to medium freelance commissions.
It is hard to be a true fullstack, that is, have deep, relevant knowledge about both back-end and front-end technologies. So pick your passion and dig deeper.
- OPERATING SYSTEMS: be comfortable with a Terminal, learn yourself a vim command or two. Explore the philosophy behind UNIX-based operating systems (MacOS is one of them!). Files, directories, processes, threads, sockets, ports, kernel, system calls, memory management - these are all the concepts that you should at least Google.
- DEVELOPER OPERATIONS (DEVOPS): What is a deployment? How can one host an application? Bare metal, VPS, platform-as-a-service. What are the most popular clouds? What are containers and how are they different from virtual machines? Learn yourself some Docker! How does it close a gap between development and production environments?
- NETWORKING. How HTTP is different from TCP/IP? Name at least few network layers. What is a client and what is a server? What is an application server? Reverse proxy. Load balancing. What is a TCP packet? HTTP request? How different types of requests are different? What is idempotency? Learn about REST principles and understand why they are so important in web.
- APIs. Learn about HTTP response codes and good practices in web API design. Try building a simple API that performs CRUD actions on a single resource, handles client and server errors, and sets corrects response codes. Go beyond REST APIs and explore GraphQL. Designing and implementing APIs is of utmost importance for backend developers.
- DATABASES. See above. What are the main mistakes in using a database through Active Record?
Remember now it's often even MORE code than back-end!
- JAVASCRIPT FRAMEWORKS. Angular, ReactJS, Vue. What are their similarities and differences? What is a Virtual DOM? Which problems do modern front end framework solve and which problems to they introduce? Have an opinion, but don't be stubborn while protecting it.
- BUNDLING ASSETS. How do you deliver assets to a client? What are bundlers? Which ones are most popular? How do you save bandwidth and increase page load speeds? Which problems arise when maintaining a JS-heavy application? How do Webpack and others attempt to solve them?
- CSS METHODOLOGIES. What is BEM? Why discipline in naming and handling CSS classes matters so much? What other methodologies do you know?
- ACCESSIBILITY AND INTERNATIONALIZATION
- Ajax and different ways of doing XHR requests.
- Try building a front-end only single page application for a JSON back-end using Vue or React!
Stay curious! Try picking up at least one other languages! Python and Go are natural choices. Try completing CS50 from Harvard for more low-level appreciation of C and memory management.