- In today's video, I wanna talk
about finding a project for yourself to work on
if you're looking to practise
and hone your newly found programming skills.
(lively music)
Welcome back, my name's Tim Buchalka
and this is another programming tip of a day.
A question I get very often from students is
"Can you provide me with some more practise assignments?"
or "How do I find a project to work on?"
Now there's a lot of ways that you can actually do that.
One of the ways you can start with, first one is
to find a small need for an application, a programme
and try and write that for yourself.
Don't try and figure out how to sell it
or see if there's an audience who need it.
Come up with a very simple programme to solve
a particular problem.
I've got a really weird story for you.
Back when I was starting up programming, I actually wrote,
one of the first programmes I wrote was a very simple game.
And believe it or not, I wrote it for my mother
because I had this first computer, a MicroBee,
it had 16k of RAM.
This was back in the 1980s, and I wanted to write
a very simple game and show my parents, show my mother.
So I wrote a simple game which was called a reaction timer.
So I had to try and figure out how to do that,
and what I decided to do was time the difference between
when it said "Go" to when I press the Spacebar
and come up with basically a reaction to how long it took
for that game, it had a high score ladder.
A really, really, really simple game.
Very, very primitive but that was great fun
and that was a project because I had to work through
the system, I had to figure out things like how to
display something on the screen.
Had to figure out how to calculate time from when
the programme said "Go" and when the Spacebar was pressed,
and I had to show how to calculate that
and print out the result on the screen.
So that very simple, simple game was great way to learn
some basic programming skills and again it was
one of the first things that I learnt to programme.
So that's one example, another example that I can give you
of a more complex programme was back in 2005.
I joined a new ISP, Internet Service Provider,
and at the time they didn't have a usage metre.
So in other words, there was no way to track
how many gigabytes or, in that case, it was more tracking
megabytes, but basically how much usage for
a particular month.
That's more of an issue in countries like Australia
where there's a premium price on daily usage,
so you basically need to track your usage to make sure
that your bills not too high.
Anyway, so the company didn't have the facility,
didn't offer that as a programme so I thought,
"Okay, I'm gonna write a programme to do that".
So I wrote a programme to actually do just that.
Took a very simple calculation and it was sitting there
in the background and monitoring how much you were using
and saving that into a very primitive text file,
a really primitive form of a database.
The point was again, that I figured out a need for a programme
and actually wrote that and solved it.
That's way back in 2005 that I worked on that
and I ended up actually making that programme
a lot more complex and working with
the Internet Service Provider and they actually gave me
a way to pull the stats from their server because
I actually recorded the stats internally, they just
weren't presenting them to the users of their servers.
That was an app and I'm gonna put a link in the resources
for this video or in the description of this video.
If you're interested you can go and check out
the original code but it's all the way back from 2005.
I released it as open source and that was another
good way of doing it and that really leads me into
the second point actually of contributing
to an open source project.
One of the great ways that you can practise your skills
is to find an open source project.
Now an open source project if you're not aware of it,
is basically a programme that someone has put out there
to solve a particular need or solve a particular problem
and is released for free, and depending on the licence
there is usually no great restrictions, you're able
to take that code and adapt it or contribute to the project.
So I've contributed to a lot of projects over the year.
Over the last probably 20-plus years now,
a great site you can go to is github.com.
Now GitHub has been recently purchased by Microsoft
but don't let that be a negative thing because I know
there's some people out there who, for whatever reason,
don't like Microsoft.
Great site, GitHub, and there's thousands of projects in
virtually any programming language you can think of
that need contributions.
Now when you're contributing to an open source project,
that doesn't mean you need to be an expert programmer.
There's lots of different ways that you can contribute.
One of the early ways that I contributed to a project
was with the documentation.
So I was more of a user of a particular programme
and I decided to hone the documentation and to make
the documentation easier to show people how to instal
the application and to get the most out of it.
So you might wanna start there.
It can simple as finding bugs.
So you might have decided to take that code base,
the programme from GitHub or any other open source repository,
source code repository,
and you might find a bug, you might run the programme
and find that it doesn't work on your system.
Perhaps it's a particular version of Windows,
or whatever it is, a particular scenario and it doesn't work
so you might firstly report that as a bug
'cos most of these projects have got the mechanisms
for you to report a bug.
But secondly you might then decide,
"Okay I'm gonna have a go at fixing it",
and this can be really, really good practise for you
to hone your skills.
Because you're taking a real application someone's developed
and you're trying to figure out the flow of the programme,
and you're trying to debug it, you're trying
to find the bug and fix it.
And what you can do is you can then contribute that change,
that fix back to the people who wrote it,
back through to the repository and that can flow in
as future version of that programme.
And that can be a good feeling because you can eventually
get your name up in credits, so to speak,
because you've actually contributed to the project.
So I wouldn't necessarily say you should contribute purely
to get your name up in lights,
but I know that can be a good thing when you're going for
a job to say you've contributed to these projects.
But if you go there and do that, you'll find
that the real world skills you'll learn,
by working with someone else's code and interacting with
people can really, really set you up and help you
in your journey to become a good programmer.
So I would suggest either of those methods,
firstly, find a particular problem, can be a simple problem
or complex problem and try and solve that by writing
a computer programme or write as much of it as you can.
Secondly, find an open source project
and see if you can contribute to that.
Both of those ways will definitely help you become
a better programmer.
Alrighty, so I hope that helped, if you've got any questions
feel free to leave a comment and I'll get back to you.
If you're ready to look at the next tip, click on up here
and you can check that out.
If you're interested in coding specific programming videos,
click on the link in the bottom left-hand corner.
Consider subscribing by clicking on the link up here
and I'll see you soon.