This is a Leanpub book. Leanpub empowers authors and publishers with the Lean Publishing process. Lean Publishing is the act of publishing an in-progress ebook using lightweight tools and many iterations to get reader feedback, pivot until you have the right book and build traction once you do.
Introduction
I want to take this time to say thank you and congratulate you for taking the first step to creating the perfect development environment. This book contains solid techniques on how to setup your ideal development environment. Throughout this book, you will learn the ins and outs of multiple development environments, text editors (Vi, Vim, Atom, Sublime, Brackets), understand how to work with local, virtual and private clouds (VirtualBox, Vagrant, Cloud9), you will also learn how to automate the most common task using the command line. But most importantly you will have a good understanding of what to look for when you are creating your ideal development environment.
About the author
Rick H
Rick Hernandez works as a software developer with small to mid-size companies. He has been responsible for evaluating business requests to determine feasibility, identifying options, and recommend solutions for software development enhancements. He has assisted with interpreting customer requirements into conceptual design specifications, and has developed interfaces/prototypes and maintained software solutions. He also has written over 200 technical publications published at Code With Intent. Rick has a deep passion and curiosity to help others succeed.
Say Hello
My intention with this book is to get you up and running with your ideal development environment. If for whatever reason you might have a question, comment or suggestion about the book, I encourage you to take the time and write into Code With Intent.
Who this book is for?
The purpose of this book is to help you learn to create your ideal development environment. In the process of this learning you will have to explore different topics and be willing to look into different editors and not just be stuck with your 1976 text editor.
If you have ever had any of the following questions and did not know how to answer them, then this book is for you.
How can I setup my development environment for programming with JavaScript?
Whats all the buzz about Vagrant?
How can I get my entire team setup using the same development environment?
Whats the best web browser?
Why dont JavaScript developer show any love for Windows Developers?
What is the difference between Cloud Environment and a Virtual Environment?
I dont want to use Linux! Can you show me Windows?
By the end of the book you will be able to answer all of this questions.
I assure you that if you have perseverance, dedication, and creativity to finishing this book, you will be off to having an awesome development environment that all your coworkers will be jealous of.
Prerequisites before getting started
Before getting started with this book, you need to have a clear understanding of the following concepts to enable you to be successful with this book.
- Basic command line experience
If for what ever reason you are not completely comfortable with the above requirements, I have provided some resources for you to get you going before getting started with this book.
- Bash Basics
- The UNIX Operating System
Software and Hardware are constantly evolving this book uses the following operating systems as a baseline.
Software
- OSX 10.10 or higher
- Ubuntu 12.04 or higher
- Windows 7 or higher
- Modern Browser (Firefox, Chrome, Safari)
Hardware
- Minimum of 2GB of free memory
- 4GB of free hard drive space (optional)
This book will only focus on the mentioned operating systems, if you are running a earlier version of one the mentioned operating systems, this guide will need to be modified to work with that operating system. I would recommend you to just read the abstracts of every chapter and get an idea for what you need and then move on.
Code Samples
The book contains a variety of code samples and snippets that are used to illustrate a specific part of the book. None of the code builds upon each other, feel free to fork any part of the code and use it for your own setup.
All of the snippets used throughout the book are released under the MIT License.
The complete list of the snippets can be found on github.
Book Conventions
Pro Tip
Pro Tips contain information that is well established within the professional development group of programmers.
Suggestion
A suggestion is an opinionated or suggestive comment toward a specific topic.
Warning
Warnings are well established problems or common errors.
Code Examples
1
sudo apt-get update2
sudo apt-get upgrade
What to expect out of the book?
This book is used as an educational mean, to convey one main message.
Setting up the perfect Development Environment
This book is NOT here to teach you how to use this tools, some of this tools take years to master. Each of the tools that I cover, have a wealth of resources where you can learn more about them.
I will not be covering shortcuts, the command line, system administration, or macros. This book is to help you understand what tools you need to make you a more productive developer, by helping you automate some of the systems that help you create software.
Pro Tip
Remember: The key to being a GREAT programmer is being able to learn new skills.
Questions and Answers
Is this book language agnostic?No, this book was design with one specific developer in mind, a JavaScript developer. If you are using another language such as C++, Java, Go, Perl etc this book is not for you.
Will you cover IDEs, for example Netbeans, AWebStorm etc? Nope.
Does this book have a bias towards an operating system? Yes! This book does have a bias for *nix systems. Why? for me is due to my background in Computer Science and the bias from my instructors at my University, for others it could be a number of different reasons.
Will you cover how to use the command line? Nope.
Development Environments
Environment Types
The development environment that you decide to work on will dictate a large portion of your overall happiness as a programmer. Choosing the right platform and the right text editor could be one of the reasons why you choose to keep working as a programmer or decide to move on to the next great thing. The right choice will vary with everyones circumstances as it is based on your current needs and budget.