5 Coding Projects (from beginner to advanced)

Older & Wiser
59 followers
7 Video Views·Oct 27, 2022
I have five programming projects of varying skill level
that will help you get to the next level of programming,
with the last one being a project
that will help you land a software development job.
Our three skill levels are, one, beginner.
You're learning how to implement programming fundamentals
in a practical way.
You're very much a beginner,
but I'm not gonna make it easy, just straightforward,
so it's not so convoluted.
I don't want you to have to worry about libraries
and frameworks and all of this crap.
Your code is gonna run in the console,
and because beginner steps are the most important,
we actually have three projects
of varying skill levels within this level.
Two is intermediate.
You're dipping your toes in real-world development,
where what you work on on these projects
will directly transfer over to real-world projects,
and you may even learn
some software engineering fundamentals as well.
And three is advanced.
You are learning how to be a full-fledged software engineer,
and by that, I mean full stack, but you're still solo.
So on this project, the front end
doesn't have to be beautiful.
The back end may need some refactoring,
and your technical debt is probably through the roof,
but you're able to display your programming knowledge,
you are implementing core principles,
and you're also providing documentation
that explains your thought process while coding.
And the project's so big,
you're going to be working like a real software engineer,
where you break down this big project
into smaller tasks for you to complete,
and you create an MVP,
you build it up feature by feature
into what is finally a full-fledged application.
This is going to be fun.
Now, there are two ways to go about programming projects.
One is to work on a project that's more on the hobby level.
This doesn't mean I'm professional,
but it's a project that you want to build,
like my AI that shot me in the face
when I got distracted, as you saw in the last video,
or when I use the YouTube data API
to pull my dislike counts, put it into a comment,
and post that comment under the related video.
It's something useful that makes your life easier,
or it's just fun.
You learn a lot about building projects like this,
because when you're genuinely interested in something,
you are more inclined to learn about it
and less inclined to quit when the going gets tough.
And the other way is tactical.
You know what you're going to learn from this project,
where it's going to get you to the next level,
or maybe even a software development job,
and that is why you build it.
And that's actually going to be my focus for today,
because I can't just sit here and say,
build something fun.
Okay, thanks for watching.
Make sure you subscribe.
And that's the video.
I gotta have a little bit of content.
But actually, the real reason I'm not going that route,
because at the end of the day,
if you did have something like that in mind,
you probably would be working on it
instead of watching this video.
I'm just saying.
So let's get started with the first project
under skill level number one for beginners.
What you're going to do is write a program
that displays Hello World in the console.
All right, thank you for watching this video.
You are ready to become a software engineer,
start applying to those jobs.
But actually, I want you to create Hello World,
because there's something that just builds up inside you
when you're able to manipulate a computer using code
to do something that you want it to do,
especially for the first time ever.
So if you have never touched a line of code,
do Hello World, because it just makes you so giddy
and excited for programming even more than you already are.
And now that you're excited,
you're going to move on to the next project
in the beginner skill level, cooking.
Bear with me real quick.
This is actually what I'm talking about.
You're going to be implementing programming basics
by using information of cooking a lasagna.
How long did it take you to prepare that lasagna?
How long does it take to cook that lasagna?
How much time does that lasagna have left to cook?
So you're going to be working with data types.
You're going to be working with functions or methods,
whatever, whatever language.
You can do this in any language that you want, really.
And you're going to be working with parameters
and a little bit of math,
and using some functions and other functions
just to see how everything ties together.
And I know what you're thinking.
Oh, well, this isn't your original idea.
I know.
Nobody's beginner project ideas are their own original idea.
And also, I feel like this was a two birds,
one stone situation where I can kind of plug exorcism.
Not the sponsor of the video, by the way.
API Layers actually sponsored the video,
but we'll get to that later.
Exorcism is just a really cool place
to learn a lot of different languages.
It's all open source.
It's all free.
Figured I'd mention it.
So this is a project.
You're going to define the expected oven time in minutes.
How long does that lasagna take to cook?
Does it take 40 minutes in the oven?
Well, that's the example that we use here.
So you need to declare data type,
and you're going to assign it the value of 40.
And yes, I'm going to speak a little bit in pseudocode
in this project in particular
because it is a very beginner basics project.
But as we go and climb up the ladder
of varying skill levels,
I'm going to be going in less and less detail
because you'll know more and more.
But that's it for task one.
The next one, calculate the remaining oven time in minutes.
And this really bothers me how this one
is before the preparation time
because you definitely prepare the lasagna
before you put it in the oven, but whatever.
We'll just follow the order.
But you're implementing a function or method
to calculate the remaining oven time in minutes.
So this function's whole idea is
how much longer is this lasagna in the oven?
Well, how do you do that?
Well, you know how long it's supposed
to be in the oven already.
You declared that in the first task.
And then how long has it already been in the oven?
You're going to actually be entering that as a parameter.
And then what you're going to return
is the remaining oven time in minutes.
And the third task is actually very similar
to the second task,
where you're going to be implementing a function
that passes in a parameter.
In order to return,
we'll calculate the preparation time in minutes.
That's what you're going to be returning.
How long did it take you to prepare?
So how are you going to do that?
Well, the parameter is you're taking
the number of layers you added to the lasagna
and multiplying that, oh crap, I just gave away the answer,
by two minutes to prepare each layer.
So if you have five layers, well, two minutes per layer,
that number is what you're going to want to return
from this function.
Like that's the whole purpose of this function
is to get to that number.
But then it all comes full circle
to the fourth task right here.
You're implementing another function
that calculates the total working time in minutes,
but this one takes two parameters.
It actually takes the same exact parameters
as these two functions right here.
You need the number of layers you added to the lasagna
and you need the number of minutes
the lasagna has been in the oven
because you want to return how long
you've been working on this thing.
So how long did it take to prepare?
By the way, this is where you use
one of the other functions inside this function.
So how long did it take you to prepare?
How long has it already been in the oven?
You add those together and that's what you return.
And that's it.
If you're a little confused about some of the things
that I was talking about, then this is the project for you.
Remember, you're not supposed to already know
how to do this project.
You're doing this project to learn.
If you already know how to do it, what are you gonna learn?
But if that seemed a little easy to you,
well, you may know where I'm going with this
if you've been watching my videos this year.
The tournament simulation.
Whatever sport you like best.
This can be surfing.
It can be wrestling.
It could be baseball.
It could be football.
It could be whatever, as long as there are brackets.
Tournament style.
It could be March Madness.
Did I say basketball?
It could be March Madness.
Whatever you want.
Simulate running a tournament.
Remember, all of this is still happening in the console.
Simulate running a tournament for that sport.
Come up with a loose design plan
so when you hit the keyboard
and you're about to program things out,
you have an overall understanding of what's going on.
It can be something as simple as this.
You have to figure out what are the objects,
what are their attributes, what are their behaviors,
and then you figure it out.
What are the objects?
Let's pretend this is surfers.
I don't wanna just regurgitate everything I said before.
Let's say surfing.
So you're gonna have surfers
and then you're gonna have the overarching tournament.
You're going to have heats in that tournament
of two to four surfers per heat.
You're going to have scores and records
and you're gonna have a schedule.
Then the attributes of a surfer.
Now we can split this up.
Shortboard, longboard, big wave surfing,
small wave surfing.
It doesn't have to be super realistic,
but you can have giant waves over here,
longboard waves over here,
shortboard waves over here on the same beach.
It's a program.
You can make whatever you want.
I don't wanna go too deep into the surfing thing
because I don't know how many of y'all surf
or even know what the hell I'm talking about,
but whatever your favorite sport is,
again, you're already familiar with that.
So the more you know about what you're programming,
the more you can focus on actually programming it.
This is a program where you will implement
basically anything that comes to mind
when you think of programming fundamentals.
All of the simple things like we just discussed,
data types and functions or methods,
but also data structures and some algorithms
and object oriented programming
with classes and different objects.
And you'll be working with inheritance, right?
All of this in one simple program.
So if you are past the cooking your lasagna program,
then this is gonna be your next step.
But if you have the fundamentals down
and feel you're ready to hop on over to web development,
then we're gonna hop into the intermediate section.
The one project for the intermediate section,
it's actually an array of projects,
but it's one common theme
and that it is brought to you by API Layer
who is a sponsor of today's video.
And you're able to use their product
to help you build these web applications.
That's what this entire project is going to be based around.
Building a web application,
using an API to pull in data that you can then manipulate
and display however you wish on the front end.
Similar to how you see this right here.
This was a little program I put together,
I was gonna make a video about,
then I realized maybe it's not as interesting as I thought
to count down to the bottom of the recession
based on previous averages from peak to bottom,
yada, yada, yada.
But I had the countdown timer here
and I have the big three right here.
Dow Jones, SAP 500, NASDAQ,
with this price being pulled in using an API
and then doing a little bit of math
based on the all-time high to find the difference.
And that's just one of many examples
of what you can do using an API.
An API courtesy of API Layer,
a hassle-free API marketplace
to boost your app's capabilities
without worrying about scalability and stability.
They have a litany of different types of APIs.
They have a code detection API, a resume parser.
We can see all APIs and see all 84 that they currently have
for most of what you would need.
And also one thing that is incredibly important,
they have 99.98% uptime.
Let me tangent real quick,
because I have a story.
I was using a different API
for that recession day stock project that I just showed y'all
before I moved over to API Layer.
And I spent two hours messing with the code
that calls the API because it wasn't working.
When you first connect the API,
you wanted to display it in the developer console
just to make sure that it's working.
So when you work on this project,
there's a little tip for you and it wasn't working.
Like, why isn't this working?
What is wrong with my code?
Two hours later, I decided I'm going to test it out
on a different site where you can actually test these APIs.
Turns out the API was down.
You have never seen me so mad.
I couldn't believe it.
I had just wasted two hours
for something that wasn't even my fault.
My code was correct.
The API was down.
That's why this number right here,
uptime of 99.98% is so important.
It'll save you a lot of headache.
I can speak on it personally.
And also, all of these APIs are free up to a certain limit.
However, for the first 100 individuals
that use my code, Forrest100, using my link,
all that information will be in the description
just below this video.
Get everything 100% free up to $250.
But again, for the first 100 people to use my code
for the first month.
Did I say that?
For the first month.
But let's talk about the projects
that you can build with this.
So the first one we're going to talk about is MarketStack.
Yes, this is a real-time, intraday,
and historical market data API
that if you click on it,
brings you over to marketstack.com
because this is like a subsidiary.
It's under the umbrella of API layer.
It's created by API layer.
So they gave it its own dedicated website, I guess.
And just to make sure before you go implementing it,
you can search the stock tickers
in which you're interested.
So if you need Apple, you get Apple.
If you need NASDAQ, you can use this API
to pull in this stock market data
to create an application like I just showed you
or anything else that suits your fancy
when it comes to stock market data.
The next project is using the Spoonacular API,
which allows you to access over 365,000 recipes
and 86,000 food products.
I wanted to mention this one
because we talked about cooking lasagna earlier
using a recipe, so it kind of fit the theme.
And a cool thing about this API in particular
is that it has all special diets and intolerances.
So if the recipe is vegan, vegetarian, paleo,
yada, yada, yada, it has that information
and automatically analyze the recipes
to check ingredients for that and for allergens.
Nutritional information, so on and so forth.
And one really cool web application idea
would be basically this right here.
I mean, you can plan your meals and whatever,
but imagine if you had a recipe
and you could automatically generate a grocery list
based on the food that you need to create that recipe.
Well, this API allows you to do that,
but also that would just be a cool idea
for a web application.
And another one is Weatherstack.
Yes, Weatherstack, this one is also
under the umbrella of API Layer,
and it is a real-time weather API,
historical weather API, and weather forecast API.
And you can do anything.
This is a very common project to pull in weather data
and print out all of the real-time historical
and weather forecasts.
Look at this library of APIs,
see what you find interesting
that you can build something fun with,
and then go with that.
Don't build something boring.
Build something that you would genuinely enjoy
and just kind of scroll through here
and see what you'd like.
So that's the intermediate project.
And if you're worried about what tech stack
and frameworks to use, do a little bit of research.
I would recommend maybe MernStack
if you have no preference,
just because there's a lot of information out there
for when you get stuck to reference.
And there's also something else
that I would like to point out,
and that is the fact of recommended tool chains for React.
So if you're creating a new single-page application,
you can use Create React App,
or for a server-rendered website with Node.js,
you can try Next.js,
or a static content-oriented website,
you can try Gatsby.
I'm gonna focus on Create React App
because it's just a new single-page app.
The cool thing about it is the simple fact
that you do not have to worry
about the file structure and the boilerplate.
It generates all of that for you,
so you are sitting there in your IDE,
or text editor, ready to code.
You're taking the path of least resistance
so you can focus on the topic at hand.
It's also another reason why you're using an API,
so you don't have to worry about all the data.
Here, you don't have to worry about all the file structure.
You just worry about programming.
That's it.
Now let's talk about the advanced project.
The advanced project that I recommend
that will absolutely help you
get a software development job
is some sort of management system.
Now, there are varying different types
of management systems.
There's a content management system,
a library management system,
a bank management system.
There's also one that people recommend,
a healthcare management system,
but I couldn't think of anything more dreadful
than to create something related
to the healthcare industry.
That's your thing, that's your thing.
But a management system that suits your fancy,
that you find interesting.
The reason being is because you want
to create something large enough
where you basically have to implement
a microservice architecture
for it to actually turn out well
that has multiple different components,
especially considering the fact
that it's easy to picture these management systems
because whether you realize it or not,
you've probably used one.
So you know how it's structured.
And like I said in the beginning of this video,
you're going to have to break down
such a big project like this
into smaller, well, smaller stories,
and then the stories into smaller tasks.
So you'll obviously show your programming knowledge,
but you'll also show your knowledge
of microservices architecture or something similar.
And you'll also show your knowledge
of some software engineering fundamentals
where you'll probably throw this
in like a Kanban board or something along those lines
to keep it more organized
and basically work as if you were a software engineer
as a part of a team.
And if it were me,
I'm actually considering creating
a content management system.
I'm also considering implementing
an interactive code editor element
to that content management system.
What could that ever be used for?
I'm not sure.
Or I'm just going to outsource it
and then hire somebody else to do it.
I haven't yet to decide,
but I assume we'll find out by the end of the year.
Y'all may find out first quarter of 2023.
We'll see.
I hate making promises.
Anyway, some sort of management system
that I previously laid out,
because you will not only show the employer
about those elements that,
you know, microservices
and the software engineering fundamentals,
as well as your programming knowledge,
but you also strengthen all of those
so you truly understand it
so that you can actually talk about it in an interview
and show it off in a project.
And I did tell you that as we went up in skill level,
that I was going to be less and less specific
and less and less detailed about the particular project.
So that's it for this video.
I hope you found some value out of it.
Maybe some ideas were sparked in your head
on what project you need to build
in order to get to that next level of programming.
If so, leave a like on the video,
subscribe, you know, all the typical YouTuber crap,
and I'll see y'all in the next one.
