C++ was invented by Bjarne Stroustrup in the early 1980s as a general-purpose programming language. It is a similar language to C, which was invented by Dennis Ritchie in the early 1970s, but it is safer and includes modern programming techniques (like object-oriented programming).

The purpose of C++ is to precisely determine a sequence of operations that a computer can perform to accomplish an objective. Most of these involve manipulating text and numbers, but anything a computer can do physically can be programmed in C++.

We don’t think about this often, but computers have no intelligence – they have to be given instruction on how to perform a task. These instructions are defined by the programming language used. Once they are programmed, they can repeat the instructions very quickly as many times as the operator wishes.

Which computers have C++?

The better question is: “which computers don’t have C++?” The language is a widespread, almost universal tool and can be found on most computers, big and small alike. There are compilers for this language that are available to almost every type of operating system.

Use of C++

C++ is popular in software engineering, communications, and gaming, as well as other industries like finances, health care, and defense. The language is widely used across programming development and has been an influence on the creation of other programming languages like Java, C#, and PHP.

Learning C++

There are many places you can go to study C++. First, you’ll need a C++ compiler. There are a variety of these available, and many of them are free and include an IDE to make it easier for you to program, debug, and edit your applications.

Where does C++ stand in comparison to other programming languages?

While some code languages are written for a specific purpose, C++ is a great general-purpose language. It can work well for most programming tasks, but not for all. Other languages like Delphi, C#, and Visual Basic may work better in those situations.

Knowing how to use C++ is a foundational skill in learning how to program and code. Many jobs in a selection of fields require or prefer candidates with this skill, as there’s an immense amount of existing code that needs maintenance, updating, and (at times) rewriting. C++ also lends itself to the arts in its contributions to video game development. Needless to say, if you’re considering a job in our modern technological industry, knowing C++ will give you a leg up in your job search.

When the development of coding first started taking off in the 20th century, women were at the forefront of its progress. According to an article in Smithsonian Magazine, women were historically offered coding jobs because these positions were seen as easy “women’s work,” similar to secretarial and administrative duties, while men were more focused on the development of hardware. Here are a few women who helped spearhead the development of this all-important skill:

Ada Lovelace (1815-1852)

Ada’s place in coding takes place earlier than the 20th century, but her work is foundational to this field. Growing up, Ada was always interested in the inventions coming about during the Industrial Revolution. At age seventeen, Ada’s mentor (Charles Babbage) developed a machine called the “Analytical Engine.”

At one point, she translated an article that an Italian mathematician wrote about the machine. Babbage was impressed and asked her to expand on the article. In her work, she wrote on the potential uses of the Analytical Engine and wrote multiple computer programs.

Lois Haibt (1934-)

When Haibt began working for IBM, they were working on a computer language that would change the field completely. Haibt was a great problem-solver and had shown exceptional skills in math and science during her collegiate studies. The project she was hired for became known as FORTRAN and she eventually was assigned to build the flow analysis at the foundation of the FORTRAN computer. The language became known as a vital development in the field of computer coding and programming.

Margaret Hamilton (1936-)

Hamilton was working as a programmer at MIT during the 1960s. She is quoted as saying: “The very first languages I programmed were in hexadecimal and binary. There was no school to attend or field to learn what today is known as ‘software engineering’ or ‘systems engineering.’ When answers could not be found, we had to invent them.”

When NASA looked to MIT workers to help engineer the Apollo, Margaret’s duties involved developing onboard flight software. Her method involved punching holes in stacks of punch cards and having them processed by a large computer, simulating the Apollo. After a human error, Hamilton helped save the Apollo 8 flight and was awarded the NASA’s Exceptional Space Act Award.
Over the years, it has been made clear that computer coding and programming is much more than mundane and tedious work. It’s a skill that is vital to the technological development of our world, and women have played no small part in it. Apart from their scientific success, they also paved the way for the many women who do great work in this field today.

