From beginner to proficient in Python in one month!

From beginner to proficient in Python in one month!

There is no doubt that Python is one of the hottest programming languages ​​at the moment. For many "noobs" who have never set foot in the field of computer programming, it seems very difficult to master Python in depth. In fact, as long as you have mastered the scientific learning methods and formulated a reasonable learning plan, it only takes one month for Python to go from entry to proficiency!

You know, one month is a long time. If you insist on using 6-7 hours a day to do one thing, you will have unexpected gains.

As a beginner, your monthly goal for the first month should look like this:

  • Familiar with basic concepts (variables, conditions, lists, loops, functions)
  • Practice over 30 programming questions
  • Use these concepts to complete two projects
  • Familiar with at least 2 frameworks
  • Start using integrated development environment (IDE), Github, hosting, services, etc.

Overall plan

Now, we first refine the monthly plan into a weekly plan.

Week 1: Familiarize yourself with Python

To actively explore the use of Python, complete the following tasks as much as possible:

  • Day 1: Basic concepts (4 hours): print, variables, input, conditional statements
  • Day 2: Basic concepts (5 hours): lists, for loops, while loops, functions, import modules
  • Day 3: Simple programming problem (5 hours): Exchange two variable values, convert Celsius to Fahrenheit temperature, find the sum of the digits in the number, determine whether a number is a prime number, generate random numbers, and delete duplicates in the list and so on
  • Day 4: Intermediate programming problem (6 hours): Reverse a string (palindrome detection), calculate the greatest common divisor, merge two ordered arrays, guess the number game, calculate 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 binary search), sort (bubble sort, selection sort), recursive function (factorial, Fibonacci sequence), time complexity (linear, quadratic and constant) )

Don't rush to install the Python environment!

This seems contradictory, but you must believe me. I have a few friends who gradually lost their desire to learn because of the failure of the language toolkit and IDE installation. Therefore, my suggestion is to use some Android apps to explore the language first, such as Programming Hero (https://play.google.com/store/apps/details?id=com.learnprogramming.codecamp) or an online codecamp Repl (https://repl.it/) and so on. If you are a technical novice, installing the Python environment is not your first priority.

Week 2: Start software development (build project)

Next, let us move towards the task of software development! May wish to try to synthesize what you have learned to complete a practical project:

  • Day 1: Familiarize yourself with an IDE (5 hours): IDE is your operating environment when writing large projects, so you need to be proficient in an IDE. In the early stages of software development, I suggest you install Python extensions in VS code or use Jupyter notebook.
  • Day 2: Github (6 hours): Explore Github and create a code repository. Try to commit (Commit), view changes (Diff) and push (Push) your code. In addition, learn how to work with branches, how to merge different branches, and how to create a pull request in a project.
  • Day 3: The first project-simple calculator (4 hours): familiarize yourself with Tkinter and create a simple calculator
  • The fourth, fifth and sixth days: personal projects (5 hours per day): select a project and complete it. If you don’t know what you should do, you can check the list below (https://www.quora.com/what-some-good pythonprojects -for-an- middle-programmer/answer/jhankar-mahbub2)
  • Day 7: Hosting the project (5 hours): Learn to use the server and hosting services to host your project. Create a Heroku setup and deploy the application you built.

Why write a project?

If you only study the content in class or in the video step by step, you will not have the ability to think independently. Therefore, you must apply your knowledge to a project. As you work hard to find answers, you are slowly learning this knowledge.

Week 3: Make yourself a programmer

The goal of week 3 is to familiarize yourself with the overall 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 query (create table, select, Where query, update), SQL function (Avg, Max, Count), relational database (normalization), inner connection, outer connection, etc.
  • Day 2: Use a Python database (5 hours): Use a database framework (SQLite or panda) to connect to a database, create and insert data in multiple tables, and then read data from the table.
  • Day 3: API (5 hours): How to call the API. Learn about JSON, micro-service, and presentation layer application conversion application program interface (Rest API).
  • Day 4: Numpy (4 hours): Get familiar with Numpy (https://towardsdatascience.com/lets-talk-about- Numpy -for- datascies-beginners-b8088722309f) and practice the first 30 Numpy exercises (https://github .com/rougier/numpy- 100/blob/master/100_numpy_excercises.md)
  • Days 5 and 6: Portfolio website (5 hours a day): Learn Django, use Django to build a portfolio website (https://realpython.com/get- start-with-django -1/), also need to know The Flask framework.
  • Day 7: Unit testing, logging, debugging (5 hours): Learn unit testing (PyTest), how to set and view logs, and debug with breakpoints.

Truth or Time (Top Secret)

If you are very "crazy" and very focused, you can complete these tasks within a month. You must do:

  • Make learning Python your full-time activity. You need to start studying at 8 in the morning and continue until 5 in the afternoon. During this period, you can have a lunch break and a tea break (1 hour in total).
  • At 8 o'clock, list what you will learn today, and then spend an hour reviewing and practicing what you learned yesterday.
  • From 9 o'clock to 12 o'clock: Start learning and do a small amount of practice. After lunch, you need to increase the amount of practice. If you are stuck on a problem, you can search for solutions online.
  • Strictly maintain 4-5 hours of study time and 2-3 hours of practice time per day (up to one day off per week).
  • Your friends may think you are crazy. Go your own way and let others talk about it!

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 8 months to complete this list. Now I am a senior developer. My wife works in a major bank in the United States. It took her 6 months to complete the tasks mentioned in this article. So, no matter how long it takes, be sure to complete them.

Week 4: Seriously consider work (internship) issues

The goal for week 4 is to think hard about how to get hired. Even if you don't want to find a job now, you can learn a lot in the process of exploring this path.

  • Day 1: Prepare your resume (5 hours): Make a one-page resume. Put your skill summary at the top, and you must attach a Github link while writing the project.
  • Day 2: Portfolio website (6 hours): Write a few blogs and add them to the portfolio website you developed earlier.
  • Day 3: LinkedIn Profile (4 hours): Create a LinkedIn profile and put all the content on your resume on LinkedIn.
  • Day 4: Interview Preparation (7 hours): Prepare some common Google interview questions and practice the 10 interview programming questions in the white paper. Check the interview questions that predecessors encountered in websites such as Glassdoor and Careercup.
  • Day 5: Social (~hours): Get out of the room, start attending parties, job fairs, and meet other developers and recruiters.
  • Day 6: Job application (~hour): Search for "Python Job", check LinkedIn Job and local job search websites. Choose 3 job positions and send a job application. Customize your resume for each job. Find out 2 to 3 things you don't know in each job requirement and learn them in the next 3-4 days.
  • Day 7: Learning in rejection (~hours): Every time you are rejected, find out two things you should know to get the job, and then spend 4-5 days to master them. In this way, every rejection will make you a better developer.

Prepare for work

The reality is that you can never be 100% ready for work. All you have to do is to be proficient in one or two things, and familiar with other things, and finally pass the interview. Once you start working, you will learn a lot during the work process.

Enjoy the learning process

Learning is a process, and as long as you learn, there will be challenges. God pays for your hard work, the harder you work, the better you will become a developer.

If you can complete all the tasks within 28 days, you are a genius. However, if you can complete 60-70% of the content, you will already have the right characteristics to become a programmer.

Reference: https://cloud.tencent.com/developer/article/1534284 One month from entry to proficient in Python! -Cloud + Community-Tencent Cloud