Think of a programmer

Three days off, I sat down and contemplated the career of the programmer I was pursuing. Report from a lunch

On a rare occasion, I was able to sit down for lunch with my college friends. Both of us are working for big software companies, it has been over 2 years.
– Have you been "plowing" lately?
– Same as before. It was too much for the other party to hold.
…….
– Now I realize that software work is a mistake. Thought that high salaries, but actually not equal to anyone. I see some friends going to work, other industries are much better. The children who work in sales are so rich.
– And my friends went to work in the banking industry.
– It was because he studied medicine or medicine very badly but now everyone is delicious.

The story continues with topics related to other professions. At this time, all of them feel happy and happy, both high income and interesting, except for the job of programmers that we are pursuing!

O my! The sun pouring fire of Saigon did not stun me with the anxiety about the profession that I am pursuing. Everyone is rushing to learn information technology, everyone says this industry is the "hottest", the most promising, the best and the best. Yet, right here, software engineers with working experience are less than "experience" sitting on University lectures, with many dreams, ambitions and enthusiasm, have a real reality look. That's right.

Ok !!! Such an opening "mood" is enough. Now I try to list my "thoughts" about programmers (or software engineers, or software developers, or code workers, or high tech workers, or are Yahoo chat experts, sneaky, …)

1) Making software without high income

This is the most cruel reality that weighs on our programmers' minds, so heavy that sometimes people can't override the Shift key on the keyboard.

Yes, according to all salary surveys, working in the IT industry will have the highest salary.

rich-people
That is true, but not enough. The starting salary is really high, but then … How can we wholeheartedly fix the bug if we know that our third-grade friend is now working for foreign economic groups with the collection Enter over 10 million. How can I not be hot if I know that when I first graduated, his salary is only half my.

Yes, starting salaries are high but not fast. There is not much increase. There is no reward for having a place to increase. Apart from these, there is no other income, there is little chance to "outsource" outside because the main job is already too busy.

2) Making the software very extreme

The first pole is time pressure. This does not need to say much. Now comes the working environment. If anyone has never done the software, you can imagine this. Imagine you walk into a large, very quiet and completely isolated area from the outside world. You walk to the door and know that the guardians work 24 hours a day, 365 days a year.

Step inside, you will see there is a very dark atmosphere, absolutely no natural light. It's easy to understand, because every place here has no windows. If there is a window, it is always closed.
You step deeper and see the rooms are separated, inside each room is further separated into smaller chambers. Each chamber has the same area, very narrow, and is decorated and equipped with identical items. There is at least one computer set, but because the space is too small, it occupies most of the space, leaving only enough space for you to sit there. You will not be able to walk freely, unable to lie down, even staggering and moving is also difficult because it is too narrow.

officelife

Well, you also have to wear a card with a code on your pocket. You will realize that everyone here also wears cards with such codes. And you can only be free in your tight space; You are not free to go to another area, not even to the next room and touch any objects there.

And yet, you must not make noise and influence, even the smallest, to the surrounding chambers.
And every day there will be a person who has a position here (called a director) to give you some tasks to complete. You will work in your room, with the tools available. Unlike work in the outside world, here they implement a "free time" working regime. What does that mean? That means that there are more senior people who assign managers the tasks, and assign them to tasks in days, weeks, or months. By the time these officers will break down those tasks and hand them over to people like you. New strange thing happens here. What the governor admits is a job that takes n days, but because you are managed under a "free time" regime, so the so-called n days don't mean much to you. You may have to spend n times 8 hours to complete it, or you may need to multiply n by 12 hours, or n multiply by 18 hours, or (n + x + y + z) multiplied by 18 hours . What the foreman needs from you is the final result.

sleeping

OK. I pause here to ask you a question:
– Where do you think you are?

I believe that nine out of ten respondents will have the same answer:
– That is the prison.

Where people separate people separately; where all day, all night, throughout the year; where people put a lot of people in to follow the principle of maximum optimization of area of ​​use and ready to give birth to all other factors; where people only care about whether the work is completed or not, not paying attention to the quality and time spent; and where with all such sacrifice and suffering, those who spend most of their time there will only be rewarded with little; and the reward will have to wait until the task is completed, or to a fixed date in the year (called an amnesty, also called a performance appraisal) – (remember how the parents rewarded for you: before, during, and after all work is done, and reward unconditionally, if you pass university in August, parents never have to wait until December to reward you, even from May to June can be encouraging for you, now compare to the way the prison rewards you Which do you prefer?
But besides the nine people there is still one person who has a completely different answer: this is a software company. That person is none other than a programmer.

3) Career programming does not help the family

