Computing's interface is text. To work effectively, you need to be fluent with this interface.
It may sound silly, but make sure you know how to type. You should be comfortable typing with perfect accuracy at 60 words per minute, at least. If you currently can't, practice until you can.
A lot of your work will be done in a text editor. You have to know how to use your editor. Any editor will work, but knowing a powerful editor well will make you faster, more comfortable, and more effective.
Sometimes you will need to use a non-graphical text editor. This means an editor that will run entirely inside a terminal window, without spawning a new window, entirely without mouse input.
Make sure that you know at least one of these well enough to do basic editing in a terminal:
- Emacs
- vim
- nano
You should know at least enough vim to be able to get out of it, because it is the default on many systems and you might find yourself in it even if you didn't mean to be.
If you intend to use a graphical editor that doesn't run in a terminal, nano might be a good choice for you because it is very simple.
Both Emacs and vim have built-in interactive tutorials that you can try.
What terminal editor will you use? How did you make your decision?
I am going wih Vim. I have a close friend who uses Vim, so i felt comfortable asking him for some help. Also, it seemed just as popular as emacs.
You will probably spend most of your time with access to a graphical interface, where you have more choices in editors and integrated development environments.
Popular editors and IDEs include:
- Emacs
- vim
- Sublime
- Atom
- Spyder
- PyCharm
If you choose Emacs or vim, you will have essentially the same editor experience across graphical and non-graphical environments, which is nice. It's also nice to be able to work without ever having to use a mouse. Emacs and vim have somewhat steep learning curves, but they give you the ability to customize your environment quite a lot to make it exactly what you want.
Sublime is probably the most popular editor for new coders. You can set it up to integrate with Python fairly well. Atom is pretty similar to Sublime but has an interesting open architecture and is developed by folks at GitHub.
Spyder and PyCharm are IDEs for Python. They try to give you a fully configured setup out of the box.
We will also use Jupyter (IPython) notebooks, but this does not remove the need for proficiency in an editor or IDE.
What graphical editor will you use? How did you make your decision? What are some interesting features of your editor? What are some useful keyboard shortcuts for your editor? How do you customize your editor?
I ended up going with macvim. I figured the more practice i get in vim, the better. Some interesting features include the array of commands you can use, like advanced methods of search and replace. Vim also allows me to not take my hands off the keyboard. This is challenging, but having macvim there to help me along the way helps. The keyboard shortcuts I have found to be useful so far are: [n]G which goes to n line c$ which deletes a line and inserts in its place ci which deletes the contents of a series of quotes (can also be used with brackets and parenthese) I customize my editor by inserting lines of code into the .vimrc file in my come directory. So far I have customized the color scheme, which was pretty exciting, and also configured the editor to recognize python file types and adapt the font coloring and indentations accordingly.