Skip to content

BlazQ is a series of live coding events helping beginners get a free, comprehensive, and fun way into software development. It's an excellent way to learn coding with C# and .NET and discover if you are serious about being a developer.

License

Notifications You must be signed in to change notification settings

just-the-benno/BlazQ

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

52 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

BlazQ

BlazQ is a series of live coding events helping beginners get a free, comprehensive, and fun way into software development. It's an excellent way to learn coding with C# and .NET and discover if you are serious about being a developer. This course develops a not so serious quiz game that evolves from a single local player to couch coop and, finally, a real-time online multiplayer. We leverage modern web technologies like Blazor and compelling backend technologies combined with the Azure cloud's power to create a learning experience that let you see and feel, that even complicated task like a multiplayer game is in the reach of a beginner.

Meet Blazorly, the quiz master

Learn coding with C# and .NET

Software development is about changing the world positively. As a developer, we are gifted to improve lives. It might be such a small change as reducing the number of clicks it takes to complete an operation, removing the burden to execute tedious manual tasks, or empowering new business and lifestyle models. Everyone should feel this empowerment. Learning to code is the way to accomplish it.

Unfortunately, software development, though it is a lot of fun, is complex. It is not easy to learn and even more challenging to master. BlazQ is designed to lower the burden of the first steps to become a programmer. The latest features and improvements in .NET and C# opens a window for a new path into modern software development. We develop the service with the same tools and languages we are using to build a modern, feature-rich web application. Through the entire series, we will use the same tools and language. That's not only amazing; it reduces the things we need to know. So, with the same knowledge (time input), we can create vast more outputs. That was never a better time to get started.

I put my experience as a coding teacher and my passion as a coding enthusiast into it. You will see that we are working together, episode by episode, towards an application that you can use to have fun with family and friends. After completing each episode, you have an increment that others can try and enjoy.

Topics

We will cover many different aspects and technologies during this course, but we will never leave the .NET and C# realm. Keep in mind that BlazQ is intentionally an introduction and not a deep dive into any of these technologies. However, these technologies give you a good foundation on how modern applications work.

  • Web technologies (HTML and CSS)
  • NET 5 (.NET Core)
  • C# and object-orientated programming
  • Client-Server architecutre
  • HTTP and REST APIs
  • Persistent Data Storage (Database, files, etc.)
  • Bidirectional communication (WebSockets)

Outcome

After finishing (listening and practicing), you will have a clear vision of what software development is can assets if a software developer is a career opportunity for yourself. Besides, equipped with the foundation, you can proudly claim that the first step is done. The next step is to go deeper (and broader) into any of the mentioned patterns and technologies. Your journey is far from over. But more importantly, you see what it mean to be a software dev, and you can go and make the world a better place. 😉

Live Coding

Unlike other formats, live coding - as the name suggested - is an event streamed in real-time. It gives you - the audience - unique ways to interact, asking questions, and resolving issues while participating. These improvements accelerate the learning outcome. Besides, it supports us in creating a community spirit, which fosters learning even more.

BlazQ is streamed via Twitch and Youtube on every Thursday at 8 pm PST. The first episodes air on 21st January 2021.

Recordings

I'd think the most value regarding the learning outcome is in the interactive sessions. However, not everyone can attend every time, and sometimes rehearing the same things again supports understanding. A couple of hours (at most a day) after the sessions has finished, you find the episodes uploaded on the Youtube channel.

List of episodes

Episodes will air on every Thursday at 8 pm PST.

  1. (Intro) The basics: Prepare the development environment and write your first logic
  2. Building the shell of BlazQ: Start your first project and build the foundation for BlazQ single player mode
  3. Dressing up: Implementing the design
  4. Couch Coop: Adding multiple players that can play locally
  5. Uprising of the Jokers: Add more elements to the game
  6. Go live: Finishing touches and deploy the application so that everyone in the world can use it
  7. Be seated in the lobby: First step in the multiplayer domain
  8. BlazQ goes Multiplayer: Adding the mechanics for the multiplayer option

Upcoming episodes

It is finished so far. Thanks for beeing with me there.

Feedback driven

Sometimes, if your head is already in the space, you forget what it is to be a beginner. What concept you haven't already understood, and how it is to feel overwhelmed by all the input. Without your feedback, also in the session, we all miss a learning opportunity. I value and need your feedback to improve the learning experience. At the end of each episode, there is a link to a feedback form. I strongly encourage you to take the time (less than 5 minutes) to answer the questions. Your feedback will make a difference, and I'll be transparent about it. At the beginning of each episode, I'll show you the impact of the last surveys around some other statistics and numbers. You can find the link to the feedback form at each episode's readme file.

