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?
Nano - I like that is simple and the key commands are on the screen to follow.
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?
PyCharm. Since Python is really the first language I am learning it seemed appropriate to use a Python based IDE.
PyCharm connects directly with Github which is useful. There's also a code inspector which suggests fixes and >improvements which I think will be really helful for me personally.
Double clicking Shift searches everywhere and lets you navigate places. ⌘ Slash comments out a line. ⌘ F is for >find. fn F1 brings up Documentation. CTRL-R runs the program.
You can customize the editor through the default settings menu. You can change color schemes, fonts, code styles >(tabs and spaces), etc.