1
00:00:10,970 --> 00:00:16,550
So in this lecture, I want to give you a brief rundown of how to use GitHub along with several extra

2
00:00:16,550 --> 00:00:17,570
coding tips.

3
00:00:17,930 --> 00:00:22,280
Now, if you've never used GitHub before, then there are several ways for you to download the course

4
00:00:22,280 --> 00:00:23,210
repository.

5
00:00:23,450 --> 00:00:26,630
There are also several ways you should not download the repository.

6
00:00:27,290 --> 00:00:30,740
So first, let's start with some options for what you should do.

7
00:00:31,250 --> 00:00:34,550
Option number one is to use the Git clone command.

8
00:00:34,730 --> 00:00:37,820
You can enter this in the console as you can see here.

9
00:00:38,330 --> 00:00:43,730
Option number two is if you are not comfortable using the console, then you can simply use the download

10
00:00:43,730 --> 00:00:47,000
button, although I would still prefer option number one.

11
00:00:51,430 --> 00:00:57,220
Now, one thing to keep in mind is that the Internet is a constantly changing place, so do not freak

12
00:00:57,220 --> 00:01:00,820
out if GitHub has a new design by the time you visit this page.

13
00:01:00,910 --> 00:01:03,670
I am confident in your ability to figure this out.

14
00:01:04,150 --> 00:01:10,630
And the reason I mention this is because I had one student in the past who looked at this lecture and

15
00:01:11,110 --> 00:01:16,330
saw that the buttons were a different color or a different shape or something, and then all of a sudden

16
00:01:16,330 --> 00:01:19,030
he didn't know what to do and couldn't follow the lecture.

17
00:01:19,240 --> 00:01:20,860
But really, it's not that hard.

18
00:01:20,860 --> 00:01:24,580
All you need to do is use your pattern recognition abilities.

19
00:01:24,910 --> 00:01:27,910
So consider this your first exercise for the course.

20
00:01:28,060 --> 00:01:33,790
By the end of this lecture, you should have the entire course repository downloaded to your local machine

21
00:01:33,820 --> 00:01:36,130
using either of the two methods above.

22
00:01:36,490 --> 00:01:41,800
Now please note that if you're new to get or GitHub and you find yourself a bit intimidated, please

23
00:01:41,800 --> 00:01:42,610
do not be.

24
00:01:42,610 --> 00:01:46,900
You do not have to know how to use git for either of the previous two methods.

25
00:01:51,210 --> 00:01:55,470
Now, here are some things you should not do that I've seen several students do in the past.

26
00:01:56,010 --> 00:01:59,490
Number one, do not try to download each file one by one.

27
00:01:59,790 --> 00:02:02,880
As mentioned previously, this is not the way to use git.

28
00:02:03,420 --> 00:02:04,260
Number two.

29
00:02:04,260 --> 00:02:09,810
On a similar note, do not go to file and save as this is not how to download files from GitHub.

30
00:02:10,020 --> 00:02:14,670
Doing this will download the web page to view the file, not the file itself.

31
00:02:14,910 --> 00:02:20,370
So if you look at the file and you see a bunch of HTML, you know that you did it wrong because there's

32
00:02:20,370 --> 00:02:22,530
no HTML in this course repo.

33
00:02:23,190 --> 00:02:28,320
In fact, number one and number two are very silly because they actually take a lot more effort than

34
00:02:28,320 --> 00:02:30,990
simply using either of the methods I mentioned earlier.

35
00:02:31,770 --> 00:02:36,000
So it's actually more difficult to do this the wrong way than to do it the right way.

36
00:02:40,480 --> 00:02:45,100
And number three, if you want to fork my repository, please feel free to do so.

37
00:02:45,100 --> 00:02:47,350
But try your best to keep it up to date.

38
00:02:47,500 --> 00:02:52,630
I make updates constantly, so make sure you pull these updates and if you don't think you'll be able

