Rt. I wanted to learn these frameworks before, but after learning some fur I found a little learning to go on, and I always felt less knowledge. What kind of knowledge do you need to learn these frameworks? How to learn the right way?
I think @ shengdi said the right, first learn, if the study of the more difficult to learn, learning the process can find what knowledge points themselves do not understand, the knowledge of not understand points listed, such as in the study of tornado feel
, this thing is not very clear, you can
through this knowledge point to expand the following study plan
- Don ' t be afraid, take the first step.
- What is Google async? The concept of async? , after the search you will find a lot of knowledge that you have not seen, and then write down these unfamiliar knowledge points, read the content of your Google.
- Make a list of the knowledge points in the second step (which may take longer) and put them on a clean piece of paper . This may include blocking and non-blocking , asynchronous and synchronous, event loops,I/O multiplexing (select/poll/epoll), Linux process Management , and a whole bunch of knowledge points. Anyone who sees this pile of strange things will feel frightened, even as the Lord is powerless. There is no doubt that this is the most difficult moment to move towards the first step. The fear that comes out of the heart is equivalent to half the success, and the rest is the following.
- The third step unfamiliar knowledge point roughly Google, record its basic significance, do insight into the overall situation, knows , this will let oneself have a concept view, slightly understand after the natural increase point of confidence. Then summarize the other points of knowledge that are involved in your knowledge point, so that you can construct a relational tree of knowledge points with Xmind . Maybe when you are in Google, someone will introduce some related books such as "UNIX Network programming Volume 1 (Watercress)" And so on, write down these books as to read. (Note: do not fall into the loop of death )
- Well, now you know what the knowledge points are not clear, which books you need to read. Then relax and see some simple things like Django document first-steps Django documentation take a good look and write a little program. You can also cycle 1, 2, 3, and 4 steps if you encounter unfamiliar knowledge points in the Web front end. After doing something simple, you will be able to get a greater interest, and then continue next when you have the interest to continue learning.
- Finish it! don't worry about the unfamiliar points of knowledge (solving them may be more time consuming than learning a framework), remember your original intention: learn some Python frameworks. Continue to follow these frameworks to your documents and continue learning along the framework's knowledge. Do understand the framework of the main body, repeated learning , after all, you are not overnight, you will go back and forth the document several times, if you have been immersed in continuing to solve unfamiliar knowledge point of the situation perhaps a year you have not read the framework.
- Apply It! the more you write, the more inspiration you use. For example, flask more wheels, if it is in the company is the bold reference (I have been very bold application of some new things in the company's projects, Ps. Company on my back end (embarrassed ...))
- Systematic Learning! after a few studies take a time to do a big sweep of your unknown knowledge point (perhaps you are writing in the process of some knowledge points themselves have slowly understood, this is the time value), and then summed up some systematic system (such as: TCP/IP Protocol, UNIX network programming). Title The main reference is the web framework, then the web framework is nothing more than Python network programming for the underlying TCP protocol and Application layer HTTP protocol to build additional Web applications such as (routing, request and response, cookie and session, authentication, data processing, template rendering, etc.) As well as the processing of ORM and process management . These need a lot of learning to gradually grasp, these things casually in the watercress read a search immediately out of the recommended book or book, Mark, when it's time to slowly understand. read more books, and build your own systematic knowledge over time .
- The first step did not complete the rest of the whole over~
PS: Purely personal advice, without any color.
Recommended view on Python web framework
Strictly speaking, the knowledge required is not limited to:
1. HTTP protocol and Basic concepts
2. Html/css/js Basics (At least it shows how the front and back end interact)
3. Database Basics
4. Python basic syntax, concepts, main language features, package management mechanism ...
5. The basic knowledge, structure and the so-called "philosophy" of the specific framework
6. English, document/wiki/stackoverflow/github/search engine use, reading methods (to find the problem search data for solutions)
But basically can learn the side contact, actually also quite is convenient.
- Getting Started with Python
- Recommended "Python core programming"
- Front-end development (HTML, CSS and JS) can at least understand, will now learn to use
- This directly on the Web site now learn, you can learn in depth
- Understand at least one front-end frame such as bootstrap, etc.
- Mastering Network programming
- Python Network Programming Basics (watercress)
- Mastering Database Programming
- Focus on the design and modeling of relational database
- [November 1 Edit] Add the following recommendations on the database:
- First understand the basic principles of the database, for beginners, at least the SQL statement to learn it, with the ORM API, can be skilled in the increase and deletion check operation
- Learning database design and modeling; You may need to have more practical experience to achieve proficiency, but you need to have the basic ability to find a job.
- Learning database Performance tuning, mainly for SQL statement tuning, with this ability will be you to make the interviewer satisfied with the bright spot. As for the internal tuning of the database system, there are fewer requirements. If there is really such a requirement in the project, there is usually an architect or DBA dedicated to
- Book recommendations (for MySQL):
- MySQL performance tuning and architecture design (watercress)--for primary web development
- High-performance MySQL (watercress)--advanced Web development Advanced Prerequisites
- Database system implementation (watercress)---Ibid.
- At last:
- Plenty of time to learn about Redis, MONGDB and other emerging database technologies, used in many Python projects, also suitable as a skill highlight
- Recommended: Redis Combat (watercress)
- Start learning the framework
- Django, for example, is focused on understanding the MVC design pattern, the context of "URL routing->views view processing->orm database processing->jinja template Rendering", and Django's powerful, easy-to-use background management (personal advice from Django, Although heavier than flask, community resources are richer and questions are more mature.
- English (you need to check the official documentation)
- This is really the key! Only look at the Chinese documents or Chinese website information, only let you get started.
The learning order of these knowledge points can be arbitrary, preferably according to their own interests, if learning a knowledge of the time encountered a blockage, do not stay too long (the longer, the more easily lose confidence and interest), to another point of knowledge. In fact, learning a few skills at the same time, can be mutual mastery, mutual inspiration, more conducive to continuous learning and comprehensive understanding Oh!
network programming and database programming!
network programming and database programming!
network programming and database programming!
The key to study these two, is the Web application function Realization Foundation!
If you want to do beautiful Web applications, then learn more about front-end development, with a focus on the use of frameworks (such as bootstrap, etc.).
Finally, you must write several Web applications to play. You can start with some tutorials and write a few, and then make sure you have one that is independent of your own ideas (such as a personal blog), and this step will give you a sense of accomplishment! Project-Driven Learning!
Have a clear goal, or have a clear request, or a personal preference, or do not learn to eat without food, the case to study hard.
If you have a goal, learn hard. Do not die endlessly. Page rendering, URL design, HTTP knowledge, engineering code structure design, ORM or Direct database query method, database design, cache usage, service Package build deployment, service level extensibility and so on, where encountered problems on the Internet search hard to chew.
If there is no goal, the proposal or do not learn, really, not to fight people, but aimless learning things in time to grasp the moment, in the near future will soon forget ... You learn, don't learn how to know, learn the time to know the Python
HTTP Basics to understand
Well, almost all of this, not all to learn, but learning these frameworks to use, such as the database, in fact, also use a basic additions and deletions to check, but no database can not. Write a website from 0, more efficient than your dry learning.
Of course, there is a shortcoming, not the whole study. Standard library standard library standard library follow the tutorial to do the project, tapping the code yourself. Encounter do not understand, go back to see the tutorial, check the information, to understand so far. By the way recommend the next Liao Xuefeng tutorial and Flask Web development:developing Web applications with PYTHON.