So in this lecture, I want to give you a brief rundown of how to use GitHub along with several extra
coding tips.
Now, if you've never used GitHub before, then there are several ways for you to download the course
repository.
There are also several ways you should not download the repository.
So first, let's start with some options for what you should do.
Option number one is to use the Git clone command.
You can enter this in the console as you can see here.
Option number two is if you are not comfortable using the console, then you can simply use the download
button, although I would still prefer option number one.
Now, one thing to keep in mind is that the Internet is a constantly changing place, so do not freak
out if GitHub has a new design by the time you visit this page.
I am confident in your ability to figure this out.
And the reason I mention this is because I had one student in the past who looked at this lecture and
saw that the buttons were a different color or a different shape or something, and then all of a sudden
he didn't know what to do and couldn't follow the lecture.
But really, it's not that hard.
All you need to do is use your pattern recognition abilities.
So consider this your first exercise for the course.
By the end of this lecture, you should have the entire course repository downloaded to your local machine
using either of the two methods above.
Now please note that if you're new to get or GitHub and you find yourself a bit intimidated, please
do not be.
You do not have to know how to use git for either of the previous two methods.
Now, here are some things you should not do that I've seen several students do in the past.
Number one, do not try to download each file one by one.
As mentioned previously, this is not the way to use git.
Number two.
On a similar note, do not go to file and save as this is not how to download files from GitHub.
Doing this will download the web page to view the file, not the file itself.
So if you look at the file and you see a bunch of HTML, you know that you did it wrong because there's
no HTML in this course repo.
In fact, number one and number two are very silly because they actually take a lot more effort than
simply using either of the methods I mentioned earlier.
So it's actually more difficult to do this the wrong way than to do it the right way.
And number three, if you want to fork my repository, please feel free to do so.
But try your best to keep it up to date.
I make updates constantly, so make sure you pull these updates and if you don't think you'll be able
to do so, then simply use the Git clone command instead.
And on that note, when you do download my repository, make sure it's actually my URL and not someone
else's fork.
And number four.
So this might sound silly, but your fellow students have proven to me that this needs to be said.
There is no need to type anything character by character.
Simply use the copy button.
So if you come back here and you say, I can't type all these characters, it's too complicated.
I'm going to refer you back to this lecture.
So one extra note about the GitHub repo.
Most courses also contain a file called Extra Reading text.
This file contains reference material for the course like journal articles, books and so forth.
So if you hear me referring to extra reading text in the lectures, this is where it can be found.
Reading these materials is optional, but they are there in case you want to further your studies.
So I want to mention a couple of points pertaining to the code in this course.
Firstly, some of you, especially those who don't necessarily meet the prerequisites, may be asking
what is get and how do I use it?
The short answer is Git is a way for developers to manage and track changes in their code.
You might be used to writing code by yourself, but when you're working with a team of two or ten or
even 10,000 people, you need a system to keep things in order.
So this is why, for example, Git is superior to uploading code files to this website and learning
how to use Git is very simple.
There are many tutorials out there that will work just fine for this course.
You only need one command, which is the one I showed you before, so you don't even need to understand
yet.
You just need to copy and paste the command I gave you.
And therefore I don't suspect this will be an issue unless you also don't know how to run commands.
But if that is the case, then as mentioned, you can simply click the button that says download.
At this point, I'll assume you need no further assistance.
And just as a side note, although you don't need to know how to use Git for this course, it is a valuable
skill that will be necessary if you plan to work for any company where your job is to write code.
I don't know any companies that write software that do not use some kind of version control I get.
So if you do want to have a job in this field, that's something you're going to have to learn about
sooner or later.
Now, another common question I see from beginners is should you code along?
The short answer is no.
Now, you may have taken online courses in the past that encouraged you to code along.
But the reality is this is going to give you a very false impression of how code is actually written.
Coding is not a monkey see monkey do type of thing.
If you're learning to play guitar or do some yoga moves, then yes, that makes sense.
But coding involves lots of thinking and not just typing.
If you think you're going to write a complex algorithm in 20 minutes without actually paying attention
to design or structure and without debugging and going back to fix things, think again.
Real code in the real world is not written linearly from start to end.
If you've gotten this false impression from other courses, now is the time to improve your approach.
I encourage you to watch the lecture, should you call it along for a more detailed discussion?
This brings us to our next point, which is what are the exercises for this course?
Now, in some cases this will be obvious because I'm going to say, here is an exercise.
Please do it.
But sometimes it's going to be less obvious and I'm going to trust that you've watched this lecture
and understood what I'm saying.
Basically, any time that you see code that is an exercise, there are two types of code you might see.
Number one, I've just taught you an algorithm, in which case the next code lecture will involve an
implementation of that algorithm.
And number two, I'm going to walk you through how to use a library or an API, for example, TensorFlow
or PyTorch or stats models.
So what is your exercise?
Well, for case number one, your exercise is to implement that algorithm yourself before you ever see
my code.
My code is actually the solution to that exercise.
So don't take what I call the couch potato approach where you just sit there watching each lecture one
by one without doing any coding.
That is not the intent of this course.
And if you're looking at the solution to the exercise before you do the exercise, this is basically
cheating and copying your homework.
Now, obviously what you do is up to you, but I hope that you'll do the exercises as intended.
Now for case number two, it's a little bit different.
Obviously, you're not going to know the syntax for a library or an API.
Before I even show it to you in this case, you should go ahead and watch the full code lecture, which
will show you the syntax and how things work.
Replicating the code is very useful because you're building muscle memory and although this sounds like
it should be easy, it's not.
In fact, making mistakes when trying to replicate the code is the number one mistake I see on the Q&A.
And yes, you heard that correctly.
Even after seeing all the code work perfectly right in front of their eyes, students still have trouble
just copying that code without making mistakes.
And for those of you not typing code at all, a lot of people mistakenly believe that just seeing the
code is enough, but actually being able to type the code makes you much more capable of using it in
the future.
But the most important exercise comes after you've watched the lecture.
You should be able to implement that same code yourself on another data set you care about.
I assume that you're taking this course because you have some data sets you want to analyze, and if
not, there are plenty of resources out there where you can find free data sets.
So please choose one that interests you.
Note that by this measure, most of my courses have at least 10 to 30 exercises, so try to do as many
as possible.
And also note that many courses contain examples of both number one and number two types of exercises,
and you should be able to recognize it when you see it.
So hopefully the exercises for this course are clear, and if not, please make a question on the Q&A.
Now, the next question I want to tackle is a funny one, because I honestly didn't think that this
was a question I would need to answer.
But here we are.
So some students really like Jupyter Notebook very much, while other students dislike it.
Some students really like Pi charm.
So you might ask, why am I not using whatever your favorite tool is?
And the answer is this question is totally irrelevant.
Now, you might think I'm being dismissive of your concerns, but in fact, the reason people have this
question is because they don't yet know how Python works.
After this lecture, I hope you'll have a better understanding.
So in this course I'm providing you with Python code, you'll get that Python code either in a code
lab notebook or a python file, but there's really no difference.
Remember that in this course, this is a video course you're just seeing code on a screen.
What I use is irrelevant because you can't touch it nor interact with it.
I may as well be using Microsoft Word or PowerPoint and it would make no difference.
What you do with that Python code is totally up to you.
You can take my Python script and paste that into a Jupyter notebook or PI charm or open it up in Visual
Studio code.
It's completely your choice.
Python code works the same no matter what environment it's in.
The same code will work in a python file in Jupyter notebook, in code lab, notebook and so forth.
And if you're having trouble understanding this, please use the Q&A so I can help you sort it out.