当前位置:网站首页>C language is the watershed between low-level and high-level
C language is the watershed between low-level and high-level
2022-07-06 16:04:00 【Programming fish 66】
As an ancient programming language ,C Language has been strong for decades , Beginners start with C Introduction to language , The university will C Language is regarded as a basic course . No matter how much people attack , How to sing bad ,C Language is standing ;Java、C#、Python、PHP、Perl There are alternatives , They can all fall , only C Language doesn't work .
Programs run in memory ( We will be in 《 Load memory , Let the program run 》 In the section ), A qualified programmer must know about memory , Study C Language is the easiest way to understand memory layout 、 The most direct 、 The most effective way ,C Languages are simply made for memory , It is closer to memory than any other programming language .
The so-called memory , It's what we often call memory modules , This is the thing below , I'm sure you've seen .
All the programs are doing their best to save memory , Are sparing no effort to improve memory efficiency , The whole process of computer development revolves around memory , Constantly optimize memory layout , To ensure that multiple programs can be run at the same time .
Don't know about memory , You can't learn processes and threads , I'm not qualified to play in medium and large projects , Not qualified to develop underlying components , Not qualified to build a system , You are destined to be a rookie , It's not going to be a climate .
I have a profound understanding of the above ! During my work, I focused on website development , Although it can design a beautiful interface 、 Experience good web pages , But for memory leaks 、 Multithreading 、 The underlying concepts like shared memory don't work , I feel that there is a big gap between me and my colleagues , It makes me very depressed , I don't know how to break through . I've tried many times to learn about memory and threads , I also found a lot of information , But in any case, I can't understand , At the end of the day, I'm still confused .
After I left, I operated full-time C Chinese language network , So I decided to system again 、 thorough 、 Learn... In an all-round way C Language , And combine C Language to learn some memory knowledge , This is when I found out , original C Language is made for memory ,C Language design and memory layout are closely linked , Because of my study C Language and have eaten through memory , Learn how computer memory is distributed and organized .
C Languages talk about memory all the time , Memory is just like a shadow , You have to study it .
The most important point is , I was able to combine memory with specific programming knowledge and the running process of the program , It is true that learning can be applied to practice , Let the concept land , Instead of talking , This is the rarest .
Another surprise is that , After conquering memory, I was able to understand processes and threads , It turns out that processes and threads also revolve around memory , To a certain extent , They also exist to make more efficient use of memory .
from C Memory to language , From memory to processes and threads , Interlocking : Don't learn C Language can't eat through memory , You can't eat through processes and threads without learning memory .
I feel like I'm sublimated in an instant , To a new height , Many of the previous mysteries have been solved , There is no barrier to communicate with the great God .
「 Memory + process + Threads 」 These basic computer concepts are the dividing line between rookies and gods , Only learning C To understand them thoroughly .Java、C#、PHP、Python、JavaScript Programmers will encounter bottlenecks after a few years of work , A lot of people will come back to study C Language , Take back the underlying concepts , Let yourself break through again .
The most common questions for beginners
Every walk is like a mountain , Beginners often don't know where to start , Very confused , Here are a few questions that I am often asked , Sum it up and share it with the readers .
1) How long can I learn to program ?
This is a question without an answer . The time everyone put in 、 Learning efficiency and foundation are not the same . If you spend a lot of time studying every day , Then you can learn in two or three months C/C++, In less than half a year, we can write some software .
But one thing is certain , It's absolutely impossible to grow from Xiaobai to a great God in a few months . To be outstanding , It can't be done without a few years . Learning programming is not a matter of reading a few books , You need to keep practicing , Write code , Accumulate scattered knowledge , The amount of code is directly related to your programming level , There are not tens of thousands of lines of code , There are no works that can be sold , How can it be called “ A great god ”.
This is how everyone programmers come here , At first, I was in a fog , It's hard to even output the multiplication table , Only through constant practice can we be familiar with , It's a process of strengthening the way of thinking .
Knowledge points can be understood in a short time , But the way of thinking and programming experience need to be constantly practiced to strengthen , That's why many beginners have learned C The basic concept of language , But still won't write code for the reason .
Programmers are jokingly called ” Code the agriculture “, The farmer who wrote the code , To be a qualified farmer , We must work hard on the ground .
Don't be too stressed , All programming languages are paper tigers , A layer of window paper , As long as I'm open , It's easy. .
2) Is it hard to learn programming ?
Programming is a technology , I don't know if it's hard or not , I only know that , As long as you want to learn , I'm sure I can learn . Technology is a layer of window paper , There is a reason to follow , in my opinion , It's easier than abstract art .
In the field of Technology , The threshold of programming is very low , There is a lot of information on the Internet , As long as you have a computer , A wire line , Junior high school education , You can learn , Invest in 5K about .
Whether it's technical or non-technical , If you want to be accomplished , You have to concentrate on , In a few years, Kung Fu won't stand out from the rest . So first ask yourself , Do you want to learn programming , Do you like? , If you think you're interested in programming , Want to know how software or websites are done , Then don't ask this question again , Just go and learn .
3) Not good at English and math , Can you learn ? Can I learn to graduate from junior high school ?
First of all, speak English . Programming requires that you have an English foundation , Junior high school level is completely competent . Programming originated in the United States , There are many words in the code , It's very easy to remember English , It doesn't matter if you don't know each other , I recommend that you install a dictionary , It's very good at delimiting words , Translate whatever you choose in time , Whether it's a sentence or a word . such , It's no problem that you develop common software .
Of course , If you want to achieve high attainments , Hope to be called the great God , Then read the technical materials in English ( Not all materials have been translated into Chinese ), Junior high school level is a little hard . however , Reading English for a long time will improve your English level , As long as you hold on for a while , Even if only junior high school level , I believe that with the help of Youdao dictionary, it will improve very quickly .
If you haven't learned English , I do not know! am、is、are, What should I say then , Where there is a will, there is a way. , As long as you want to learn , Believe that you can overcome the obstacles of English .
As for Mathematics , As long as you don't plan on Algorithms 、 machine learning / Artificial intelligence 、 big data / Data analysis , Will add, subtract, multiply, divide , Know the power 、 prescribing 、 Scientific counting and other basic concepts , Don't think of mathematics as an obstacle to learning .
4) What kind of computer do you need
If you are shy ,3K The desktops above ,4K The above notebooks can also be competent for , Of course, sometimes it gets stuck .
If economic conditions permit , best 5K The desktops above ,6K Notebook above .
If you want to be in the programming industry , Sooner or later, you should have a high-end machine . It will not only make your work more smooth and efficient , It also makes you feel that work is a kind of enjoyment , So a lot of programmers are equipped with MacBook.
5) Learn to program with Linux Do you
A lot of great gods say in contempt , I don't have to Windows, Have been using Linux, Only Linux So that you can see C The essence of ,C Is to Linux Born .
That's right , But you think about when you studied Windows How long did it take , At first, I couldn't even switch the input method , edit Word Documents don't either ; If you switch to Linux, You'll have the same problem , It will take a while for you to get familiar with Linux, Increased your learning costs , It will slowly kill your interest in programming .
So I suggest , You can Windows Lower learning C Language , No problem at all , If one day Windows Can't meet your learning needs , Then you switch to Linux, At this time you already know a lot about programming , The cost of switching is also low .
Pay attention if you like 、 Collection 、 Comment on 、 Forward a wave , Bi Xin Mo Da !
resources & More in-depth readings :
Open the mysterious channel to get information, click the link to join the group chat 【C Language /C++ Programming learning base 】:828339809
边栏推荐
- Information security - Analysis of security orchestration automation and response (soar) technology
- Analysis of protobuf format of real-time barrage and historical barrage at station B
- 【练习-4】(Uva 11988)Broken Keyboard(破损的键盘) ==(链表)
- Essai de pénétration (1) - - outils nécessaires, navigation
- frida hook so层、protobuf 数据解析
- Research Report on shell heater industry - market status analysis and development prospect forecast
- 【练习-6】(PTA)分而治之
- 信息安全-安全编排自动化与响应 (SOAR) 技术解析
- Opencv learning log 14 - count the number of coins in the picture (regardless of overlap)
- Record of force deduction and question brushing
猜你喜欢
C语言是低级和高级的分水岭
Ball Dropping
mysql导入数据库报错 [Err] 1273 – Unknown collation: ‘utf8mb4_0900_ai_ci’
【练习-5】(Uva 839)Not so Mobile(天平)
PySide6 信号、槽
Penetration test 2 --- XSS, CSRF, file upload, file inclusion, deserialization vulnerability
Web based photo digital printing website
Penetration test (1) -- necessary tools, navigation
Borg Maze (BFS+最小生成树)(解题报告)
frida hook so层、protobuf 数据解析
随机推荐
Research Report of exterior wall insulation system (ewis) industry - market status analysis and development prospect prediction
STM32 learning record: LED light flashes (register version)
CS zero foundation introductory learning record
Penetration test (8) -- official document of burp Suite Pro
Penetration test (1) -- necessary tools, navigation
B - 代码派对(女生赛)
【高老师UML软件建模基础】20级云班课习题答案合集
【练习-6】(Uva 725)Division(除法)== 暴力
Research Report on market supply and demand and strategy of China's land incineration plant industry
Pyside6 signal, slot
JS调用摄像头
程序员的你,有哪些炫技的代码写法?
渗透测试 ( 1 ) --- 必备 工具、导航
Research Report on surgical fluid treatment industry - market status analysis and development prospect prediction
Opencv learning log 14 - count the number of coins in the picture (regardless of overlap)
Opencv learning log 13 corrosion, expansion, opening and closing operations
Nodejs+vue网上鲜花店销售信息系统express+mysql
F - Birthday Cake(山东省赛)
入门C语言基础问答
【练习-7】(Uva 10976)Fractions Again?!(分数拆分)