A three-stream college graduate programmer struggle Course (turn)

Source: Internet
Author: User

 a three-stream college graduate programmer struggle CourseCategory: Meager 2011-03-25 18:28 1300 people read review (US) Collection report Work Delphi Embedded Windowsmotorola development tools

These days I have been writing a real-time operating system kernel, has been small, and so on I will be all open, hope to be able to domestic IT development to do their own meager strength. Recently saw a lot of student friends and I did not have the direction, so my experience is written to share with you, hoping to give just as a little help friends. In the blink of an eye I have been studying in the IT industry for more than seven years, during which I have done Web pages, written mis, database, application, do communication software, hardware driver, protocol stack, to now do operating system kernel and IC related development, which went a lot of detours, also ate a lot of pain.

I went to a three-stream college, and most of the people in a city didn't know it. Because the school is not good there is no hope to rely on school fame to find a good job. All the hope is pinned on their own efforts, a freshman before the holiday I began to study, I remember to buy the first book is "Computer Foundation DOS3.0", we do not scare, Actually at that time already popularized the DOS6.22, just I saw the dos4.0,5.0,6.0 book in the bookstore, thought like English is 第四、五、六册, Remember when looking for DOS1.0 everywhere, now think also fortunately I did not find: Before the start of the school I learned Pascal, at that time there is no computer and no one can consult, I even the concept of what the program is not, had to memorize code, and then take the paper, I have been to junior only a 486, Before this paper how many programs written I also do not remember, only know the longest I take A4 size of the draft paper 30 pages, my C language, C + +, VC are in such conditions to get started. So the condition can be overcome, I hope my experience to the conditions of the students a little confidence. The first time on the machine is in my brother-in-law room, my mood excited incomparable, but a machine I immediately silly eyes, They use the English version of the Win3.1, my that point dos knowledge have seen ghosts, on the machine fear of a blind touch, accidentally put word into full screen, how can not original, then really worried, I thought the machine was I broke. The first C language program, that is the classic HelloWorld, I tuned for a few weeks, the opportunity to machine very little, There is no book to tell me that the development environment (TC2.0) needs to be set up, and at first I do not know that there is a compiler, I even clever to write the program extension from. c to. exe, the results can be imagined. I finished the freshman study C, X86 compilation, data structure, C + +. Because the energy is spent on self-study, big four courses hanging color, three kinds of school is this good, hanging on ten or twenty doors also graduated. But to pull away, I am so hard to be able to not lattice, it can be seen in our country's computer education is more rigid.  

Sophomore ready to learn VC and BC, at that time difficult to choose, then chose the VC, not for other, only for the bookstore two books, VC that Ben cheap 6 dollars. My efforts in the class no one can, learn the day and night do not divide, the junior has a computer is more so, many times my father taught me in the middle of the night I do not kill, I always feel that their foundation is poor, memory and not, the conditions are not good, so I feel that only a little more time to catch up with others. Unexpectedly later, many friends said that I have the talent to learn computer, let me laugh and cry. I use 486,16m memory, 1G hard disk, at that time the configuration of the students are P166MMX, I installed a Windows NT4.0 need an overnight, compile a BC5.0 wizard generated by the program takes nearly two hours, my monitor is a second-hand, radiation is very large, splash screen flaming flowers, looks cool:), once the program was written for too long, think how the white editor background into a purple, thought the monitor is broken, later found that the eyes are not, but said It's also strange that I can still keep my eyesight at 1.5, which is a miracle. But it was that broken machine accompany me for two years, let me learn VC, Delphi, SQL Server and so on. Later that machine to my aunt typing, according to her said one day she is playing happy, a green smoke with a flame from the monitor drill out, then it died.

I got a chance at a junior vacation. Internship at a computer research institute is not so much an internship as volunteering, working for two months without taking a penny. But these two months to my development help very much, let me know the society early, I was of course when I went to the ignorant, where I know the network, learned Delphi and Oracle. Because the work is very serious, got a better evaluation, in an elder's referral, I began to work with them to do the project, which makes me in junior year, I have their own income, senior and find two MIS company part-time, although not much money, but during the students have more than 1000 of the income I have been very satisfied, I finally changed the computer with the money I earned. Senior start looking for work, then my work experience has been more (of course now think very naïve), began to listen to the parents want to go to that institute, internship that department also hope I can go, but do not know why Finally, this unit is relatively bureaucratic, I was in a teamleader to my part-time company to do MIS. In junior to graduation a year of time, did a variety of mis, from gas, smoke factory, public security, railways, food to college, what money to do, work is very hard, often overtime and boil all night, from the customer talk about demand to design, coding, testing, delivery to be on. I felt very fulfilled at that time and thought I was good, but it was superficial to think about it.

