Great, so you decided that you want to become a coder. Every craftsperson needs the tools to do his or her job well and writing software is a craft. It's time to have a look at what tools and widgets can help us get going.
Let's be honest. Software is written with text and no fancy tool is necessary to do that work. However, there are tools that can make your job a lot easier. One of those tools would be a decent text editor or an IDE (integrated development environment). Generally, you can divide programmers into 3 camps:
- Prefer the simplicity of the text editor
- Want bells and whistles of an IDE
- Spend years learning "vim" and look down at the first two groups
Given you have just started learning to code, you're not in the last group, so we're left with the IDE vs text editor question.
In my biased opinion you should:
Select a text editor if:
- You want a free tool
- You're an absolute beginner
- You don't really know which language you'll end up using
- Your computer is pretty old
Select IDE if:
- You've been doing some code before
- You know which language (except for HTML and CSS) you'll be using
- You have a decent hardware
- You want to code professionally at some point
Sure, I know that you can be a pro using a text editor, but quite honestly, good IDEs offer so many really useful features, that going with an editor is simply counterproductive.
A good IDE is simple to start with, will help you with syntax, look for errors as you type code, help you explore your framework and on top of that, gives you everything that a text editor gives you.
If you decided to go with a text editor I recommend Sublime Text
2. Operating system
Yup, this one is serious.
Not all operating systems are created equal when it comes to building with open source tools. We have 3 major competing systems:
- Mac OSX
Let's be honest here. If you're intending to use anything else than ".net" you'd be better of installing Linux on your machine. Yes, you can write Ruby on Rails apps in Windows but most tutorials and tools won't work on Windows. After hours of fruitless struggle you'll find yourself in tears.
You're left with the choice between two: Mac vs Linux. Either one will work just fine. Most tutorials will work on both. Most software will run on both.
3. Git GUI (Graphic User Interface)
As a proper developer, you'll be using Git. Git is a program that controls and keeps record of different versions of your code. You can interact with Git through a terminal application, which is very convenient, but you can also use a program to preview your "git tree"
4. Production Planning Tool
Let's assume you're starting to work on actual project. Now you need to plan your execution. Without a robust execution plan, there's a good chance you'll be working on things that are not important and you'll get easily distracted. Also, how do you track the progress and the pace?
I strongly encourage you to use a tool such as www.pivotaltracker.com. I have to confess that without Pivotal Tracker I would find it very hard to actually get things done. And I love the points - it's very motivating, even if you work on your own.
Get familiar with SCRUM and agile movement.
Dash is a program that allows you to collect and browse documentation offline. When you code, the sooner you learn how to use documentation the better. It contains the information on how to use the language, framework, gem etc. Imagine that you're writing some ruby code and you want to check what can you do with arrays. You open the documentation and search for ruby array class methods. With dash this is super simple. Just search for "ruby array". It works everywhere so you don't need internet.