Secondly, the initial programming thinking should be constructed. The so-called programming thinking is the thinking and way to solve problems through programming language, which is simply an abstract process. One of the most effective ways to exercise programming thinking is to complete a large number of experiments and form your own programming ideas by constantly summing up experiments. Therefore, if there is a shortcut to learning programming, it is to insist on doing experiments.
Finally, introductory programming needs a complete knowledge structure, involving operating system, computer network, database, algorithm design and data structure. In the current era of big data and cloud computing, it is also necessary to master the relevant knowledge of big data and cloud computing, especially IaaS and PaaS. This knowledge can be learned at the same time in the process of learning programming language, and mastering these contents will have a great impact on programming ability.
Finally, there are many programming languages at present. For beginners with weak foundation, you can start with Python.
Recommended tutorial: Python400 episodes of Beijing Shangxuetang, which is rich in content and systematic. It is suitable for Xiaobai to get started from the beginning, and there are projects that are not boring. Lecturer in established institutions, professional, with many dry goods. This is on their official website or blah blah. You can go and have a look. Good evaluation. It is the most recommended course I have seen so far.
Follow the right person and choose the right book! I am code farmer Ayong, a platform dedicated to sharing programming knowledge!
Programming is a skill. In theory, it is similar to other skills, and practice is the main way. However, it should be noted that programming has programming thinking, and you have to use this thinking to understand, otherwise, you will not be able to enter the door.
Practice programming thinking
This feeling is like the second pulse of Ren Du in martial arts novels. Only after you master the programming thinking can you really get started. It's like your foundation. As for other languages, you build houses on them. I remember when I first started programming in my freshman year, one person in my class passed the mid-term exam. It is because of programming thinking that everyone's brain can't turn around. By the way, if you have a good foundation in mathematics, there are extra points here. If you have a poor foundation, it doesn't matter. Slowly, while programming, you will also improve your math ability.
Now the network is relatively developed and there is a lot of information. You can find several articles on programming thinking, and the language is not limited.
Choose a language
I went to college 20 years ago, so my first language was C. If you are not in an ordinary class, I don't think you should choose C. Ordinary classes teach many languages. I counted that there were no fewer than seven or eight languages learned in those years, but they were not used much, and some of them were eliminated. You can choose the hottest language at the moment, and personally suggest Python. If you study Python, it can be your assistant even if you are not a programmer.
Of course, if you are interested in Web development, you can also learn JavaScript.
If you study, you can read books and look up information online, but for beginners, it is better to watch videos directly. Basic video is basically free. You can go online to open online courses, search for some basic videos, and write code while watching videos. Remember, programming is an engineering job, so you must write code. If you don't write, you'll forget after reading it.
Start a project
Learning a language does not mean that you can program. You may write a few lines of code or some gadgets, but to do a project, you need to master a language ecosystem, and the ecosystem needs to find its direction.
Let me give you an example of the development direction of the network. If you want to do Web front-end development, you need to know.
What are HTML, CSS and JavaScript?
What are ES6, ES7, etc?
What are NPM and Node.js?
What is modular, componentized and functional programming?
What is React, what is Vue and so on.
Of course, you can learn this after you finish the project, or you can buy a systematic professional book. Yes, only when you start the project can you start your growth. At this time, you will start reading. If you don't like reading, it's really not suitable for programming. Programming truly embodies the so-called lifelong learning.
If you don't have a good project, I suggest that if you learn the Web-oriented programming of JavsScript, I suggest you make a Web version of ToDO, a relatively simple project that can involve many aspects. There are also many examples on the Internet. You can learn by doing.
If it is Python, I suggest you make a reptile project first, make a movie station and other tools yourself, grab some data and do experiments.
Persistent persistence
Finally, stick to it and you will encounter many problems. You must go to Google and StackOverflow for these questions, and then often look through some other people's codes on Github, and basically start to grow.
Understand what programming is for first. Programming is the process of letting the computer solve a certain problem, specifying a certain operation mode for the computing system, making the computing system run according to this calculation mode, and finally getting the corresponding results.
In order to make the computer understand people's intentions, human beings must tell the computer the ideas, methods and means of the problems to be solved in a form that the computer can understand, so that the computer can work step by step according to people's instructions and complete a certain task. This communication process between people and computing systems is programming.
For computers, everything is just numbers. Then the purpose of writing code is actually to tell the computer two things, one is what numbers are there, and the other is how to calculate them! So the program consists of two parts: number and number organization, that is, data structure, and the logic of operation, that is, algorithm. And all programming languages are designed to express these two parts well.
A complete programming language generally includes the following contents: data declaration and type, operators and keywords, three statements (assignment, selection and loop), data structure, methods and classes. Among them, the declaration and type of data and data structure are the ways to express numbers and numbers; The rest, except the class, is the logic that expresses the operation; Class is the most special, it contains data structure and operation logic.
With the above overall understanding of programming language, it is to understand and master the relevant knowledge points one by one. And these knowledge points are often one by one, so it is easy to understand one:
The root of everything is number. Numbers should be classified into types-> Type, quantity to store-> There is a relationship among variables, constants and numbers->; Data structure, number to be calculated->; Operator, this number should be calculated according to the rule-> Three sentences and calculation rules should be sorted and reused-> Method, number and method are closely related->; Similarity between classes, encapsulation and classes->; Inheritance, the subclasses of inheritance are different->; Polymorphism, encapsulation, inheritance and polymorphism come together->; object-oriented programming
We should grasp the context between these language knowledge points, know where they come from, where they will develop, and most importantly, know what problems they appear to solve.
On the basis of mastering the language, we should also learn how to use computer resources. Computer resources are encapsulated by various platforms and provided in the form of SDK. Programming language is a kind of expressive ability, and SDK such as JDK and AndroidSDK is the use of resources, that is, the expressed content. We should distinguish between language and resources, so that we can finally use it freely. Learning is actually a process of learning classification. Knowing which is which, knowing the classification, will not make mistakes.
When learning programming, we often encounter a difficult problem: there are many knowledge points related to computer major, which seem unfathomable. To master a lot of programming knowledge quickly, we must have a clean cut-in angle.
We must first clarify a question: What is knowledge? Knowledge is the summary of the solution to the problem. All the knowledge we come into contact with seems to be just to solve a problem. When you know the problem and understand the thinking of others to solve the problem, you will master the solution. Many students fall into the sea of knowledge, which makes them confused, just because they don't know what this knowledge is for and what problems it seems to solve. And a lot of knowledge about computer technology is even more so. In order to solve the problem, it appears as a string. You don't know what problem it wants to solve, just wait to be passed out. Therefore, we must first understand the problems encountered in programming, and then understand how this problem is solved. This solution is the so-called "knowledge point". Therefore, we should always send out "three questions about the soul"
This learning method is called "problem-oriented learning method". With this learning method, when you come into contact with new knowledge in your study, you will immediately realize that this is a solution to a problem and cut into the problem. I believe you can understand and apply new knowledge soon.
Finally, and most fundamentally, the study of programming is for use. Only when you can use it can you really master the language and understand the relevant knowledge of programming. If you want to learn programming, you can take a look at my zero-based programming course. Learning is simple and interesting.
Traditional classroom training has many advantages, but it is not suitable for continuous learning mode or the busy schedule of IT personnel. Classroom learning sometimes needs to be arranged several months in advance, which depends on the availability of the course and the focus of the staff. And fixed-time group training courses are unlikely to be the best choice for your learning speed. Many parts of the course may not even be related to your specific professional role in the enterprise. With the rapid changes in business and IT requirements, can you ensure that the knowledge learned in the classroom can be used immediately after the classroom training? Do you need to refresh some knowledge in the near future, such as before implementation and upgrade or when solving emerging business problems? The limitations of one-time classroom learning make it very unsuitable for many IT professionals today. Digital training is rapidly spreading, because it is very suitable for IT personnel who are pressed for time and can meet their continuous learning needs. It allows you to learn what you need only when you need it, without having to attend the whole course or spend time in different places. According to your own rhythm, you can pause and repeat segmentation at any time according to your own schedule. Divide the training into several days or weeks according to your work schedule. The more and more obvious advantage of digital learning lies in its flexibility in location. You can study comfortably at your desk, staff training room or home office. Maybe you often travel to and from business locations or customer project sites? Or study during your daily commute? No matter where you study, self-study exams are always not recommended. Whoever tries will cry.
I suggest that you can choose the easy-to-use language python. I searched a lot of introduction videos on the headlines. Can help you quickly find the fun and feeling of programming. The most important thing is to build your self-confidence.
With interest and self-confidence, if you want to deepen and improve. You can try to learn data structures and algorithms. Headlines also have many video tutorials. This will help you to enter this industry.
Then you can try learning Java or Go. Learning another language can make you have different experiences and understandings.
After that, you can try to learn from architectural knowledge and read DDIA. I am sharing reading this book, and the challenge is the English version. You can look at my homepage.
If you want to learn programming, you must first choose a programming language. Common programming languages are:
C/c++, good performance, but low development efficiency.
Java, the performance is slightly poor, but the development efficiency is high, the basic library is perfect, and there are many available frameworks.
Python, poor performance, but high development efficiency. As the saying goes, life is short, which is why I use Python.
Js, mainly used in the front end, can be used in the back end but rarely.
Php, mainly used in the back end.
Go, mainly used in the back end, gives consideration to performance and development efficiency.
Dart is a very competitive programming language, which is used in flutter framework and has great potential in cross-platform field in the future.
Kotlin and goole strongly replace java to develop the programming language of androidapp.
There are many more.
According to your own needs, choose a course, then learn basic grammar, and then try some simple projects. At this time, you must read more other people's codes, learn the design of other people's data structures, the use of grammar, etc., and practice more yourself. After doing a few simple projects, your self-confidence will be greatly increased and your interests will be more abundant. Then you can try a slightly more complicated project and realize some of your own ideas.
If you choose to improve at work, remember that work may make you lose the fun of programming. However, remember, it is not the programming that has changed, but the pressure, doubt and hard work that make it lose its fun. I hope you can stick to it and finally get rid of the haze and enter a new and higher realm.
PS and AI are two essential skills for UI designers. For those who want to learn UI design, they must first learn to use PS and AI. How can I learn these two things quickly? The following Qianfeng UI design training will share with you a 20-day introductory tutorial on learning UI design (PS+AI).
Course introduction
This set of courses mainly explains the use of PS tools, and introduces the basis and application cases of mask, channel, filter, layer style and layer blending mode. This paper mainly introduces the basic usage of artificial intelligence and expounds how to design brand image with artificial intelligence software.
After completing the course, you can skillfully use PS and master portrait retouching, advanced matting, image synthesis, poster making, light texture icon making and so on. Skillfully use AI software, and master logo design, business card design, single page, folding, Yi Labao and other designs, and master the composition, design and production of VIS manual.
Course catalogue
Chapter 65438 +0 PS
1. Meeting Adobe for the first time
Version iteration of 2.2. Postscript (same as postscript); Police sergeant
3.3 Introduction and use. Postscript (same as postscript); Police sergeant
Introduction of 04PS Interface and Workspace
05PS preference settings
06 file creation and opening
Storage and format of 07 files
Understanding of 08 layer
Classification and function of layer 09
Basic operation of 10PS software
1 1 Basic use of mobile tools
Alignment of 12 layer
13 layer distribution alignment
14 box selection tool and selection addition and subtraction operation
15 comprehensive application of frame selection and color filling
Feather 16 constituency
17 lasso and polygonal lasso tools
18 magnetic lasso tool
19 the use of magic wand tools
20 Quick Selection Tool
2 1 Select and Cover-Sparse Hair
Pick your hair
23PS color range
24 cutting tools
25 perspective editing tool
26 Slice and Slice Selection Tool
27 drawing box tool
28 brush tool
29 Brush panel
Define brush defaults and load brushes.
3 1 color substitution tool
32 eraser tool
33 background eraser
34 magic eraser tool
35 stain repair brush tool
36 repair brush tool
37 repair tools
38 content-aware mobile tools
39 red eye tool
40 seal imitation tool
4 1 pattern stamp tool
42 historical brush tool
43 gradient tool
44 paint bucket tool
45 Basic usage of pen tool
Basic usage of 46 shape tools
Application of 47 plastic tools
48 Boolean operation application
49 Boolean operation application 2
50 text tools
5 1 Character and Paragraph Panel
52 path text
Blur and sharpen tools
54 daubing tool
55 Deepening and Mitigating Tools
56 sponge tool
57-layer mask
Application of 58 clip mask
Application of 59 masks
Application of layer mask added reflection
6 1 hue saturation
62 color balance
63 optional colors
64 color scale
65-degree curve
Channel 66
67-Channel Application-Pick Hair
68 surface blur filter
69 Gaussian blur filter
70 dynamic blur filter
7 1 radial blur filter
72 twisted ripple
73 twisted polar coordinates
74 deformation-spheroidization
75 Stylization-Wind
76 Stylization-Highlight
liquefy
78 Liquefaction-Face-lifting
Gao Fancha kept grinding his skin.
80-story style (1)
8 1 layer style (2)
82-story style (3)
83rd floor style (4)
84-story style (5)
85 dissolution mode
Principle analysis of 86 dimming type
87 Brightening Application Case
88 darkening application
89 superposition and soft light mode
90-layer mixed mode application (1)
Application of 9 1 layer mixed mode (2)
92 What is artificial intelligence?
93 interface distribution and function introduction
94 new document
95 open the file
96 storage file
Basic operation of 97AI
98 color fill and stroke
99 rectangular tool set
100 selection tools and direct selection tools
10 1 cartoon image painting
102 magic wand and lasso tool
103 pen tool set
104 scissors and carving tools
105 text tool
106 linear tool set
107 Brush Toolset
108 Rotation and Mirror Tool
109 ferris wheel illustration
1 10 shape generator
11/application of shape generator
The Application of 1 12 Shape Generator (2)
1 13 real-time coloring tool
Application of 1 14 real-time coloring tool
1 15 gradient tool
1 16 mixed tool
Application of 1 17 mixed tool
1 18 application of gradient and blending tools
1 19 path finder (1)
120 Path Finder (2)
The application of 12 1 path finder
122AI integrated application -MBE style icon
123 comprehensive application-making -logo icon
124 comprehensive application-color text production
125 comprehensive application -2.5D font
126 integrated application-offset path
127 comprehensive application-circle tangent diagram
128 comprehensive application-cutting mask to make texture background
129 comprehensive application-grid tool to make gradient background
130 comprehensive application-symbol
13 1 comprehensive application-flying particles
132 integrated application-streaming media planet
133 comprehensive application-color gradient lines
134AI night illustration-background creation
135AI night illustration-tree making
136 ai night illustration-making trees (2)
137AI night illustration-moon and firefly production
138AI night illustration-elk production
139AI night illustration-leaf making
What is a font?
The Importance and Methods of Font Design
142 font characters
143 basic word formation method
144 rectangular layout
145 stroke typing
146 geometric element method
147 stroke thinning method
148 image replacement method
Simplified 149 strokes
150 Understanding Logo Design
15 1LOGO design creative skills
152 Initial Creation Techniques
153 letter creation skills (2)
154 metaphor
155 badge design skills
156 badge design skills (2)
157 design specification for business cards
158 business card design and typesetting design
159 business card design (1)
160 Business Card Design (2)
16 1 business card design (3)
162 business card design (4)
163 what is a DM single page?
164DM single page production specification
Design of 165DM single page header
166DM single page typesetting design
Design of 167DM single page header
168 leaflet design (2)
169 three-fold design code
170 three-fold design (1)
17 1 folding design (2)
172 folding design (3)
173 folding design (4)
174 Yi Labao design code
175 Yi Labao design (1)
176 Yi Labao design (2)
177 enterprise VIS
178 basic identification system
179 application design system
Programming is a very broad word, right? In fact, there are many languages for programming. If you don't look at the language, it can be roughly divided into front-end and back-end (note: programming is not just front-end and back-end, so it is easier for beginners to start with front-end and back-end, and then it will involve complex technologies such as frameworks). Front-end refers to front-end interfaces such as web pages or apps, and the back-end is responsible for realizing the functional services of the front-end and returning the data needed by the front-end to the front-end for display or response.
Beginner programming can start with these points:
1. Know what programming you want to do (front end or back end);
2. After knowing whether it is front-end or back-end, you should also know what language you want to start with. For the front end, it is suggested to start with HTML+CSS, and for the back end, it is suggested to start with C#, which is only my suggestion, not absolute;
3. If you know which language to start with, you can go to official website to check the documents and watch the demonstration. If you still don't understand, you can go online and search the introductory video of the language. Now the online tutorial is very detailed;
4. After getting started with programming, you can try to realize the page or function you want, which will enhance your confidence.
Programming languages are actually universal. If you do the latter, you will find that learning other languages will be much faster. Novices don't worry, take your time, and you will get something if you stick to it.
It is a very effective way to learn how computers work by writing compilers and learning low-level programming methods. Compiler is usually considered as a very complicated project. In fact, writing a production-level compiler is indeed a huge task. But it is not difficult to write a small and usable compiler. Get out of the first step of the introductory programming tutorial, and it's up to you what to do next. You can do all the instructions in the article and then make a more complicated compiler. You need to write a more complex syntax tree to generate assembly code. The next steps are: (1) allow to return any value (such as return3 some executable code); (2) Increase support for "not" (such as return ~1; Some executable code). Every extra feature can teach you more about C language, how compilers actually work, and what other compilers in the world think. This is how babyc is built. Babyc now has if statements, loops, variables and the most basic data structures. Let me show you the most authoritative learning road map. China Network Training Camp: