Miscellaneous: Beginner FAQ
Beginners often have common questions or misconceptions about code before they begin. This chapter is designed to put those to rest.
Q: Which programming language is the best?
A: There is no best programming language, only the best for your needs.
Programming languages come in all different types, and whether one is a good choice over another depends on you and what you're using them for. For example, if you're building high-speed servers undergoing heavy traffic, Python might not be your best choice. If you're building a small script to quickly copy filenames, C++ might not be your best choice. In general, do some research about what language is best for what you want to do, and what niches different languages fall in.
Here's a short list of some programming languages and what they're most commonly used for:
- Python: very multi-purpose, although its strongest roots lie in scripting, data science, machine learning, and AI.
- JavaScript/TypeScript: primarily web development, either web sites or servers, although since web-based technologies are found almost everywhere nowadays you may also find these in other settings. Also used for scripting.
- C/C++: primarily more low-level or integrated code, such as desktop apps, libraries, or drivers, although these can be found in a variety of places. Also used a lot for things that need to be fast, such as video games.
- Rust: fairly new, operates in a similar niche as C/C++ although its most common uses so far are in command line tools and servers.
- Go: also fairly new; multi-purpose, used for servers, command line utilities, and high-performance cloud projects.
- Java: used for a variety of things, such as servers, Android apps, games, and desktop apps. Found often in enterprise.
- Swift: the most common use of this language is overwhelmingly apps for Apple's platforms, such as the iPhone, iPad, Mac, and Apple Watch.
- C#: general purpose, commonly used for web development, Windows software, and video games using engines like Unity.
- Bash/Shell: used primarily for light scripting and automation tasks, usually never any substantially large projects or software.
Q: How do programmers assemble large code projects?
Although we'll get into this more in Chapters 2 and 3, it's worth noting that developing of larger projects often uses the same basic components as the small pieces of code you've written, just put together in new and different ways. Certain patterns and principles are often used to assemble basic building blocks like variables and functions into software that deals with data in a variety of ways. While we won't cover these principles in this book, it's worth exploring some small open-source projects to get a sense of how larger software works, especially if you're interested in a certain field such as desktop apps or game development.
If you have a question that you think should be on here, feel free to contact us (see Foreword for details)!
- Different Languages and what they are used for
- Code and their different types/purposes
- Explaining how big code projects work —> Peregrine
- Iterations