The students who have just come to work are easily misled, all kinds of development tools dazzling, but also feel very valued by the company, but this work is always a low-level developer. Don't tell me how important and how hard it is to analyze the system. Do you think you talk to users about the need to do design is the system analysis and design, there are several domestic companies can do very well in place very standard? I am ISO9000 internal auditor, also in rational company has been trained a number of times, took 4 certificates, and a company let me do CMM. These I have heard a lot, but a lot of things to the domestic changed the nature, a company is not through the ISO9000 or CMM can standardize, I now in a decades-old foreign companies work, inside the management is not ordinary domestic enterprises can and. As a student who did not enter the society shortly before graduation, it is almost impossible to master the system analysis and design in a short time, object-oriented, UML is just a tool, the key is the idea of people itself, not that you are familiar with C + +, Rose can make a good design, on the contrary if you have a very high quality, You can use C to write a program that is more modular than others in C + +.
In other words, the domestic software development industry has a vicious circle, many people think VC > Delphi > VB, is very funny. I have done these several software development, plainly, they are tools, should be based on the needs of the application to choose which, rather than feel which on the level. If you choose to use a development tool with a lot of face, you can only say that you are shallow. If the hierarchy, then these tools are not on the hierarchy, because they are used to go are some of the system's API, Microsoft's friends do not because you remember how many APIs or how many classes you will think you are great, you will always be their customers, they value the money in your pocket. I've also done the kernel, I've encapsulated a lot of APIs, and I'm not going to value clients that use these APIs for two development, unless he can make his own design.

As for some people think C + + > C that is more laughed, you may want to inquire about, now there are several operating system kernel is written in C + +, and a few real-time systems with C + +, of course, I am not saying C + + is not good, but the current kernel and real-time system C + + can not rival C, as Suitable for the development of application systems that's another thing. So my point of view is not what tools and languages you use, but what you do. Your design embodies your technical level.

This has been a year I feel very depressed, do most of the work of skilled jobs, personal technology is not too much improvement can not see the direction. So decided to leave the city to Shanghai, to seek better development, and to abandon my previous mis to the communications industry.  

Write here can not mention my girlfriend, we are in Shanghai before half a year to meet, she senior in my company internship, the company sent her to me to write documents, our feelings develop quickly. She told me a lot of things, her family was originally the reform and opening up of the first nouveau riche, her mother love playing cards, lost millions of, still owes a lot of debt, she has a boyfriend, but she has no feelings for him, only because he gave her mother more than 20,000 yuan, and then forced her to write 40,000 iou, her boyfriend betrayed her and more than once Now force her to marry or she'll pay her back. This man is still a college teacher! Her mother spent her father's tuition, because she couldn't get her diploma because she owed her tuition. Her mother is sick now need money, I took out a bit of my savings and with friends to take some, for her to pay tuition and to her mother (later only know the money and increasing multiplicity, even her mother is not sick I do not know, but she also has no way). At this time my family knew something, firmly opposed to me with her, her old boyfriend also tried to sabotage. Helpless, we decided to leave this sad city early, and not to deceive our family. As a result of the haste, I only prepared 4000 dollars, her only hundreds of dollars is also her mother to go, I bought three tickets, one is noon, two are evening, at noon my family sent me to the boat, they left me off the ship, I and she took the night boat left this I and she lived for many years of the city, All that was taken was a debt. We have not been to Shanghai's two-character stubborn, are not willing to trouble classmates and friends. Came to Shanghai is 6:30 P.M., we do not know where to go, we found a 20-dollar hotel, this room even the windows are not, July of hot weather, the room is very stuffy. The next day we began to rent the house, because the body of money, we basically are walking, spent one weeks, do not know how many laps in Pudong to find a 400 house, but we do not understand that Shanghai is to pay three pressure one, but also to pay half a month intermediary fees, bought some pots and pans, We have only 800 dollars, work has not landed, this 800 dollars to support to our first month's wages, in order to save money we cook, every day to buy vegetables only spend two yuan, she is very fond of eating (also may she is often hungry in college willing), see her now so frugally I really do not bear. Her former boyfriend did not let her, often call to harass, and come to Shanghai to see her, also said a lot of intimidation her words, she was too kind, said he had helped her after all, told me not to stoop with him. After every day at home is a bitter interview notice, originally I want to quickly find a mis company to solve the immediate difficulties, but she insisted that I do not give up their ideals, finally Kung Fu, I found a communications company, 4000 of the salary although the MIS company gave me the price, but also enough to survive in Shanghai. She also found a job, the first day of work she cried, whichShe came to Shanghai for the first time, my heart is very uncomfortable also very touched.  