About the game

BlazQ is a quiz game. The questions are created by yourself. Hence, you can be very creative or tricky questions. It is up to you. We want to make a fun game by adding some elements of surprise. So, we tweak around some of the classical game mechanics like implementing an answering streak that gives you a bonus when asking correctly or can lead to a devastating loss if you answer wrong. Jokers are another way to shake up the flow by forcing others to answers or challenging your luck.

The game is not intended to be serious. It should make you smile and give you a good feeling when others are playing and enjoying it. The purpose of the game is to support us in learning the matter. There is no benefit in creating just another boring game.

A sketch highlighting some features of BlazQ

What it takes to be a software developer

You don't need to have prior knowledge to understanding and enjoying this course. I'll cover the knowledge part. However, other factors greatly influence your experience. Factors that are up to you. I wouldn't go as far as to proclaim that if you are missing one of them, there is no way you will enjoy it. But, it will significantly reduce the likelihood of a successful learning outcome.

A growing mindset

The theory of a growing (versus a fixed mindset) by Carol Dweck is, in my view, one of the most influential publications in education in the recent two decades. In a nutshell: The learning outcome largely depends on the attitude of the learners. If a learner believes that not talent but dedication and practice lead to a learning outcome, this person is more likely to achieve it than someone who thinks talents are most crucial.

So, the first step towards becoming a software developer is accepting that it is not a magic path, there is no "talent" or way of thinking needed to accomplish it, but there is a learning path. And learning takes time.

Commitment and focus

Without a strong commitment, there is no point in trying to learn new things. It might sound a little harsh, but understanding is a result of an invested time and practice. You can't become a sophisticated artist or musician by investing only 5 minutes a week and losing focus every time a new input tries to get the attention. Prioritizing is most often not deciding what to do, but what you better don't jump on.

Discipline

Learning in general and coding in particular, are not easy tasks. Learn coding takes time, practice, and discipline. Don't stop if it gets complicated. Asks questions if you are stuck. No only find the time, but take the time to practice. Discipline is somewhat related to commitment. Discipline means you need to have a perfect excuse for why you don't practice.

Appetit for challenging your mind constantly

Becoming a .NET and C# developer - it is valid for all other languages - is about finding obstacles every day. You will discover, every day, that you are still missing some piece of information or understanding. As a beginner, it happens more often but also senior guy, each day, your knowledge is growing. If you don't like this type of challenge, the software developer domain is definitely not the right thing for you. You could still become a pretty good developer, but you woulnd't enjoy it as much as you could.

Learning values

BlazQ is a learning space open for everyone. Everyone should feel heard, understood, and valued. Every participant agrees on the following learning values to create such an inclusive space. You should keep these values in mind if you are asking questions and participate in the discussion. We revisit the learning goals each episode to keep them fresh in our minds.

There are no dumb questions

Never hesitate to ask questions. If you are stuck on a topic, you fear what others see as trivial and don't ask, you can't grow. Besides, you have taken a learning opportunity away from each other. There is no point in holding back questions. Even if it is an obvious question, again, we are here to help.

I'm not free of error

I'm a learner as well and a human being. I'll make errors during the sessions. In this documentation, the source code, there will be errors for sure. However, without your feedback, I can't improve myself and the learning material for others. If you find anything, you want to correct, create an issue or a pull request.

It's about learning

BlazQ is designed for learning. That gives us a lot of space. We don't need to think about all the details of a real application. And sometimes we won't even bother. BlazQ is not production-ready. It has its flaws when it comes to certain aspects. Besides, we don't have any users or any commercial interest we need to serve, and we should keep focused on the learning.

Respect

Without respecting each other, we can't learn from each other. Everyone is on a different, unique path and has maybe a different journey. We appreciate this but not using attributes like trivial or obvious to answers or comments. What might be evident for you doens't imply it is easy for everyone else. If you are reaching out and answer questions, try to step only a half step in front of the questioner and answer from this point.

Questions, Discussions, and Issues

Github is the central place for discussion. Everyone with an account can create a new discussion. Use discussions if you have a question, a comment, or want to discuss something. I'll answer everyone and promptly. Besides, if you have questions, there is a slot at the start of each episode to asks your questions. If it isn't enough, we will find another time just for questions.

If you find errors in these pages, please, feel free to create an issue or go ahead with a pull request.

About

BlazQ is a series of live coding events helping beginners get a free, comprehensive, and fun way into software development. It's an excellent way to learn coding with C# and .NET and discover if you are serious about being a developer.

Topics

Resources

License

Stars

Watchers

Forks