Software Developers produce code and although this code can be converted into machine code by a compiler http://en.wikipedia.org/wiki/Compiler, we don’t work directly with compiled programs but just with plain text code.
As a software developer, the text editor is where you will spend the vast majority of your time, therefore understanding and mastering one text editor is crucial to the development of your career.
It is common for people starting with coding to fall in the trap of using IDE’s (Integrated Development Environments)http://en.wikipedia.org/wiki/Integrated_development_environment early on their learning process. IDE’s can be a powerful tool, but they become obsolete very easily, can easily lock your productivity to their platform and will abstract you from important things worth understanding in your workflow.
I personally started myself using IDE’s and I regret I did. It was very easy for me to get started with an IDE, but it locked me into the programming languages that where supported by the IDE, it also prevented me from learning how to deploy and version control code properly as I would use the features in the IDE.
You’re starting your career as a software developer from scratch and as such I would recommend you to get used early on in the process to simple and extensible Text Editors that can be installed quickly on any Operating System.
Tips for choosing an editor (and other technologies)
The main considerations for choosing a text editor also apply to choosing other technologies that will accompany you during your professional development:
- Ubiquitous: (Omnipresent in religious terms) The tool is easily available and installable on most operating systems.
- Extensible: It is easy for you and others to include extra functionality on the system.
- Complete: It has the features you need, either on it’s core or via extensions.
- Community: A large community uses the editor and contributes actively to their extensions.
There are way too many text editors in the markethttp://en.wikipedia.org/wiki/List_of_text_editors, we will just review the main ones every developer should be aware of and that cover the considerations that I just exposed:
Command line only:
- vi (1976): http://en.wikipedia.org/wiki/Vi and Vim (1991)http://en.wikipedia.org/wiki/Vim_(text_editor). vim is a cult editor that is very unintuitive and hard to learn. The philosophy of vi and vim is that your hands should be as close as possible to the “home row” all the time to improve your typing performance. Which basically translates in no mouse and obscure keyword commands. Vi is available on every Unix/Linux machine by default, so very basic understanding of the tool is recommended if your career takes you towards system administration (not there yet :).
- emacs (1979): similar to vi/vim, more extensible but not as ubiquitous.
GUI (Graphic User Interface) Editors:
- Sublime Text 2: Commercial cross operating editor with a large ecosystem. Sublime is a newcomer and has taken the reigns of TextMate (MacOS Only) after TextMate failed to deliver updates and bug fixes.
During this course we will use Sublime Text. You can download Sublime text for free. The license will prevent a payment reminder to show up in the middle of your day and although it is bearable, I personally bought a license (one for all my devices) to support the development efforts.
Lets get started with sublime by:
- Downloading Sublime text http://www.sublimetext.com/
- Enable the CLI shortcut to sublimehttps://www.sublimetext.com/docs/2/osx_command_line.html (this will allow you to open files and projects from the CLI with “subl folder-name”, “subl .” or “subl file.md”)
- Watch the “Getting Started” videos on https://tutsplus.com/course/improve-workflow-in-sublime-text-2/
Markdown is not an editor, but a “standard” way of creating documentation using plan text. The idea is that plain text written as you would for an email, can be then converted into HTML, PDF and other formats by following a very simple set of conventions.
It is important to learn markdown as you will use it for writing documentation for your projects, sending tickets (like this one), writing articles…
Great software developers master the art of writing good documentation and starting early in the process with tools that make it easy (like markdown) is very important for your development. It is also a skill that you can use in other professional areas.
It is also really easy to get started with Markdown. You can use it on a daily basis to gain experience with Sublime by using it instead of your email editor or M$ Word.
Just type your text using markdown and if you need a formatted version, install the “Markdown Preview” plugin to get a nice formatted version you can copy and paste.
A nice resource for learning Markdown is https://github.com/adam-p/markdown-here/wiki/Markdown-Cheatsheet