Inspiration given to me by a 32-year-old post-70s programmer

Learning is a process of accumulation and precipitation, and there will be no immediate results. There is a golden age for learning, but there is no age when you cannot learn.

Hello everyone, I am a handsome guy. Today I bring you a very inspirational story that makes me reflect. Today I'm going to tell you about how my father taught me to be a programmer with action.

The tempering of the years

640?wx_fmt=jpeg&wxfrom=5&wx_lazy=1

Keyboard with round port, 2003

Someone asked if this keyboard has not been wiped? No, it is the traces of time that cannot be erased. If you have a friend who pays attention to the details, you will find out which keys the programmer uses the most. Except (ASDW, YUHJ, that's left over from playing boxing when I was a kid). Although this keyboard is old, my dad has been reluctant to throw it away. In 2003, he bought this second-hand computer with a frequency of 486Cpu from the second-hand market and began to teach himself to compile. My dad has only junior high school education. But it has super hands-on ability.

Introduction to Zero Programming Basics Embedded Development

Because in 2003, he had just resigned from an electronics factory. He saw things like single-chip microcomputers in the electronics factory, and he saw the wages and treatment of their engineers. At that time, he was just a solder worker on an assembly line. Although he is a team leader, he also feels the limitations of his profession. ( This also brings us a revelation. As a man, if you feel that your career has no end in sight, you should change jobs as soon as possible. If you don’t do it as soon as possible, you will choose to compromise in the future family pressure, and you will never see the end .), resignation The next day, he bought back this second-hand computer of the 486 Pentium series, and a simulated programming machine (a machine that writes programs to the chip), a book for introductory assembly language, and started his 12-year The road to embedded development. ( The inspiration given to me here is that you should learn to learn, don't think about how to get started, the best entry skills are hands-on. )

The strange slut who copied books in the library

640?wx_fmt=png

This is what he secretly copied in Xinhua Bookstore when he was learning C language.

I remember when I was in junior high school, my dad would take me to the Xinhua Bookstore to read books every Saturday, and then when I went there, every time he asked me to see if the librarian was coming, and then he would concentrate on copying there. These code snippets ( this method of learning is now a joke in my opinion, just open a website and there are piles of code, but then again, what did you learn in these source codes, remember? Will it be used flexibly? From the learning methods of the predecessors, it is still necessary to record some commonly used code snippets. Do you have a set of code snippets of your own on your github? If not, hurry up and collect them! ) But my dad's notes , Every time I ask him what kind of project this is, he can remember it very clearly. Of course, he was very painful when he got started, and he didn't understand a single word of English, as you can imagine. But everyone's foundation should be much higher than my dad's, so don't doubt whether you can learn programming, you can definitely learn it.

Programmer Stunts - Focus

My relatives always say to me, "You, after sitting for a long time, you should get up and walk more often and look at the distance. This is the best way". But I don't think most programmers can do it, because programming can't stop at all. Once you get started, you will feel like you want to create all the time. This is the focus of writing programs. Speaking of which, I just wanted to ask everyone: " How many hours can you focus? ", I threw this question to my dad, and my dad smiled and said to me: " Use gas, put a flat bottom filled with water How long does it take for the pot to burn through? ". This is one of his real experiences. He was writing an MP3 player in assembly language. During the debugging process, he forgot that he was boiling water. Fortunately, the gas ran out! Telling this story just wants to tell everyone a truth: " You need to maintain a high degree of focus when writing programs, but you can't focus too much on fatigue. "

Programming requires process reengineering

Software engineering is much like architecture in that it builds the best solutions based on real-world technology. "Rebar and concrete" are all ready-made and can be used directly. The same is true for programming, and the same is true for embedded development.

640?wx_fmt=png

This is a STM32 experiment board transplanted with UCOSII system

This board is embedded with UCOSII system, which can perform multiple tasks at the same time, and can assign task priority. In layman's terms, you can type while listening to music. While it may seem low-level, embedded is just that. It's very high-end, but when I asked my dad, how did you make this board, are you really so good at writing an operating system in C language?

The board is drawn by myself, other chips are bought, and the CPU program is written by myself. The original embedded development is responsible for the rational design of each functional module, using the program to schedule. Now the mature chips are all programs written by manufacturers and provide external calling interfaces. Developers can develop without knowing the content in them. This is a great inspiration for me to learn programming in the future. My teacher once said: "The reason why software engineers can write programs to solve practical problems is because they understand process reengineering and use realistic wheels (technology) to implement this process ". If you want to become a software engineer, the first thing is not how powerful your programming language ability is, but how to simplify the tedious processes in real life through computer science. I think this is the real software engineer. Although my dad's programming foundation is not as strong as mine, his ability to process reengineering is much stronger than mine. Maybe this is the experience.

640?wx_fmt=png

This is the process that it provides me with the serial port response (may be wrong)

I made my dad a fake full stack

When I was a sophomore in high school, I learned C# and could do a simple winform program, and then I started to flirt and brag with my dad. At that time, my dad was so happy that he directly took me a real project, which is really gold. Silver, I foolishly agreed at the time. Since it is a real project, the fault tolerance of the program must be very high. You can’t throw exceptions after a few clicks, but the projects I do are all experiments on campus, and they are just playing at home. Although the teacher has given praise, this is all It is the flower fist embroidered legs in the university. When it really comes in handy, it does seem pale and powerless. Of course, my program will never finish on time. My dad realized it, he smiled and said to me: "Teach me to learn C#, let's discuss this program together." There is no way, I can only let my dad learn it. A week later, he started paralleling with me. Development, this is my best memory of working on the same stage with my dad; why can my dad learn C# in one week (only C voice basics)?

The language is common, the only thing that changes is the way of expression, the thinking and the process will not change

Our teacher taught us to draw some simple flowcharts from the very beginning, but many of us thought it was too simple and meaningless, so we started to pursue those gorgeous interfaces to satisfy our curiosity and vanity. But what they missed was the real programming skills, which was me at the time. There are many people who think that university courses are very basic, and few actually use them for projects.

In fact, what books teach us is the posture (method) of writing (programming), how to hold a pen (programming), how to write well (good programming), and once you learn it, you will be able to write well ( good procedure). Therefore, there are many people who can't write well (programs), that is, when they were young, they practiced calligraphy (beginner programming) and were eager for success, thinking about playing (showing off). This is my deepest reflection and the best advice for beginners. Programming must endure loneliness!

Programmers need to know themselves all the time

At that time, I was swollen, a little self-righteous, I felt that I could do it, and then I agreed to the project. Fortunately, my father was very good, otherwise I would lose money. As a programmer, you must know your upper limit. Know yourself and the enemy (I can do it, you can't do it), and you will be safe in a hundred battles (I just want so much money) . Yes, always knowing the upper limit of your own level is helpful for the evaluation of your own value. For example, if you change jobs, you compare your peers, and where is your level. It is not the company itself that determines the market price, but the socially necessary labor time (how long it takes other programmers to do it). And the best understanding is to look at the latest technology and understand the trends of the industry. This time, I can put myself in the high-paying class.

Be a trustworthy programmer

My dad said to me at the time : "Since you promised others, no matter you have thousands of reasons to do it for others, it is your fault that you can't do it, because you promised others." This is not about reasoning, but the professional ethics of a programmer. Because of this, my dad can take over many outsourced projects, because he only has two words in the eyes of others: "reliable". Maybe this is the personal brand of programmers. If you can have such a brand in the enterprise, can you not get promoted?

People always ask: "Am I late to learn programming now?", "Can I continue to write programs after I'm 30?", "Is it difficult to learn programming?" After reading this article, I believe you won't ask again , because if you really love programming, you should be like my father, no matter how forced by reality, never forget your original intention. Although I don't have much verbal communication with my father, but after so many years of immersion, it is enough for me to say: "Follow my father's instructions and never forget my original intention."


Author: Handsome Guy
Link: https://www.jianshu.com/p/5d032ae53449
Source: Jianshu

Guess you like

Origin http://43.154.161.224:23101/article/api/json?id=325686206&siteId=291194637