Python per month

A guide for absolute tea newbies.
(Note per.: These are tips from an Indian author, but they seem to be sensible. Supplement in the comments.)

Python per month

A month is a lot of time. If you spend 6-7 hours on training every day, you can do a lot.

Goal for the month:

  • Familiarize yourself with the basic concepts (variable, condition, list, loop, function)
  • Master more than 30 programming problems in practice
  • Collect two projects to put new knowledge into practice
  • Familiarize yourself with at least two frameworks
  • Get started with IDE (development environment), Github, hosting, services, etc.

This is how you become a junior Python developer (junior).

Now the plan for the weeks.

Python per month

The article was translated with the support of EDISON Software, which gives good advice to juniorsand designs software and writes technical specifications in Russian and English.

Week One: Get to Know Python

Understand how things work in Python. Check out as many things as possible.

  • Day 1: 4 main concepts (4 hours): input, output, variable, conditions
  • Day 2: 4 main concepts (5 hours): list, for loop, while loop, function, module import
  • Day 3: Simple programming problems (5 hours): swap two variables, convert Celsius to Fahrenheit, calculate the sum of all digits in a number, check if a number is prime, generate a random number, remove a duplicate from a list
  • Day 4: Intermediate programming problems (6 hours): reverse a string (check for a palindrome), calculate 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: Algorithm (6 hours): search (linear and binary), sorting (bubble, selection), recursive function (factorial, Fibonacci series), time complexity of algorithms (linear, quadratic, constant)

Don't install Python:

I understand it sounds contradictory. But trust me. I know a lot of people who have lost all desire to learn anything after they were unable to install a development environment or software. I advise you to immediately get into the android application like Programming Hero or on the site Rep and start exploring the language. Don't set yourself the task of installing Python first unless you're very tech-savvy.

Second week: start software development (build project)

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

  • Day 1: Familiarize yourself with the development environment (5 hours): The development environment is an interactive environment where you will write code for the largest projects. You must be familiar with at least one development environment. I recommend starting with VS code install Python extension or Jupyter notebook
  • Day 2: Github (6 hours): Explore Github, create a repository. Try to commit, push the code, calculate the difference between any two Git trees. Also deal with branching, merging and pull requests.
  • Day 3: First Project: Simple Calculator (4 hours): Check out Tkinter. Create a simple calculator.
  • Day 4, 5, 6: Personal project (5 hours each day): Select one of the projects and start working on it. If you're out of ideas for a project, check out this list: some good python projects
  • Day 7: Hosting (5 hours): Understand the server and hosting to host your project. Set up Heroku and deploy your app build.

Why the project:

Just blindly following the steps in a lesson or video will not develop your ability to think. You must apply your knowledge to the project. Once you put all your energy into finding the answer, you will remember it.

Week three: get comfortable as a programmer

Your goal in week 3 is to gain a general understanding of the software development process. You won't need to hone your skills. But you need to know some basics as they will affect your day to day work.

  • Day 1: Database Basics (6 hours): Basic SQL Query (Create Table, Select, Where, Update), SQL Function (Avg, Max, Count), Relational Database (Normalization), Inner Join, Outer Join, etc.
  • Day 2: Use databases in Python (5 hours): Use a database framework (SQLite or Pandas), connect to a database, create and add data to multiple tables, read data from tables
  • Day 3: API (5 hours): Learn to call API, learn JSON, microservices, REST API
  • Day 4: Numpy (4 hours): Check out Numpy and practice using it on first 30 exercises
  • Day 5, 6: Website Portfolio (5 hours each day): Learn Django, create a website portfolio with Django, also take a look at the Flask framework
  • Day 7: Unit tests, logs, debugging (4 hours): Understand unit tests (PyTest), learn how to work with logs and check them, and use breakpoints

Real Time (Secret):

If you are sick of this topic and devote yourself to it, you can do everything in a month.

  • Learn Python all the time. Start at 8am and work until 5pm. Take a break for lunch and snacks (an hour in total)
  • At 8 am, make a list of the things you will study today. Then take an hour to remember and put into practice everything that you learned yesterday.
  • From 9 am to 12 noon, study and practice less. After lunch, pick up the pace. If you are stuck on a problem, search the web for a solution.
  • Every day, spend 4-5 hours learning and 2-3 hours practicing. (Maximum you can take one day off per week)
  • Your friends will think you are crazy. Do not disappoint them - match the image.

If you work full time or study at university, then you will need more time. As a student, it took me 8 months to do everything on the list. Now I work as a senior developer (senior). It took my wife, who works at the US central bank, six months to complete all the tasks on the list. It doesn't matter how long it takes. Finish the list.

Week Four: Get serious about getting a job (intern)

Your goal for the fourth week is to seriously think about getting a job. Even if you don't want to get a job right now, you'll learn a lot from the interview process.

  • Day 1: Recap (5 hours): Create a one-page resume. At the top of your resume, put a summary of your skills. Be sure to add a list of your projects with Github links.
  • Day 2: Website Portfolio (6 hours): Write some blogs. Add them to the previous site portfolio you made.
  • Day 3: LinkedIn profile (4 hours): Create a profile on LinkedIn. Bring everything on your resume to LinkedIn.
  • Day 4: Interview preparation (7 hours): Google the most frequently asked interview questions. Practice solving 10 programming problems that are asked in job interviews. Do it on paper. Interview questions can be found on sites like Glassdoor, Careercup
  • Day 5: Networking (~ hours): Get out of the closet. Start going to meetups, job fairs. Meet recruiters and other developers.
  • Day 6: Just apply for jobs (~ hours): Google β€œPython Jobs”, look for jobs on LinkedIn and local job sites. Please select 3 jobs you would like to apply for. Customize your resume for each of them. Find 2-3 things on the requirement lists that you don't know. Spend the next 3-4 days sorting them out.
  • Day 7: Learn from rejection (~ hours): Every time you get rejected, identify 2 things you need to know to get a job. Then spend 4-5 days to hone your skills in these matters. Thus, after each rejection, you will become a better developer.

Ready for work:

The truth is that you will never be 100% ready to work. All you need is to learn 1-2 things very well. And familiarize yourself with other questions to overcome the barrier of interviews. Once you get a job, you will learn a lot from it.

Enjoy the process:

Learning is a process. There are bound to be challenges along the way. The more of them, the better you are as a developer.

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

Where to study:

If you still don't know where to start,

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

Translation: Diana Sheremyova

Source: habr.com

Add a comment