Welcome! If you're interested in a possible career in the ever-evolving fields of computer science and information technology, you've come to the right place. Here you will find links to the best free resources across the internet. Some of this website is geared toward complete beginners, so no prior knowledge of programming is necessary. Enjoy, and have fun!
This depends on how much you already know about programming! Take a look at this table. It should get you started at the right place!
|Experience Level||Start Here|
|I have never heard of programming before!||Scratch or Lego Robotics|
|I have programmed before, and I'm not bad at it!||Java|
|I have lots of experience, and I want a REAL challenge!||iPhone|
If you're new to programming, and you want to try out Scratch or Lego Robotics, then jump right in and have fun! No prior knowledge of programming is necessary for Scratch or Lego Robotics!
However, if you're in high school (or beyond), and you're thinking about an actual career in Computer Science (CS) and programming, then the first thing to do is decide whether or not programming is right for you. Browse the "Is CS For Me" and "Math Requirements" links first!
Before we can answer this question, we should take a look at the similarities and differences between the field of Computer Science and the related field of Information Technology.
So, what's the difference between Computer Science and Information Technology, anyway? Clearly they are related (they both use computers afterall!). But they are actually fundamentally different.
At the very basic level, Computer Science is "making", while Information Technology is "using". However, when you really start to study them, they are so much more than just that!
The definition of Information Technology at TechTerms.com sums it up nicely, defining it as "anything related to computing technology, such as networking, hardware, software, the internet, and the people that work with these technologies." Let's expand on this a little.
Very often, Information Technology deals with using a computer's software or hardware to accomplish a task, such as
Computer Science on the other hand is a broader term, defined at TechTerms.com as "the study of computers and computing concepts". Reading a little further, this means that it encompasses Information Technology, but also includes the technical issues of making or constructing the computer software and hardware itself! For example,
Which of these two fields is for you? This, of course, depends on YOU! Although the two fields are clearly related, they can attract people with different fundamental interests (although many people are, not surprisingly, interested in both). To help you decide, ask yourself these questions:
Any of those questions where you find yourself looking for ways to change your software to do things the way YOU want them done, or where you are interested in figuring out HOW the software responds the way it does, then you're more likely suited for Computer Science and programming. This website highlights some of the most common programming languages in use today. We also provide links to some of the best free resources on the internet. We will even show you links to the mathematical knowledge that is necessary for a career in Computer Science.
Yes, math! Every computer programmer needs some math skills. Usually though, the math is easy to learn and also fun! You might be surprised to find out that you already know some of the math requirements. For example:
That doesn't even seem like math, does it? Well, deep down, it is! If you understood those simple statements, then guess what? You are well on your way to learning something called Boolean Algebra, which, essentially, is a computer programmer's fancy word for "logic"! If you're a logical person, that's great, because computers are logical too! Since computers are made by human beings, their logic is basically the same as ours, and they can be (easily) made to understand what we want them to do in various different situations!
The math that's required is fairly simple. Here's a list of the major math requirements, along with links to learn more about the topic on a completely introductory level:
If you are interested in creating advanced 3D video games for popular game consoles (XBOX, Playstation, Wii, etc), then the required math skills get a bit more advanced. These are some topics you'll learn for game programming purposes, along with links to explanations and examples. The math here might look extremely advanced right now, but don't worry if you don't understand it. These types of math are more for when you get into grade 12 and beyond!
No, we're not talking about the itch! Well, maybe... If you have an itch to start programming, then Scratch it!
Do you or your children enjoy stories and games? Scratch, developed by the good folks at MIT, is a FREE, easy-to-learn programming language that will allow YOU to create your very own interactive stories and games! It is designed for those who have never seen programming before, and is geared to those who are 8 years of age or older. It is even fun for adults to play around with! You are limited only by your imagination!
Scratch is an extremely entertaining way for children to learn the basics of programming, without having to learn hundreds of commands! It is graphical interface based, using "drag and drop" to make commands possible. For example, if you want to make a cat do a cartwheel, all you need to do is get a picture of a cat, and tell Scratch you'd like to make this picture flip 360 degrees by using your mouse to drag the appropriate command button onto the Scratch dashboard. Done! No complicated programming commands!
What's more important is it will get children thinking logically and to problem solve at an early age. Whatever your child wants to do with Scratch, they can, but they'll have to carefully think about exactly how they want it done! Getting children started early on this track of thinking will give them a huge edge when they get into higher grades and university. This is helpful not only in programming, but in all the subjects they will be taking!
You can also join a free Scratch community where you can share your stories and games with everyone. You can also see and play what others are sharing as well! Help each other create beautiful and fun games to play!
Do you enjoy robots, transformers, or generally just building things or putting them together? Do you enjoy building things with Lego blocks? Then you're going to love this! The Lego Robotics EV3 system is designed for both children and adults who like putting things together.
But wait... there's more. Much, much more! Not only can you build the robot of your dreams, you can also command it! And we're not talking about usual way with a remote control - that's been done many, many times. While the Lego EV3 system can do that, you can also use your computer to program it to do whatever you can think of - ahead of time! You can then sit back and watch as it obeys your every command!
Basically, you build your robot, then program it on your computer, then watch as your new friend does everything you told it to do! This is extremely fun for kids (and adults alike) to watch their creations come to life in a way that they uniquely created! As a bonus, kids will learn programming in an easy and fun way - no prior knowledge of programming is necessary! While they learn programming, they will also be learning problem solving skills, and how to break problems down into small parts - an essential skill for everyone when they get into high school and university. Children who learn this skill early are apt to do very well in their studies.
The Lego EV3 kit comes with all the pieces necessary to build several different and unique robots. The kit also includes motors, various sensors, and the "Brick" as they call it (the programmable remote). It also comes with instructions of how to build several different types of cool robots. Here are a few of them, but there are more!
The programming system is basically the same idea as that of Scratch (click the "Scratch" link above). As previously mentioned, no prior knowledge of programming is necessary! You don't need to learn all kinds of complicated programming code in order to program your robot! You download software from the Lego website which allows you to "drag and drop" all the commands you would need to program your robot in any way you want! It is completely graphical based, and also very easy and fun to use. You can even download pre-programmed routines from Lego so you can see the programming correspond to the robots actions before you jump into programming it yourself. Here's a screenshot of the software:
You've probably heard of Java. When we say "Java", we're not talking about coffee or the island...
Java is an object oriented programming language. This means that, in order to make things easier for programmers to understand and to code, it associates everything with, well... an object!
Without getting into too many details, let us take a simple example. What if you wanted your computer program to mimic the behaviours and/or traits of a cat? In Java, the cat would be called the class. You can have many different cats in your program, all playing together and having some similar behaviours, and yet some different behaviours from cat to cat. Each individual cat is called an object, hence the term "object oriented".
The class would have various characteristics of a cat. For example, name, fur colour, weight, etc. These of course are different for every cat. The various objects would make those things concrete for each cat. In other words, it makes things specific for each cat and makes them their own individual, rather than just a list of possible descriptions! For example, cat 1 might have name "Fluffy", fur colour "ginger", weight "13 pounds", etc. Cat 2 might have name "Cookie", fur colour "black and white", weight "17 pounds", etc.
This is how Java works. It defines classes to make a template of an object. Then out of that class it creates the individual objects with particular traits. This tends to make large programs easier to understand and code.
Java is a very powerful and versatile language. The reason for this is that it is called platform independent. This means that you can create a lovely Java program on one machine, and have that exact same program run on a completely different machine. For example, you can create and run a Java program right on your computer. You can then take that same program, with absolutely no changes, and run it on your phone, tablet, or laptop. This doesn't happen with all programming languages, but it does with Java!
Because it is platform independent, many, MANY devices use Java! Here are some examples. You might be surprised by a few of them!
It is estimated that over 3 billion (yes, 3,000,000,000) devices worldwide run Java!
Learn Java now! (assumes no knowledge of programming!)
The ever-popular Apple iPhone, iPad, and iPod Touch continue to be a very popular choice for communication and casual computing for many people. They work well and have hundreds of thousands of applications that let you work or play. But, how do these apps come into existence? The answer is simple: programming!
Just like a computer program, apps on an i-device need to be programmed. The language that Apple requires for developing apps is called Objective C. There are many websites out there that claim you can "easily" learn this even if you have no prior knowledge of computer programming. While this is technically possible, we highly recommend that you have programmed before and understand the basic concepts of some other high level programming language (Java for example). Objective C can be very difficult to learn if you have never programmed before.
Don't let that discourage you! Yes, Objective C can be difficult to learn. But the rewards can be great! Once you have learned the language, you are free to develop whatever you want. You can then share this app on the Apple App Store. If it's a really good app, you can even sell it and start making money right away - from the comfort of your own home. You are your own boss!
This is a fantastic website for children to learn programming. Coding is taught with fun activities, including popular games (like Angry Birds), storytelling, and everything up to a full 20 hour introductory coding course.
The Information Technology industry has a great need for women in the field, and Google is boosting this effort by helping to get young girls interested in coding.
A "Maker" is not just someone who makes things! They also break, rebuild, teach, and tinker to make things better! Read more about the Maker Movement.
"Mod" is simply short for "modification". The popular game Minecraft can be modified by users like you! According to Gamepedia's Minecraft Mod page, common things to modify are terrain (to make it bigger), change setting to optimize various attributes such as speed and graphics, and general game play.
According to 3dprinting.com, 3D printing is essentially the process of making solid objects from digital files. This has many applications ranging from IT to business to medicine.
Did you know that Prince Edward Island has 3D printers available for use by small businesses and private citizens? They are available at UPEI Engineering Department. They also make their services available to private citizens on a case-by-case basis. Contact Stephen Champion.