Discuss Scratch

JsnPrkr
Scratcher
100+ posts

Tips for Getting Started with a Project

Hi Guys. Welcome to a very fun and rewarding activity. I've been at this programming thing for a while and would like to offer some tips for those who are just getting started. (I'm an engineer and have been programming for almost 40 years.)

First, go through the Step-By-Step Intro in the editor (click “Tips” in the top left above the cat). This will introduce you to the editor and some of the basic programming pieces (called “function blocks”).

As you go through the intro, you will probably come up with simple ideas of what you might be able to do, like make something move or change color. Go ahead and do these simple exercises. Being able to click on a block and see what it does makes it easy to explore and experiment. It's also fun to work on your own ideas!

The biggest thing to know is that it's okay to be a beginner. Everyone starts out as a beginner. You'll find some people on here who have done some very clever things and created advanced projects. They were beginners at some point and just kept doing little things and learning the bits and pieces that helped them do some very cool stuff after a while. Most of them have been programming for many years. Remember that you have to learn to crawl, then walk, then run, then you can learn how to jump over things while you run.

Remember when you were learning the alphabet? Well, how long ago was it? Programming is like that. Learn the alphabet, learn how to use a crayon or pencil, then learn to write a letter (the alphabet kind, not the ones you put in the mail), then learn to read a word, then learn to write a word, then learn to read sentences, then learn how to write sentences.

You'll also find people here who are full of suggestions about how you should be programming your project. Sometimes they even offer to do programming for you. This is nice, but the reason Scratch is here is so that YOU can practice programming. You won't learn if other people do the work, so keep your questions simple and work on one thing at a time. Try to avoid asking for help on more than one thing at a time.

For example, ask “How can I make a sprite move with the arrow keys?”. Avoid questions like “How do I create a project where a sprite has to move across the screen and jump over stuff to get there?”

Once you're working on larger projects, break the project down so you're not trying to swallow the whole elephant at once. Start with something simple, program that, then go to the next thing you need. Programming requires you to make many little steps happen. There aren't usually quick and simple solutions to things like “make the ball roll down the hill”. You have to break them down into…
(1) Make the ball spin in one place.
(2) Make the ball move to the right while it's spinning.
(3) Make the ball move in ANY desired direction while it's spinning.
(4) Make the ball spin clockwise or counter-clockwise, depending on what direction it's rolling.
(5) Make the speed of the spinning and the moving look right so it doesn't look like it's skidding or sliding.

(FIVE steps later and we're finally rolling.) Now maybe you can…

(6) Make the ball bounce while it rolls in a particular direction.
(7) Make the ball bounce while it rolls down a hill that's curved instead of just being a straight line.

As you can see, the project is done in simple steps that build on one another. There are also smaller steps that make each of the steps above work.

Sometimes it can take a while just to figure out how to make the ball!

The great thing about programming is that you can add to your program as you go and adjust things after the basic parts are working. The trick is to start simple and build from there. Do this a few times and you'll have an idea of how to build a good foundation for the bells and whistles that come after the basic functions are in place.

For a maze project, for example, start with making the sprite move to the right and then make him move to the left. Then add movement up and down. Once you're comfortable with how that works, figure out how to discover when he hits a wall. Then figure out how to play a sound and make the sound when he touches something. Then maybe make the sprite turn in the direction he's moving. The idea is to explore programming and create something yourself. You will be much happier with your project if you do it yourself. And your project will be VERY COOL to the only person who really matters: YOU!

Every step is a journey and an accomplishment. It's okay to enjoy each step. In fact, enjoying most of the steps is the only way you'll have enough fun to make it all the way through to a finished project.

REMEMBER THIS: Every step that's completed is cool (like this one). Some of the steps are REALLY COOL like this one.

Don't worry about what anyone else might think about your project. Keep working and getting better and pretty soon you will be creating cool stuff. Don't worry, people will notice.

To show you how this works, here's a plan for making a maze:
1. Make the sprite move. If you get stuck, ask ONLY about how to do this.
2. Detect when the sprite hits another object. (If stuck, ask only about how to do THIS.)
3. Play a sound when the sprite touches another object. (If stuck…well, you know what to do.)
4. Draw two lines to make a hallway and see if you can move the sprite from one end to the other. (You get the idea.)
5. Put a corner at the end of the hallway and see if you can make the sprite move around the corner. (Ditto.)

Notice that drawing the maze isn't even on the list yet.

We have cars, trucks, and trains today because someone first figured out how to make a good wheel. They didn't get too wrapped up in whether it would do anything besides roll. Once the wheel rolled well, the next step was to figure out how to get it to carry something (like a wheelbarrow does). Wagons and cars came much, much later in the process.

I hope this is useful to you.

Have fun and Scratch on!

-Jason [Removed - please avoid posting personal information. First names are OK, but full names we like to avoid.]

Last edited by Harakou (Jan. 4, 2014 23:09:45)


Budding Scratchologist

Game: Pogo The Penguin
Gadgets: Drop-Down Menu, FlexibleSlider Control, Flexible Keyboard at UI Control Studio
Studio: The Dynamic A.I. Studio (Submit your A.I. project for inclusion!)

PLEASE CONSIDER… Handing out a quick solution on the first pass is a VERY EFFECTIVE way to sabotage a learning opportunity. Telling someone “it's easy” is a good way, too.
IceCube291
Scratcher
100+ posts

Tips for Getting Started with a Project

got some really good points their
JsnPrkr
Scratcher
100+ posts

Tips for Getting Started with a Project

Thanks!

Budding Scratchologist

Game: Pogo The Penguin
Gadgets: Drop-Down Menu, FlexibleSlider Control, Flexible Keyboard at UI Control Studio
Studio: The Dynamic A.I. Studio (Submit your A.I. project for inclusion!)

PLEASE CONSIDER… Handing out a quick solution on the first pass is a VERY EFFECTIVE way to sabotage a learning opportunity. Telling someone “it's easy” is a good way, too.
JsnPrkr
Scratcher
100+ posts

Tips for Getting Started with a Project

Also…At some point, you'll want to read THIS WIKI ARTICLE on how to find and fix bugs in your project. This will help you explain what's happening with your project when you ask for help. It will also help you post your results after you try someone's suggestion.

And you just might find the solution yourself !!

Last edited by JsnPrkr (Jan. 6, 2014 05:50:09)


Budding Scratchologist

Game: Pogo The Penguin
Gadgets: Drop-Down Menu, FlexibleSlider Control, Flexible Keyboard at UI Control Studio
Studio: The Dynamic A.I. Studio (Submit your A.I. project for inclusion!)

PLEASE CONSIDER… Handing out a quick solution on the first pass is a VERY EFFECTIVE way to sabotage a learning opportunity. Telling someone “it's easy” is a good way, too.
orchardjoan
New to Scratch
4 posts

Tips for Getting Started with a Project

thanks. great encouragement and points. I need to just plunge in:

Powered by DjangoBB