Python in a month.

A Guide for Absolute Beginners.
(Note: these are tips from an Indian author, but they seem useful. Feel free to add your own in the comments.)

Python in a month.

A month is a lot of time. If you dedicate 6-7 hours each day to learning, you can achieve a lot.

Goal for the month:

  • Familiarize yourself with basic concepts (variable, condition, list, loop, function)
  • Master over 30 programming problems through practice
  • Build two projects to apply new knowledge in practice
  • Get acquainted with at least two frameworks
  • Start working with an IDE (development environment), Github, hosting, services, etc.

This will make you a junior Python developer.

Now the plan by weeks.

Python in a month.

This article is translated with support from EDISON Software, which gives practical advice to juniors, as well as designs software and writes specifications in both Russian and English.

Week 1: Get to know Python

Understand how everything works in Python. Check as many features as possible.

  • Day 1: 4 fundamental concepts (4 hours): input, output, variable, conditions
  • Day 2: 4 fundamental concepts (5 hours): list, for loop, while loop, function, module imports
  • Day 3: Simple programming problems (5 hours): swap two variables, convert Celsius to Fahrenheit, sum all digits in a number, check if a number is prime, generate a random number, remove duplicates from a list
  • Day 4: Intermediate programming problems (6 hours): reverse a string (check for palindrome), find the greatest common divisor, merge two sorted arrays, write a number guessing game, calculate age, etc.
  • Day 5: Data structures (6 hours): stack, queue, dictionary, tuples, linked list
  • Day 6: OOP — Object-Oriented Programming (6 hours): object, class, method and constructor, OOP inheritance
  • Day 7: Algorithms (6 hours): search (linear and binary), sorting (bubble sort, selection sort), recursive function (factorial, Fibonacci sequence), time complexity of algorithms (linear, quadratic, constant)

Do not install Python:

I know it sounds contradictory. But trust me. I know a lot of people who lost all desire to learn anything after failing to install the development environment or software. I recommend diving right into an Android application like Programming Hero or visit the website Repl and start exploring the language. Don’t set yourself the task of installing Python right away if you are not very tech-savvy.

Week Two: Start Software Development (Build a Project)

Gain software development experience. Try to use everything you’ve learned to create a real project.

  • Day 1: Get Familiar with the Development Environment (5 hours): The development environment is an interactive space where you will write code for major projects. You should be well-acquainted with at least one development environment. I recommend starting with VS Code install Python extension or Jupyter Notebook
  • Day 2: GitHub (6 hours): Learn about Github, create a repository. Try to commit, push code, calculate the difference between any two Git trees. Also, understand branching, merging, and pull requests.
  • Day 3: First Project: Simple Calculator (4 hours): Familiarize yourself with Tkinter. Create a simple calculator.
  • Days 4, 5, 6: Personal Project (5 hours each day): Choose one of the projects and start working on it. If you have no project ideas, check this list: a few good projects in Python
  • Day 7: Hosting (5 hours): Understand the server and hosting to host your project. Set up Heroku and deploy your application’s build.

Why a project:

Simply following the steps in a lesson or video won’t develop your ability to think. You need to apply your knowledge in a project. Once you exhaust all your efforts searching for an answer, you'll remember it.

Week Three: Become Proficient as a Programmer

Your goal for Week 3 is to gain an overall understanding of the software development process. You don’t need to refine your skills. But you should know some basics as they will influence your daily work.

  • Day 1: Basics of Databases (6 hours): Basic SQL queries (Create Table, Select, Where, Update), SQL Functions (Avg, Max, Count), relational databases (Normalization), Inner Join, Outer Join, etc.
  • Day 2: Using Databases in Python (5 hours): Use a database framework (SQLite or Pandas), connect to the database, create and add data to multiple tables, read data from the tables.
  • Day 3: API (5 hours): Learn how to call APIs, brush up on JSON, microservices, REST APIs.
  • Day 4: Numpy (4 hours): Get acquainted with Numpy and practice using it on. the first 30 exercises
  • Day 5, 6: Website Portfolio (5 hours each day): Learn Django, create a website portfolio using Django, also check out the Flask framework
  • Day 7: Unit Testing, Logging, Debugging (4 hours): Get familiar with unit tests (PyTest), learn to work with logs and review them, and use breakpoints

Real Time Scale (Secret):

If you are passionate about this subject and dedicate yourself entirely, you can accomplish everything in a month.

  • Learn Python consistently. Start at 8 AM and study until 5 PM. Take a lunch break and snacks (for a total of one hour)
  • At 8 AM, write a list of things you will study today. After that, take an hour to recall and practice everything you learned yesterday.
  • From 9 AM to 12 PM, study and practice less. After lunch, pick up the pace. If you get stuck on a problem, look for solutions online.
  • Spend 4-5 hours on learning daily and 2-3 hours on practice. (You can take one day off a week at most)
  • Your friends will think you are crazy. Don’t disappoint them—maintain the image.

If you work full-time or study at university, you will need more time. As a student, it took me 8 months to complete everything on the list. Now, I work as a senior developer. My wife, who works at the Federal Reserve, took six months to complete all tasks on the list. It doesn't matter how long it takes. Just finish the list.

Week Four: Take Seriously the Goal of Getting a Job (Internship)

Your goal for the fourth week is to seriously consider getting hired. Even if you don’t want to get a job right now, you will learn a lot during the interview process.

  • Day 1: Resume (5 hours): Create a one-page resume. At the top of the resume, include a brief overview of your skills. Be sure to add a list of your projects with links to your GitHub.
  • Day 2: Website Portfolio (6 hours): Write some blog posts. Add them to the previous website portfolio you created.
  • Day 3: LinkedIn Profile (4 hours): Create a LinkedIn profile. Transfer everything from your resume to LinkedIn.
  • Day 4: Interview Preparation (7 hours): Google the most frequently asked questions in interviews. Practice solving 10 programming problems commonly asked in interviews. Do this on paper. Interview questions can be found on sites like Glassdoor and Careercup.
  • Day 5: Networking (~ hours): Get out of the closet. Start attending meetups and job fairs. Meet recruiters and other developers.
  • Day 6: Just apply for jobs (~ hours): Google “Python jobs,” check what openings are available on LinkedIn and local job sites. Choose 3 positions to apply for. Tailor your resume to each of them. Identify 2-3 requirements from the job listings that you are not familiar with. Spend the next 3-4 days learning about them.
  • Day 7: Learn from rejections (~ hours): Every time you receive a rejection, identify 2 things you need to know to get the job. Then, spend 4-5 days honing your skills in these areas. This way, after each rejection, you will improve as a developer.

Readiness for work:

The truth is, you will never be 100% ready for work. All you need is to master 1-2 things very well. And familiarize yourself with other questions to overcome the interview barrier. Once you land a job, you will learn a lot on the job.

Enjoy the process:

Learning is a process. There will certainly be difficulties along your way. The more challenges you face, the better you will become as a developer.

If you can complete the list in 28 days, you're doing great. But even if you achieve 60-70% of the list, you will develop the necessary qualities and skills. They will help you become a programmer.

Where to learn:

If you still don’t know where to start,

I wish you an exciting journey. The future is in your hands.

Translation: Diana Sheremyeva

Source: habr.com

Buy reliable website hosting with DDoS protection, VPS VDS servers đŸ”„ Buy reliable website hosting with DDoS protection, VPS VDS servers | ProHoster