/pyp-welcome-guide

rmotr.com welcome guide for new students of our "Advanced Python Programming" course

Creative Commons Zero v1.0 UniversalCC0-1.0

Welcome Guide

Welcome to rmotr.com! We’re going to start an exciting journey together. This document is a guide for new students to help them get started with the course. Although it's intended for new students, it might also be useful if you're considering taking our course and you're not really sure about how it works. In this document we'll outline the basic methodology we follow, we'll explain how to get help, the course program, among other things.

The methodology and contents we follow is the result of a long time of experience. More than a hundred students have completed our courses and we have 100% rate of satisfaction. Read along these lines and trust us in the methodology we follow. If you put the work needed we'll ensure you a great experience.

It's important to mention that this is an open document. You can ask your own questions by submitting a new issue. Also, if you find something that you want to change feel free to fork this repo and submit a pull request.

Table of contents

Overview

Our Advanced Python Programming course is intended for experience developers who want to get up to speed with Python or relatively new programmers with some Python experience who want to learn the advanced features of the language. Basically:

You want to cut to the chase and learn Python without all the noise in regular courses.

Methodology

This is an 11-hour per week course. You have real class with teachers who will explain the different topics and concepts. There's also mentor-guided group projects in which you'll have to put in practice all the skills learned in class. This is a highly practical course, you'll spend most of your time coding. Remember:

You don't learn how to play basketball by watching the NBA. You have to go out and practice. In the same way, you learn to code by sitting and coding.

We'll break up the methodology in different pieces. The process is basically: Individual work -> class -> group projects -> reviews. We'll explain all of them separately.

Pre readings and individual work

We all have different learning processes. It might take you 10 minutes to understand something, while it takes an hour for me. You might already know how to use decorators, but they might be completely new to me. Sometimes you have to sit and try to learn something by yourself, digest it with your own methods. Maybe you learn better by sitting all night, and someone else might do it in the mornings. We're all different. That's why we understand that there's an individual process that we all need to follow in order to learn. It basically works in the following way:

The first day of the week we'll give you the topics and contents that will be covered during that week. We'll give you some material for you to read and some assignments to do in order to put that learning in practice. You should read the material and complete the individual assignments before class. That way when we sit on class the contents we explore won't sound new to you. Maybe you haven't understood them completely, but you already have an idea of what they're about and we can see them in detail during class. Plus, there are some topics that are simple enough that shouldn't take real class time; you can read and learn them by yourself.

The important takeoff here is that we give you exactly what you have to read and code. Today's main issue with learning online, is that there's too much information. It's hard to figure out by yourself what to read and what not to read. We give you exactly the required material you need. You just have to sit and do your part, while we do ours.

Class

The day the class arrives will find you with the content read and digested. Probably you have a lot of questions and there are things that you just didn't understand. But that's fine! That's the idea of it. Now we can sit in class and the teacher will go through each topic explaining it. The teacher will also put her own thoughts and experience in the class. She won't just explain how to use a list, but she'll also tell you when is it better to use a list or a set, or how you can serialize them, etc. Remember that our teachers are professional developers that are still working as programmers on a daily basis.

After the class is done you should have a pretty good grasp on the contents of the week. Now it's time to put that in practice. Enter group projects.

Group projects

Again, the only way to learn to code is by coding. We need to put all the individual concepts we've learned (through the readings and classes) into practice. The best way to do that, is by coding real life projects with your own group. There are 3 meetings per week to do group projects. Each of them work separately, in each meeting you'll work on a new project. You must attend all of them; your teammates will be relying on you, and you'll be relying on your teammates, so it's really important that you support each other.

The group project meetings have fixed days, for example, they're happening Monday, Tuesdays and Thursdays from 6PM to 9PM (they always last 3 hours). You can choose whatever communication method you want to do them, although our recommendation is to use Google Hangouts. Once you're all gathered in the hangout you'll ask a mentor to join the Hangout in order to receive the instructions about the project you'll need to build. The mentor will hand you the project instructions and will answer any questions you might have. From that point on the mentor will exit the call and you will start coding. If you have any question, you can require the mentor to join your call at any time.

Along with the group project, we'll give you the deadline when you're supposed to hand on the finished project. It's usually the following day although it might vary. It's a hard deadline and your should turn in whatever you have, even if it's unfinished. The way to turn in your project is through Github's pull requests. You'll fork the repo with the project assignment and once you've completed it you'll commit, push and open a pull request.

Once you turn in your project the review process starts...

Review process

Once every group have turned in their projects, we will assign teams to do the code reviews. Your group will be in charge of reviewing some other group's project and other people will review yours. There's also a deadline to turn in the reviews. The reviews will happen through Github Pull Requests. You'll be able to leave comments in the code.

Summary

The process is way simpler than it sounds. We'll give you a summary of this methodology during the first class and we have Google Calendar events to support the methodology. You'll know exactly when you have to meet for group work, when you have to turn in your assignments or your reviews. Remember, if you have any question, you can always ask.

Where to get help

rmotr.com is all about human interaction and people helping each other. There's always a mentor available to help. There's always another student cranking at any given time eager to help. The question is: how do I ask for help? Well, the answer is simple: slack. In slack we have different channels that's purpose is for you to get help.

mentors-help

Just post in the #mentors-help channel your question. You can use the @channel notification to notify all mentors in there. Once you're done asking for help, you can leave the channel if you don't want to get annyoing notifications.

support-hangouts

During the week there are support hangouts planned. They are just hangout sessions where there's a mentor online in a public Hangout. You can join and ask whatever question you have. You can also join to say hello 👋