Because it is a brand-new industry, I put myself down to 0 points, I learned VC, Delphi, database is not useful, put in front of me is embedded, protocol, signaling some I have never touched the knowledge. I know I have no way out, so desperately study, I think of myself as a fresh graduate, a point of effort to harvest, half a year past I finally familiar with the work, and got the company's commendation, salary also added a level. In the back of the day we frugally, to owe a friend of more than 10,000 dollars back, days finally on the right track. At this time my girlfriend told me she wanted to graduate school, I also very supportive, so she resigned at home to prepare for the exam.

In addition, here I want to thank my projectmanager, he turned out to be a big communications company product Manager, very kind to people, I learned a lot of knowledge from him, and he also gave me many selfless help. He gave me plenty of space and trust at work. I remember the company to maintain an access server software, because the code is not too small (50,000 lines), data and documents are not complete, I maintain very difficult, so I want to re-do it again, the company leadership is not very supportive, may feel too much work, but he strongly support me, in private he let me go to do, My maintenance work he squeezed the time to do it. With his support, I spent half a year completing the Access Server software, and implemented a relatively complete TCP/IP protocol stack. Here I learned the embedded system design, drive development, TCP/IP and a lot of communication knowledge, I spent a year to finally make myself from MIS development to the communications industry, and a firm footing. My development is a lot of direct operation of the hardware, no longer by the Microsoft operating system, VC, DELHPI These development tools constraints, I finally saw another piece of the sky.

I do things like inquisitive, with the development of deep, software development and hardware links more and more closely, the lack of hardware knowledge of my development has become an obstacle, and chip technology is basically in the hands of foreign companies, which to do system-level design is a very big constraint, a new product out, The first profit (and often the most lucrative) is often made by IC companies such as Intel and Motorola, and domestic manufacturers can only drink some soup. So I am determined to solve my own hardware technology barriers, and intend to leave the communications industry, into the IC design-related fields.
Of course I understand that if I know very little about hardware, no IC company will be merciful to recruit me such a ignorant person to train. So I must work hard to lay a good foundation, learn some relevant knowledge for future preparation. Just as I started to move from MIS to communication, I read a lot of books on communications, and I did a radius billing sorter for an ISP, and in that context the communications company gave me the chance. I am in the communications company is to do system design, there are a lot of PCB layout hardware personnel, usually I pay attention to them to learn, because I do is software, in the company look at the hardware data embarrassed, so began to see at home, just came to Shanghai work I have been working overtime for a year, but not added, because I want to squeeze time to learn Usually I sleep around 12 o'clock, the next day 5:30, I work earlier, on the subway if there are not many people I also used to read. Study of course will not be smooth sailing, some really do not understand the problem accumulated up to ask hardware personnel, their help makes me learning progress a lot faster, because in no one to teach self-taught, my half of the time is spent on solving difficult problems, but this problem is often someone's words can let me suddenly enlightened, I am very glad that I have such a learning environment. In the following year, I learned to look at the hardware schematic, learned a simple hardware design (analog circuit There is no small gap), the thing is this, when you are a part of the software, others always think you are software developers, in you start to learn the hardware when others may not agree, a ZTE friend also said to me, It is impossible for a man to finish all things. I understand that, but I hope I can do better. But when you are familiar with the hardware, you will feel as if you know the software and hardware, colleagues are accustomed to. This time I can put the hardware information to the company to see, no one again surprised. Let me be proud of is I through their own efforts to do a iad (soft-switching terminal equipment) system solutions, including hardware and software selection, design and other content, this program has been recognized by the company and colleagues, let me feel very gratified.
Technology is complementary, when my hardware has made some progress, my software design also has a great improvement, I can understand the problem from a deeper level, I do the access server CPU is Motorola PowerPC860, familiar friends know 860 QMC and software bulk data transmission is usually used in the form of BD table, hardware drivers are accustomed to the use of fixed BD table, each received or sent data from the BD table copy to the user buffer, or from the user buffer copy to the BD table, due to the more thorough understanding of the I have re-implemented this process, the use of dynamic BD table, the drive to receive data from a network port, submitted to my software for three layer exchange, until sent from another interface, not a copy. This design greatly improves the performance, so that the system indicators close to the theoretical value. The combination of hardware and software makes my design level on a step. I am now writing this operating system, after compiling I compiled the program into a compilation, find out the code which is not optimized, and then in the C program to adjust. For example, many CPUs do not have special multiplication instructions, this should be known that a multiplication operation on this CPU often takes a lot of instruction cycle, some friends will say this I know, I will try to avoid the X number, but things are often not so simple, Do you know how the subscript operation of arrays in C language is implemented? Take a closer look at the disassembly code and you will understand that the C compiler will sometimes produce displacement instructions, but sometimes it will be done with multiplication, and the efficiency of the two is often vastly different, so understand these questions so that you can elevate your system to the extreme. Some of the problems are not much to say, if you are interested in the future can be discussed together.

