Learning experience

Since I graduated from high school and began to learn programming at the age of 28, my starting point was much worse than ordinary people. I had no foundation and needed to learn a lot of knowledge.

I taught myself how to program for five months before I got a job.

The first month to learn C language, the results found that C language is not easy to find a job. The next month, I switched to Python. After studying for a month, I found that there were few job openings, so I gave up. In the third month, I decided to search online what language is good for job hunting and then make a decision. Finally, I chose the front end as the direction of learning.

The next three months of front-end learning, HTML and CSS is in w3school, JavsSciprt is watching “JavaScript Advanced Program Design third edition”. In addition to learning, I also did some projects to consolidate and improve my skills. Three months later, I started looking for a job and got my first job in February 2019.

The following three years of learning experience can be divided into two aspects: front-end and theoretical computer knowledge.

The front end

Regarding front-end learning, my tenet is:

  1. Basic knowledge is the main, library, framework for the supplement.
  2. Combining theory with practice makes learning more efficient.
  3. Write summaries from time to time. Digest what you have learned before you write (Feynman method of learning).

Library, framework are tools, the foundation is laid, learning third-party tools to get twice the result with half the effort.

Basic knowledge (JavaScript, CSS, HTML)

During these three years, I read a lot of front-end books, which are as follows:

  • JavaScript you Don’t Know (Part 1)
  • JavaScript you Don’t Know (Middle)
  • JavaScript you Don’t Know (2)
  • JavaScript Advanced Programming (3rd Edition)
  • High-performance JavaScript
  • Introduction to ES6 standards
  • The essence of JavaScript
  • JavaScript DOM programming art 2nd edition
  • The CSS revelation
  • High performance website building guide
  • Advanced guide to high performance website construction
  • The definitive guide to Web Performance

Everything pays off, reading and doing exercises so that my technical level has been greatly improved, so that the learning of Vue source code after playing a great role.

Library, framework,

As far as third-party libraries are concerned, I have only studied JQuery and Vue in depth. The other libraries are all documented-on-demand. Learn more about JQuery: Write two components. In-depth study of Vue results:

  1. Wrote a Vue dynamic form component and published it to NPM.
  2. I wrote a MiniVue modeled after Vue1.0, which brought my understanding of Vue to the source level.
  3. Wrote several articles on Vue.

Theoretical knowledge of computer

The theoretical knowledge of computer determines the ceiling of a programmer (plus English in China).

Data structures and algorithms

Algorithm saw “sword finger offer problem solution”, “Leetcode problem solution” these two books, or very useful, there are brush to the question interview just met.

Compiler principle, computer principle

Because compile principle and computer principle is to see the same book “computer system elements”, so put together to say.

This is a god book, the content is easy to understand, involving computer principles, principles of compilation, part of the operating system knowledge, each chapter has corresponding exercises, you need to write code to complete.

If you complete all the projects in this book, you will receive the following achievements:

  • Build a computer (running on an emulator)
  • Implement a language and the corresponding language standard library
  • Implement a simple compiler

Also, the bar for reading this book is very low, as long as you are proficient in a programming language.

The operating system

Operating systems read Introduction to Operating Systems and In Depth Understanding Computer Systems (this book is more like Introduction to Computers).

Computer network

Computer network saw “computer network — from the top down” “computer network — Xie Xiren edition”, the experiment is by “computer network — from the top down” do. In addition, I have studied HTTP, HTTPS, and HTTP2 in depth. I have read the authoritative HTTP Guide and the Basic HTTP2 tutorial.

conclusion

Computer theoretical knowledge is worth every programmer to learn seriously. However, continuous learning is not an easy thing. It requires a firm goal and strong self-drive. If you do not want to study, you can watch movies and play games to relax, pay attention to the combination of work and rest, but also to guard against playing games addiction, which is summed up from the lessons of blood. Below is a list of interview questions that I spent nearly a month compiling. These interview questions, including my own interview encountered, as well as before the interview brushed questions, I have unified sorted out, I hope to be useful to you.

HTML

  • What are the three layers of browser pages? What are they and what are their functions?
  • What are the advantages and disadvantages of HTML5?
  • Doctype? How to distinguish strict mode from promiscuous mode? What do they mean?
  • What are the new features and elements removed from HTML5?
  • In which browsers have you tested your web pages, and what are their cores?
  • There’s a very important thing at the beginning of every HTML file, Doctype, you know what that is?
  • What do you know about HTML5? (What and why)
  • Understanding of WEB standards and W3C?
  • .

