- Superficial understanding stage:
- Introductory phase:
Step 1:
use HTML + CSS to emulate several beautiful static pages. When you see most of the pages now feel like you can guess what to do, and take the time to really do it, you can go to the next step. Note that this time please do not control browser compatibility or too much attention to the elegant structure of the code, because there is no need. To be compatible with modern browsers, the content and style are basically completely separated. This will take about half a month to one months of study time. Step 2:
Use HTML + CSS + JS to write a few interactive pages。 For example, you can write a beautiful registration page that verifies that the various inputs are eligible and has a date selector implemented with native JS (date picker). Or, write a beautiful, animated album. Attention
At this stage, use native JavaScript。 Similarly, compatible with modern browsers. This will take about half a month of study time. Step 3:
Getting Started one-door back-end language。 According to your situation, just PHP. With the above experience, after the introduction of PHP, I believe you can make a beautiful no user message version. Please store the data in the file because you haven't learned SQL yet. This will take about half a month, and if you have a strong learning ability, one weeks is not impossible. Step 4:
Get started with a relational database. Like MySQL, for example. DDL and CRUD, be sure to be proficient. Well, don't talk about optimization at this stage, it's nonsense. Now, you can probably do a multi-user blogging program. It will take about half a month. You see
you can become a beginner Web developer in less than 2.5 months. After the blog is done, you can try to build more wheels. For example: With simple user Rights Forum program, simple bookkeeping tools, and so on, do you like to do any small program is OK. In the process, you will become a skilled beginner programmer, or, in order to be lazy, you will
learn to Jquery,smarty and other frameworks.
2. Improve:
one day, you find that you can not improve the level by writing small programs. The next thing you need to learn is real dry. •
Learn C language。 Don't ask me why, I just think a programmer should learn C language, not good is another thing, and many books are used in the C language description. Not optical grammar, figuring out what the compiler is, what the link is, and what the pointer is. •
Learning
Discrete Mathematics: It is mainly to give you the theoretical basis of computer data model. It contains sets, numbers, graphs, and so on, more importantly, if you want to do research in the future, the study of the 0 error program, is completely without the bug program, it is necessary to use the above derivation theory to the program by the line of proof. If you want to pass the system analyst, this is also the test ·
Learning data structures and simple algorithms。 You see, you learn the C language to learn data structures and algorithms, I can not imagine how to use PHP to describe the data structure and algorithms will be how strange. If you don't know what the data structure is after you learn it, it proves that you haven't really learned it yet. •
learning an object-oriented static programming language。
recommended Java. Learn how good it is to see how much time you have spent. Be sure to read all the relevant books and understand the important object-oriented programming ideas (however, avoid superstitious object-oriented programming). •
learning operating systems and computer networks。 At least some basic concepts need to be clear, specific details, no need to be overly tangled.
- To find the solution phase:
Okay.. The
above can be zoned "superficial understanding" stage, then you can choose a direction (front end, or back end) "To find the very solution" . In the "very solution" stage, I do not elaborate here, and can not elaborate, and you arrive at this stage, generally do not need to tell you what you need to learn. So, I'm just saying
Some of the best things to do before entering this phase, or just entering this phase:•
read the English version of the book or document by discarding the Chinese translation and using various tools. (English to learn)•
Learn to use the Unix-like system. • Learn to ask questions [1]. •
Subscribe to the tech blog to find out what's going on in the industry. ----------------------------------------------------------------------------------------------------------Development and development of Web site is broadly divided into front and Back end,
The front-end is primarily responsible for visual and interactive effects, as well as communicating with the server to complete business logic. Its core value lies in the pursuit of user experience. You can learn the system according to the following ideas:
Basic Knowledge:1.
HTML + CSSThis part of the proposal in the W3school online tutorial to learn, while learning to practice, after each chapter and a small test. Then you can imitate some websites to make some pages. In practice, after accumulating some experience, can read one or two books systematically, recommend "head first HTML and CSS Chinese version", this book is too thin, I did not take out the patience to read. You can weigh it according to the situation.
2. JavaScript has a lot to learn, and if there is no basis for other programming languages, it might be a bit of a force to learn, or it is recommended to study on W3school first. Then suggest
read the language of JavaScript at once, JS is a very confusing language, this book can help you to distinguish which is the essence of the language, which is the dross, for the language essence, should be in-depth study. The dross part can understand other people write code on line, oneself will not have to try.
Advanced :With the above basis, you can do a general static Web page design, but for the complex pages still need to learn further.
1. css. Must see "Proficient in CSS", you should be familiar with the concepts of box model, flow, block,inline, cascade, style priority, and so on after reading this book. As an exercise, you can look at the book "The Craftsman of CSS", which has a detailed introduction to the topics of title, background, fillet, navigation bar, table, forms, etc.
2. JavaScript. The above mentioned content is not enough to make you competent JS programming. Following the basics, further learning includes:
a) framework. Recommended jquery,Easy to use, after W3school simple learning JS, the direct start of jquery can be completed some simple projects. Learning method is also very simple, follow the product documentation to do a few pages on the line, do not have to cover everything, later encountered problems to check the document on the line. The framework can help you block browser differences, allowing you to focus more on the essence of learning with web development. Add: You can use Codecademy to learn javascript,jquery, the user experience is really good (thanks Tonyouyang).
b) JavaScript language paradigm。 The name may not be appropriate, but I cannot find a concept that describes the two concepts of "object-oriented" and "functional". JavaScript is not exactly an object-oriented language, many of its design concepts have the shadow of a functional programming language, even if you do not use object-oriented, it can be fully understood as a functional programming language. Many of the language features of JavaScript exist because of the features of his functional language. This part of the recommendation to learn the basic object-oriented theory, the package, inheritance, polymorphism and other concepts to understand, Wikipedia, Baidu Encyclopedia will be your helper, another recommended
"Object oriented JavaScript",There should be a Chinese version. and functional programming I do not understand the system, not much to say, you can Baidu a bit.
c) JavaScript language internal mechanism. The following concepts must be clarified: the scope of the variable in JS, the way the variable is passed, the definition of the function environment and the execution environment, the closure, the function of the four methods of invocation (general function, the method of the object, Apply,call), and four ways of invocation, ' this ' points to who. You'll learn more about this in the language of JavaScript. In addition, you must understand JSON.
D) Dom programming, one of the core skills of this web front-end engineer. Must-read "The Art of DOM programming", and the part about DOM programming in the book High-performance JavaScript is also very good.
e) Ajax programming, which is another core technology。 Ajax recommends searching the Internet for some information, understanding the context of the concept, Baidu Encyclopedia, Wikipedia content is enough. Real programming is easy, and today almost all frameworks have a good encapsulation of Ajax, and programming is not complicated.
f) Understand browser differences. This part includes CSS and JS two parts, browser difference content is many, suggest in practice accumulate. In addition, for the browser rendering mode, DOCTYPE and other content should be systematically studied.
Step into the first order • Code level:With this knowledge, for most small sites, you should already be able to write code that works. But to be a more professional front-end, you need to keep working on it. The higher requirements are about four: 1 easy to maintain, 2 testable, 3 high performance, 4 low-flow (mobile). 1. Easy to maintain. For the page you should understand the ' style ', ' data ', ' behavior ' of the three separate, the corresponding is of course css,html,js. For JS code, you better understand the design patterns, refactoring, MVC and other content. 2. testability. 3. High performance. Must-read high-performance JavaScript 4. Low flow. Focus on the mobile side more.
another step in the engineering dimension:Front-end projects also face every aspect of the software lifecycle, first of all code management,
you have to learn to use SVN and git. The second is the construction of the code,Now the front-end code building is not a simple compression, the need for dependency management, module merging, various compilations,
you must learn to use front-end build tools such as Grunt,Recently Gulp compare fire, also need to understand.
Add:For the front-end development, the basic content of these, according to their interests and hobbies to choose to learn the following content.
1. Interactive design. Big companies still have professionals to do these, but do not understand the front end of the interaction must not be good front end. Recommend "Simplicity first".
2. Back end. It should be said that the former engineer must know at least one back-end language, but if the hobby can also study deeply,
it should be PHP to start with a lower level of difficulty. This part can be divided into page based, based on two kinds of framework. Large projects are developed based on frameworks,
It is recommended to understand at least one MVC framework, such as Php ci, yii, YAF, etc., and the design ideas of the framework are very similar. Now that Nodejs is widely used in large companies, it is recommended that you use the Express Framework on node to do some backend services development.
3. Flash. I'm not. Flash as one of the core skills of front-end engineering, because I will not, but ActionScript should be the same as JS, you can learn according to work needs. But my principle is can not use as far as possible, in fact, a lot of effects through js,css can be achieved, completely do not need flash. And with the development of HTML5 Flash will be eliminated sooner or later.
4. HTML5 and CSS3。 HTML5 specifications have been released on October 28, 2014, mobile HTML5 and CSS3 have been very widely used, the relevant tools and environment is much better than in the past, have to learn the front-end.
5. Android and iOS development. Today, the front-end of the field of work has been very extensive, native interface development is essentially the front-end development, a large company is facing the native environment and Web environment page maintenance problems, if the technology can be unified, there will be great value. For students with the ability to learn, should understand the basic process of native development, at least to understand the interface building technology.
(turn) front-end learning route