Vietnamese people who work outside of earning money are the first goal, and then want to be able to "help" their families and relatives on important occasions. For example: my husband's son of my younger brother's grandmother worked as a major in the maritime industry outside Hanoi, so my family had a "problem" about moving goods to other places as OK; or if your cousin's sister-in-law's cousin works at the bank credit bureau, you will easily borrow money to buy a house; or is my old classmate in middle school having a close friend with a younger sister who works in the teeth-jaw-face department of Cho Ray hospital, so when my brother-in-law's nephew needs to spit one Deep teeth, it will definitely be prioritized first without waiting long; In addition, it is very easy for this child to apply for first grade because a distant relative of my North is a friend who fought with his wife, the principal of the key middle school in the area.

So, I have another question for you:
– Calculating from the time of working as a programmer to now, tell a time that your family or relatives have "asked" for something?

I believe most developers do not answer this question.
So an easier question:
– Look around in the software company you are working on, including those with the highest positions and seniority, do you find them "helping" with your family?

gđ4

Most programmers also cannot answer this question.
Because when you spend most of your day sitting in front of a computer writing a program, you won't get another "advantage" in your life, right in front of you and in the future. Even a friend of mine who works in marketing for cosmetics grouping, at first glance does not have any special "advantages", but is actually given a shampoo, bath, ice cream every month. Brush your teeth, own products for women, … completely free. An uncle who works as a ticket guard at the stadium sometimes brings lots of tickets for his family. Another friend who works as an architect can draw a house for me at a friendly price that is guaranteed by quality. And what can you bring about? Take the program, even if you write it down, doesn't imagine how people will use it? Or help my relatives when they need to fix some bugs in some software. Even some of my friends, who went abroad to study hard, seem at first glance "useless" to the family, but reflecting on it also brought home the title "he Doctor "," Mr. Master ". If you go to work as a programmer, even if you go abroad to work, the neighbor next door just knows that: "that guy went to export labor."

4) Making software is less likely to communicate with the outside

Because you have to spend most of your life in a tight space, with the front being a computer screen, both left and right are partitions, and right behind is a programming another member is sitting in a cramped position like you. See, your world is so narrow. You take your eyes off the screen, look far away, and don't have to wait long when your eyes are flushed by the wall in front of you. When was the last time you saw sunlight when working? Most people who never envision themselves can live in a house that never has natural light, yet they don't realize that they spend all their daytime in such a terrible environment.

Sadly, being in such an environment makes you less likely to interact with the outside world. You will rarely meet people you love, less likely to get acquainted with people who can help change your life or career in a positive way. When your brain always works in two states: logical thinking (when you work and go to school in the evening) and sleep, you will surely be greatly diminished your ability to feel contact of the person talking to him or the ability to express his thoughts in a coherent and emotional way.

communication_breakdown
Oh no, you are not alone in your own world, because now science and technology have grown very high. There are 2 great inventions that can help you get in touch with the outside world wherever you are, whenever: mobile and online messenger (in Vietnam, you can always call Yahoo Messenger, or IM, because it's so popular. But actually, they only make the programmer's world worse. Think about the person you love the most. You may be too familiar with the ability to call that person, or hear that person's voice anytime, anywhere. Think again try it. So, in addition to that person's voice, can you hear the mood, read the emotions on that person's face, hear not only with your ears but also with your heart? Think again try it. Have you ever found it funny when you talk to that person every day, that person is not far away from you, but one day you suddenly realize that the person is very ill, seems much more tired , when you have a rare time to meet. Think again. You can call that person whenever you want, but whether a cell phone will help you know at a certain time that the person needs you most. It can't be. Only his eyes, gestures, and face can help you hear that. These signals are still very long before the science and technology can help you.

Or like me, before I knew YM, I could write a few dozen pages of paper, expressing my feelings through every word, punctuation, interruption. Now I spend a lot of time thinking about inserting any emotion (,,,,) to replace the inability to express my feelings.
In short, anyone needs a balanced life and a private world and an outside world. Programmers can make your life unbalanced. You can deal with the right cause of the problem (imbalance), or you can choose to treat the symptoms (less communication, separate from the outside world). Most developers choose the second way, and they spend a lot of time on mobile phones and YM. Anyone who understands this simple thing: cannot believe in a doctor who only knows how to cure the symptoms, which the patient needs to be diagnosed to find the cause and cure the cause. illnesses.

Mobile phones and YM only help programmers treat symptoms. It is good media, especially good for those who have a balanced life. But it is a disaster for those who have an unbalanced life. Almost every programmer has an unbalanced life.

5) Being a programmer is not "advanced" as people think

