The entry threshold and working environment for programmers have always been a topic we love to discuss. Recently, there have been reports that in the United States, where IT technology is the most developed, anyone can become a programmer. Even if you didn't graduate from a formal computer science program; even if you have never touched a computer before; even if you chose programming work only to make a living and support your family, the programmer world welcomes you. So, we can't help but compare the foreign programmers' working environment, entry conditions, and other conditions that seem attractive to us with the conditions for programmers in China. But in what ways should we compare them?
A leaf tells of autumn; many IT "experts" are actually just "brick experts."
linghu9990 wrote in a blog post:Recently, I interviewed dozens of candidates applying for kernel development positions. These candidates all came from very well-known large companies in the chip or embedded operating system field. Most of them claimed to have at least ten years of experience in kernel development. Their resumes looked dazzling, full of relevant project experience, various trendy technical terms, awards, and so on.
But most of them couldn't answer a basic question: when you call the standard malloc function, what happens inside the kernel?
Don't be surprised. When a candidate was asked to write a simple LRU cache framework based on the glib hash function, he first said he had never used glib, which was expected. I gave him the glib manual and explained the interfaces in detail, but after more than an hour, he had only written a few lines of terrible code.
Analysis of the causes:
I believe what leads to this phenomenon is not only their own reasons, but also the companies they work for. These companies give them large amounts of stable code that won't undergo major changes for years. The technically challenging parts are all encapsulated in this code, so they can only follow old routines and stop innovating. Once they enter the job market, these so-called "experts" will have no competitiveness at all.This is the programmer's dilemma: we make a living by code, but the big companies that support us are slowly destroying our ability to make a living.
How to get out of this dilemma:
I think the occurrence of events always has two sides; one hand cannot clap alone. So the solutions naturally target both individuals and companies/employers.
For individuals:First, work on your own projects. You need to constantly "sharpen your knife." Pick some tasks you're interested in during your spare time and use your own time to overcome the difficulties you encounter. By doing so, you'll definitely learn new things. If you publish your projects on GitHub, you might have the chance to meet someone who can pull you out of your current position.
Also, don't stay in one team for more than two years. Try interviewing every 18 months. You don't have to change jobs, but you should see what the market needs and how you can adapt to the demand.
For teams/companies:Give your employees pressure and challenges. Rotate positions to give "experts" the opportunity to expand their skills. Launch new projects to provide a battlefield for your warriors. Regularly hold "hackathons." This will build a culture of reform and innovation.
The American "programmer world" has no threshold; anyone can become a programmer.
Want to become a programmer in the U.S.? It might not be as hard as you think. Even if you don't have the money to attend a proper university for computer science, there are other paths. Recently, more and more online programming schools have become popular in the U.S. Many real-world cases point a bright way forward for those who aspire to this path: whether you're a poor student looking for a job or a middle-aged man in a midlife crisis wanting to change careers, the programmer world welcomes you.
"Blitz" programming course
Seattle's "Code Fellows" school is very confident that it can help students find jobs. It offers students a six-week "blitz" programming course that takes them from zero foundation to a basic entry-level state, charging $12,000 — and if they still can't find a job, the tuition can be fully refunded.
Behind the rise of similar schools is the growing prosperity of the U.S. internet market, which has led to a situation where programmers are in short supply. According to data forecasts from the U.S. Department of Labor, there will be about one million programmer positions vacant in the U.S. by 2020. Moreover, many traditional colleges don't pay much attention to computer courses, which is making this gap increasingly larger.
For example, this year the computer science department at the University of Washington admitted only a quarter of fully qualified applicants. For those students who didn't manage to get into a computer science program, fortunately in the programmer world, a degree is not the only path to a job.
For example, at Google, an industry benchmark, some teams have 14% of programmers without relevant formal degrees. Taking a broader view of the whole country, 67% of programming positions come from non-tech companies, which means that in addition to programming, other normal business skills are also needed.
From this perspective, programming is actually a craft, just like welding or carpentry. It's a craft that anyone can learn in a few weeks or months to acquire basic skills. And once those beginner programming novices manage to land their first job with these basic skills, on the career path thereafter they get equal opportunities with programmers who came from formal schools — it's just a matter of relying on their own abilities.
Take Facebook as an example. The first thing every engineer does upon joining the company is six weeks of intensive training, and most of the courses are naturally related to programming. The company established this standard process because in most colleges and universities, computer science departments place more emphasis on theoretical learning than on actual hands-on programming. The latter actually includes a wide range of complex knowledge such as various most popular programming languages, project management, and collaboration, which means a qualified programmer often needs to deal with dozens of other programmers and millions of running programs simultaneously.
Programmers may ultimately be replaced.
A computer science degree helps with theoretical learning and helps top engineers continue to hone this art, but in an era where the internet is so ubiquitous, requiring every programmer to have a computer science degree is equivalent to requiring every bricklayer to have an architecture degree.
Carson, co-founder of "Treehouse," believes that the computer science degree he obtained more than a decade ago is completely useless. Internet technology, which changes at a dizzying pace, forces engineers to continuously learn new models and languages, which allows many people who switched careers midway to sometimes stand at the same starting line, as long as they are willing to devote their lives to honing this skill.
"Almost everything we can touch now can be connected to some software — this is the first time in human history," Carson said. This is like the most popular saying in Silicon Valley: "In the future, there will only be two kinds of people: those who know how to program, and those who can only follow machine instructions."
As internet technology is destined to continue penetrating every aspect of human society, programming positions, like other divisions of labor that have been replaced by it, will become increasingly diverse.
The White House allows programmers to wear shirts to work.
according toThe Washington PostAccording to reports, the White House established the U.S. Digital Service. The team leader is not Obama, but Mikey Dickerson, a former senior Google engineer, who came to D.C. from Silicon Valley at the end of last year to fix the crashed Healthcare.gov.
A week later, the White House official blog released a 5-minute video documenting a day of Mikey Dickerson working at the White House. Mikey's team members do not need to wear suits. He believes that wearing suits can make some programmers feel uncomfortable; after all, programmers' work is not mainly about dealing with outsiders. They prefer casual attire, which allows them to adapt more quickly to the surrounding work environment and improve work efficiency, even while working at the White House.
Final thoughts
Perhaps the examples listed above are only isolated cases, but we cannot deny that compared with the domestic programmer industry in China, foreign programmers have lower entry barriers, better working environments, and broader development space. Previously, U.S. media even clamored that if a war broke out between China and the U.S., the U.S. information security department could instantly send China's networks back to the Stone Age. Maybe this is somewhat of an exaggeration, but it's not impossible. According to sources familiar with the matter, after the military training conflict at Longshan County Huangcang High School, things continued to unfold: the Longshan County People's Government website was hacked, and a hacker named "XiaoLan" left a message on the homepage saying, "Does your county's propaganda department dare to have any sense of shame?"
It can be seen that Chinese government websites are very fragile, and the number of hacked government websites is more than one or two. This is nothing new. Can we infer that it is precisely because domestic attention to computer technology is insufficient, or computer education is not open enough, that such incidents frequently occur?
To be honest, anyone with even a bit of the feeling that "the rise and fall of the nation is the responsibility of every individual" would hope for policy improvements in online education, and at the very least, should vigorously value and support the development of domestically produced operating systems.