As far as I am concerned, I sincerely hope that the more in-depth friends of the software will have the opportunity to learn the hardware and other related knowledge, especially for the bottom development and embedded design. This is very helpful for the improvement of software technology, otherwise you just know the way it is, but you don't understand why. My view has also been verified by my current IC company project manager. He told us that the company's current 802.11 chip product software Manager originally was to do the chip hardware design, and so on is doing the software, and now in the IC, similar examples are many, but in the domestic atmosphere is not very popular.

I have some experience to share with you, only when I do a good job, I will learn the technology with little work relationship, so that the company's boss will not be disgusted, in the entry stage of the problem I usually do not ask those senior people, but asked some relatively shallow friends, such as the recent graduation students, Because they tend to explain to you in detail, and senior people usually think your problem is too simple, so the answer is very simple, I am embarrassed to ask more. And so on a certain level of technology I will ask them, they can give you a more in-depth answer. In addition, some friends say that I have a better chance, they also hope to engage in new work unfortunately no opportunity, I listened to only a wry smile, my opportunity to understand people should know that I was not born in what it family:) also no one all the way to promote me, all the road is out of their own, my mother died earlier, My stepmother (I call her aunt) looked at me hard to come over, once she saw my 30 is still writing programs, she said that like I work hard wood can learn.

My ultimate goal is IC, not PCB, so my next step is to start learning IC design knowledge. The company's colleagues do not understand the IC design, the back of the road to rely on their own, I bought a lot of related books, in the internet also looked up a lot of information, I spent a lot of time to learn VHDL, and with the software to do some simple design and simulation (no ASIC design, just for FPGA), with the depth of learning, I gradually understand the basic process of IC design, but also understand the hardships of the road. This time I have done a job-hopping preparation, I to an industry and certain popularity of IC design company to cast a resume, and through a lengthy interview (4 hours). Everything else I am more satisfied, but the salary is not satisfactory, I also understand the reason, because I am the new people in this industry, I have no experience, I once again to clear the zero. The boss asked me if I could accept more than 6,000 one months, and I knew he was in the same business. Think of my communications industry friends, basically are more than 100,000 annual salary, the monthly salary is also abound, friends also help me introduce a lot of good treatment company, I how to choose, at that time I hesitate, I love my career, I yearn for my pursuit, but I am also an ordinary person, I also need to feed the family, I also want to buy a car early. Life has given me a difficult problem.