People love the notion of high-tech, high-tech IT industry. So everyone thinks that software is a high-tech industry. Where it is about to open a high-tech zone, there people will find a way to welcome software companies first.
It's not really like that. Making software is not a high technology; otherwise, it is a low-tech industry. What is the work I am doing? That is to transfer the customer's unclear requests into computer code. End. Nothing is high-tech. If it is funny to say an interpreter is a high-tech industry, then I find it more sad to be a software industry as a top industry.

IT is a high-tech industry, and a high-end science. Exactly. But software is not IT, and not high-tech.

The researchers specialize in programming theories, the basic science for the software industry is high-tech. The areas of compiler, database, AI (artificial intelligence), ro ***, including data structures and algorithms, etc. can all be considered high-tech. (Ah, but now in Vietnam people flock to high school to follow these high-tech, but do they really do high-tech things in it, will I have the opportunity to present later) .
And doing software at a much lower level. All I need to do to turn the request into code is to use data structures, the algorithms are available. Nothing is high-tech. Making software that is a engineering rather than science (science) or anything research.

DeathtoStock_Desk7-1

Now back to the programmer's actual work. The students of IT are dreaming about a very high-tech job, in which I can find powerful algorithms, new theories, unique and creative models. After only 1.2 years of work, they were disillusioned by the fact that the work was actually too low-tech, too "muscular".
Using the existing theory to make software that is software industry, this one is nothing high-tech according to everyone's understanding.
If you want to find new theories, that's a totally different field. It can be very high-tech, but in Vietnam there may be very few companies that facilitate this. Overseas can go to the research and development departments in big companies. That job is no longer called software engineering.

So what is the programmer's drama? It is to do a very low-tech job while at the same time always dreaming of a high-tech job. Consequences: hard work, muscle, boring, and nothing new.
It is possible to understand this suffering of the programmer by imagining a guy who is always daydreaming to be an eminent mathematician, while his daily job is to calculate the books for a grocery store.

I have been looking at the programmers' career with negative and negative thoughts. Now try to remove the black hat on the head, remove the pair of black glasses, put on the yellow hat, look up at the sky above, see the golden light. So try to see how a programmer works with the optimistic eye to see.

But first, go and have a fruit juice.


There was another occasion when I had dinner with friends of a friend of mine. The ingredients are enough: pharmacists, salespeople, marketing, teachers, people without jobs and people without jobs.
– Knowing that before I studied IT, I'm happy now. – I was startled and continued to listen attentively.
– Yes! – Another person said.
– Make it high, without worrying, running a lot.
– Making my industry look outside is real but many things I don't like, but I have to endure it, watching software makers relax and feel craving.

Ah hah! When I change the way I look at the same thing, I will see more important things. Then try wearing a yellow hat and see things in a positive and loving way.

1) Making software is fun

Not having so much work in this world is as fun as software.
Evidence is easy to find. Come to a software company in the evening, on the weekends, even on holidays, you will find there are a few employees who are still in the company to explore, write some more software unrelated to work, not to make money. They simply dig because they like it, because it's good, because it's fun. In addition, new technologies related to software, and even the computer itself, can bring joy and enjoyment to users. I always see many employees staying at the company to browse the web, play games with computers. There are also countless other interesting things to do with computers.

happy-03

On the contrary, I have never seen an accountant or financial officer stay at the company to "play" with the books. I have not seen any factories where volunteer workers stay to "mess" with the machines that grow. Or who do sales, what will they do after completing the job? There is nothing in the job to "entertain" them. Perhaps beer, wine, cigarettes, targeting items are more fun?
Of course, there are people who stay behind to learn more about the work. But the main purpose is to improve professional knowledge and advancement. This is another category. What I want to talk about is joy, natural motivation, impartiality.

I remember when I joined the football team in middle school, after a hard training session, we all stayed behind to divide into two more soccer teams. Not to train anything, just because soccer is fun, playing with friends is fun.

I also know a friend who is a staff member in a hospital, never went to school to study informatics, but when he still has free time, he will read books to learn the computer program by VB to serve his work and his colleagues. Or a man who wonders to write simple programs, learn graphic design to make his own web. It was so fun and so passionate. They are also very happy if I give them good books or send them useful sample programs.

