Working with React has been like…
I struggled at first with understanding how to bring everything I learned about JavaScript together with Rails to generate dynamic page content. Of course Rails allows you to render pages dynamically through embedded Ruby files, but at the cost of constant page refreshes. How does that work?
Ruby has been a joy to learn and prior to starting Rails, I had heard it described as “magic”. If anyone ever asks my opinion, then I too will describe it the same.
I have really come to enjoy working with Ruby over the past several months and learning more about widely used gems and libraries built with it. I had wondered since the CLI project how Ruby was actually used to make a website because I didn’t understand how the code I was writing could translate into some a user could see. I started to see the value of SQL and how ActiveRecord allowed me to use it in conjunction with Ruby, but again, that was all happening behind the scenes. As I got into Rack and saw how much goes into accessing a website and rendering its contents for the user, I was almost there. Enter Sinatra and it finally all clicked.
For about as long as I have had an interest in computers and learning more about them, which is the better part of the past twenty years, I have also had an interest in Magic: The Gathering, arguably the world’s oldest and most well known collectible card game. I have played Magic at casual and competitive levels for a long time and one of the best aspects of doing so is all of the events you can attend both locally and throughout the rest of the country and world for that matter.
Until today, I had been taking a break from working on assignments due in part to the holidays, but also because I was struggling with using the Nokogiri gem correctly to extract data from the web page provided for the project. I am happy that I managed to start the new year off well by picking back up where I left off and managing to pass the first test with the scraping project wherein I was able to scrape and output the correct information from the index page of students. I am beginning to grasp the formatting of the code needed to successfully pull objects from a page and iterate through the raw data to capture relevant information. While I still need to practice and work toward passing the next several tests, I am becoming more confident. I am excited because this is giving me a vision for what I can achieve with my own project. I am hopeful that I can use Nokogiri to extract data from a government website for use in a pet project I have that has been useful in my current job, but could be better.
I have been working to finish the Tic Tac Toe program and transition to building the scraping tool to wrap up the section on Object Oriented Ruby. I have the Tic Tac Toe program passing all the tests, but I am trying to improve the computer’s ability to play the game to a level beyond outputting random integers to select available spaces on the game board. I guess colloquially one would refer to the computer player as a form of artificial intelligence. However, I have been trying to refrain from thinking about or using that term because it seems to have become a meme for lack of a better word to describe anything with a decision tree as AI, which, to me at least, has always seemed to carry a greater weight in terms of its significance.
I have been continuing to work on developing my knowledge and understanding of Ruby, particularly by trying to comprehend relationships between classes and how the methods within those classes interact with the class as a whole as well as the instances of objects created from them. Understanding how to use methods from one class on an instance generated by another class proved difficult for me at first, but some of the real world examples like a stripped down version of Kickstarter and a banking system helped. The banking system in particular was interesting because I had the opportunity to see how to write methods which checked the validity of accounts to determine whether a pending transaction could process. Because one of the main reasons I wanted to learn how to program is my desire to understand and build the types of services I use every day, I appreciate seeing how one would conceptualize such systems, even starting with simplified implementations. I look forward to seeing the rest of the pieces of the web development process, including how to store and retrieve data as with SQL in the next major section following object-oriented Ruby.
I have been growing more comfortable with using Ruby as I have continued working through the lessons on Object Orientation. While difficult, I enjoy the challenge of using classes to solve problems I encountered while working through the Procedural lessons. I feel like the concepts can be hard to grasp because they seem so abstract at first, but I also feel like I am increasing my general programming and problem-solving abilities enough where the labs do not necessarily seem daunting.
The past few weeks I have been working through lessons on Ruby, including the difference between procedural and object-oriented approaches. So far, my web development experience includes working primarily with JavaScript, so the similarities between declaring variables and writing functions/methods helped with becoming acclimated to the language. What I have appreciated about working with Ruby is the idea of using tests to help inform the correct way to write code. I am sure other languages have ways of writing and using tests to determine whether code is working as intended, but I like what I see so far with Ruby.
Hello, all. I want to make a habit of writing a brief summary of my work on a regular basis to try to keep track of what I have learned and what I am doing.