The thing I love about programming is that the fundamentals are always the same and when you understand those picking up a new language becomes just a day long commitment. For me these fundamentals come down to knowing the syntax for variables, functions, control flow, data structures, and OOP of a language. That then begs the question; if all languages are more or less the same, why learn so many languages to begin with? Over the course of my undergraduate career I’ve gone from knowing very little programming to being able to use nearly a dozen programming languages relatively well. The reason for this being that I see languages as tools; given the right tool a job can be incredibly easy, but if you don’t have that tool the job will be incredibly difficult. I use MATLAB for intensive computations, but Mathematica to make pretty visualizations. I use C to work with low level hardware but C++ to write high level software constructs. I use Python and it’s interpreter to make quick little programs. I can go on about the languages I know and how I use them, but I want to focus on what I don’t know; specifically, the tools I don’t have and that’s a firm understanding of the tools in web development.
A few days ago I finally found some time to get to know the syntax and semantics of PHP/MySQL. I discovered the website CodeAcademy which was incredibly helpful in quickly learning the syntax of object oriented PHP. What I liked most about it was the presentation of an IDE-like environment with a pseudo PHP interpreter that rendered pages as I changed the code. In a few hours I was able to work through those tutorials. Similarly I found a Youtube series to learn all about MySQL that I’m still going through. For a more technical reference I also picked up the 946 page book “PHP and MySQL Web Development” by Welling and Thomson which I hope to work through in my free time. It really goes in depth about the relationship between the two tools as well as all the web-based applications for the two. When I have a firm understanding I will move onto my first project to incorporate it all.