在垃圾回收站学计算机是一件非常蛋疼的事情,基本上我只学习了HTML和数据库这门课,而其他人学的是HTML那门课——我还记得有一天,我在图书馆里面找书,然后从夹缝里面冒出来一张便利店的纸条,上面写满了爱~
在国内从事计算机其实非常累,网络问题不说,教材又厚又脱离实际。而等到从业,又是漫长的工作/学习曲线,等到刚入门(10年经验),又会被经济周期,家庭琐事,年龄歧视等困扰。这导致大部分人在30岁左右,都以转行告终。
在我个人看来,过于急功近利,是国内没有两家互联网企业的根本原因。
业务开发&框架设计
在我看来,国内所谓的“互联网企业”,只是把业务的场景从线下搬到线上。以银行来说,早期的国内银行是以人工记账为主,银行可以说是最早吃到计算机红利的企业,但它的业务模式本身并没有太多变化,除了招商银行做得比较好之外,其余银行的移动端APP做得非常臃肿,响应缓慢,这二十年的变化无非是去IOE(IBM、Oracle(甲骨文)、EMC)比较成功而已。
但熟悉计算机架构的我知道,假设真让我去接手这些历史遗留项目,我也是不敢去IOE的,因为天知道里面有什么硬件限定坑(比如用特定的选择编译/编程技巧绕过特定硬件架构缺陷,但当你移植程序到Linux时,发现反而成为了bug)。

就业务开发而言,我们的互联网改造无疑是非常成功的。早上可以直接扫码支付买个早餐,出门直接滴滴打车,上班用AI辅助编造废话,中午点个外卖,下午可以刷脸支付要点零食,晚上直接到预约的娱乐场所接着happy。
只要有钱,一部手机可以通行全国。但编程用的框架基本跟我们没啥关系。虽然现在很多顶级的项目开始由中国人牵头,但编程框架本身就是一个不挣钱的买卖。 很多人从事这个行业纯粹为了脱贫,更何况大部分人(包括我在内)对知识产权缺乏敬畏,毫无付费习惯。 大家只是一味地享受别人的免费劳动,不把别人的时间当一回事儿。
开源开发&语言设计
技术框架,本质是一种提供便利的工具集。因为编程语言本身只做基本的标准实现,所以需要开源的技术框架去构建语言本身的生态。
编程语言就像是一支“毛笔”,而开源的技术框架,则是这支毛笔画出来的“书法作品”。两者是一种相辅相成的关系。 以Python这种低性能的弱类型语言来说,语言设计本身其实没有太多让我喜欢的地方,但架不住人工学习框架TensorFlow,PyTorch都是Python写的。
而Python的性能优化方向,竟然是绕过GIL限制和使用C语言。这让我觉得有点顾此失彼的感觉。

就好像我拿着一张美女宣传单去按摩,结果迎接我的是一个七尺壮汉,他告诉我美女休息了,他更有力量,更适合按摩这种工作。对此,我的身心都是拒绝的。因为这跟我的初衷完全相反。
AI得道,Python升天。
语言设计&操作系统开发
编程语言是一种很深的学问。那些控制流和机器码的翻译,抽象语法树,GC,线程,编译原理啥的,关是算1+1我都整不出来。

计算机又是一种很让人挫败的行业。天赋型选手在四五年级就会HTML,开始机器人编程造火箭了;而四五年级的我,当时还只会在亲戚的电脑上注册个QQ,然后被同学们虐爆泡泡堂。
更别提国内这B环境,大学叫兽们努力上岸了,只记得拿着十年前的教程在课堂上吹水,然后告诉你,“其实学C#2005就够了,即便现在有.net core了,都一个样~”
我真是服了,一个是平台限定语言,一个是跨平台甚至跨语言编译的次时代语言,这能一样吗?学习编程,最重要的第一步是参与开源项目设计。理解工业设计的流程,而不是待在泰坦尼克号上求援。
编程语言依托于操作系统,操作系统相当于编程语言的载体。操作系统,是连接硬件和软件的纽带。也是软件开发最高的山。
软件开发&集成电路
其实业务开发,开源框架设计,编程语言设计,操作系统开发,这些都能归集为“软件开发”。如果从这个角度上看,实际上我们的互联网行业还有很大的一部分空白。
把人当成耗材,就要接受工作交接期间网站的流量波动与不稳定。更别提平台用户是可以发起“重定向攻击”的——抛弃那些苛刻对待员工的“互联网平台企业”。

