Return to the Homepage


Discussions and Articles

Picking Up a Language or Framework

Whether you’re a brand new coder or a veteran, picking up a new tool can seem overwhelming. There are dozens of programming languages and coding frameworks out there for you to choose from; all of them have similarities, as well as differences that make them unique. Programmers often select just one programming language or framework to help them meet their goals. If you’re reading this, it’s likely that you’ve got some goals of your own! Use the following flow-chart diagram to help you pick the right tool for your needs. When you’ve reached a terminal in the diagram (i.e. the end of the path), click on the programming language to learn more about it.

Note: This diagram does not offer an exhaustive list of frameworks and languages!


Choosing a Text Editor or IDE

Choosing the right editor for the job often comes down to personal preference, but can in many cases be absolutely necessary for the type of project you want to create. Let’s discuss two types of code editors: plain text editors and IDEs (Integrated Development Environments). A plain text editor is, simply put, a program that is used to read and write text to a file on your computer. An IDE, on the other hand, typically features a plain text editor along with a number of plug-ins and modules to assist coders as they develop their projects. Today, there are dozens text editors and IDEs which are popularly used in the tech industry. We’ll be looking at a few of the most common.

Plain Text Editors


Figure 1. Notepad++

Notepad (pronounced Notepad Plus-Plus) is one of the most popular plain text editors, used by students and professionals alike. Released as free software, Notepad features syntax highlighting for nearly 80 programming languages. Notepad++ also promotes itself as "green" software, as it has be optimized to reduce electricity use, and thus reduces CO2 levels in the environment.

Emacs or Vim

? Dired buffers
Figure 2. Emacs

Power users might be interested in the text editors Emacs or Vim. Emacs is a text editor hailed for its extensibility and customization features. Originally released in 1976, Emacs has an active open source developer community who consistently updates the program, keeping it relevant for years to come. Vim features an extensible text based interface and remains a standard editor on Unix based operating systems.

Visual Studio Code

? content%2Fuploads%2Fsites%2F12%2F2019%2F06%2FJune19 PlotViewer 1024x565
Figure 3. Visual Studio Code

Visual Studio Code (often abbreviated as VS Code) is one of the rising stars in the software development world. VS Code provides programmers the best of both worlds; while it is a true plain text editor, it can be customized with community developed extensions to function very similar to an IDE. The codebase for VS Code is managed by a community of developers who are working every day to make VS Code the best that it can be.



idea overview 5 1@2x
Figure 4. IntelliJ

IntelliJ is a Java IDE created by JetBrains. IntelliJ comes in two flavors: a proprietary and a community edition. Each edition comes with its own set of features, with the community edition being a bit more limited. IntelliJ is a common IDE used by college computer science students learning Java. IntelliJ can be extended to over a dozen additional programming languages using plug-ins.


Figure 5. PyCharm

PyCharm is another IDE created by JetBrains, focused on projects written in the Python programming language. Marketed as an IDE for professional Python developers, the software comes with the ability to quickly set up and maintain Python virtual environments. PyCharm also makes managing multiple versions of Python on a system a piece of cake!


shot5 min
Figure 6. Eclipse

Eclipse is one of the more general purpose IDEs available to developers. Eclipse was designed to make developing desktop and web applications fast and easy. Typically developers who use Eclipse code their projects in PHP or Java. Eclipse is open source software and is maintained by a dedicated community of developers.

Software Engineering