39
00:02:52,630 --> 00:02:56,260
to do so, then simply use the Git clone command instead.

40
00:02:56,650 --> 00:03:02,230
And on that note, when you do download my repository, make sure it's actually my URL and not someone

41
00:03:02,230 --> 00:03:03,100
else's fork.

42
00:03:07,630 --> 00:03:08,860
And number four.

43
00:03:08,920 --> 00:03:13,930
So this might sound silly, but your fellow students have proven to me that this needs to be said.

44
00:03:14,260 --> 00:03:17,300
There is no need to type anything character by character.

45
00:03:17,320 --> 00:03:19,120
Simply use the copy button.

46
00:03:19,540 --> 00:03:24,130
So if you come back here and you say, I can't type all these characters, it's too complicated.

47
00:03:24,190 --> 00:03:26,740
I'm going to refer you back to this lecture.

48
00:03:31,240 --> 00:03:34,090
So one extra note about the GitHub repo.

49
00:03:34,360 --> 00:03:38,500
Most courses also contain a file called Extra Reading text.

50
00:03:38,920 --> 00:03:43,780
This file contains reference material for the course like journal articles, books and so forth.

51
00:03:43,900 --> 00:03:49,360
So if you hear me referring to extra reading text in the lectures, this is where it can be found.

52
00:03:49,780 --> 00:03:55,000
Reading these materials is optional, but they are there in case you want to further your studies.

53
00:03:59,830 --> 00:04:03,820
So I want to mention a couple of points pertaining to the code in this course.

54
00:04:04,840 --> 00:04:10,600
Firstly, some of you, especially those who don't necessarily meet the prerequisites, may be asking

55
00:04:10,600 --> 00:04:12,700
what is get and how do I use it?

56
00:04:13,150 --> 00:04:18,010
The short answer is Git is a way for developers to manage and track changes in their code.

57
00:04:18,310 --> 00:04:23,590
You might be used to writing code by yourself, but when you're working with a team of two or ten or

58
00:04:23,590 --> 00:04:27,400
even 10,000 people, you need a system to keep things in order.

59
00:04:27,820 --> 00:04:33,670
So this is why, for example, Git is superior to uploading code files to this website and learning

60
00:04:33,670 --> 00:04:35,560
how to use Git is very simple.

61
00:04:35,680 --> 00:04:39,910
There are many tutorials out there that will work just fine for this course.

62
00:04:39,910 --> 00:04:45,010
You only need one command, which is the one I showed you before, so you don't even need to understand

63
00:04:45,020 --> 00:04:45,420
yet.

64
00:04:45,430 --> 00:04:48,160
You just need to copy and paste the command I gave you.

65
00:04:48,580 --> 00:04:53,560
And therefore I don't suspect this will be an issue unless you also don't know how to run commands.

66
00:04:53,710 --> 00:04:59,110
But if that is the case, then as mentioned, you can simply click the button that says download.

67
00:04:59,380 --> 00:05:02,380
At this point, I'll assume you need no further assistance.

68
00:05:06,880 --> 00:05:12,400
And just as a side note, although you don't need to know how to use Git for this course, it is a valuable

69
00:05:12,400 --> 00:05:17,710
skill that will be necessary if you plan to work for any company where your job is to write code.

70
00:05:18,010 --> 00:05:23,050
I don't know any companies that write software that do not use some kind of version control I get.

71
00:05:23,200 --> 00:05:27,250
So if you do want to have a job in this field, that's something you're going to have to learn about

72
00:05:27,250 --> 00:05:28,450
sooner or later.

73
00:05:32,970 --> 00:05:37,500
Now, another common question I see from beginners is should you code along?

74
00:05:37,830 --> 00:05:39,480
The short answer is no.

75
00:05:40,020 --> 00:05:44,430
Now, you may have taken online courses in the past that encouraged you to code along.

76
00:05:44,550 --> 00:05:49,710
But the reality is this is going to give you a very false impression of how code is actually written.