On the contrary, I have not had the opportunity to give books like "Introduction to accounting", "Art of sales" to someone I know, so that they have more entertainment.

A job that itself can bring joy, a natural interest, carefree, it is certainly a good job in the long run.

2) Making the software direct yourself to good goals

happyball

In any software company, employees are encouraged:
* Enhance and update professional knowledge.
* Training foreign languages.
* Train communication skills, problem solving, presentation skills, …
* Hardworking and responsible,….
If you do well above, you will be rewarded in many ways: income, position, … That means you need to set good goals, and make good plans.

What about other jobs? Everyone understands that the goal of the medical industry is beautiful, but in order to ensure a good life, most doctors have to implement plans that are not good at all. Now teachers have to rush, force students a lot. There are even jobs where both goals and plans are not very good at all. For example, the ultimate goal is to get customers, cups to force others, ….

To make it easier to understand, the software-making environment is itself a place that facilitates people to strive for beautiful high goals, so that everyone can benefit (Win / Win). There are many other jobs, if you want to be good for yourself, you have to chase, tricks, generally benefit yourself to harm others and vice versa (Win / Lose or Lose / Win).

3) Making software can help bring in high income

The salary of software engineers cannot help me get rich. It is not equal to other industries. But try to think about it, does anyone get rich only with their salary?
First, review what is your goal?
1. Earn the highest paying job?
2. Can I get finance to achieve other goals in my life?
If your goal is 1, then making software is not a suitable job. It's actually hard to have a job that fits this goal, because as soon as you get a job with a higher salary, you'll see (or hear) a higher paying job. .
In order to achieve the second goal, you need to do 3 things well:
1. Know how to make money.
2. Know how to spend money.
3. Know how to use the remaining money to generate more money.

That is, working and getting rich are two completely different things. Those who try to join together to solve at the same time are only disappointed.

The great thing is this: making software is a great job for you to accomplish the first of the 3 things above. Even more amazing is that you can earn money honestly.
If you want more money, what you need is not a new job, but learning and doing the two things well. Of course, life can also have a job so good that you don't need to care about the other two. But it will be very rare, and after all, doing all three things is easier and more radical than just doing the first one.
When there is time, I will talk more about the issue of "rice this money".

4) Making software facilitates a balanced life

564428458_1361034969

To live happily, we must be physically and mentally healthy. But for each, the best way to be healthy is to move.

Making software is the best way to move your mind. In general, jobs related to services, office work, teaching and research, are more or less helping to mobilize the mind. Sau khi kết thúc công việc, bạn có thể sử dụng thời gian rảnh để vận động tay chân, chơi thể thao, làm những việc khác để bồi bổ cơ thể. Thật là dễ dàng (dĩ nhiên nếu bạn chịu cố gắng).

Những người làm công việc tay chân, cơ bắp thì không được thuận lợi như vậy. Tôi từng có thời gian làm rồi nên biết rõ. Sau một ngày làm việc đầu óc mệt nhoài, tôi có thể dễ dàng vận động gân cốt cho cân bằng. Nhưng sau một ngày làm việc tay chân rã rời, thật không dễ tí nào để dành thêm thời gian để vận động đầu óc. Đọc sách, chơi ô chữ, luyện vài bài toán Không đời nào làm được. Khả thi nhất là nằm dài xuống và coi một bộ phim lê thê, ướt át của Hàn Quốc. Cái đó thì thật ra chẳng giúp vận động đầu óc được một tí gì hết.

Một số công việc khác cũng độc hại không kém. Làm sếp chẳng hạn, hay đi tiếp khách để bán hàng cũng vậy. Bia rượu, thuốc lá, và có khi thêm mấy cái khoản nếu-không-nói-ra-thì-ai-cũng-hiểu, thật là một tai họa cho thể chất lẫn đầu óc. Uống xong một chai bia phải mất gần 1 giờ đồng hồ chạy bộ để khắc phục sự cố; nếu uống hết một két bia chắc phải mất hết một ngày không ăn uống gì để chạy bộ.

5) Và thử suy nghĩ tích cực về những suy nghĩ tiêu cực trước đó

Nếu mình làm phần mềm thì gia đình không “nhờ vả” gì được. Nhưng nếu nghĩ kỹ lại, thì thật là tốt. Ai trong chúng ta đều có gia đình, họ hàng, bạn bè, người quen để có thể “nhờ vả” những dịp như vậy. Thế thì khi nào mình cần, hay gia đình mình cần, thì cứ việc nhờ những người đó giúp đỡ.