Do you have a big test coming up? It’s normal to feel nervous. After all, if test taking were a breeze, they wouldn’t call it a “test.” However, there are ways to increase your confidence… and your chances of scoring a good grade. The best part is that these ideas aren’t difficult to implement at all. Embrace the challenge ahead of you and seek to ace the next exam by following these 6 tips.


1.       Take short breaks regularly. Don’t overload your brain with too much information – cramming is not an effective technique if you want to ace a test. The secret to a successful test? Learn the information – and truly know the material. The only way to do so is to allow yourself time to process properly, which means you must account for regular breaks in between studying. Focus for 30 minutes, take a 10 minute break, and then repeat this pattern.

2.       That being said, don’t take too many unnecessary breaks. The mistake many make when giving themselves time for breaks is that it’s tempting to schedule breaks TOO often. Taking a break shouldn’t be an excuse to get away from the material, but rather to let it soak in and give yourself a moment to reflect. Breaks should be calm and connected to the study session – so, no video games and TV shows.

3.       Eat and hydrate. By now, you’re probably very familiar with the technical study tips for memorization (creating acronyms for terms, for example); however, this is only one piece of the puzzle. The biggest piece is to take care of yourself – eat a snack, drink water. Keep your mind in tip-top shape so you can feel good enough to learn and understand the material.


1.       If you don’t know an answer to a question, skip it and come back to it. This advice is tried and true; however, there is a very important exception to keep in mind. If you’re just skipping a question because you think you don’t know it, but haven’t taken the appropriate amount of to work the problem, you’re simply breaking your focus on a question you may have been able to solve. So, only skip a problem if you really don’t know it, rather than trying to find all of the easy questions first.

2.       Read every question and (if applicable) every possible solution in its entirety. This seems obvious, but – in the moment – it’s a tip that many neglect. Knowing what you’re getting into BEFORE you start attempting to solve the problem will help ensure you don’t have to redo a question after you thought you figured it out correctly.

3.       Implement self-care strategies to ease anxiety. Taking a test is a challenge – it’s meant to assess how much you have learned and retained. Along with these difficult questions comes a heaping amount of anxiety, even for the most confident test taker. Therefore, successful test taking comes down to the ability to calm yourself enough to remember what you already know. Find what works for you. Some examples include taking deep breaths, relaxing all muscles, rolling your shoulders and thinking positively.

The next time you have an exam on the horizon, don’t fret. Instead, take action. Study effectively, take care of yourself and keep calm through the process. With these tips as your guide, you’ll be well on your way to claiming an “A” on the test.

We’ve discussed the endless possibilities that arise from learning to code, and how fun it is to learn.  You’ve probably seen the power of coding every day on the internet, in the video games you play, and in the technology segments that play during the news, but maybe you’re still not quite clear of one thing.

What is coding, exactly?

To understand coding, you must first understand that computers don’t speak English, at least they haven’t always been able to. There was a time before Alexa and NPCs in a video game spoke directly to you, and it was a dark time.

Literally, electricity hadn’t even been invented yet.

It was 1843 when Ada Lovelace wrote the first official computer program for a machine invented by Charles Babbage called the “Analytical Engine.” That’s right, over 150 years ago coding was introduced into our world. The first official coding meant to give instructions to computers were wrote during the 1950s, mostly used for application in weapons and space technology. The onset of many of the languages we use today were developed in the 1960s and 70s, coinciding with the explosion of computational language efforts in universities and companies with government contracts.

Coding began to take form into what we recognize today as popular programming languages in the 1980s, and this led to companies like Microsoft and Apple introducing the power of the computer into homes around the world. Since then, programmers and computer enthusiasts have fully utilized the power of source code.

This is an example of source code:

<li>Chrome &ndash; CTRL + U. Or you can click on the weird-looking key with three horizontal lines in the upper right hand corner. Then click on &quot;Tools&quot; and select &quot;View Source.&quot;</li>

