How can I select and add to the programming field correctly (Windows programming only )? Delphidelphidelphiwindowswindowswindows game programming language
[Author]
Site: http://www.x86asm.com
Email: pliceman_110@163.com
QQ: 643439947
Programming career: 2001 ~ So far
CAREER: 9 years
CAREER: General Software Architect general software technical director general software R & D Engineer
Development language: C/C ++; x86asm; Object Pascal; C #;
Development tools: VC ++; Delphi;
R & D fields: Windows application software security; Windows Kernel security; Windows System Disk data security;
Skill type: reverse drive Disk File
Original books: getting started with Windows Programming-<an unknown micro-book>
[Preface]
How to program and how to learn programming well is the topic most discussed in the programming industry. In the face of many students who have just joined the programming Learning Group, I have to answer this question first. below I will share my thoughts briefly. as efficiency is an era, I write this article to make it concise.
[Who can learn programming well?]
Many people are interested in programming, but they have never been able to learn well and are confused. whether the foundation is too poor or the comprehension ability is worse than others. in my eyes, as long as you have a few basic conditions, you can learn programming well: IQ is normal, strong, perseverance, loneliness, and curiosity.
1> normal IQ: as long as it is not regarded as mentally retarded by medicine, an idiot will do it.
2> strong perseverance: learning requires a price. When you think back to the top students in your junior high school or high school class, most of them study hard. When you play, the top students do not play, when you go to bed, the superior student does not go to bed.
PS: Here I do not advocate nerd learning, but mainly advocate the importance of time. Learning is a time-consuming process.
3> loneliness ability: It is boring to learn from those who learn to fight with loneliness. As a result, loneliness often strikes you. At this time, we must learn how to adapt and fight with loneliness, instead of giving up learning because of loneliness.
4> strong curiosity: Learn A technology. What matters is interest and curiosity. This strong curiosity can make your learning passion lasting.
[I have all four basic conditions. How can I program it?]
Many people are interested in programming, but cannot start. Why?
This is because you have not carefully analyzed your programming interests. Before learning programming, you should think about what interest you are programming? Only by knowing the source of your interest can you decide your programming field. The programming field is clear, and you can know how to learn programming for this field.
[What programming fields are there now?]
There are many programming fields, and I cannot give them one by one. Here I will only list the fields with high attention and popularity:
PS: I will not list programming in the scientific research field, because this is intended for beginners.
// White Industry
1> Game Development
2> System Security
3> Network Security
4> Databases
5> network development
6> mobile app development
7> System Application Development
// Gray Industry
1> network intrusion
2> cracking
3> game plug-ins
4> Virus
5> Trojan
6> malicious remote control
[Select the fields you are interested in and decide your programming language learning.]
Because I am a software development engineer in Windows, and it is oriented to popular development, not scientific research, and not hacker. so I will give an example to introduce what I am familiar. for example, if I like system security and system application development, most of these are based on the C language and C ++ language, and other languages can be developed, for example, C # java vb delphi can be used. but I would like to say that in most fields (cracking plug-in game viruses and Trojans remotely control game development networks to develop anti-virus software ......), C language and C ++ language are the foundation of programming. Therefore, for beginners, positioning C language learning at the beginning is the correct direction. After mastering C language, the next stage is to master C ++ language. as long as you are familiar with C and C ++, it is very easy to learn other languages.
[Do I have to lay a solid foundation before learning programming?]
There are also many people who are worried about this problem. They are afraid that the Foundation will not work and cannot enter the programming field. in fact, this idea is redundant. as long as your IQ is normal, many foundations can be compensated the day after tomorrow and can be synchronized. programming Languages have a small number of key words in English. As long as you manually read the English dictionary, it is okay to look at it. There is no need to say that the English language has reached a certain level and you are learning programming. english learning can be performed simultaneously. when talking about mathematics and how low culture is, you have to have junior high school mathematics. The basic theory of junior high school mathematics is enough for you to learn basic programming syntax (note that this refers to programming syntax, therefore, there is no need to wait until you have completed all your mathematics to learn programming, which is a waste of time. synchronization should be learned. of course, with the continuous development of learning programming, You can consciously fill in gaps and gaps based on the weak foundation of your own mathematics. The principle of learning mathematics is that you can use it. because you don't need to be a mathematician.
[Familiar with programming languages, How can I improve my programming skills?]
To improve programming capability, it has a lot to do with the knowledge theory. Below I will list several important factors:
1> English: the quality of English determines the speed at which you can obtain and digest the foreign technical literature. Many advanced technical concepts come from abroad, and the English literature occupies the largest proportion. if your technical source channel is limited to Chinese documents in China, your technical improvement will be slow.
2> mathematics: This is a very controversial topic. At present, there is no clear explanation of the role of mathematics in programming. but I can only say, pay attention to weaknesses. many mathematical theories are used in some fields, such as video codec development, pattern recognition, neural networks, and game engines. However, general software developers do not have to deal with these advanced theories. I personally think that if you are not engaged in scientific research-type programming, then the four-year bachelor's mathematical theory is enough for you to use. the mathematical theory of high-end software development focuses on discrete mathematics.
PS: You can read two other articles on my website (www.x86asm.com): "Do not fear programming because of English and mathematics." "The only way to develop high-end software in mathematics"
3> Data Structure + algorithm: this theory is critical. The higher the mastery level, the higher the efficiency of the program you write. The more beautiful the program is, the more technical the content is. to put it bluntly, this is to make your program process data faster.
4> Operating System Theory: Understanding the operating principles of the system can make the program run more stable, more secure, and more robust, and ensure the quality of the program.
5> teacher/master: It is impossible for a teacher or a teacher to give you correct guidance. It is very important for you to improve your abilities and avoid many detours.
[Conclusion]
How to Learn programming well is still old experience:
1> interest 2> hard work 3> teacher/Master 4> basic 5> persistent
(PS: note that there is a ranking here.) Learning programming is the first priority. If you are interested, you will know how to study hard. Then, you cannot study blindly, if you have a teacher or a master, you will learn more quickly and avoid detours. if you know how to study hard, you have to lay a solid foundation for your own weakness. The rest is to maintain a persistent learning state.[Author]
Site: http://www.x86asm.com
Email: pliceman_110@163.com
QQ: 643439947
Programming career: 2001 ~ So far
CAREER: 9 years
CAREER: General Software Architect general software technical director general software R & D Engineer
Development language: C/C ++; x86asm; Object Pascal; C #;
Development tools: VC ++; Delphi;
R & D fields: Windows application software security; Windows Kernel security; Windows System Disk data security;
Skill type: reverse drive Disk File
Original books: getting started with Windows Programming-<an unknown micro-book>
[Preface]
How to program and how to learn programming well is the topic most discussed in the programming industry. In the face of many students who have just joined the programming Learning Group, I have to answer this question first. below I will share my thoughts briefly. as efficiency is an era, I write this article to make it concise.
[Who can learn programming well?]
Many people are interested in programming, but they have never been able to learn well and are confused. whether the foundation is too poor or the comprehension ability is worse than others. in my eyes, as long as you have a few basic conditions, you can learn programming well: IQ is normal, strong, perseverance, loneliness, and curiosity.
1> normal IQ: as long as it is not regarded as mentally retarded by medicine, an idiot will do it.
2> strong perseverance: learning requires a price. When you think back to the top students in your junior high school or high school class, most of them study hard. When you play, the top students do not play, when you go to bed, the superior student does not go to bed.
PS: Here I do not advocate nerd learning, but mainly advocate the importance of time. Learning is a time-consuming process.
3> loneliness ability: It is boring to learn from those who learn to fight with loneliness. As a result, loneliness often strikes you. At this time, we must learn how to adapt and fight with loneliness, instead of giving up learning because of loneliness.
4> strong curiosity: Learn A technology. What matters is interest and curiosity. This strong curiosity can make your learning passion lasting.
[I have all four basic conditions. How can I program it?]
Many people are interested in programming, but cannot start. Why?
This is because you have not carefully analyzed your programming interests. Before learning programming, you should think about what interest you are programming? Only by knowing the source of your interest can you decide your programming field. The programming field is clear, and you can know how to learn programming for this field.
[What programming fields are there now?]
There are many programming fields, and I cannot give them one by one. Here I will only list the fields with high attention and popularity:
PS: I will not list programming in the scientific research field, because this is intended for beginners.
// White Industry
1> Game Development
2> System Security
3> Network Security
4> Databases
5> network development
6> mobile app development
7> System Application Development
// Gray Industry
1> network intrusion
2> cracking
3> game plug-ins
4> Virus
5> Trojan
6> malicious remote control
[Select the fields you are interested in and decide your programming language learning.]
Because I am a software development engineer in windows, and it is oriented to popular development, not scientific research, and not hacker. so I will give an example to introduce what I am familiar. for example, if I like system security and system application development, most of these are based on the C language and C ++ language, and other languages can be developed, for example, C # Java VB Delphi can be used. but I would like to say that in most fields (cracking plug-in game viruses and Trojans remotely control game development networks to develop anti-virus software ......), C language and C ++ language are the foundation of programming. Therefore, for beginners, positioning C language learning at the beginning is the correct direction. After mastering C language, the next stage is to master C ++ language. as long as you are familiar with C and C ++, it is very easy to learn other languages.
[Do I have to lay a solid foundation before learning programming?]
There are also many people who are worried about this problem. They are afraid that the Foundation will not work and cannot enter the programming field. in fact, this idea is redundant. as long as your IQ is normal, many foundations can be compensated the day after tomorrow and can be synchronized. programming Languages have a small number of key words in English. As long as you manually read the English dictionary, it is okay to look at it. There is no need to say that the English language has reached a certain level and you are learning programming. english learning can be performed simultaneously. when talking about mathematics and how low culture is, you have to have junior high school mathematics. The basic theory of junior high school mathematics is enough for you to learn basic programming syntax (note that this refers to programming syntax, therefore, there is no need to wait until you have completed all your mathematics to learn programming, which is a waste of time. synchronization should be learned. of course, with the continuous development of learning programming, You can consciously fill in gaps and gaps based on the weak foundation of your own mathematics. The principle of learning mathematics is that you can use it. because you don't need to be a mathematician.
[Familiar with programming languages, How can I improve my programming skills?]
To improve programming capability, it has a lot to do with the knowledge theory. Below I will list several important factors:
1> English: the quality of English determines the speed at which you can obtain and digest the foreign technical literature. Many advanced technical concepts come from abroad, and the English literature occupies the largest proportion. if your technical source channel is limited to Chinese documents in China, your technical improvement will be slow.
2> mathematics: This is a very controversial topic. At present, there is no clear explanation of the role of mathematics in programming. but I can only say, pay attention to weaknesses. many mathematical theories are used in some fields, such as video codec development, pattern recognition, neural networks, and game engines. However, general software developers do not have to deal with these advanced theories. I personally think that if you are not engaged in scientific research-type programming, then the four-year bachelor's mathematical theory is enough for you to use. the mathematical theory of high-end software development focuses on discrete mathematics.
PS: You can read two other articles on my website (www.x86asm.com): "Do not fear programming because of English and mathematics." "The only way to develop high-end software in mathematics"
3> Data Structure + algorithm: this theory is critical. The higher the mastery level, the higher the efficiency of the program you write. The more beautiful the program is, the more technical the content is. to put it bluntly, this is to make your program process data faster.
4> Operating System Theory: Understanding the operating principles of the system can make the program run more stable, more secure, and more robust, and ensure the quality of the program.
5> teacher/master: It is impossible for a teacher or a teacher to give you correct guidance. It is very important for you to improve your abilities and avoid many detours.
[Conclusion]
How to Learn programming well is still old experience:
1> interest 2> hard work 3> teacher/Master 4> basic 5> persistent
(PS: note that there is a ranking here.) Learning programming is the first priority. If you are interested, you will know how to study hard. Then, you cannot study blindly, if you have a teacher or a master, you will learn more quickly and avoid detours. if you know how to study hard, you have to lay a solid foundation for your own weakness. The rest is to maintain a persistent learning state.