Developer Tools
Start here
Make sure you get the right tools installed on your computer to start developing for the web (still applicable if you aren’t going to use Rails).
Your most essential tools:
- A text-editor (some options below)
- A good web browser (some options below)
- A grasp of how to use git and Github
And take the time to read this great essay on the maker’s schedule, by Paul Graham of Y-Combinator.
Text editors
These are programs inside of which you’ll be writing into and saving code files. You will need to download one in order to write code, even if you make an account with one of the free online code editors below.
Online code editors
- repl.it: a beautiful, simple code editor that you can use online, free, to run code in a variety of languages, such as Ruby, Python, JavaScript, etc.
- Cloud9, a free online IDE (integrated development environment) that provides you with a filetree, a Linux-based shell to run code, and even an in-workspace browser to view ‘local’ file serving.
- JSFiddle, a free online tool allowing you to run HTML, CSS, and JavaScript together to see output.
Atom
Atom is a text editor built by Github (and my go-to!).
- Atom’s official documentation and resources
- Atom shortcuts
- Packages, or add-ons that you can download to make Atom even more awesome.
Sublime
Sublime is probably the most popular text editor.
- Sublime’s official documentation and resources
- Sublime shortcuts
- PackageControl for Sublime, add-ons that you can download to make Sublime even more useful.
vim
An important text editor but one that can only be navigated with keyboard shortcuts, so it has a steep learning curve. But it’s really worth it to be able to create and edit files at the speed of thought. If you’re on a Mac or Linux OS, your computer already has it installed! That said, treat yourself to a better version via MacVim (which supports non-Mac computers as well).
- vim’s official documentation
- StackOverflow answers on most-used vim shortcuts
- “Best of Vim tips”
- OpenVim tutorial
- Vim Adventures
- Graphical vim cheatsheet
- Another vim keyboard shortcuts cheatsheet
- One more vim commands cheatsheet
- Super-simple Vim cheatsheet
- “How I Learned to Love Vim”
- “Learning Vim: What I Wish I Knew” - Hacker Noon
Web browsers
The following are all browsers that support development needs, such as need to inspect HTML, CSS, and JavaScript.
Chrome
Definitely a developer’s go-to browser, more extensively used and loved than any other on this list for its standard-setting developer tools.
- Chrome dev tools
Mozilla Firefox
Did you know the guy who invented JavaScript was the CEO of Mozilla?
- Mozilla’s developer tools
Internet Explorer
Surprised to see it make this list? Don’t be–IE also has dev tools!
Virtual machines, development environments, and Docker
- Docker: difference between images and containers
- Getting started and check status commands
- Understanding the Docker ecosystem, a free book
- Using Vagrant VMs for Rails development
Support for computers and programs you’ll be using
- Developing on a Chromebook: Tutorial for getting started
- Atom text editor keyboard cheatsheet
- Linkclump, a great Chrome extension to help you open multiple links from a web page.
- Mac users: check out this amazing bunch of official Apple newsletters that allow you to listen in to conversations developers are having with building Mac products, and think about issues like security, etc. Here’s a wonderful guide to securing your Mac computer.
Agile: managing development
What is Agile? It’s a way of working in teams, permitting you to be more, well, agile. The Agile Manifesto is the basis for this concept. Agile is wildly popular among development teams, and used extremely widely, so it’s a good idea to understand what working within an Agile environment is like.
- Agile warrior
- Practices of an Agile developer
- ThoughtBot’s Playbook, an explanation of how ThoughtBot builds software via Agile. In-depth and extremely thought-provoking.
- ThoughtBot’s guides to working in teams with various technologies, hugely valuable reading.
Project organization
- Trello, organize via ‘boards’.
- Evernote, for organizing all your projects and papers.
- Asana, helping teams keep on track on projects.
Managing your time
- Pomodoro timeboxing technique: lots of Chrome extensions for that. I personally use this amazing Mac app.
- Rescue Time: get metrics on how you spend your time
- Software time estimations are laughably awful. Here’s a translation table for what estimations actually mean for a project.