postive-and-negative

Tôi muốn làm công việc mà mình yêu thích, làm người thực sự có ích; còn mấy việc “linh tinh và rắc rối” đó, chắc chắn có rất nhiều người có thể giúp đỡ tôi. Điều ngược lại thì tôi không muốn làm tí nào. Còn bạn thì sao?

Còn muốn tiếp xúc với bên ngoài nhiều hơn? Công việc lập trình đúng là không cho phép bạn tiếp xúc với nhiều người bên ngoài, nhưng đó là trong công việc. Lập trình không hề ngăn cản bạn sử dụng thời gian còn lại để làm những việc đó.

Đối với tôi, điều tuyệt vời nhất của công việc là nó không cho phép tôi gặp quá nhiều người. Có nghĩa là nó sẽ giúp tôi không phải gặp những người mà tôi không thích, những người mà tôi và họ không đem lại sự thay đổi tốt đẹp cho nhau. Có nghĩa là nó giúp tôi quý trọng thời gian của mình, thời gian mà lẽ ra tôi phải dành cho những người tôi yêu thương nhất, những người yêu thương tôi nhất, những người có ý nghĩa đối với tôi nhất trong gia đình, công việc, sở thích,… Khi nhìn ra xung quanh, tôi thấy mình không thể làm một số công việc đơn giản bởi vì để làm tốt những việc đó, tôi phải hy sinh những điều có ý nghĩa nhất đối với tôi, để có được những điều mà thật ra chẳng có ý nghĩa gì về lâu dài cả, tôi phải làm bởi vì người ta yêu cầu tôi làm, hay là vì muốn được bằng như những người khác.

Vậy làm phần mềm thì lý thú hay là quá “cơ bắp”? Cũng nói về phần mềm, có người làm những việc rất high-tech, nhưng có người lại làm việc rất low-tech.
Thế nào là high-tech? Bạn có thể đọc cuốn sách “Nghệ thuật lập trình máy tính”
Thế nào là low-tech? Bạn thử đọc qua cuốn sách “Code Complete” Tôi đã đọc gần hết cuốn Code Complete, và đã từng cố gắng đọc cuốn “Nghệ thuật lập trình máy tính”, nhưng chỉ được vài chương của tập I là bỏ cuộc.

phpiozym6

Từ đó tôi hiểu mình thích hợp với phần low-tech khi làm phần mềm.
Điều hấp dẫn khi làm mấy cái low-tech này là gì? Đó là tư duy để hiểu đúng vấn đề cần giải quyết, phân tích những giải pháp có thể rồi chọn là giải pháp tốt nhất, dùng những kiến thức và công nghệ hiện có (những cái hiện có thôi, còn muốn tìm ra cái mới thì không thuộc về phạm trù ở đây nữa) để thiết kế giải pháp đó, hiện thực, rồi kiểm tra. Tất cả những việc trên luôn đặt dưới áp lực thời gian, áp lực về chất lượng.

Dĩ nhiên, nếu công việc lập trình là đáng chán thì nguyên nhân không phải bởi vì bản chất công việc là đáng chán; mà nguyên nhân là có sự khác biệt giữa nguyện vọng của bạn và thực tế bạn đang làm. Trong trường hợp đó, cái mà bạn cần không phải là một chức vụ mới (tôi không bao giờ muốn làm sếp để sai những người cấp dưới làm những việc mà bản thân tôi cũng thấy “è lưỡi”), không phải là một công ty mới, mà là một trong 3 cách:
1. Một công việc hoàn toàn mới, để thay đổi cái hiện tại.
2. Một suy nghĩ hoàn toàn mới, để thay đổi cái nguyện vọng.
3. Cả 1 và 2.

Tóm lại, mệnh đề “Làm phần mềm chẳng có gì cao sang và thật chán” là sai.

Epilogue
Lâu lắm rồi mới tập viết lại, thật là đã. Ở đây tôi chỉ mới đội mũ đen và mũ vàng để nhìn vào công việc mà mình đang làm. Khi nào rảnh chắc phải thử đội mũ trắng (dữ kiện, khách quan), hay các mũ màu khác để xem sao. Hay là có bạn nào giúp tôi làm việc này với.

ITZone via daynhauhoc

Nguồn : Lê Đình Lĩnh Nam.(Nam Le's Blog)

Share the news now