Familiar with basic concepts (variables, conditions, lists, loops, functions)
Practice more than 30 programming problems
Use these concepts to complete two projects.
Familiar with at least 2 frames.
Start using integrated development environment (IDE), Github, hosting, services, etc.
General plan
Now, let's first refine the monthly plan into a weekly plan.
Week 1 week: Familiar with Python
To actively explore the use of Python, try to complete the following tasks:
Day 1: Basic concepts (4 hours): printing, variables, input, conditional statements.
Day 2: Basic concepts (5 hours): list, for loop, while loop, function, import module.
Day 3: Simple programming problem (5 hours): exchange two variable values, convert Celsius to Fahrenheit, sum the median of numbers, judge whether a number is prime, generate random numbers, delete duplicates in the list, and so on.
Day 4: Intermediate programming problems (6 hours): reversing a string (palindrome detection), calculating the greatest common divisor, merging two ordered arrays, guessing numbers, calculating age, etc.
Day 5: Data structure (6 hours): stack, queue, dictionary, tuple, tree, linked list.
Day 6: Object-oriented programming (OOP)(6 hours): objects, classes, methods and constructors, inheritance of object-oriented programming.
Day 7: Algorithm (6 hours): search (linear and method of bisection), sorting (bubble sorting, selective sorting), recursive function (factorial, Fibonacci sequence), time complexity (linear, quadratic and constant).
Through the first week, python can be familiar with it, but its self-learning ability is slightly weak. Find someone to take you down and save yourself some time.
Note: Don't rush to install Python environment!
It seems contradictory, but you must believe me. Several of my friends gradually lost their desire to learn because of the failure of language toolkit and IDE installation. Therefore, my suggestion is to use some Android apps to explore the language first. If you are a skilled person, installing Python environment is not your first task.
Week 2: Start software development (construction project)
Next, let's March into the task of software development! Try to synthesize what you have learned to complete a practical project:
Day 1: Familiarize yourself with an IDE(5 hours): IDE is the operating environment when you write large-scale projects, so you need to master an IDE. In the early stage of software development, I suggest that you install Python extensions in VS code or use Jupyter notebook.
The next day: Github(6 hours): Explore Github and create a code warehouse. Try to submit, see the changes (differences) and push your code. In addition, you should learn how to work with branches, how to merge different branches, and how to create pull requests in the project.
Day 3: The first project-simple calculator (4 hours): Get familiar with Tkinter and make a simple calculator.
Days 4, 5 and 6: Personal project (5 hours a day): Choose a project and finish it. If you don't know what you should do, you can check the following list (/what-some-good python projects-for-a-middle-programmer/answer/jhankar-mahbub2).
Day 7: Hosting projects (5 hours): Learn to use servers and hosting services to host your projects. Create a Heroku setting and deploy the application you built.
Why write a project?
It is impossible to have independent thinking ability if you just study the content in class or video step by step. Therefore, you must apply your knowledge to a project. When you try to find the answer, you are also learning this knowledge slowly.
Week 3: Make yourself a programmer.
The goal of the third week is to be familiar with the whole process of software development. You don't need to master all the knowledge, but you should know some common sense, because they will affect your daily work.
Day 1: Database basics (6 hours): basic SQL queries (table creation, selection, Where query, update), SQL functions (Avg, Max, Count), relational databases (normalization), inner joins, outer joins, etc.
The next day: using Python database (5 hours): using a database framework (SQLite or panda), connecting a database, creating and inserting data in multiple tables, and then reading data from the tables.
Day 3: API(5 hours): How to call the API. Learn JSON, microservices, and presentation layer application transformation application programming interface (Rest API).
Day 4: Numpy(4 hours): Get familiar with Numpy (/let-talk-about-Numpy-for-data scies-beginner -b8088722309f) and practice the first 30 Numpy exercises (/rougier/Numpy-100/blob/master/6509f).
Fifth and sixth days: portfolio website (5 hours a day): Learn Django, build portfolio website with Django (/get-start-with-django-1/), and learn Flask framework at the same time.
Day 7: unit test, logging and debugging (5 hours): learn PyTest, how to set and view logs, and debug with breakpoints.
Truth time (top secret)
If you are very "crazy" and very focused, you can finish these tasks in a month. You must do:
Make learning Python your full-time activity. You need to study from 8 am to 5 pm. During this period, you can have lunch break and tea break (*** 1 hour).
List what you want to learn today at 8 o'clock, and then spend an hour reviewing and practicing what you learned yesterday.
9:00- 12: Start studying and do some exercise. You need to practice more after lunch. If you get into a problem, you can search for a solution online.
Strictly maintain 4-5 hours of study time and 2-3 hours of practice time every day (at most one day off every week).
Your friends may think you are crazy. Go your own way and let others talk!
If you have a full-time job or you are a student, it may take longer to complete these processes. As a full-time student, it took me eight months to complete this list. Now I am a senior developer. So, no matter how long it takes, you must finish them. If you want to accomplish a goal successfully, you must put in 100% effort.
The fourth week: seriously consider the problem of work (internship)
The goal of the fourth week is to seriously think about how to be hired. Even if you don't want to find a job now, you can learn a lot by exploring this road.
Day 1: Prepare your resume (5 hours): Make a one-page resume. Put your skill summary at the top, and be sure to attach a Github link when writing a project.
The next day: portfolio website (6 hours): Write a few blogs and add them to the portfolio website you developed before.
Day 3: Introduction to LinkedIn (4 hours): Create a LinkedIn profile and put everything on your resume on LinkedIn.
Day 4: Interview Preparation (7 hours): Prepare some common interview questions of Google and practice the 10 interview programming questions in the white paper. Check the interview questions encountered by seniors on websites such as Glassdoor and Careercup.
Day 5: Socialization (~ hours): Get out of the house, start attending parties and job fairs, and get to know other developers and recruiters.
Day 6: Job hunting (~ hours): Search "Python Job" and check LinkedIn Job and local job hunting websites. Select 3 positions and send job applications. Customize your resume for each job. Find two or three things you don't know in each job requirement and learn them in the next 3-4 days.
Day 7: Study in Rejection (~ hours): Every time you are rejected, find out two things you should know in order to get this job, and then spend 4-5 days mastering them. In this way, every rejection will make you a better developer.