Einstein at the age of 63 said, "a man did not achieve the greatest scientific achievement before the age of 30, he would never have." "This sentence gave me a lot of pressure and vibration, I immediately 26 years old, away from 30 only four years, I must seize the precious time of these years, and strive to reach the peak of my technology." For this ideal, in order to be able to get closer to their dreams, I chose this IC company, I understand that their salaries and the company just came in the same degree, but for the future development can only endure, all have to start again. Changing the industry is a very painful process, especially from a good position to change to a strange job, feel like from the warm quilt out into the ice water, it is difficult to accept. In the original communications company, I was the only employee who had risen five times in two years, the company and colleagues have given me great recognition, work is often entrusted with the task. But now all this is the past, in the new company I am just a newcomer, no one knows and no one cares about my past achievements. I decided to start again, I regard myself as a new graduate student, I want to use their own efforts to get the company's approval. Entering the new industry is very painful, I told myself to endure all this, although there are many temptations outside, but since I made the choice I will not allow to give up easily.
I've been in this new company for one months now, and it's been very difficult, and now I'm getting used to it. At the end of the first month, Team leader to talk to me, saying that I was the best of the new employees, I am very gratified, this is a positive for my efforts. Here also to thank my girlfriend, she gave me a lot of support and encouragement, every time in my shaking when she is encouraged me, let me insist on their ideals, just came to Shanghai is she let me not reluctantly to do mis, this is also she let me resist the temptation of the monthly, without her I may not have today's results. Now the company has its own operating system, its own CPU, DSP and other chips, where I can learn the world's most advanced technology, our design and development no longer rely entirely on other people's hardware and systems, which makes me very happy. I plan to wait for the work to be on the right track, the full study new knowledge, realizes my ideal.

In the following two years I set myself a few goals:

First, work hard to do their job, in the workplace by the company and colleagues agree;

Two. Hard to learn IC hardware design knowledge, to consult with colleagues, and use all opportunities to practice more;

Three. Implement the main part of my real-time operating system, complete the TCP/IP protocol stack module, and publish the source code free of charge;

Four. Marry my girlfriend and buy a small house, this is the most important, because I understand the cause can be re-, but the precious feelings are hard to get back.

Mention here the operating system I am currently developing, which is a real-time embedded system that currently supports the following features:

A. Support time-slice rotation scheduling and priority-based scheduling with up to 64 priority levels;

B. Preemptive real-time kernel;

C. In order to facilitate the transplant, the subject is implemented by standard C;

D. Very few assembly codes, less than 100 lines;

E. Support for task management, with separate stacks for each task;

F. Process synchronization and communication is currently completed Semaphore,message queue is being debugged;

G. Implement the timing system call;

H. Debugging can be emulated on Windows

I also intend to implement priority reversal protection in the next step, Event Flag,data Pipe, memory management (previously implemented), driver interface, and so on. After that I will try to perfect it, such as adding file system, protocol stack, debugging interface and so on. I hope my friends will put forward their opinions and suggestions, and I would appreciate it!

Postscript:

As some friends have said, my experience may mislead some of my friends, and here I must explain. I came to Shanghai before studying too desperately, often sleep only 3 hours at night, I was 1.71-meter height, then only 108 pounds (I now more than 130), the family also said I was so desperate to live but 60 years old, but then I was too stubborn, I told them as long as I can achieve the ideal live 50 years old I was enough. At that time, my body was affected by the desperate, one morning suddenly the pain of the waist, pain, I fell in the bed can't stand up. Although I have been more attention now, but sometimes dull ache. Later in my girlfriend persuaded me, after coming to Shanghai I no longer so. I often quote my father's sentence, "The body is the capital of revolution."

And I also found that desperately is not the way, I can boil one or two all night, most of the time I worked for three days and three nights, but I have not recovered for half a month, so it is not worth the candle? Learning work should be a long-term process, like a marathon rather than a dash of hundred meters. I now very much pay attention to adjust the intensity of study and work, I want to make sure to have the relatively abundant energy every day, some young friends feel that they should also work hard, it makes me somewhat worried, if my story can let you in the study work more interest, I will feel very happy, but if mislead some friends, Let you do something unworthy of giving, I will feel very guilty.