国内所谓的敏捷开发不过是人力推车(而且还是让3个人推一辆四轮新能源车)。在《人月神话》中提到这种“孕妇生孩子”把戏——1个孕妇怀胎生娃要40周,但不可能安排10个孕妇在4周内完成生产。我见过那些所谓通宵赶工的项目,后面无一不是烂尾,要么就是重做。
急功近利浪费的时间精力跟“节约的时间”完全不值一提,如果造成技术漏洞,反而更得不偿失。
软件开发的上游是集成电路。其实我们有一个很好的基金在支持这些高新技术的集成电路产业。只不过资源一再错配,钱没有流入真正为国为民的企业和人手中。
软件开发和集成电路,本该是厚积薄发,重积累和理论联系实际的行业。结果大学科研几乎以骗经费为荣(比如把导师称为老板); 而私营企业以年轻化为由,各种割中年人韭菜,让工程经验丰富的高级开发工程师失业,还美其名曰“为社会输送人才”。
剑气之争
这就好像是华山派的剑宗与气宗之争。剑宗(年轻一派)掌权之后把学气宗的人(资深开发人员)踢出公司。因为学剑宗见效快,都是确定能盈利的项目,而且人力便宜。
剑宗重剑的招式,而气宗(开源项目,语言设计,操作系统)注重内功修炼。 两者本无对错,在年幼时,假借剑谱(go,C#,Java语言)练剑没有任何问题,但大部分人不过是一种语言用上4/5年,就以资深开发自居,其实不过是50行代码复制了4/5年而已。
要么就是Java boy 那种,为了下一份工作方便,在不需要微服务的前提下强行微服务。
这不过是东施效颦,真正的内功(互联协议,编程规范,抽象建模能力)没有及时沉淀。最终当“剑”生锈(比如PHP不再流行,项目被竞争对手打压),就只能被迫转行,武学净废。
气宗的“气”并不是傲气,而是一种生存的底气。这种底气是一种十年如一日,久久为功,持之以恒的坚持。是这个世界上所有人都不看好你,你即便手中无剑,依旧偏向虎山行的勇气。
我们需要理想,因为在漫长的黑夜中,唯有希望能带我们远航。
Studying computer science at a garbage dump is a truly painful experience. I basically only learned the HTML and database courses, while others were learning just the HTML course—I still remember one day in the library when I found a convenience store receipt stuck in the cracks, filled with love~
Working in computer science in China is really exhausting. Aside from network issues, the textbooks are thick and detached from reality. When you finally enter the industry, there’s a long curve of work and learning. By the time you’re just getting started (with 10 years of experience), you’re already troubled by economic cycles, family issues, and age discrimination. This causes most people to switch careers around the age of 30.
In my personal view, the fundamental reason why China doesn’t have two internet giants is due to the excessive impatience for quick success.
Business Development & Framework Design
In my opinion, so-called “internet companies” in China merely move offline business scenarios online. Take banks, for example: early domestic banks primarily used manual accounting. Banks were among the first to benefit from computing, but their business models themselves didn’t change much. Except for China Merchants Bank doing relatively well, other banks’ mobile apps are bloated and slow to respond. The change over the past twenty years mostly boils down to successfully ditching IOE (IBM, Oracle, EMC).
But as someone familiar with computer architecture, I know that if I were to take over these legacy projects, I wouldn’t dare to ditch IOE either, because who knows what hardware-specific traps lie inside? (For example, using certain compilation or programming tricks to circumvent hardware architecture flaws, but when porting the program to Linux, these become bugs.)

From the standpoint of business development, our internet transformation has undoubtedly been very successful. In the morning, you can scan a QR code to buy breakfast; step outside and hail a Didi ride; at work, use AI to help fabricate nonsense; order takeout at noon; pay for snacks with face recognition in the afternoon; and in the evening, head straight to a booked entertainment venue to keep the party going.
As long as you have money, one smartphone lets you travel nationwide. But the programming frameworks used have basically nothing to do with us. Although many top projects are now led by Chinese people, programming frameworks themselves are a money-losing business.
Many people work in this field purely to escape poverty, and most people (myself included) have no respect for intellectual property and no habit of paying for it.
Everyone just enjoys others’ free labor without valuing their time.
Open Source Development & Language Design
Technical frameworks are essentially convenience toolkits. Because programming languages only implement basic standards, open source technical frameworks are needed to build the language’s ecosystem.
A programming language is like a “brush,” and open source technical frameworks are the “calligraphy works” painted by this brush. They complement each other.
Take Python, a low-performance, dynamically typed language. I don’t particularly like its language design, but I can’t deny that frameworks like TensorFlow and PyTorch are written in Python.
Python’s performance optimization direction surprisingly involves bypassing the GIL and using C. This feels somewhat like a case of missing the forest for the trees.

It’s like I brought a flyer advertising a beautiful masseuse, but was greeted by a burly man who told me the beauty was resting and that he was stronger and better suited for massage work. My mind and body rejected this because it completely contradicted my original intention.
AI has found its way, Python ascends.
Language Design & Operating System Development
Programming languages are a deep field of study. Control flow, machine code translation, abstract syntax trees, GC, threads, compiler theory—all these are so complex that I can barely solve 1+1.

Computing is also a frustrating industry. Gifted kids learn HTML in fourth or fifth grade and start programming robots and building rockets; meanwhile, I was just registering a QQ account on a relative’s computer and getting crushed in Bubble Trouble by classmates.
Not to mention the terrible environment in domestic universities: professors try hard to get tenure, only to be found teaching with decade-old tutorials and saying, “Actually, learning C# 2005 is enough. Even with .NET Core now, it’s basically the same~”
I’m truly amazed. One is a platform-specific language; the other is a next-generation language supporting cross-platform and even cross-language compilation. How can these be the same? The most important first step in learning programming is participating in open source project design. Understanding industrial design processes, rather than waiting for rescue on the Titanic.
Programming languages rely on operating systems, which serve as their carriers. Operating systems are the bridge between hardware and software. They are the highest mountain in software development.
Software Development & Integrated Circuits
In fact, business development, open source framework design, programming language design, and operating system development can all be categorized as “software development.” From this perspective, our internet industry still has a large blank space.
Treating people as consumables means accepting traffic fluctuations and instability during work handovers. Not to mention platform users can launch “redirect attacks”—abandoning those harsh “internet platform companies” that mistreat employees.

So-called agile development in China is just manpower pushing carts (and three people pushing a four-wheeled new energy vehicle at that). The Mythical Man-Month describes this “pregnant woman giving birth” trick—one woman takes 40 weeks to give birth, but you can’t schedule 10 women to deliver in 4 weeks. I have seen so many “all-nighter” projects, all ending in abandonment or rework.
The time and energy wasted chasing quick wins are negligible compared to the “time saved,” and if technical vulnerabilities result, the losses are even greater.
The upstream of software development is integrated circuits. We do have a good fund supporting high-tech integrated circuit industries. But resources are repeatedly misallocated, and money doesn’t flow to truly national and people-serving enterprises and individuals.
Software development and integrated circuits should be industries of steady accumulation and theory-practice integration. Instead, university research almost prides itself on scamming funds (e.g., calling advisors “bosses”);
private enterprises, under the guise of youthfulness, harvest middle-aged workers like crops, causing experienced senior developers to lose jobs, all while praising this as “delivering talent to society.”
The Sword and Qi Dispute
This is like the dispute between the Sword Sect and Qi Sect of Mount Hua. After the Sword Sect (the younger faction) took power, they kicked out Qi Sect practitioners (senior developers). Because Sword Sect practices yield fast results, are sure to profit, and have cheap labor.
The Sword Sect focuses on heavy sword techniques, while the Qi Sect (open source projects, language design, operating systems) emphasizes internal cultivation.
Neither is right or wrong. In youth, practicing sword techniques with borrowed manuals (Go, C#, Java) is fine. But most people just use one language for 4-5 years and then call themselves senior developers, which is basically copying 50 lines of code for 4-5 years.
Or they become Java boys who forcibly implement microservices without need, just to ease the next job hunt.
This is just a poor imitation. True internal skill (internet protocols, coding standards, abstract modeling ability) has not been properly accumulated. When the “sword” rusts (e.g., PHP falls out of favor, projects get crushed by competitors), they’re forced to switch careers, wasting their martial arts.
The “Qi” in Qi Sect is not arrogance but a kind of survival confidence. This confidence is a ten-year daily effort, persistent, and enduring. It is the courage to move toward the tiger’s den even when the whole world doubts you and you have no sword in hand.
We need ideals because, in the long dark night, only hope can carry us far.
ゴミ捨て場でコンピュータを学ぶのは非常に骨の折れることでした。基本的に私はHTMLとデータベースの授業しか受けませんでしたが、他の人はHTMLの授業を受けていました——ある日、図書館で本を探していると、隙間からコンビニのレシートが出てきて、その上には愛の言葉がびっしり書かれていました。
国内でコンピュータ関連の仕事をするのは本当に大変で、ネットワークの問題はさておき、教材は分厚くて実践からかけ離れています。業界に入ってからも、長い仕事や学習の曲線が続き、ようやく入門(10年の経験)した頃には、経済の波、家庭の問題、年齢差別などに悩まされます。これが多くの人が30歳前後で転職を余儀なくされる原因です。
私個人の見解では、あまりにも短期的な利益を追求することが、国内に二つの大手インターネット企業が存在しない根本的な理由だと思います。
业务开发&框架设计
私の考えでは、国内のいわゆる「インターネット企業」は、単に業務のシーンをオフラインからオンラインに移しただけです。銀行を例に取ると、国内の銀行は初期は手作業の帳簿管理が主で、銀行はコンピュータの恩恵を最も早く受けた企業の一つですが、そのビジネスモデル自体はあまり変わっていません。招商銀行が比較的うまくやっている以外は、他の銀行のモバイルアプリは非常に肥大化し、反応も遅いです。この20年の変化は、IOE(IBM、Oracle(甲骨文)、EMC)からの脱却が比較的成功したことに過ぎません。
しかし、コンピュータアーキテクチャに詳しい私としては、もしこれらのレガシープロジェクトを引き継ぐことになったら、IOEからの脱却は怖くてできません。なぜなら、特定のハードウェア制限の罠があるかもしれないからです(例えば特定のコンパイルやプログラミング技術で特定のハードウェアアーキテクチャの欠陥を回避しているが、Linuxに移植したら逆にバグになるなど)。

業務開発に関して言えば、我々のインターネット改造は間違いなく非常に成功しています。朝はQRコードで朝食を買い、出かけるときは滴滴でタクシーを呼び、仕事中はAIで無駄話を補助してもらい、昼はデリバリーを注文し、午後は顔認証でスナックを買い、夜は予約した娯楽施設で楽しむ。
お金さえあれば、スマホ一つで全国を移動できます。しかし、プログラミングに使うフレームワークは基本的に我々には関係ありません。今では多くのトッププロジェクトが中国人によって主導されていますが、プログラミングフレームワーク自体は儲からない商売です。 多くの人がこの業界に従事するのは純粋に貧困から脱するためであり、ましてや大多数の人(私も含めて)は知的財産権に対する敬意がなく、支払いの習慣もありません。 皆、ただひたすら他人の無料労働を享受し、他人の時間を尊重していません。
开源开发&语言设计
技術フレームワークは本質的に便利なツールセットです。プログラミング言語自体は基本的な標準実装のみを行うため、言語自体のエコシステムを構築するためにオープンソースの技術フレームワークが必要です。
プログラミング言語は「毛筆」のようなものであり、オープンソースの技術フレームワークはその毛筆で描かれた「書道作品」です。両者は相補的な関係にあります。 Pythonのような低性能で弱い型付けの言語に関して言えば、言語設計自体には特に好きなところはありませんが、TensorFlowやPyTorchのようなフレームワークがPythonで書かれているため、学ぶ価値があります。
Pythonの性能最適化の方向性は、GIL制限を回避しC言語を使うことですが、これはどこか本末転倒な感じがします。

まるで美人のチラシを持ってマッサージに行ったら、迎えてくれたのは七尺の大男で、「美女は休みだが、俺の方が力があってマッサージに向いている」と言われたような気分です。これは私の本意とは全く違います。
AIが発展し、Pythonが飛躍する。
语言设计&操作系统开发
プログラミング言語は非常に奥深い学問です。制御フローや機械語への翻訳、抽象構文木、GC、スレッド、コンパイラ理論など、1+1も計算できない私には到底理解できません。

コンピュータはまた挫折感を味わいやすい業界でもあります。天才型の子供は小学校4、5年生でHTMLを学び、ロボットプログラミングやロケット製造を始めますが、私の小学校4、5年生の頃は親戚のパソコンでQQに登録することしかできず、同級生にバブルシュートでボコボコにされていました。
ましてや国内のこの酷い環境では、大学の教授たちは努力しているように見えて、10年前の教材を持ち出して授業で自慢し、「実はC#2005を学べば十分で、.net coreがあっても大差ない」と言うだけです。
本当に呆れます。片方はプラットフォーム限定言語で、もう片方はクロスプラットフォームでクロス言語コンパイル可能な次世代言語です。同じなわけがありません。プログラミング学習で最も重要なのは、オープンソースプロジェクトの設計に参加し、産業設計のプロセスを理解することであり、タイタニック号で助けを求めることではありません。
プログラミング言語はOSに依存し、OSはプログラミング言語の土台です。OSはハードウェアとソフトウェアをつなぐ架け橋であり、ソフトウェア開発の最高峰です。
软件开发&集成电路
実は業務開発、オープンソースフレームワーク設計、プログラミング言語設計、OS開発はすべて「ソフトウェア開発」に帰着します。この視点で見ると、我々のインターネット業界にはまだ大きな空白があります。
人を消耗品と見なすなら、業務引継ぎ期間中のサイトのトラフィック変動や不安定さを受け入れなければなりません。プラットフォームのユーザーが「リダイレクト攻撃」を仕掛けることもあります——厳しく社員を扱う「インターネットプラットフォーム企業」は捨てましょう。

国内のいわゆるアジャイル開発は、人力で車を押しているに過ぎません(しかも3人で四輪の新エネルギーカーを押しているようなものです)。『人月の神話』にはこの「妊婦が出産する手法」が出てきます——1人の妊婦が40週かけて出産するが、10人の妊婦に4週間で出産させることは不可能です。私は徹夜で急ぐプロジェクトを見てきましたが、どれも後に破綻し、再構築を余儀なくされました。
短期的な利益を急ぐことで浪費される時間と労力は「節約された時間」とは比べものにならず、技術的な欠陥を生むと逆に損失が大きくなります。
ソフトウェア開発の上流は集積回路です。実は我々にはこれらの先端技術の集積回路産業を支援する良い基金があります。しかし資源は何度も誤配され、お金は真に国や民のためになる企業や人の手に渡っていません。
ソフトウェア開発と集積回路は、本来は厚い蓄積と理論と実践の結びつきの業界であるべきです。ところが大学の研究はほぼ資金詐取を誇り(例えば指導教官を「ボス」と呼ぶなど)、民間企業は若返りを理由に中年のエンジニアを搾取し、高度な経験を持つ開発者を失業させ、それを「社会に人材を送り出している」と美化しています。
剑气之争
これはまるで華山派の剣宗と気宗の争いのようです。剣宗(若い世代)が権力を握ると、気宗(ベテラン開発者)を会社から追い出します。なぜなら剣宗は効果が早く、確実に利益を生むプロジェクトを担当し、人件費も安いからです。
剣宗は剣の技を重視し、気宗(オープンソースプロジェクト、言語設計、OS)は内功の修練を重視します。 両者に正誤はありません。若い時には剣譜(Go、C#、Java言語)を使って剣を練習するのは全く問題ありませんが、多くの人は1つの言語を4、5年使っただけでベテランを自称し、実際には50行のコードを4、5年コピーしているだけです。
あるいはJavaボーイのように、次の仕事のためにマイクロサービスが不要な状況で無理にマイクロサービスを導入する人もいます。
これは東施が西施の真似をするようなもので、本当の内功(インターネットプロトコル、コーディング規範、抽象モデリング能力)は適切に蓄積されていません。最終的に「剣」が錆びる(例えばPHPの流行が終わり、プロジェクトが競合に負ける)と、転職を余儀なくされ、武学は無駄になります。
気宗の「気」は傲慢さではなく、生きるための底力です。この底力は十年一日の如く、長く続けること、粘り強い努力のことです。世界中の誰もがあなたを認めなくても、手に剣がなくても、虎の山に向かう勇気です。
私たちは理想を必要としています。なぜなら長い暗闇の中で、希望だけが私たちを遠くへ導いてくれるからです。
Учиться компьютерным наукам на свалке — это очень неприятное занятие, по сути я изучал только HTML и базу данных, в то время как другие учились только HTML — я до сих пор помню, как однажды в библиотеке, когда я искал книгу, из щели выскользнула записка из магазина с надписью, полной любви~
Работать в сфере IT в Китае на самом деле очень тяжело: проблемы с сетью — это не говоря уже о толстых и оторванных от реальности учебниках. А когда начинаешь работать, тебя ждет долгий путь обучения и работы, и когда ты только входишь в профессию (после 10 лет опыта), тебя начинают беспокоить экономические циклы, семейные проблемы, возрастная дискриминация. В итоге большинство людей к 30 годам заканчивают сменой профессии.
На мой взгляд, чрезмерная погоня за быстрыми результатами — это основная причина отсутствия в Китае хотя бы двух крупных интернет-компаний.
Бизнес-разработка & проектирование фреймворков
С моей точки зрения, так называемые «интернет-компании» в Китае просто перенесли бизнес-сценарии из оффлайна в онлайн. Возьмем, например, банки: в ранние годы в Китае банки вели учет вручную, они были одними из первых, кто получил выгоду от компьютеров, но их бизнес-модель практически не изменилась. За исключением招商银行 (China Merchants Bank), остальные банки сделали свои мобильные приложения очень громоздкими и медленными. Изменения за последние двадцать лет свелись в основном к успешному отказу от IOE (IBM, Oracle, EMC).
Но как человек, знакомый с компьютерной архитектурой, я знаю, что если бы мне пришлось работать с такими наследственными проектами, я бы тоже не рискнул отказываться от IOE, потому что никто не знает, какие аппаратные ограничения там заложены (например, использование специфических техник компиляции/программирования, чтобы обойти аппаратные недостатки, но при переносе программы на Linux это превращается в баги).

Что касается бизнес-разработки, наша интернет-трансформация, безусловно, очень успешна. Утром можно просто отсканировать QR-код и купить завтрак, выйти из дома и вызвать такси через Didi, на работе использовать AI для составления бессмысленных текстов, заказать еду на обед, после обеда оплатить покупку с помощью распознавания лица, а вечером отправиться в забронированное развлекательное заведение и продолжать веселиться.
Если у тебя есть деньги, один телефон может обеспечить доступ по всей стране. Но фреймворки для программирования в этом почти не участвуют. Хотя сейчас многие топовые проекты возглавляют китайцы, сами фреймворки — это не прибыльный бизнес. Многие работают в этой сфере просто чтобы выбраться из бедности, тем более что большинство (включая меня) не испытывают уважения к интеллектуальной собственности и не привыкли платить за знания. Все просто наслаждаются чужим бесплатным трудом, не считая время других людей.
Открытая разработка & проектирование языков
Технические фреймворки по сути являются набором удобных инструментов. Поскольку языки программирования реализуют только базовые стандарты, для построения экосистемы языка необходимы открытые фреймворки.
Язык программирования — это как «кисть для каллиграфии», а открытые фреймворки — это «каллиграфические произведения», созданные этой кистью. Они взаимодополняют друг друга. В случае с Python, языком с низкой производительностью и слабой типизацией, сам язык не особо меня привлекает, но невозможно игнорировать тот факт, что такие фреймворки, как TensorFlow и PyTorch, написаны на Python.
Оптимизация производительности Python, как ни странно, заключается в обходе ограничения GIL и использовании C. Это вызывает у меня ощущение, что решается одна проблема за счет другой.

Это похоже на то, как если бы я пришел на массаж по объявлению с изображением красавицы, а меня встретил крупный мужчина ростом семь футов, который сказал, что красавица отдыхает, а он гораздо сильнее и лучше подходит для массажа. Мое тело и душа отказываются от такого. Потому что это противоречит моим первоначальным ожиданиям.
AI достиг вершины, Python взлетел.
Проектирование языков & разработка операционных систем
Языки программирования — это глубокая наука. Управляющие конструкции, перевод в машинный код, абстрактные синтаксические деревья, GC, потоки, принципы компиляции — даже простейшие вещи, вроде 1+1, для меня сложны.

Компьютерная индустрия — это очень разочаровывающая сфера. Талантливые дети уже в четвертом-пятом классе знают HTML и начинают заниматься робототехникой и создавать ракеты; а я в том же возрасте только регистрировался в QQ на компьютере родственников и меня безжалостно обыгрывали в Bubble Trouble одноклассники.
Не говоря уже о нашем ужасном окружении: профессора в университете стараются, чтобы сдать экзамены, но используют учебники десятилетней давности и говорят: «На самом деле, изучать C# 2005 достаточно, даже если сейчас есть .net core — они одинаковы~»
Я в шоке: один язык ограничен платформой, другой — это следующий уровень с кросс-платформенной и даже кросс-языковой компиляцией, как они могут быть одинаковыми? Первый шаг в изучении программирования — участие в разработке open source проектов. Понимание процесса промышленного дизайна, а не сидение на Титанике и просьба о помощи.
Языки программирования зависят от операционных систем, которые являются их платформой. Операционная система — связующее звено между аппаратным обеспечением и программным обеспечением. Это вершина программной разработки.
Разработка ПО & интегральные схемы
На самом деле, бизнес-разработка, проектирование open source фреймворков, разработка языков и операционных систем — все это можно объединить в «разработку программного обеспечения». Если смотреть с этой точки зрения, в нашей интернет-индустрии еще много пустого пространства.
Если рассматривать человека как расходный материал, придется мириться с колебаниями и нестабильностью трафика сайта во время передачи работы. Не говоря уже о том, что пользователи платформы могут инициировать «атаки перенаправления» — забудьте о тех интернет-компаниях, которые жестоко обращаются с сотрудниками.

Так называемая «гибкая разработка» в Китае — это просто люди, толкающие тележку (причем трое толкают одну четырехколесную электромашину). В книге «Миф о человеко-месяце» описывается трюк «беременной женщины» — одна беременная вынашивает ребенка 40 недель, но невозможно заставить 10 беременных родить за 4 недели. Я видел проекты, которые делались в режиме «ночных смен», и все они были провалами или переделками.
Погоня за быстрыми результатами тратит время и силы, которые не стоят сэкономленных минут, а если возникают технические ошибки — это еще хуже.
Верхняя ступень разработки ПО — это интегральные схемы. У нас есть хороший фонд, поддерживающий высокотехнологичную индустрию интегральных схем. Но ресурсы постоянно перераспределяются неправильно, деньги не доходят до настоящих национальных предприятий и специалистов.
Разработка ПО и интегральных схем должна быть фундаментальной, требующей накопления и тесной связи теории с практикой. Но университетские исследования почти гордятся тем, что обманывают финансирование (например, называют научного руководителя «боссом»); а частные компании под предлогом молодости режут «лук» с опытных разработчиков, увольняя старших инженеров и при этом красиво называя это «подготовкой кадров для общества».
Борьба меча и ци
Это похоже на борьбу между двумя школами на горе Хуашань — мечников (молодое поколение) и ци (ветераны-разработчики). Когда мечники приходят к власти, они выгоняют тех, кто учился у ци. Потому что мечники делают быстрые проекты, которые приносят прибыль, и работают дешевле.
Мечники делают акцент на мощных приемах меча, а ци (open source проекты, проектирование языков, операционные системы) сосредоточены на внутренней силе.
Оба подхода не являются ошибочными. В молодости, тренируясь по учебникам меча (go, C#, Java), это нормально. Но большинство людей просто используют один язык 4-5 лет и считают себя опытными, на самом деле они просто копировали 50 строк кода 4-5 лет подряд.
Или, как Java boy, который ради удобства следующей работы внедряет микросервисы там, где они не нужны.
Это всего лишь подражание, настоящая внутренняя сила (интернет-протоколы, стандарты программирования, способность к абстрактному моделированию) не успевает сформироваться. Когда «меч» ржавеет (например, PHP выходит из моды, проекты проигрывают конкурентам), остается только сменить профессию, и все усилия оказываются напрасными.
«Ци» — это не гордыня, а жизненная сила. Эта сила — это десятилетия упорства, постоянства и настойчивости. Это смелость идти в тигровую гору, даже когда весь мир против тебя и у тебя нет меча в руках.
Нам нужны идеалы, потому что в долгие темные ночи только надежда может привести нас к дальнему плаванию.