


How can programmers improve their programming level and their thinking level when reading computer programs?
How to become a high-level programmer?
Related background:
I have been working in PHP for more than half a year, and have been exposed to PHP for a year and a half
I was originally doing SEM in a company, and came into contact with the dede PHP system, so I started to learn HTML, CSS, and PHP by myself as an amateur
Amateur I just read information, videos, and simple blog project codes on the Internet, and then I wrote a website homepage. Later, I transferred to the company to do PHP
At work, I learned how to use js while getting started, and later I did it manually. After installing WAPM, I have also struggled with linux design patterns. I have tested them one by one. There are more than 20 types. I have some insights into object-oriented data structures and algorithms. After reading them, I feel like I don’t know where to use them.
Operation System - I haven’t finished it yet I know a little bit about C, I know a little bit about PHP, and now I’ve read a little bit about python And I haven’t finished reading the book on high-performance mysql yet
My major is: telecommunications engineering, mainly Learned: Analog circuits, digital circuits, assembly language and microcontrollers, PCB circuit board design, C language, microcomputer principles and interfaces, EWB circuit design, VHDL programming... and others I forgot...
Last semester, I have written an electronic clock using C language + 52 microcontroller, which can tell time on the hour. I bought the components and made a physical object, which consumes more power. The C code is more than 400 lines, which is considered a toy-level thing.
My biggest doubt now That is: I have a friend who works in C++. He seems to be able to understand the implementation principles of many programs, but I feel that I am still in chaos and cannot see the essence of the program clearly. I cannot understand everything. The books I read, I feel, Just like beads, they are scattered, as if there is a thread missing to connect them, but I can't find that thread. Programs other than the web are still very mysterious to me
All I can understand now is, Programs all process characters (the lower level point is 101010...), accept user input, and then use an algorithm to process it, and then save it in the computer in a suitable way, and display it when the user needs it. come out. This perception is based on my conjecture combining pyton, php, mysql, redis, command line mode, and 'hello world'...
What exactly is the problem, what knowledge is missing, how to make up for it, and how to become an advanced program as soon as possible As a programmer, I look at programs and computers from a new height. I think a qualified programmer, at least in terms of thinking, should not be limited by a certain programming language (I myself want to write a program in C and be able to Accept the input and save it, and then imitate mysql to do the function, I don’t know if it makes sense)
Reply content:
Thanks for the invitation.Our old principal said, "Action is the beginning of knowledge; knowledge is the completion of action." So, if you don’t understand it, write the code first. To ask a question, first show me your code - now it should be show me your github. There are no tens of thousands of lines of code on Github, so there is no need to ask the question "How to become a senior programmer as soon as possible". Anyway, you won't understand the good advice given by others. We have a young guy here who has just debuted. His github submission record in the past year is like this:

Computer Architecture (Douban)
Construction and Interpretation of Computer Programs (Douban) Strength = theory + practice.
A friend told me that if you want to become a master, it is very simple. If you persist every day for 4 consecutive years, from 6:00 in the morning to 23:00 in the evening, keep reading + doing experiments. After 4 years, you will be a master. The books I have read are too poor/few. Find more good books to read.
You probably wrote a lot of repetitive and useless code.
Don’t pretend to work hard and green github every day, it’s useless, you can only impress yourself. (Wouldn’t it be green after pushing three different readme.mds?)
Learn some new knowledge every day, dare to challenge yourself, and only when you leave your comfort zone will you continue to make progress (that is, when you write some code that feels so difficult, painful, and uncomfortable ).
A few words: Those who learn electronics are likely to enter the cycle mode of downloading source code, changing parameters, and burning programs, and ignore the learning of basic knowledge.
So honestly go and take a look at the data structures, operating systems and other things you mentioned. You now know how to use each engine part and are familiar with the assembly method, but you don't know how this part is manufactured.
@小京mo@Badger4us I suggest you read the programming introductory guides of these two people. It should be able to avoid a lot of trouble. Pay more attention and think more The foundation is not strong
The earth is shaking
I can tell you something responsibly
Computers are all-inclusive
Essentially, whether it is python c c++ c90 they are all computer languages
You have to understand the key to why we need to program It’s because we have to communicate with computers
For example, the computer is God. No matter you speak French, Spanish, Chinese, or Allahu Akbar, He can understand it
So you have to understand how language works
Every language has its owner Predicate object, definite state complement (I’m trying to hold back on learning a language, I’m just talking about some life experiences)
Don’t learn complicated languages. If you say you want to get involved in C now, just thoroughly understand C. Ask yourself after work How many hours do you type code one day? Do you love computers or do you just make a living? Computer thinking, for example, you have to be very good at physical thinking to have an epiphany. Being able to solve a few physics problems is not called physical thinking (escape).

Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

Video Face Swap
Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Article

Hot Tools

Notepad++7.3.1
Easy-to-use and free code editor

SublimeText3 Chinese version
Chinese version, very easy to use

Zend Studio 13.0.1
Powerful PHP integrated development environment

Dreamweaver CS6
Visual web development tools

SublimeText3 Mac version
God-level code editing software (SublimeText3)

Hot Topics











MySQL and phpMyAdmin are powerful database management tools. 1) MySQL is used to create databases and tables, and to execute DML and SQL queries. 2) phpMyAdmin provides an intuitive interface for database management, table structure management, data operations and user permission management.

IIS and PHP are compatible and are implemented through FastCGI. 1.IIS forwards the .php file request to the FastCGI module through the configuration file. 2. The FastCGI module starts the PHP process to process requests to improve performance and stability. 3. In actual applications, you need to pay attention to configuration details, error debugging and performance optimization.

In MySQL, the function of foreign keys is to establish the relationship between tables and ensure the consistency and integrity of the data. Foreign keys maintain the effectiveness of data through reference integrity checks and cascading operations. Pay attention to performance optimization and avoid common errors when using them.

The main difference between MySQL and MariaDB is performance, functionality and license: 1. MySQL is developed by Oracle, and MariaDB is its fork. 2. MariaDB may perform better in high load environments. 3.MariaDB provides more storage engines and functions. 4.MySQL adopts a dual license, and MariaDB is completely open source. The existing infrastructure, performance requirements, functional requirements and license costs should be taken into account when choosing.

Python and C each have their own advantages, and the choice should be based on project requirements. 1) Python is suitable for rapid development and data processing due to its concise syntax and dynamic typing. 2)C is suitable for high performance and system programming due to its static typing and manual memory management.

SQL is a standard language for managing relational databases, while MySQL is a database management system that uses SQL. SQL defines ways to interact with a database, including CRUD operations, while MySQL implements the SQL standard and provides additional features such as stored procedures and triggers.

Both Python and JavaScript's choices in development environments are important. 1) Python's development environment includes PyCharm, JupyterNotebook and Anaconda, which are suitable for data science and rapid prototyping. 2) The development environment of JavaScript includes Node.js, VSCode and Webpack, which are suitable for front-end and back-end development. Choosing the right tools according to project needs can improve development efficiency and project success rate.

Choosing Python or C depends on project requirements: 1) If you need rapid development, data processing and prototype design, choose Python; 2) If you need high performance, low latency and close hardware control, choose C.