Technology does not have a distinction, I used to change the industry because of their own interests, rather than to which industry have any prejudice. I hope my experience does not give a wrong guide to my friends, I think I always to the higher technology development. In fact, all walks of life are very difficult to achieve top. Then again, although the technology is not a distinction, but the threshold is high and low, in any case, to do the threshold of the IC than to do the height of the Web page, this can not be denied. All kinds of national talents are needed, but as individuals to advance the idea or should have, efforts in their favorite industry to do better, and should not stay in the relatively superficial level.
I am a person who feel more self-aware, perhaps my greatest advantage is to know that they have many shortcomings:). My story is a lot of twists and turns and mistakes are caused by my shortcomings, I hope everyone with a prudent view of my experience, do not be my "rhetoric" confused. I learn a little arbitrary, which brings me endless trouble, but also greatly hindered my development. I remember when I was very good grades, but later study seriously partial section, leading to my high school performance repeatedly landslide, also did not enter into what good school, a friend, when the results and I similar, but without my this shortcoming, she went to the United States, and later in the study of the U.S., in a famous tutor under the theory of Science, This is not a better way out. In addition, my study method is also in the continuous improvement of the past study too much attention to quantity and time, so study both bitter and inefficient, now I pay great attention to the efficiency and skills of learning, this is the shortest way to learn (of course, not refers to opportunistic), such as learning a relatively unfamiliar technology, if there are conditions, Ask an experienced person, do not need to ask a lot, often he inadvertently a few words will give you very great help, even more than you read one weeks of the book. You will save a lot of time to study with this thought, so he le? These years I learned a lot of things, because of the beginning very blind, so learning things disorganized, now in retrospect let me laugh, I put a lot of time wasted in some no need to understand the knowledge, after all, a person's energy is limited. A lot of friends are like I have wubi style, indeed it is a good input method, but for a researcher it is definitely not worth your back, your time should be spent in a valuable place. I have done a lot of things, I have cced, wps command and shortcut keys, in dBASE basically quit the history stage after I spent a lot of time to learn its use. So my study in the early lack of planning, no clear short-term objectives, medium-term goals, only a ethereal long-term ideals. As with design, good design is a process of abstraction from the requirements to the code, without the need to start coding immediately.
Of course, all these years of study and work more or less some of the harvest, below I say some of my learning experience, these methods may not be correct, I also constantly explore and improve. My study and work have a relatively clear goal, I will not be tempted to learn a technology, I will consider a lot before the decision, including long-term development, personal route planning, the cost of the need to pay, the difficulties and solutions, and so on, after the decision will also develop a clearer plan, including short-term, Medium and long-term, the resources available to the side (including good books, materials, hardware and software environment, also includes experienced friends or teachers), and each stage is how to transition to a higher stage of the plan, often in a learning phase once on the road will go relatively smooth, but the cross-stage is usually more troublesome, For example, from learning basic knowledge to practice. In addition I buy books also have their own method, now the world of high-quality books far less than low-quality books, for a strange technology, often in the first buy will choose the wrong, even if you buy a good book but its direction may not be suitable for you, so I usually first on the Internet to find some introduction of the technology, With a little idea to buy a relatively thin, relatively cheap and relatively general content of the book, which is the author of the most good at writing books:), and then browse it again I will basically understand the key points of the technology, the back of the book and make plans will be more clear. Otherwise, it is often difficult to find a good book from the beginning, and to buy back hard to learn, sometimes half of learning to find the book is low-quality or relatively outdated technology, people are very annoyed. It is also usually a good choice to have experienced people introduce you.  

Some friends want to learn communication, embedded development, but always feel that they do not have the hardware and software environment, I will follow my understanding to introduce you how to establish such an environment, of course, I know only the direction of my study and work. Communication What I do is the work of the data network, including TCP/IP, two or three-layer switching, docking network, and the soft switch is also a little understanding. These hardware and software environments can be built on a PC. You can even set up a PC without a network card with a number of routers, access servers, VoIP gateways, gatekeepers, hosts and other simulation network environment, and the actual network is quite close, of course, this requires you have a clear network concept and a certain network knowledge, I have been trying to develop a software to simplify the process , now that the experiment has been done, I might incorporate it into my operating system perimeter extension software. Such a method I can not use simple statement is very clear, I could say that the idea is to implement the simulation network card on the PC, (Know how windows in the machine without a network card to implement the virtual network card technology friends should understand), and then each simulation network card corresponding to a virtual device, such as a router or host. You can also use third-party tools to do some of the work, such as VMware. I am now using a simulation network card to do their own development.

As for the embedded development environment is more easy to implement, the PC is a very large hardware platform, the existing embedded operating system usually support X86, you can do the development on the above, through the floppy boot or use the virtual machine load, I used VxWorks to do the experiment, Run Windows and VxWorks two systems on a single PC. In addition, the DOS-compatible 16-bit emulation X86 environment on Windows also provides an excellent test environment for many operating systems, as is the case with my operating system on Windows. Linux is widely used in embedded, it has a lot of information on the Internet, and it is relatively easy to practice. At the same time many perfect embedded development environment support software simulation, such as tornado, wince and so on.