In its purest form, coding is a set of commands and processes that perform an overall task, what that task is purely depends on the will of the programmer. In the process of writing code for a program, device, or website, a coder will act as “King” of the code, telling it where to go, how to stand, and when to speak. While attempting to get the desired result, a programmer will need to manipulate, analyze, and pinpoint errors in the source code

Don’t let the “King” title go to your head, because being a coder also makes you the guy whose job it is to clean up the kingdom. If something doesn’t look right on a website, or a robot doesn’t react the way it should to a command, you, the coding custodian, must get into the source code and clean up the mess.

But, the magic of coding lies in “the mess,” because it’s there where there is the potential for basically anything your mind can imagine. Lines of source code are meticulously assembled for a reason, and when there’s a break in the chain, it shows. This means that any problem which can arise in coding, can also be fixed.

So what is coding? Coding is the problem, and the answer. It’s the language of a world that really has no boundaries, and once you learn it, the same will be true of you.

By Camille D., Age 17

Developed in 2009 and made available in 2012, Julia is one of the fastest-growing languages in the industry. As it routinely makes an appearance in language popularity rankings, there is a potentiality for the language to outshine languages such as Python in the realm of computational science and general programming.

Julia was created by Jeff Bezanson, Stefan Karpinski, Viral B. Shah, and Alan Edelman, with a collective desire to unify the best amenities of all the big languages, from the “speed of C” to the  “dynamism of Ruby.” It was crafted with flexibility and versatility in mind – the language boasts the ability of its users to “write an algorithm … and apply it to an infinite lattice of types.”

No language is perfect; you are always making a trade-off when choosing a language to learn. A C++ pupil will enjoy the language’s high speed, but will miss out on the straightforwardness and garbage collection capabilities of Java. There will never be such thing as a language that will solve every issue or be free of any shortcomings whatsoever. Nonetheless, programming languages have evolved rapidly, and Julia exemplifies how far they have come. Here are a few reasons to choose Julia.

Julia is fast and high-performing. Applications created with Julia use the LLVM Compiler Infrastructure to efficiently compile the code to machine language for multiple different platforms. When writing code in a compiled language, you must explicitly define the types of variables you will use and the operations intended to be performed on them. Since the hardware will know exactly what to do as a result, the code will be executed quickly and efficiently. On the other hand, the CPU does not have a concept of the “variables” you use when writing in an interpreted language. The interpreter must provide instructions to the CPU about what the variables contain (i.e. int vs. float data type), forcing the CPU to wait. This is what makes interpreted languages slow relative to compiled languages such as C. Julia falls somewhere in the middle of the spectrum of compiled and interpreted languages. Julia’s compiler doesn’t have to have the information previously mentioned, but it is prepared for when a function is called and acquires all the material promptly. From the information provided, the compiler puts together fast and precise CPU instructions.

Julia is packed with immense capabilities in data science and numerical computing. When using Julia, it is evident that conventional mathematics become closely bound with programming. The Julia REPL (a programming environment in which a user types in a command and can easily see the result of their command) gives access to symbols often used in mathematics, including Greek letters and subscripts. The symbols are inserted by typing a backslash \, followed by a string corresponding to the character. For example, entering “\Gamma” will return the Gamma symbol Γ.

A rather unique feature that comes with Julia is function composition, which is achieved by the operator (∘). For example, writing (sqrt ∘ *)(5, 2) will multiply two numbers, 5 and 2, and then find the square root of the result. Julia is also packed with external call support, and can link with a throng of languages including Python, Java, C++, and R. Python applications can call Julia through PyJulia, and R applications can call it through through its interface, JuliaCall.

Julia is versatile, which is the principal reason why it is so ahead in the game. It provides a wealth of tools and frameworks for deep learning, data visualization, and graphs, and capabilities for clustering, trees, and generalized linear models. Even with a seemingly infinite capacity for mathematical transformations, however, Julia is excellent for general programming, as users can write UIs, statically compile code (even though it is generally dynamic – types of variables aren’t known until runtime), and deploy it on a webserver.