Write this article on the one hand is to relax for a week of their own, in order to give you a brief introduction of learning experience, and other applications recommended to the home page, thank you ~
I linux c programmer, focus on server design and server architecture and optimization, read the source involved lighttpd,nginx,jabberd2,memcached, and so on, mainly keen to delve into Lighttpd,apache, Nginx and other Web server design and implementation of its architecture and design details have a source-level understanding.
Suffer all day to knock C language has become insensitive, and I have a certain ideal and the future of entrepreneurship, so do not want to stay in the bottom of the coding design phase, hope that the superstructure also get a certain sublimation, so as to assist the lower building, so as to become a top and lower compatible with a good programmer
As mentioned above, the initial concern is the Apache source, watching a few days feel life is short, not all spent on such a huge thing, so the purchase of "Apache Source Analysis", with the help of this fetish will Apache Prefork, The multiple process architecture and implementation details of the worker are incorporated into the mind. Because of the Apache learning some Jerry, at the same time found too much HTTP and mod use completely do not understand, so decided to a lightweight source code: LIGHTTPD launched a detailed analysis of the source code, will not stop.
Reading the source is not very difficult at first, because there are memcached source reading experience, so in reading the peripheral code (as opposed to the core code) is a duck in the fish, quite rewarding. With reading into the core code, it is hard to find the basics of HTTP and Web server.
So, bought the "Build high-performance Web Site" a book, in 3 days to read over, Harvest unspeakable, with the continuous Baidu Search excellent blog, with their HTTP protocol, Web server architecture design, as well as the composition of the entire site has been a very important breakthrough, Although at this time there is not much sentiment and knowledge in tandem. As you continue to read and search for the source code, LIGHTTPD is completely muddled, skimming through some plugin (Mod) reading, and a bit of source-level confusion about the design of the plugin architecture ( This issue in the company's internship in the process of combining JABBERD2 and the actual development has been thoroughly understood.
After this period of time, will continue to think LIGHTTPD source code, constantly find problems, so more to search and think, review the source details, and comb the source system. But still left a number of doubts, so have to start Nginx code reading, hoping to find the answer, of course, this source only read a small part, mainly in the HTTP request parse part and the multi-process work model and I/O section.
At this point, the principle of the implementation of the HTTP protocol has reached a certain understanding, with the help of "building high-performance ..." a detailed introduction of the HTTP protocol, all the HTTP fields have a more thorough understanding.
In this case, the discovery to say too much, had to quickly over to the Web learning phase.
The reason to learn the Web is very simple, the article at the beginning also mentioned, I want to do their own things, and the fastest way is nothing but mobile terminals or Web applications, and Web applications on both the PC and mobile terminals can be applied, and Web applications are any application of an important platform for promotion, Second, the Web server can quickly set up a non-web application, its own distributed Protocol (HTTP), simple access Mode (get/post), stateless short connection features itself is a perfect fetish, especially for my research on the Web server implementation of the people, I can even see the word throttling under the agreement ... haha
That is, after that, I went to the company internship, quickly because the work of the task of contact with the C language to develop an HTTP server, you need to accept any legitimate HTTP request, and store forward its data. The process is based on the rapid development of the Http_parser library provided by Xml+nginx, the Epoll multi-process architecture, which also involves Jabbered2 source reading (during the company spent a week to read RFC protocol and source code).
As more and more of the web is being dealt with, and the company requires everyone to master c/php, the web's learning path is quickly put on the itinerary.
Starting from 0 is always difficult and requires perseverance. At first always can't find the right way to learn, I used to come to csdn listen to everyone's advice, to their own plans to do some staff, just like I now have a small achievement like to write an article to share the share of relaxation (also show off to show off). After consulting, feel the html,css,js,ajax,php in front of them are some God horse things, so much how to learn. Helpless, only slowly learn, holding unlimited knowledge of the desire, in W3school spent up to three days, the Html,xhtml,css,js,ajax,php,mysql all finished, that is, the left column of the contents of the whole finished. But I did not knock a line of code, read quickly forget clean.
Put down for several days, have no power to look again. At this time, that is, 2 weeks ago, I think I can not write a static page is still how to mix, div+css positioning must be clear, JS How to put the foundation toss understand, jquery say it. I decided to watch video learning, so with the company's high bandwidth so that the electric donkey to enjoy the sway of sweat. Download the two series of video, one is to talk about Html+css's biography of Intelligence podcast video, one is the Lamp Brothers of PHP video, they all speak Html+css+js+ajax, I first saw lamp, a day in the company with headphones look, work back to see Midnight, tu ... Two series I have seen the html+css part in 3 days or so, so I went home to set up a Linux server on my router, on top of which I deployed LNMP, router NAT can be accessed directly from outside the net, the peanut shell Ddns, and I started to write static page practice Css+div.
Write static page is to find a website to start imitating, imitate the appearance does not imitate code ... So soon the discovery write very simple, but use IE on the problem, adjust to go all toss wrong, so the enthusiasm was seriously hit, rest a day, to CSDN asked, the results of their own find a good blog, the original IE many bugs need special treatment, For example, the margin of the float element I met is doubled, this is leading to my incompatibility of the main inducement, so my page began in IE and non ie gradually consistent, down rewrite a few times, refer to the simple page of embarrassing code, add pop-up pull-down menu, scrolling ads, floating follow the ad, Also by the way JS and Dom practiced, feel confident more a little (c born in my university is playing algorithm, is purely ostentatious, do not explain).
Eager to learn the web and really learn the Web during this period, I have also made some mistakes in principle, such as buying the Python learning manual and reading it quickly, and then being quickly forgotten (I hate Python because it encapsulates functions in one library and I hate simple problems). After this, that is, the front end of the basic things are mastered, the feeling should be deep into the PHP study, in-depth should not see the video!! The video is really helpful for getting started, I still remember the impulse to learn Windows development when watching the Sun Xin video, as well as help me get started with the algorithm of the MIN data structure video (once a winter vacation every day to watch video knock the data structure), must admit that video is the magic weapon to get started, but the real deep cultivation or rely on more reading , think more of the summary, more code test to find a programmer's technical self-confidence.
Reference to what book to learn is also in when, Amazon observed for a long time, finally decided to believe that the same
"The Bible" PHP and MySQL Web development, I always believe that the power of the Bible, like the belief in the UNIX environment Advanced Programming, UNIX network programming, like the pious worship. Seriously questioning and condemning those disgusting behaviors, such as "Too simple", "poor print quality" and "no CDs" in the book review, they have affected my judgment in some degree.
"PHP and MySQL Web development" from the beginning of last week, this week 3 read, about 5, 6 days or so. Many people must question me to read and watch the video speed and the quality, please heartily question ... Actually reading when I was holding such a plan to see: 1, Grammar details proficient! 2, pay attention to the use of security functions such as Addslashes,stripslashes,htmlspecialchars,urlencode ( Really combined a lot of extra introductions to really correct the usage, before really a lot of misconceptions, too horrible) 3, attach importance to the latter part of all instances of development. 4, get enough web development confidence.
Holding the endless thirst for knowledge, I basically do not rest the whole day reading, do not know to knock, but found that people like the old brain is not good, often met will not think of the brain will remember a while to check, the results will not be remembered for a while, so closed the book to think about what I just wonder where ... After discovering this problem, I began to take notes, of course not to remember what I will, but to write down I will knock code test this problem.
After reading this book, I feel like I've got it all, it's a technical confidence: first, I believe I have more low-level knowledge than the average web programmer (excluding the client JS engine), in addition, I believe I have enough ability to develop the website (front + back end take all, may at first dish, But I want to work on web development tasks to improve.
For the problem of PHP is not much said, here is a herd of Daniel, I am just a beginner Chadao, but I found that in fact, any book you read the whole will form a system, and can learn a lot has been misunderstood or not to pay attention to the problem, very precious. In addition, I said that reading refers to: give yourself a minimum of 2-3 weeks, read any book within 1000 pages. If there is no such patience, I am afraid is never read a book, or one months two months after reading, nothing to remember, it is not worth it.