77
00:05:50,160 --> 00:05:53,130
Coding is not a monkey see monkey do type of thing.

78
00:05:53,490 --> 00:05:58,050
If you're learning to play guitar or do some yoga moves, then yes, that makes sense.

79
00:05:58,050 --> 00:06:01,230
But coding involves lots of thinking and not just typing.

80
00:06:01,530 --> 00:06:06,570
If you think you're going to write a complex algorithm in 20 minutes without actually paying attention

81
00:06:06,570 --> 00:06:12,060
to design or structure and without debugging and going back to fix things, think again.

82
00:06:12,390 --> 00:06:16,380
Real code in the real world is not written linearly from start to end.

83
00:06:16,740 --> 00:06:21,930
If you've gotten this false impression from other courses, now is the time to improve your approach.

84
00:06:22,140 --> 00:06:26,460
I encourage you to watch the lecture, should you call it along for a more detailed discussion?

85
00:06:30,920 --> 00:06:35,270
This brings us to our next point, which is what are the exercises for this course?

86
00:06:35,660 --> 00:06:39,980
Now, in some cases this will be obvious because I'm going to say, here is an exercise.

87
00:06:39,980 --> 00:06:40,940
Please do it.

88
00:06:41,210 --> 00:06:45,680
But sometimes it's going to be less obvious and I'm going to trust that you've watched this lecture

89
00:06:45,680 --> 00:06:47,450
and understood what I'm saying.

90
00:06:47,960 --> 00:06:53,900
Basically, any time that you see code that is an exercise, there are two types of code you might see.

91
00:06:54,260 --> 00:06:59,510
Number one, I've just taught you an algorithm, in which case the next code lecture will involve an

92
00:06:59,510 --> 00:07:01,310
implementation of that algorithm.

93
00:07:01,790 --> 00:07:07,700
And number two, I'm going to walk you through how to use a library or an API, for example, TensorFlow

94
00:07:07,700 --> 00:07:09,620
or PyTorch or stats models.

95
00:07:13,950 --> 00:07:15,780
So what is your exercise?

96
00:07:16,080 --> 00:07:22,110
Well, for case number one, your exercise is to implement that algorithm yourself before you ever see

97
00:07:22,110 --> 00:07:22,950
my code.

98
00:07:23,130 --> 00:07:26,310
My code is actually the solution to that exercise.

99
00:07:26,670 --> 00:07:31,620
So don't take what I call the couch potato approach where you just sit there watching each lecture one

100
00:07:31,620 --> 00:07:33,960
by one without doing any coding.

101
00:07:34,080 --> 00:07:36,270
That is not the intent of this course.

102
00:07:36,540 --> 00:07:41,640
And if you're looking at the solution to the exercise before you do the exercise, this is basically

103
00:07:41,640 --> 00:07:43,620
cheating and copying your homework.

104
00:07:44,130 --> 00:07:49,530
Now, obviously what you do is up to you, but I hope that you'll do the exercises as intended.

105
00:07:53,990 --> 00:07:56,930
Now for case number two, it's a little bit different.

106
00:07:57,260 --> 00:08:00,870
Obviously, you're not going to know the syntax for a library or an API.

107
00:08:00,890 --> 00:08:06,260
Before I even show it to you in this case, you should go ahead and watch the full code lecture, which

108
00:08:06,260 --> 00:08:08,720
will show you the syntax and how things work.

109
00:08:09,440 --> 00:08:15,380
Replicating the code is very useful because you're building muscle memory and although this sounds like

110
00:08:15,380 --> 00:08:17,180
it should be easy, it's not.

111
00:08:17,300 --> 00:08:23,900
In fact, making mistakes when trying to replicate the code is the number one mistake I see on the Q&A.

112
00:08:24,200 --> 00:08:26,220
And yes, you heard that correctly.

