Hi, I have a very inspiring and reflective story for you today. Today I’m going to talk about how my father taught me how to be a programmer. Tempered by the years
Round port keyboard, 2003
Someone asked if the keyboard had not been wiped. No, it’s the traces of time that can’t be erased. If you notice the details, you can find out which keys programmers use the most. Except (ASDW,YUHJ, that’s from when I was a kid playing champ). This keyboard is old, but my dad is not willing to throw it away. In 2003, he bought this 486Cpu computer from the second-hand market and began to teach himself to assemble. My dad only had junior high school education. But he’s got a super hands-on ability.
Zero programming basics introduction to embedded development
At that time, he just resigned from an electronics factory in 2003. He saw the single-chip microcomputer in the electronics factory and the salary and treatment of their engineers. At that time, he was just a welder on the assembly line, although he was a team leader, he also felt the limitations of his career. (The lesson here is that as a man, if you don’t think your career is over, make a career change before it’s too late. If you don’t, you’ll end up under family pressure and never see it again.) The day after he quit, he bought the used 486 Celeron, a mock-writing machine, a primer on assembly language, and began his 12-year career in embedded development. (The lesson here is, don’t try to get started. The best way to get started is to do it.)
Weird library book reader
This is when he had to learn C language in the xinhua bookstore secretly copied I remember junior high school of time, every Saturday my father took me to xinhua bookstore to read a book, and then went to there, every time he told me to look at the library member have to, and there he was intently to copy the code snippet (this method of learning, in my opinion, now is a joke, If you go to any site, there’s a bunch of code, but then again, what did you learn from the source code, remember? Can you use it flexibly? From the perspective of previous learning methods, it is necessary to record some commonly used code snippets. Does your Github have its own code snippets? If not, collect it!) However, every time I asked my father what the project was, he could remember it clearly. Of course, it was very painful for him when he was getting started, and he didn’t understand a single English word, which was imaginable. But you should have a much higher foundation than my dad, so don’t doubt whether you can learn to program, it will be able to learn.
Programmer stunt-focus
My relatives always say to me: “You, sit for a long time to walk more, look at the distance, this way is good.” But I don’t think most programmers can do that, because you can’t stop programming, and once you get into it, you always want to create. This is the focus of writing a program. Speaking of which, I want to ask you: “How many hours can you focus?” “I threw the question to my dad, who smiled and said,” With gas, how long does it take to burn through a pan full of water?” . This is a true experience of him writing an MP3 player in assembly language. During debugging, he forgot that he was boiling water and luckily the gas ran out! The point of this story is, “You need to be very focused, but not too fatigued.”
Programming requires process reengineering
Software engineering is a lot like architecture in that it builds the best solutions based on real-world technologies. “Steel, concrete” these are done, can be directly used, programming is the same, embedded development is the same.
This is a STM32 experimental board that is ported to the UCOSII system. This board is embedded in the UCOSII system, and it can perform multiple tasks at the same time and assign task priorities. In layman’s terms, you can type while listening to music. It may seem low-level, but embedded is just that. Pretty high-end, but I asked my dad, “How did you make this board? Are you really so good at writing an operating system in C?” Board is their own drawing, other chips are bought, CPU procedures are written in their own. The original embedded development is responsible for the reasonable design of each function module, with the program to schedule. Now the mature chip is the manufacturer has written the program, provides the external call interface, the developer does not need to understand his inside the content can be developed. This inspired me to learn programming in the future. My teacher once said, “Software engineers can write programs that solve real problems because they know how to reengineer and implement the process with real wheels.” What I want to be a software engineer is not how good I am at programming language, but how TO simplify the tedious process in real life through computer science. I think this is the real software engineer. My dad’s programming skills are not as good as mine, but his process reengineering skills are much better than mine. Maybe that’s the experience.
This is the serial port reply sending process it provided to me (there may be mistakes).
I turned my dad into a fake full stack
When I was a sophomore, I learned C#, could do a simple winform program, and then I started to get high and brag to my dad. My dad was so happy that he directly gave me a real project, which was real money, and I foolishly agreed. Because it is a real project, the program must have high fault tolerance. You can’t just throw exceptions at it after a few clicks. However, all the projects I did were experiments on campus, just playing house. When it’s really useful, it’s really pale. Of course, my program won’t finish on time. My dad realized that, and he smiled and said, “teach me C# and we’ll talk about it.” I had no choice but to let my dad learn it. A week later, he started parallel development with me. This is my best memory of working together with my dad. How did my dad learn C# in a week?
Language is universal, only the way of expression changes, thinking and process will not change
Our teacher taught from the beginning we draw some simple flow chart, but we have a lot of people think he is too simple, no meaning, so he began to pursue the beautiful interface, the surface to satisfy his curiosity and vanity of the heart, but what they miss is the real programming technology, this is me at that time. A lot of people think that university courses are very basic, and few projects are actually used. They can’t be used for projects at all. Books are outdated. In fact, books teach us how to write (program) posture (method), how to hold a pen (program), how to write good character (good program), once you learn how to write good character (good program). So there are a lot of people who are not good at writing words (programs), that is, when I was a child practicing words (novice programming) eager to achieve, thinking of playing (show off). This is my deepest reflection, but also the best advice to all beginners, programming must withstand loneliness!
Programmers need to know themselves all the time
At that time, I was inflated, a little arrogant, I thought I can, and then agreed to the project, fortunately my father is good, otherwise I would have lost money. As a programmer, you have to know your limits. Know your enemy (I can do it, you can’t), and win a hundred battles (that’s how much money I need). That’s right. It’s helpful to always know what your upper limit is, for example, if you change jobs, where you are compared to your peers. It is not the firm itself that determines the market price, but the amount of socially necessary Labour (how long it takes other programmers to work it out). The best way to know is to look at the latest technology and understand the trends in the industry. This time to be able to establish themselves in the high salary class.
If you want to learn Java engineering, high performance and distributed, simple. Micro services, Spring, MyBatis, Netty source code analysis, architecture friends can add my Java advanced group: 680130298, group ali Daniel live explain technology, and Java large Internet technology video free to share to you.
1) Those with 1-5 work experience, who do not know where to start in the face of the current popular technology and need to break the technical bottleneck can join the group.
2) After staying with the company for a long time, I have been very comfortable, but I hit a wall in the interview when CHANGING jobs. Need to study in a short period of time, job-hopping can be added to the group.
3) If you have no working experience, but have a solid foundation, you can add groups if you are familiar with Java working mechanism, common design ideas and common Java development framework.
Be a true programmer
My dad said to me, “Since you promised, no matter how many reasons you have to do it, it’s your fault if you can’t do it, because you promised.” It’s not a code of ethics, it’s a code of ethics. Because of this, my dad was able to take on a lot of outsourced projects because he was only known for two words: “reliable”. Maybe this is a programmer’s personal brand. If you can have a brand like this in your organization, can you not get promoted? People always ask, “Am I late to learn programming?” “, “Can I continue writing programs after I’m 30?” “, “Is it difficult to learn programming? After reading this article, I’m sure you won’t ask again, because if you really love programming, like my father, you should never forget it, no matter how hard reality pushes you. Although MY father and I do not have a lot of language exchange, but so many years of immersion, enough to let me say: “follow my father’s instructions, do not forget the original purpose”.