Tips and Tricks for Surviving and Thriving in Dev Bootcamp Phases 0–3
This is the second piece in a series on coding bootcamps and is a collection of tips, tricks, and hacks to survive and thrive at Dev Bootcamp (DBC). The first piece in the series is about the application process, called “Is Coding Bootcamp Right For Me?”
This post was inspired by Teresa who published an excellent list for new DBC Phase 1'ers. During the 5-months that I spent at DBC, I keep a list of all the things I wish someone had told me about before starting. Now, I’ll share it with you all.
Note: I attended DBC during the spring/summer of 2015, so the curriculum may have changed since I graduated. Hope it’s still useful to some of you!
The Big Themes from DBC
- Sleep is critical for learning. Bob Stickgold from Harvard has a famous TED Talk on why you’ll learn more if you get a good nights rest. If you think one more coding challenge will help you — it won’t. Sleep will.
- Embrace the uncertainty. If you’re not sure what’s happening, ask the question. For sure, someone else is wondering the same thing.
- Get comfortable with being uncomfortable. Most software developers ultimately build software that’s beyond their initial capabilities when they start. You will, too. Things break, you’ll learn how to fix it. The end product will be even greater than you imagined.
- Get messy. Sometimes a verbal answer won’t be enough and you’ll have to learn by doing, try it out in code, let it break, and then figure out another way to fix it. Sometimes it’s helpful to push through and try one more attempt when you’re stuck — and sometimes it’s important to walk away, get food, and let your brain reset.
- Treat DBC like real life — not a stepping stone to the next thing. Life is too short to always be living for the future. Getting better at coding is empowering — hope it’s fun for you, too.
Setting up your environment [tips beyond what you learn in DBC docs]
- Download the Spectacle App. This app helps your re-size windows with ease — and has great keyboard shortcuts. You’ll be grateful for it when you want to have your browser, text-editor, and terminal all open at the same time in a neat format.
- Use f.lux. This app changes the colors on your computer screen to match the time of day. At night, the computer looks warmer, and the app blocks blue light, which inhibits your melatonin production and disrupts your sleep. Your sleep will thank you when you use this app.
- Check out iTerm2 — a Mac replacement for terminal that has split panes, autocomplete, search, mouseless copy, and a whole bunch of other nifty features. Check out the shortcuts. And I love this pro-tip.
- Sublime Text Hacks. I won’t wade into Text Editor Wars, but for those of you using Sublime Text, here’s some clutch set-up features: (1) Save on loss of focus. (2) Download Emmet.io for Sublime to manage your HTML&CSS workflow. (3) Word. wrap. true. (4). Turns out Sublime has a built-in spell checker! Sublime > Preferences > ‘Settings — User’. Add the following line: “spell_check”: true
Phase 0
- Start practicing the shortcutFoo keyboard shortcuts for Sublime. It doesn’t take a lot of time to get good at them, and you’ll save (literally) hours by the end of DBC if you start early.
- Oh, git. A glorious way to manage version control. Here’s Git in 600 words. How to fix the 10 most common problems. A Git cheat sheet.
- Working with CSS convinced me that I am a back-end engineer. But, you must learn master the basics for Phase 0. Tim Cannady is a CSS guru, and found a few good pieces on CSS positioning. If you still struggle with this like me, please also enjoy this cat meme of centering something in CSS.
- Anki (Flash)cards. Using the Janki Method will shorten the time it takes you to master coding skills. Perhaps find a few friends in Phase 0 to build out a set of cards with you. Or share your Anki decks.
- Play with Exercism.io, which supports over a dozen programming languages including Ruby and JS. The system lets you fetch and submit challenges. Every challenge, once submitted, reveals hundreds of solutions and random participants review. Exercism provides countless small wins. The exercises are achievable mini-quests for newbies and experienced developers.
- And at risk of stating the obvious, Stack Overflow is perhaps the greatest site on the interwebs.
Phase 1
- Learn how to use Rbenv to switch your Ruby versions (temporarily, per project, or globally)
- Save Rubular, a go-to Ruby regular expression editor, in your browser favorites
- The DevBootcamp talks are excellent. They are event better at 1.5x or 2x. Download this Chrome extension to speed up the videos.
Phase 2
- Front End Masters videos — watch at 2x speed, get as much exposure as possible! All DBC students have 1 year free access. Ask a phase lead if you haven’t gotten a code.
- Welcome to Javascript! Here’s a nifty Ruby vs. Javascript syntax cheat-sheet. MDN published an excellent “re-introduction to JavaScript” (JS tutorial)
- Common methods for HTTP/1.1 (w3.org) when working in Sinatra
- Write great tests. Your future self will thank you. This RSpec powerpoint has excellent tips on formatting and structure. Also, check out this Carybara/Rspec/Selenium quick tutorial.
- Don’t accidentally drop your database. :) Check out these rake tasks.
- ScriptSrc, the most current library script tags just a mouse click away
- Look up “man kill” in terminal and it will show that -9 is a non-catchable, non-ignorable kill. This will be very helpful when you accidentally close terminal window while shotgun is running and it won’t start again. You’ll need to kill the shotgun process that is happening in the background. To do that, type in this:
ps aux | grep shotgun | grep -v grep | awk ‘{print $2}’ | xargs kill -9
- You’ll want to add the code above as a Bash alias. Mine is called killshotgun. Bash aliases are awesome. Ask your peers what they have. killrails will be helpful for Phase 3. :)
- Speaking of dot files, check out Super Topher’s and Nathaniel Landau’s bash profiles.
- AJAX. For everybody who’s ajaxing… I found out about the “closest” selector after calling .parent().parent().parent() way too many times. You can call li.closest(‘#id’) and it will look up the chain and find the nearest ‘#id’ in relation to what you called it on.
- Create moving webpages with Spritely.net. No flash? No problem. It’s pure HTML & jQuery and you can sprite up your site with dynamic animations.
Phase 3
- Wahoo! You’re going to be working with teams. You’ll want to all agree on a Git workflow. Here’s one we developed:
- Pick a few technologies that you’ll likely use in the working-world after school for your project. I focused on React.js — which I ended up using while I was working at Instacart. I liked this React.js introduction for people who know just enough jQuery to get by
- If you want to build anything with maps, check out Mapbox. It’s like Google Maps but open source and has excellent documentation
- MashApe has a huge API marketplace that you can browse for project inspiration
A few favorite blog posts from bootcamp
- Why Rails and Not Sinatra or Node.js?
- What is a client-side app and why should I care?
- How to add a snooze button to gmail no extensions required
- The Hacker Crackdown: Law and Disorder on the Electronic Frontier (Bruce Sterling, 1992)
Life after bootcamp
- Be a sponge, and never stop learning. The world is moving too quickly for you to stay still. :)
- Create a Twitter list of your favorite developers to stay on top of what’s happening in the field. Here’s mine.
- Follow a few favorite blogs. Coding Horror is a great place to start.
And just for fun… discoveries during bootcamp
- Add HTTP Status Cats to your site
- Play with a tearable cloth
- Wat: A lightning talk by Gary Bernhardt from CodeMash 2012
- Watch Star Wars Episode IV in ASCII via Terminal. Paste this in terminal:
telnet towel.blinkenlights.nl
Have a tip you’d like to add? Create a pull request on our Tips and Tricks repo on GitHub.
Enjoy the ride — DBC is a wild and special time. Agree? Tap the ❤ below so more people can see this.