Discussions and Articles - Last updated on Sun, Jun 21, 2020
Dig deeper into some of your burning questions.
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!
@startuml if (Are you a...) then (Coder-In-Training) if (Which best describes your goal?) then (I want to to learn something new!) :[[https://learnteachcode.org/code-coffee-compendium/references.html#python Python,]] [[https://learnteachcode.org/code-coffee-compendium/references.html#java Java,]] [[https://learnteachcode.org/code-coffee-compendium/references.html#cplusplus C++,]] [[[[https://learnteachcode.org/code-coffee-compendium/references.html#ruby Ruby]]; end else (Make something awesome!) if (Are you thinking of an app or a game?) then (I want to make games!) :[[https://learnteachcode.org/code-coffee-compendium/references.html#unity Unity]], [[https://learnteachcode.org/code-coffee-compendium/references.html#pygame PyGame,]] [[[[https://learnteachcode.org/code-coffee-compendium/references.html#love LÖVE]]; end else (I want to make an app!) if (What platform are you using?) then (Desktop) :[[https://learnteachcode.org/code-coffee-compendium/references.html#python Python,]] [[https://learnteachcode.org/code-coffee-compendium/references.html#java Java,]] [[https://learnteachcode.org/code-coffee-compendium/references.html#javascript JavaScript,]] [[https://learnteachcode.org/code-coffee-compendium/references.html#cplusplus C++,]] [[https://learnteachcode.org/code-coffee-compendium/references.html#ruby Ruby]]; end else (Mobile) :[[https://learnteachcode.org/code-coffee-compendium/references.html#swift Swift,]] [[https://learnteachcode.org/code-coffee-compendium/references.html#java Java]]; end endif endif endif else (Professional Coder) if (What are you looking for?) then (Gimme a challenge!) :[[https://learnteachcode.org/code-coffee-compendium/references.html#haskell Haskell,]] R, Caml; end else (I want to try a new framework) if (What kind of work do you do?) then (App Development) :[[https://learnteachcode.org/code-coffee-compendium/references.html#django Django,]] [[https://learnteachcode.org/code-coffee-compendium/references.html#nodejs NodeJS,]] [[https://learnteachcode.org/code-coffee-compendium/references.html#react React]]; end else (Web Development) :[[https://learnteachcode.org/code-coffee-compendium/references.html#swift Swift,]] [[[[https://learnteachcode.org/code-coffee-compendium/references.html#java Java]]; end endif endif endif @enduml
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
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
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
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.
IDEs
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.
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!
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.