Advice for Beginner Coders

Learn from the best: Griffpatch!

Are You Ready to Become a Great Coder?

Do you want to be a good coder? Do you aspire to build large and highly-anticipated games that captivate players? Perhaps you dream of making thousands of dollars a month through your coding skills? If so, it's essential to start your journey somewhere small and manageable. I highly recommend beginning with Scratch, a friendly and accessible programming language designed specifically for newcomers.

dragging millions of move blocks
GIF image: a coding meme

One of the standout figures in the Scratch community is Griffpatch, who is renowned for creating some of the best Scratch projects ever seen. Not only does he produce fantastic content, but his tutorials are also crafted in a way that helps you master coding while enhancing your English skills. Learning from Griffpatch is like hitting two birds with one stone — improving your programming and language fluency at the same time!


Start with the most beginner-friendly tutorial series by Griffpatch: Code a Platformer Game! His tutorials are not only informative but also entertaining. His engaging teaching style and organized coding processes will keep you hooked and inspire you to learn more about programming.

Griffpatch's tutorial video
Figure: A Screenshot of Griffpatch's tutorial | Episode 1

In his own words, Griffpatch expresses his passion: "Hello fellow Scratchers, I'm Griffpatch and I love all kinds of Scratch projects, especially platformers, but until now I've not covered the traditional bread and butter of Scratch, the Classic Scratch Platformer. There may be no scrolling or complex lists here, but we have great expectations because we are laying solid foundations to build up something more like this! [...] There's a lot to see, from the solid platforming, to wall sliding. Scratch cat's feet matching the slope he is standing on, did you see that? Moving platforms, and lava, wall jumping and level navigation. Oh wow!" His enthusiasm is infectious, and it's clear he wants to share his knowledge with the next generation of coders.

Tips You Learn from This Tutorial

I encourage you to watch the tutorials, so I will not elaborate too much about these tips. Instead, let me provide a sneak peek into the invaluable insights you can gain:

Tip 1: Understand Game Loops

Have you ever wondered why when a sprite moves, and another sprite tries to reposition at that sprite, all in a forever loop, there's a perplexing glitch that causes them to desync? This is where game loops come into play! Understanding how game loops function can save you from these common pitfalls and help you create smoother gameplay experiences. A solid grasp of game loops will allow you to control the flow of your game, ensuring that all actions and animations are executed in a harmonious sequence. This foundational knowledge is critical as you advance in your coding journey, especially in game development. Game loops are mentioned in Episode 2 of the Griffpatch series mentioned above.

                    
when flag clicked
//start game loop
forever
//Each iteration lasts 1/30 second
broadcast(Frame tick p1 v)
//Frame tick at position 1. Position matters
broadcast(Frame tick p2 v)
//This only runs after p1
broadcast(Frame tick p3 v)
//Only after this the player will see changes
when I receive (Frame tick p1 v)
//at Sprite1
go to (mouse pointer v)
//Do this first
when I receive (Frame tick p2 v)
//at Sprite2
go to (Sprite1 v)
//Only do this AFTER, not FIRST
                    
                
some scratch coding blocks
Scratch Blocks and Code for an Example Game loop

Tip 2: Manage Variables Like a Pro

Variables are essential in programming as they store data that can change throughout your game. Learning to manage variables effectively is crucial for creating dynamic and engaging gameplay. Here are some key points to remember:

Tip 3: Manage the Code Flow

Managing the flow of your code is crucial for ensuring that your game runs smoothly and efficiently. It involves organizing your code to handle different tasks and events in a logical order. Effective code flow management helps in avoiding issues like bugs and performance problems. Here are a few tips to manage the code flow:

Effective management of code flow will not only improve the performance of your game but also make your codebase easier to maintain and expand. Keep practicing and refining your code management skills, as they are essential for becoming a proficient coder!

Tip 4: Catch Bugs and Remove Them

Bugs are an inevitable part of programming, and learning how to catch and fix them is essential for becoming a proficient coder. Here are some strategies to help you effectively debug your projects:

Developing strong debugging skills will not only make your coding process smoother but also increase your confidence in tackling complex projects. Remember, every coder faces bugs — what matters is how you handle them! Embrace the challenge, and don't be discouraged by setbacks.

coding a clicker game: unbugged vs bugged
GIF image: When you see bugs in programming

If I'm Familiar Enough with Scratch, Where Do I Need to Go Next?

Once you feel comfortable with Scratch and want to take your coding skills to the next level, it's time to explore other programming languages that will broaden your horizons and deepen your knowledge. A great starting point is Python. Its syntax is user-friendly, making it ideal for beginners. Python's versatility allows you to engage in web development, data analysis, artificial intelligence, and much more!

After mastering Python, consider diving into JavaScript for web development. With JavaScript, you can create interactive websites that respond to user actions and provide dynamic content. Alternatively, if you're interested in building mobile applications, Java is a solid choice due to its extensive use in Android app development.

For those looking to work closer to the hardware level, learning C or C++ can open doors to systems programming and game development. Both languages offer control over system resources, making them powerful tools for performance-critical applications. If you're feeling adventurous, why not try creating websites using HTML? Learning HTML and CSS will allow you to structure and style your web pages, providing a foundational understanding of web design.

The options are endless, and each language has its unique strengths! The key is to stay curious, keep exploring, and most importantly, have fun along the way. Your coding journey is just beginning, and the skills you build now will pave the way for countless exciting opportunities in the future.