CSS

  • Explain the box model of CSS.
  • Can you describe the types of CSS selectors and give some examples of their use?
  • What’s special about CSS? (Priority, calculate special value)
  • Common Browser compatibility problems and solutions?
  • List the values of display and say what they do?
  • How do I center a div, how do I center a floating element?
  • Please list how many ways (at least two) to clear float?
  • Block, Inline and Inlinke-block details comparison?
  • What is graceful degradation and progressive enhancement?
  • Talk about the problems that float elements can cause and how you can solve them
  • What performance optimization methods do you have?
  • .

JavaScript

  • Js positions, such as clientHeight scrollHeight, offsetHeight, as well as the scrollTop, offsetTop, what is the difference between clientTop?
  • Js drag function implementation
  • Asynchronous loading of JS methods
  • Js anti – shake and throttling
  • A little bit about closures
  • Explain your understanding of scope chains
  • JavaScript prototype, prototype chain? What are the characteristics?
  • Please explain what event delegation/event proxy is
  • How does Javascript implement inheritance?
  • The function executes to change this
  • Babel compilation principles
  • The function is currified
  • Talk about class creation and inheritance
  • Talk about the flow of events in the front end
  • How do I bubble events first and then catch them
  • Talk about lazy loading and preloading of images
  • What does the js new operator do
  • Change the pointer to this inside a function.
  • Ajax solves browser caching problems
  • .

Vue

  • The function of the key value in Vue
  • Why does data have to be a function in a Vue component?
  • What is the State feature of VUex?
  • Introduce Vue’s responsive system
  • Difference between computed and Watch
  • Introduce the Vue lifecycle
  • Why does a component’s data have to be a function
  • How do components communicate with each other
  • How to use custom components in vue. CLI? Have you encountered any problems?
  • How does Vue implement load on demand with Webpack setup
  • Briefly describe which scenarios are appropriate for each cycle
  • What is SCSS? What are the installation steps in vue. cli? What are the major features?
  • What is your understanding of template compilation in vue.js?
  • Vue route jump in several ways
  • How does Vue implement load on demand with webPack setup?
  • Vue routing implementation: Hash mode and history mode
  • How does Vue differ from Angular and React?
  • Vue route hook function
  • What are the calculated properties of Vue?
  • .

React

  • React
  • React Single data flow
  • React life cycle The life cycle of the React function and the React component
  • React and Vue react and Vue react
  • Component communication for reactJs
  • React virtual DOM: How does the React virtual DOM compare
  • React was used in the project. Why react? What are the benefits of React
  • How do I get the real DOM
  • React
  • React life cycle function
  • The process after setState
  • React High order components?
  • React JSX, functional programming
  • What does the React component use to determine whether to refresh
  • How do I configure the React-router
  • Dynamic load module for routing
  • What is Redux middleware and how many parameters does it take
  • How does redux request middleware handle concurrency

The browser

  • Communication across tabs
  • Browser architecture
  • Event Loop in browser
  • The process from entering url to presentation
  • Redraw and reflow
  • storage
  • Web Worker
  • V8 garbage collection mechanism
  • Memory leaks
  • Reflow and Repaint optimizations
  • How to reduce redrawing and reflow?
  • What happens when a page is loaded and displayed from the time the URL is entered?
  • LocalStorage and sessionStorage and cookie difference summary
  • .

Server and network

  • The difference between HTTPS and HTTP
  • The HTTP version
  • What happens from entering the URL to rendering the page?
  • HTTP cache
  • The cache location
  • Strong cache
  • Negotiate the cache
  • The cached resources are there
  • The impact of user behavior on browser caching
  • Advantages of caching
  • Request execution for different refreshes
  • .

Algorithms and data structures

  • Binary tree sequence traversal
  • Properties of B trees, the difference between B trees and B+ trees
  • Tail recursion
  • How do I write a large factorial? What’s wrong with the recursive approach?
  • A method to turn a multidimensional array into a one-dimensional array
  • Talk about how bubbling works
  • How does Heap sort work? Complexity?
  • Several common sorting algorithms, handwritten
  • Array to write as many methods as possible
  • If I have a large array, all integers, how do I find the largest 10 numbers

Complete layout test materials free to share, just like your support,Just click here and get it for free.