113
00:08:26,240 --> 00:08:31,700
Even after seeing all the code work perfectly right in front of their eyes, students still have trouble

114
00:08:31,700 --> 00:08:34,820
just copying that code without making mistakes.

115
00:08:35,299 --> 00:08:40,370
And for those of you not typing code at all, a lot of people mistakenly believe that just seeing the

116
00:08:40,370 --> 00:08:45,860
code is enough, but actually being able to type the code makes you much more capable of using it in

117
00:08:45,860 --> 00:08:46,580
the future.

118
00:08:47,210 --> 00:08:51,020
But the most important exercise comes after you've watched the lecture.

119
00:08:51,260 --> 00:08:56,540
You should be able to implement that same code yourself on another data set you care about.

120
00:08:56,870 --> 00:09:01,880
I assume that you're taking this course because you have some data sets you want to analyze, and if

121
00:09:01,880 --> 00:09:05,480
not, there are plenty of resources out there where you can find free data sets.

122
00:09:05,480 --> 00:09:07,520
So please choose one that interests you.

123
00:09:12,000 --> 00:09:17,850
Note that by this measure, most of my courses have at least 10 to 30 exercises, so try to do as many

124
00:09:17,850 --> 00:09:18,690
as possible.

125
00:09:19,050 --> 00:09:24,990
And also note that many courses contain examples of both number one and number two types of exercises,

126
00:09:24,990 --> 00:09:27,510
and you should be able to recognize it when you see it.

127
00:09:28,320 --> 00:09:33,750
So hopefully the exercises for this course are clear, and if not, please make a question on the Q&A.

128
00:09:38,290 --> 00:09:42,730
Now, the next question I want to tackle is a funny one, because I honestly didn't think that this

129
00:09:42,730 --> 00:09:44,440
was a question I would need to answer.

130
00:09:44,500 --> 00:09:45,610
But here we are.

131
00:09:46,300 --> 00:09:51,950
So some students really like Jupyter Notebook very much, while other students dislike it.

132
00:09:51,970 --> 00:09:54,100
Some students really like Pi charm.

133
00:09:54,460 --> 00:09:58,690
So you might ask, why am I not using whatever your favorite tool is?

134
00:09:58,960 --> 00:10:02,470
And the answer is this question is totally irrelevant.

135
00:10:02,800 --> 00:10:08,170
Now, you might think I'm being dismissive of your concerns, but in fact, the reason people have this

136
00:10:08,170 --> 00:10:11,650
question is because they don't yet know how Python works.

137
00:10:11,980 --> 00:10:14,770
After this lecture, I hope you'll have a better understanding.

138
00:10:15,430 --> 00:10:21,620
So in this course I'm providing you with Python code, you'll get that Python code either in a code

139
00:10:21,670 --> 00:10:25,240
lab notebook or a python file, but there's really no difference.

140
00:10:26,230 --> 00:10:31,120
Remember that in this course, this is a video course you're just seeing code on a screen.

141
00:10:31,390 --> 00:10:35,260
What I use is irrelevant because you can't touch it nor interact with it.

142
00:10:35,350 --> 00:10:39,610
I may as well be using Microsoft Word or PowerPoint and it would make no difference.

143
00:10:39,820 --> 00:10:43,180
What you do with that Python code is totally up to you.

144
00:10:43,360 --> 00:10:48,970
You can take my Python script and paste that into a Jupyter notebook or PI charm or open it up in Visual

145
00:10:48,970 --> 00:10:50,020
Studio code.

146
00:10:50,050 --> 00:10:52,060
It's completely your choice.

147
00:10:52,150 --> 00:10:56,110
Python code works the same no matter what environment it's in.

148
00:10:56,410 --> 00:11:02,220
The same code will work in a python file in Jupyter notebook, in code lab, notebook and so forth.

149
00:11:02,230 --> 00:11:07,300
And if you're having trouble understanding this, please use the Q&A so I can help you sort it out.

