I am now within a couple days of having survived as a Junior Developer at Metal Toad for 10 whole months. To celebrate, I considered starting my first blog post with a well worn cliché about the passing of time and the having of fun. Fortunately I hold my literary career to a much higher standard. However in all honesty, if I had stooped to such a pathetic low, it would have been a completely accurate description of my time here. It has been an incredibly fun experience working at Metal Toad and I can't believe I've been here for so long. Better yet, I've stuffed my brain so full of new information that a less talented writer might exclaim that my head is about to burst!
That said, it's hard writing blog posts as a Junior. While I've learned a lot in these 10 months, I can't confidently say that I can explain any one of these chunks of knowledge better than they have already been explained elsewhere on the internet. So for now, I won't try. Instead I'd like this post to be interpreted as an inspiring message to all those who were in the same position I was in 10 months ago. It should definitely not be interpreted as a thinly veiled attempt to pass off a bulleted list as a blog post. This is a list of all the things I had no experience with before I started working at Metal Toad. Many of these items I now interact with on a daily basis and I have a hard time remembering how I once lived without them. Others are still mostly shrouded in mystery but I've made small discoveries about their inner workings. They are in no particular order. I must warn you that after reading all of these things that I didn't know, you might ask me how I was hired in the first place. To which I would reply: “Ssshh...”
Knowledge:
- Sublime Text
- Terminal and terminal commands
- Zshell
- Development with local, dev, staging and production environments
- Editing my local hosts file to allow local development
- Deploying code to a dev, staging or production environment using Capistrano
- Anything to do with Git, including commits, branches, repositories and cloning a repository
- Github
- Dropping, dumping and importing MySQL databases
- MySQL database queries and viewing tables and their contents
- Drush
- Features (The Drupal module)
- SMACSS
- OOSCSS (Object Oriented Sass) and using Sass extends with silent selectors
- Bootstrap
- Writing JS and jQuery in a less repetitive way
- PHP (I had no experience with PHP aside from rearranging bits of it in an existing Drupal template file)
- Using the Drupal Devel module's dpm() function to print PHP variables, objects, arrays etc.
- Drupal module development, including hook functions and install/update scripts to make database changes
- Building a custom Drupal module
- Project Managers
- BeHat automated tests
- QA (For the first week I thought we had a Questions and Answers guy) … (Turns out it's actually Quality Assurance)
- Using Virtual Box to test in terribly outdated versions of IE
- Using Xcode Device Simulator to test in different iPhone and iPad versions
- Installing and uninstalling Ruby gems
- Changing Ruby versions
- Resolving all sorts of local environment errors involving Ruby, MySQL, Drush and who knows what
- Agile development, including Sprints and Scrums
- Retrospectives after a project or Sprint has ended
- Using dual monitors
- Working on a team of more than 3 people
- Working in a company of more than 8 people (Metal Toad is currently in the upper 30s... I think... This week)
- Foosball bank shots
- Json files
- Using Angular JS to print values from a Json file
- Actually using calendar apps
- Checking my email
- Truly appreciating coffee
- Getting to work on time (most of the time)
- Writing a blog post
I'm sure I've forgotten something. The point is, you can learn a lot in 10 months. Especially when you're surrounded by extremely smart colleagues who actually want to share their wisdom. I know that it is rare to find a company that is as supportive of their Junior Developers as Metal Toad, but for the sake of humanity I have to believe that there are others out there. If I could impart some advice to fellow Juniors it would be this: First of all, never pretend to know something that you don't know. Secondly, if you really want to be a part of some company, it can't hurt to get in touch with them (regardless of whether or not they have a job posting) and show them what you can do and what kind of person you are. At worst it could lead no where, but at best you could spend the next 10 months filling your brain with a bulleted list of awesome knowledge. … Also don't wait so long to write your first blog post. There's no time like the present.