On 5 March HootSuite HR led the charge on #HootHire, an open-house recruitment event. I met many bright devs and designers interested in working for HootSuite. A number of candidates were either still in school or beginning their career so we chatted about “where to start?” I asked the team to share their thoughts and collected them here for posterity (in the order I received them).
- Go to a meet up and listen and talk to other developers
- Think about something you’ve programmed (1 file/class) that someone may find interesting and put your solution up on github.
- Read an algorithms book, languages are quick to learn, concepts take work.
- In a technical interview on optimization, the answer is almost always a hashmap, if it isn’t, hopefully you followed #3
- Everyone works with one system, try doing something that required two or more to talk to each other and you’re a step above the competition.
David Chan – Developer @chandavid gh: davidchan
Start your own project. Find something you like and start coding. Small, quick projects.
For a new web-dev, Addy Osmani’s free online books are really informative.
- Developing Backbone.js Applications
Chris Noble – Software Engineer @noblezilla gh: noblezilla
Simple and creative. Think of a small, neat idea and implement it. i.e. Your ultimate TODO list. This allows you to be able to launch something.
Don’t start playing any games with names matching /^sim|craft$/
Learn a language that is very different to the ones you already know, and write something small but non-trivial in it. (E.g. if you studied Java or C++, write something in Haskell. If your background is more functional try Go, etc.) And definitely put it up on GitHub or Bitbucket.
Bill Monkman – Lead Developer @bmonkman
- Do what you’re passionate about.
- Pick a project unlike anything you’ve tried before and do it, start to finish.
- Follow all the trails of crumbs to their ends, there are valuable lessons to be learned from every problem along the way.
- If something works or doesn’t work, don’t just accept it, make sure you understand why.
Master the tools you use every day. It sounds obvious but it’s not. If you are a front-end developer, you should definitely dig into browser devtools and have the Chrome Developer Tools/ Firebug command line documentation in your bookmarks.
Chris Maxwell – Infrastructure/Operations @WrathOfChris
- Build a virtual server (Vagrant!) and create something with it. It’s a huge win for starting to understand full system, networking, packages, etc.
- One of my favourite questions is: “What types of servers do you run at home?” Anything other than a blank look or “I don’t” gets bonus points for trying to learn hands-on.
We won’t talk about all the crazy types of servers and code I’ve had in my basement over the years.
Toby Sullivan – Developer @tobyjsullivan gh: tobyjsullivan
How to learn way more than you expected in a weekend and end up with something to show for it:
- Choose a web app project, however simple, and figure out how to build it in 24 hours.
- Build it.
- Figure out how to host it on AWS (should be [almost] free under Free Tier)
- Integrate some third-party element like Stripe (should also be free)
- Figure out how to share it all on Github without exposing fancy secret keys and passwords.
Bryan Stern – Android Developer @bryanstern
I wish I had taken more mathematics and statistics when I was in school. I didn’t particularly enjoy those courses, but I’ve always noticed my coworkers who majored in them. They always have awesome ideas on how to improve things, and pick up new ideas incredibly quickly.
Simon Stanlake – CTO @sedsimon
+1 on build something start to finish and ship it.
Eric Puchmayr – Front-End Developer @ltkilroy
Try to write code that you will be able to read in 3 months-1 year… If you solve a problem in a novel way, maybe you can use a similar approach in the future and improve upon it.
Geordie Henderson – Director, APIs & Integrations @geordie_h
After completing a project start to finish, actively communicate it, whether at a meet-up, via blog post or even informally to peers. Ideally, communicate in such a way that the project can be easily presented to prospective employers.
Alongside the employment prospect benefit, writing or presenting something hardens knowledge and has a way of surfacing where there is room for improvement in v-next.
Steve Mynett – UX Designer @SteveMynett gh: stevemynett
Understand basic principles of UX/UI design. If you don’t understand grids, kerning and leading, it won’t be reflected in implementation. The less tasks have to be handed off, the quicker and more successful resolution will be.
Noel Pullen – Director of Web @noelpullen
- Practice, practice, practice articulating complex concepts in terms your Mom can understand
- Focus on high leverage activities: small changes that have a big impact
- Learn to be selectively lazy though automation; machines are good at repetitive tasks
- Nobody has perfect information so don’t shy away from taking calculated risks
Me – Web Developer @fggosselin gh: evidens
- Create a GitHub/Bitbucket account and start forking!
- jQuery is not enough. If you’re making a web-app, learn a template language (ex. Underscore Templates) and a framework (ex. Backbone). Good structure is a favour to your future self (and team).
- If design isn’t your thing, customise Bootstrap (you can try Bootswatch) and get hacking on product. Aesthetics matter!
- Use dependency management tools (Composer, require.js, etc.). It’s the future, now.
- Find your passion and learn hard.
Learn the adjacent crafts to your own. If you’re a Front-End dev, learn about User Experience (UX), typography, etc. For Back-End development, learn more about your database than you think you need to know (i.e. indexes impact performance; NoSQL isn’t a panacea).
Always ask yourself why you’re using a given tool/solution. Just because something is popular, doesn’t mean it can solve your problem.
We are always seeking people with talent, experience and passion who share our vision and work-hard-play-hard culture. Our code moves quickly through triage, planning, execution, testing and production. It’s important we find people who are ready to work in that environment. We are quite rigorous in our hiring process and must respectfully decline numerous applications. Keep practicing your passion and honing your craft and re-apply when you are ready for the challenge. And fun.