Well, my friend, you've done it. You've taken this book and the exercises provided and pushed yourself to learn Ruby. You now know enough to be a little dangerous with this here language. At this point, you've made it further with Ruby than most people do with any programming language in their entire lives. That is something that you should be proud of.
You're probably thinking, "Wow, you know this whole computer programming thing isn't that bad after all!" Well, in a way, you are right. If you put in the time and effort, things that seem hard become easy. However, we wouldn't be doing our job if we didn't tell you that there is still a long journey ahead with many new adventures.
This book has given you the necessary foundation on which to build a much larger understanding of Ruby and computer programming. You can now begin to dive into "real" problems without being bogged down by the basics. The things we covered in this book are the things that must be automatic to an everyday Ruby developer. If you aren't to that point yet, don't panic. As you start to look at more complex problems, not only will you gain even more skills, but you'll also notice a much deeper understanding of the power and expressiveness of the fundamental building blocks you have been exposed to in this book.
We do want to mention the importance of a few things that, while not technical, will help you tremendously throughout your career as a developer.
First, don't underestimate the value of practice. Even as you learn more you'll want to set aside time to practice what you know and practice new skills as well. Like anything, if you step away from this for a long time, you'll have to do some work to get back to the level you're at now. Sure, you'll get there faster the second time. But you might find yourself frustrated that you're still struggling with beginner material after so much time.
Second, keep a cool head. Being a programmer requires a certain temperament. Being calm and collected in the face of a problem or confusion is a day-in-the-life of a software developer. There will always be problems. Your job is to solve them, not get upset about it. So every time you run into a problem, take a deep breath, smile, and start investigating. As time goes on you'll notice yourself developing better instincts and being able to solve specific problems with more accuracy and precision than you ever have before.
Third, it is common in the tech world to hear about new and amazing tools and programming languages on almost a daily basis. The temptation that these tools or languages will solve all of your problems and make development a euphoric experience is very strong. Ignore it. At this point in your career you need to dig deeper into one thing (Ruby?). If you jump to the hot, new thing every time something comes out, you'll never get good at anything, and in return, you'll have spent a lot of time learning a little of everything with little benefit. Nobody wants to hire someone that "kind of knows" a lot of stuff. In the end, learning one thing deeply will accelerate your learning in all other areas. Be patient. It will pay off.
And finally, don't forget how cool it is to be able to pursue such a fascinating and infinite field, where your curiosity and imagination are constantly expanded and challenged. We are lucky to live in a time and place where this is a reality. We are lucky to have such a wonderful programming language, like Ruby, to work with on a daily basis. Be grateful of this. It will make you a happier person.
So, where can you go now? What is the next step? Ruby is a great general purpose language, but it's especially popular now for web development. You might be tempted to dive right into learning a web development framework, like Ruby on Rails.
Our advice is jump into Rails only if you have previous experience as a web developer in another language. If you do not have strong web development fundamentals, there are several concepts you must first learn before diving straight into Rails.
Second, you must understand the fundamentals of HTTP and how web applications work. Without this understanding, you'll only be able to copy/paste your way through a Rails tutorial and won't be able to fully understand it.
Third, you should get familiar with relational databases and SQL. Again, mastery is not required here, but knowledge of how databases work is necessary before tackling a framework like Rails.
Not coincidentally, this is exactly what the curriculum at Launch School covers.
No matter what your next step is, whether it's with Launch School or elsewhere, we wish you well on your journey of discovery. If you continue to learn with us, prepare to work hard and learn a lot. If you'd like to move in a different direction, that's fine too. We hope you got some value out of this book and we wish you all the best. Who knows? Maybe our paths will cross in the future.
Have fun. Stay motivated. Cheers!