I first learnt to code using Ruby on Rails and got my application working with a few scaffolding commands here and there, which was great as the routes were produced for me and everything worked. However, I struggled to build more complex applications because I didn't understand how to ‘navigate’ effectively through my application - I didn’t GET / routes. Routes are also important in other frameworks, such as AngularJS, which all have similar concepts.
This article does a far better job explaining that I ever could. Worth understanding.
Data Structures and Types.
I quickly grasped the relational database, but didn’t really get too involved in floats, arrays, and hashes. When it time came to manipulate data or build more sophisticated front-ends, I was lost. In particular, I didn’t understand the ‘key value pair’ (hashes in Ruby) concept as the framework did most of the thinking.
Using an API requires a pretty good understanding of data structures and I found the best way to understand is to learn about JSON. Nice explanation here.
Object Orientated Programming (OOP)
I had heard of OOP before learning to code, but really didn’t know what it was or why I should care. OOP is a pretty common way of thinking and used in Rails and most other applications. Understanding OOP made it easier to understand ‘what is going on’ with Rails and ensured that I could grasp how information and logic moved through my application.
The wikipedia definition made sense to me
An object has state (data) and behaviour (code)
Initially I thought... “isn’t my data in a database (SQL) and my code in Rails (Ruby), so aren’t they separate”. Well yes, but once the Ruby code queries the database, the data is include in the object.
I heard a great quote the other week,
Learning to use a pencil does not mean you can write a book, and learning to code does not mean you can build web-applications
Building software is not only coding, but also a way of thinking and broader understanding of programming.