|
1 | 1 | ## Choosing a Language
|
2 | 2 |
|
3 |
| -I have a perfectly healthy habit of personifying things. I figure a good way to properly distinguish each language from each other is to list the common ones here with a small description about their typical uses. |
| 3 | +I'm not going to beat around the bush here. Every single time I try something new, I fail at it. Programming was no exception. By the time I started to learn programming, I knew how to use a terminal decently well, but that was it. I remember googling, "What is the best programming language." The response was (of course) mixed. Many experts said Python was the way to go when learning programming because it was easy to use and used professionally in many areas of computer science and scientific research. Others said to go for Java, which was the most common language to learn for computer science students and thus had a large and rich archive of text to learn from. Still others said to go for C++ or FORTRAN. I was inundated with new information, and I felt like I was drowning in it. |
4 | 4 |
|
5 |
| -**These will be updated. Feel free to let me know your favorite language and why!** |
| 5 | +As a fledgling programmer, the problem for me was deciding which language was right for the projects I wanted to do. In my head, I still wanted to be an author, so I wanted to make something creative, and because my entire group of friends was into gaming at the time, I wanted a language that I could make games with. This radically changed my google search to "What language is best for making games?" It was still a bad search. Apparently, almost any language can be used to make games. Who would have guessed? |
6 | 6 |
|
7 |
| -#### C/C++ |
| 7 | +So there I was, struggling to figure out what to do and where to go. I decided to do what any teenage boy would do in that situation: go to the bookstore and see what books were actually available for purchase at the time. Now, I think the first book I picked up really describes the desperate pit I had dug for myself. It was a book on how to make websites in HTML. Yup. I will refrain from commenting on that book for now because a much more important decision was ahead of me. There before me was an aisle with all the key players I had heard about online: C, C++, C#, Java, Python, Ruby, and so on. They were there just waiting to be chosen. I knew my time had come. I needed to make a decision then and there! |
8 | 8 |
|
9 |
| -#### Python |
| 9 | +At the time, I knew the choice didn't really matter. I knew that no matter which language I learned first, most ideas would transfer from language to language. At the same time, the thought of making an uninformed decision terrified me, so I sat there in the bookstore for hours, just staring and thinking to myself. At some point, a store employee walked by and I asked if he knew anything about programming. He said he did, so I asked the only question that popped into my head at the time, "What's the difference between C, C++, and C#?" |
10 | 10 |
|
11 |
| -#### Julia |
| 11 | +The employee said that C# was the newest of the three languages, but that all three were used regularly and if I wanted to learn programming, any would do. Like the experts online, he then suggested python because it was easy for beginners and I was clearly a novice. I thanked him for his time and began thumbing through the book on C#. I remember thinking, *C must be the original language. C+ must be the next generation, followed by C++, then C+++, and then they stylistically changed C++++ to C# by placing the 4 plusses in a pound sign. I guess this means that C will be a little too outdated, but C# might be a little too new. I'll go with C++.* |
12 | 12 |
|
13 |
| -#### Fortran |
| 13 | +I was proud of my deductive reasoning, but before continuing, I would like to point out that this logic was completely flawed. There was never a C+ or a C+++ (so far as I'm aware). The fact is that I didn't know any better. My hope is that many people had similar experiences when they started programming, otherwise I am going to be really embarrassed when people start reading this book. |
14 | 14 |
|
15 |
| -#### CUDA |
| 15 | +Suffice it to say that I learned a good deal of C++, which was a good choice in the end. It is one of the languages I use most frequently nowadays (alongside Python, CUDA, Julia, and FORTRAN), and is an essential tool in my belt. That said, I primarily do computational physics. Everyone will need a different set of tools to attack different problems. |
16 | 16 |
|
17 |
| -#### Java |
| 17 | +So. Let's address the issue of choosing a language. |
18 | 18 |
|
19 |
| -#### Haskell |
| 19 | +As mentioned, this text does everything it can to be *language agnostic,* so the language will not matter too much when trying to learn the algorithms, themselves; however, it will matter when you try to implement them on your own. It would also be nice to formally distinguish what makes certain languages worth studying and using. |
20 | 20 |
|
| 21 | +For now, let's briefly list all the languages we will eventually cover in the archive: |
| 22 | + |
| 23 | +### Compiled |
| 24 | +1. FORTRAN |
| 25 | +2. C / C++ |
| 26 | +3. CUDA |
| 27 | +4. Java |
| 28 | + |
| 29 | +### Interpreted |
| 30 | +1. Python |
| 31 | +2. Julia (half interpreted, to be discussed) |
| 32 | + |
| 33 | +We will obviously add more languages with time. This is simply a quick list. Please let me know which languages you want to cover and I'll add them here! |
0 commit comments