The Struggle of a programmer (continued)  
The previous period of time to deal with a lot of things, has not written down, spent all the savings to buy a house, at the same time the account of the basic things have been done, these days a little slow tone. Yesterday, I met with an old boss to chat for a long while, heart filled with emotion. He from the external conditions to let many outsiders envy, more than 20-year-old has done to 863 project in charge of, doctor graduated love Unit is also very good. Now he's in the eve. He is a product manager in a communications company, although the salary is not high but there are ten thousand or twenty thousand, but also holding shares. But the people we know understand his hardships. The word "white-collar" in some people seems to be a moving halo, but in my opinion is a helpless name, walking in the street every day, how many of the traffic flow is "white-collar"? How many "white-collar" living in the high-end housing? A villa in Shanghai 3 million not surprisingly, mortgage loans down the total of nearly 6 million, annual salary of 200,000 in Shanghai is a high-level "white-collar", high taxes removed your scores income, so calculate down not to eat not to drink also to more than 40 years, plus the rest of life expenses, destined for you and such a home. Looking out of a set of villas, a good car, I don't know who they are, but I know there are no white-collar workers. I feel very small, in this noisy city I like an ant, but I am unwilling to ordinary, I do not want to be a simple "white-collar".

In fact, many friends do not know me, I am not a pursuit of fashion technology, I just do not want to do a so-called "white-collar", more reluctant to do a simple "programmer." I am not willing to ordinary life for a lifetime. I am in constant efforts, my direction is very clear, I want to do what most people do not do and do not do, a lot of friends to me so frequently change direction do not understand, feel a person as long as familiar with a technology on it, for this view I can only say you shallow, now the big system and products are often software, hardware and applications are combined , I'm not going to be an expert on what, but I want to be a system designer. I don't believe that an expert with an engine can design a good car, nor do I believe that a person who knows nothing about hardware can make an operating system, or a person who has no concept of accounting can design a good financial software. At work, I find that there is a lack of marginal talent, especially at home. In foreign countries, a person's hardware and software repair is very common. If the person who designs the product only knows his profession then it is difficult to have excellent design. So I have to take advantage of my youth to learn more widely, so as to improve their overall quality, which is why the university so many non-professional courses. Learning to work these years, in fact, not out of the IT industry, I am now a company to develop a system, the final function is to enumerate and analyze the feasibility, and then divide which is realized by the chip, which is realized by the hardware circuit, which is realized by the software, so that the design can make the best system. It is impossible to do this if a designer simply understands one aspect.

Conceit is often accompanied by ignorance, I remember when I graduated from college, the thesis defense meeting I and the Group of experts in contention, because I am very proud of their design, and although he is nitpick, but because of knowledge is very limited, I can not answer his questions, so some "angry". I have always liked to use the "so-called" best development tools, remember to do a stupid design, a schedule of software I use vc+oracle development. These experiences I keep in mind, always remind myself to learn humility. My personal experience, coupled with my observations of some of my friends around me, found such a phenomenon. Such people are often supercilious when a person only knows what he thinks is the best technology and knows nothing about the others.
From the first "Hello world" to today's operating system, and wrote a lot of code, from the middle I also accumulated a lot of experience. Because I was in the absence of guidance in the case of self-study code, so go a lot of detours, also made a lot of mistakes. At first I wrote the program all by their own feelings, write a new program on the structure of the design is not very important, thought to learn language, data structure can write a good program, in fact, far from this. It can be written without a design, but the program can't write very much, it's very complicated. My personal experience is this system more than 8000 lines I can not control, I used VC wrote a Windows under the application, about 8000 lines I lost control of it, the entire code is a mess, the 8000 rows can be relatively stable operation, But I don't have the ability to add any new code, which can be conflicting, or that the new code is incompatible with the old design and needs to be adjusted for the old program. At first I wrote the program like the pursuit of the code of the delicate, many people write the code of their own only a few can be achieved, it feels cool. In fact, this is also very wrong, I now write a program very focused on structural design, in order to structure clear I am willing to sacrifice a little efficiency.

The following paragraph is my motto to write the program, I hope to share with you:

Make it right before your make it faster.
Keep it faster.
Make it clear before your make it faster.
Sacrifice clarity for small gains in efficiency.
Brian Kernighan

Another thing to add: My girlfriend and I are very good now, both families have recognized, we decided to marry in the near future

A three-stream college graduate programmer struggle Course (turn)

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.