Why use Python here?

Because Python is considered “simple” by many people.

I wrote this article mainly because I saw an interesting dynamic on Zhihu:

The author of this post believes that a person with more than 600 points in the gaokao can learn Python in one day and finish Andrew Ng’s ML course in a week.

As it happens, I am a person with more than 600 points in the college entrance examination. I have learned Python and also watched Andrew Ng’s Machine Learning course. So I’d like to put myself in the position of learning Python in a short period of time, not a day, but a week.

I don’t disagree with the author above, because I did learn Python and write a small application in just one day (senior year of college). However, there is one important prerequisite for learning this: before learning Python, I had written C++ for two years and Java for one year.

I already have a lot of practical programming experience and computer theory knowledge compared to someone who doesn’t have a bit of foundation, so it’s not that strange or unusual that I can pick up Python in a day.

1. What can you see from the top of the mountain?

In response to the above question, my point is that even someone with a score of 600 or above in the GAOKAO will struggle to learn Python in a week without some programming background.

Of course, there is no rule out someone is a genius, can be quick. But so far I have not found such a person. My girlfriend and my classmates all scored above 600 or 650 on the gaokao, but I really don’t know anyone who can learn to program in a day or a week.

So, more generally, someone with a gaokao score of 600 or above can’t learn Python in a week. Is it harder for someone without a GAOKAO score of 600 or less? In terms of probability, yes, it’s not discrimination, it’s just a phenomenon.

But why do people often say it’s possible to get up to speed on “Python”? Are they lying?

I think they’re not lying, they’re just missing a key point — the “foundation” I mentioned earlier. Once you have the basics, it’s perfectly normal to get started with Python in a week, speed up Django, and learn how to crawl in a day. However, these are too difficult for students who have never touched programming at all.

Heard one of my immediate senior before lecture on startup, the most impressive scene, I was the audience classmate asked him to share his difficulties in the entrepreneurial process, he replied – when you walk through the thorns, across the difficult to walk to the top of the hill, you can see is the endless distant and bright, difficulties before you will be forgotten.

I fully agree with this statement. I studied again for a year after I failed in the first college entrance examination. Every time I read about my life recorded in the second study period, I would sigh how hard those days were, but ALWAYS forget that that was my life, forget that I was the one who studied again, and forget how hard those days were. The only thing I remember is my grades after I repeated them — more than 140 points higher than the year before.

It is easy to forget the suffering and remember only the success after experiencing many hardships and achieving temporary success.

So, when someone tells you that you can quickly learn a skill that most people struggle with, there are three possibilities: they’re faking it, they’re a genius, and they’ve tried and forgotten their efforts. In most cases, it’s the third.

Can’t learn Python in a week.

2. Is Python really easy?

Why do so many people think Python is easy, who is saying Python is easy, is Python really easy, and if so how is it easy?

I think when many people say Python is simple, they mean simple at the “syntactic” level. Indeed, Python has a much simpler syntax than other programming languages such as C++, Java, PHP, and Go.

In addition to its simple syntax, Python is naturally suited to working with data. It also handles data more easily than other programming languages and has fewer built-in data structures.

But it’s easy to overlook the fact that programming languages don’t exist independently of the business. Programming is about solving problems. Each programming language has its own strengths, such as Linux kernel system calls and low-level interactions. C++ may be more dominant. In real business scenarios with a large number of computing tasks and concurrency, it may be easier to achieve a certain parameter indicator.

Simple syntax is useless. On the premise of meeting business requirements, who is easiest to achieve the goal is the easiest.

Besides, Python is not as easy as it seems. There is a fundamental difference between being able to do something and just being able to do it. You know Python syntax, but can you do data analysis, can you write crawlers, can you develop Web? Any programming language to learn deeply, will become a tool, can use the tool to complete the specific task is really good use it.

I like to buy books and I like to read books. Here are some books on Python that I picked up from my bookcase. Some I finished, some I’m reading, and some I haven’t.

When we study, we must not give ourselves a psychological hint at the beginning: it is easy and easy to learn, if so, you will be hard to stick to it in the study.

One interesting thing I often see is that many people are very concerned about the “ranking of programming languages”. If they are learning Python or C++, and Python or C++ rises in the ranking, they will be very happy. Otherwise, they will start to scold their father and mother.

It doesn’t have to be that way. When learning programming, don’t limit yourself to just one language. In practice, most of the time we choose the right programming language based on the project, not the programming language.

Let’s say you’ve been writing C++ for a long time, but there’s a need to do it in PHP, so even if you don’t know PHP, you have to write it in PHP. Don’t ask me why. I have written JAVA, JavaScript, C++, PHP, Python, Lua, Go… The position I interviewed for was C++ engineer…

It wouldn’t hurt to know a little more.

3. One step at a time

Many friends who are beginners in programming struggle with how to get started, and my answer can only be:

In fact, people now learn programming is much better than our original conditions. When we first learned programming, MOOCs were not popular, and I still read Tan Haoqiang’s books when I learned C language. Where there is now so convenient, at every turn to send you 1024G information benefits, masked.

In fact, learning programming is the same as learning a foreign language, it is a step of progress, and its characteristic is that after learning for a long time, you do not feel progress, but suddenly one day, I understand a lot of problems, feel that their experience is worth a significant improvement, and then fall into a period of flat.

When you go through this cycle a few times, you learn how to program.

Learning programming should not be measured in days, but in years. If you have to give a quickest time to get started, then set it as three months. If you really spend a lot of time in reading a course and reading a book in three months, you should reach a new Level after three months, which is considered as an entry-level.

Anyway, come on! If you want to know how I learned to program, please feel free to like and follow me

Need Python learning materials, the following xiaobian builtPython Learning Exchange GroupWelcome to exchange and learn.

Stage 1: Python basics and advanced features

1. Fundamentals of Python syntax

2. Python string parsing

Python time and calendar

4. Python file manipulation

5. Python is object-oriented

6. Concurrent programming

Functional programming

8. Regular expressions

9. Design patterns

10. Sorting algorithms

11, abnormal

12, modules,

Stage 2: Linux Basics

1. Shell operation

2. System management

3. Common Linux commands

4. Common Linux systems

5. HDFS construction

Stage 3: Database principles and SQL optimization

MySQL database in Linux

2. Database design and SQL standards

3, Python database operations library

4. MongoDB non-relational database under Linux

5. SQL optimization and database optimization

6. Basic idea of ORM object relational mapping

Stage 4: Front-end Web development

1, the Html

2, CSS,

3. Actual combat process of PC page development

4, the Bootstrap

Html5 and CSS3

6, JQuery

Stage 5: Python Web back end development

1. Django framework development

Nginx configuration and uWSGI deployment

3. RESTful interface development

Flask framework development

5. E-commerce platform project

6. BBS forum system

Stage 6: crawlers and data analysis

The first Python web crawler

2. Use of Fiddler, a professional HTTP analysis tool

3. Actual crawler Python coding problems

Urllib2 uses the TesseractOCR language model to crawl websites logged in with captcha

5, Beautiful Soup

XPath & CSS selectors

7, PhantomJS

8 SeleniumWebdriver.

Scrapy large frames use proxy servers to crawl

Scrapy Distributed cluster multi-agent crawler Redis

11. Application of distributed cluster Redis MongoDB in crawler

12. Data analysis tools and modules

Stage 7: Python ARTIFICIAL Intelligence

1. Machine learning

2. Deep learning