0x0. 网名「野生的码农」的由来

在开端正文之前,先啰嗦两句,在我的编程生涯中,没受过什么科班教育,凭着对核算只因的热爱,「野路子」比较多。依照百度百科中对「野生」的解说,我是一名「野生的码农」:

野生,意思是动植物在野外自然生长而非经人工驯养或培植

我是在安医大读了3年多医学后,觉得不是这块料,回头自学了1年的核算机系课程后,跨考了中科大的核算机系(11系)研讨生(学硕),命运还行,一次就上岸了。中科大就不用介绍了,安医大或许许多人不知道,只得强行蹭一波名人的热度了:

安医,许嵩的本科校园,我和他同届;闻名黑客 tk 教主也是安医毕业的,他俩都在90周年校庆中被评为了优秀校友

当然,安医校友中还有更出色的,尤其是今年,可谓是众所周知、如雷贯耳、炙手可热、闻者落泪,点到为止,你懂的

3年多前,趁着在腾讯转岗的间隙,我写过一篇文章《医学跨考核算机研讨生10周年》,介绍了跨专业考研时的心路历程以及我写文章时的作业和生活状况,计划继续更新读研、作业时的一些趣事。然鹅,自那之后,作业更忙了,2019年末开端办理团队。2020年头,那啥开端了,生活彻底被打乱了。再也没时刻,没心境写东西了。

7月底,我结束了整整10年的北漂生活,回到了合肥上班,关于这个选择,感兴趣的朋友能够看看这篇文章《鹅厂组长,北漂 10 年,有房有车,做了一个违背祖宗的决议》。相对而言,合肥的作业没北京那么忙,所以,从10月底开端,我又开端随缘更新了。觉得文章有点意思的朋友,无妨点个关注,防止失联。尽管现在有点空余时刻了,但更新速度不敢确保,跟老婆吵架的频率大致成反比

先说个最近错过的发财机会,11月底,在海鲜商场发现了个奇葩的核算器,看上去就很厉害的姿态,69不包邮,入手了一台。卖家发货前,我模糊感觉这是个好东西,又追加购买了1台,最终是两台150元包邮,这是我手里的两台:

我用 1 个 2 手计算器换了 3 台 MacBook(上)

到手后,的确像我猜测的那样,是Android体系,9.0版别。研讨了1分钟,翻开开发者模式,用adb装置AIDA64,详细装备:

全志 A50 CPU,32位,4核1.5GHz;1G RAM,8G ROM;5.4寸屏幕,1280*720 分辨率

单声道扬声器,光线传感器,WiFi,蓝牙,typec 接口,支撑OTG,没有 GPS

据网友拆机,有空余内存和SD卡焊盘,但直接焊上同标准内存颗粒不辨认,或许跟 MacBook 相同,扩内存时需求同步改电阻

这么多按键,用来玩模拟器游戏应该不错,可是NES.emuGBA.emu都辨认不了按键,只要它自带的核算器能辨认。自己写了个 demo,的确是收不到onKeyDown事情。把自带核算器的 apk 拖出来,反编译看看,竟然是什么tty,需求每个APP翻开串口dev/ttyS4监听键盘输入,而非 Android 体系标准的onKeyDown,淦!

直觉告诉我,这玩意肯定会火,这个造型的安卓机太罕见了,垃圾佬狂喜,学生党摸鱼神器。果不其然,就在我购买的同时,酷安大佬也发现了这货,不到2天,卖家手里的1000多台就卖光了。现在涨到159了,还有网友愿意加价100购买我手里的,当然没舍得出。

假如我当初直接把卖家手里的机器都包圆了,每台加价50出,保存能赚5个w,够买台心心念的本田NSS350了。惋惜我胆子小,没敢出手(其实是股票和基金亏麻了),不过也或许是功德,至少不会被网暴:

他歹意哄抬物价,靠核算器赚了一套房,这究竟是道德的沦丧,仍是人性的歪曲?!

也正是这件事勾起了我对往事的回忆,决议写点东西,聊聊我是怎么在核算器的吸引下,走上了码农之路,并趁便用核算器换了几台 MacBook。大多产生在我读书和作业初期,希望对读者有所启发。

声明下,我不是标题党,文中的一切事情都是真实产生过的,我对着打了骨折的薪酬条许诺:

本文内容,贵在真实,如有虚拟,(薪酬)折上加折

0x1. 接近完美的 MacBook Air

9月底的时候,合肥日常气温还在30度以上,为了防止电脑散热导致全球变暖,我斥巨资0.00013亿,全款购买了一台顶配 24GB 内存的 M2 款深空灰 MacBook Air。这台机器除了屏幕小了点,音响效果垃圾外,其他当地堪称完美了,重量轻,续航长,性能好。刚买完不久,就听说下一年春季要发布15.5寸的 MBA,看来跟股票相同,又没把握好出手的机遇。

这些年,花了不少钱购买苹果产品,我不是果粉,仅仅觉得苹果的生态不错,用起来省心,质量也过得去,同价位找不到体会更好的产品了。算下来,这是我购买的第3台苹果笔记本了,另外两台是2014年时购买的顶配港版15寸 MBP 和2015年时给老婆购买的丐版13寸 MBA,分别耗资 1.5w 和 0.6w。

可是,你敢信,这些 MacBook 竟然是用1台价值10元的二手核算器换来的。核算器长下面这个姿态:

我用 1 个 2 手计算器换了 3 台 MacBook(上)

留意看,这个宝物叫小帅,它是一切故事的起点,不过即便帅气如小帅,也只能屈尊男二号,男一号当然是我了。本文会依照时刻次序,介绍小帅怎么在我的英明带领下,一路披荆斩棘,身价暴升数千倍,从核算器逆袭成多台 MacBook 的。

0x3. 怎么用核算器换 MacBook

信任咱们都看过「怎么把大象装进冰箱」的段子,如下图所示分为3步:

我用 1 个 2 手计算器换了 3 台 MacBook(上)

同理,用核算器换 MacBook 也是3步:

  1. 挑选 MacBook
  2. 物物交流
  3. 润!

全文完,祝您幸福,可狱不可囚的新生活就在阎前了。哈哈哈哈,有没有受骗的赶脚?裤子都脱了,你就给我看这?

尽管上面仅仅个段子,但其实整体过程是差不多的,只不过第2步需求弥补亿点点细节,请试试看:

我用 1 个 2 手计算器换了 3 台 MacBook(上)

好了,不开玩笑了,由于实践的「物物交流」的过程十分崎岖,时刻跨度长达12年,我会分成3篇文章来介绍,内容简介:

  1. 大学前的懵懵懂懂 — 不堪一击
  2. 本科时的误打误撞 — 初学乍练
  3. 读研时的不务正业 — 略知一二

每篇文章中,都会共享一些真实产生的小故事。不是为了水文章数量,担忧文章太长,读者看了一半就跑路了

0x4. 人生的第一台科学核算器

初二(2000年)左右,数学书上有了科学核算器的介绍,貌似是用来核算三角函数的,记不清了。由于我家是乡村的,周围买不到这种「高档」的科学核算器。所以,托同学帮我买一台,印象中是18块钱,他说直接买他的好了,没用几天,只要10块钱,成交!所以,他具有了10块钱私房钱,我具有了人生的第一台科学核算器,便是本文开头图片的那款,带时刻显现的。

那个时代,没啥玩的东西,核算器也成了电子玩具之一。连蹲坑都拿在手上,闲着没事我就一通乱按,看看能算出个啥。很快啊,我就熟练到了炉火纯青的地步,对一切功用都了然于胸,包括阶乘、随机数、二进制等。除了「->r」和「CPLX」,这是极坐标、复数相关的,初中水平有限,不知道是做什么用的。

由于了解,还用它搞过恶作剧,把同学的核算器改成16进制,此刻,只要「加减乘除」底子功用可用,sincos等函数都失效了。再输入一些字母,即便重新开机也依然停留在16进制,相似下面这种显现:

我用 1 个 2 手计算器换了 3 台 MacBook(上)

同学认为核算器坏了,找我赔,场面一度十分和谐

当然,作为核算器,它更多的时刻仍是用来核算的,尽管是由于数学课买的,但数学课简直没有过,印象中核算过核算中的方差和线性回归。首要用途仍是物理和化学,用来核算浮力、做功、分子量、方程式啥的,节约了许多无聊的人肉核算时刻。

让我感兴趣的是,这货是怎么算的这么快的,高斯尽管能口算 1~100 的和,但他肯定口算不了 1~69 的积。为什么是69,而不是100?没用的常识:

一般的科学核算器只能核算到69的阶乘,由于69! = 1.711224510^98,70! = 1.197857210^100

而核算器运用科学计数法时,其指数部分最多显现两位数,所以,最大只能核算69!

弥补两个其时发现的无聊的比如,只看结果的前几位数字,很完美,但后边「跑偏」了:

a. 1234567890*8 = 9876543120

b. 1111111111/9 = 123456790.1

如同咱们的人生相同,并不会总是依照自己想象的路线图开展的:①. 你或许多年今后才干获得从前梦寐以求的东西,像a中的2出现在了1之后 ②. 更有或许的是,你永远也得不到想要的东西,就像b中的8相同。我现在真的觉得,这些都是命,强求不得,要坦然接受生命中的不如意。

扯远了,为了探寻科学的真理,中考后的一个夜黑风高的大白天,我举起了39米的大刀,温顺地划开了它的胸膛,得到了若干电阻电容晶振以及一块看不懂的电路板,电路板上有块圆形的牛屎芯片。就这样,我人生中的第一台科学核算器走完了它光辉的终身,享年2岁。

0x5. 早逝的超级函数核算器

上高中后,又花20块钱买了台山寨的夏普科学核算器,比之前那台少了时刻功用,其他功用一毛相同。节约流量,图片就不放了。

每次逛书店和城隍庙,都会去卖核算器的柜台转转,看看有没有更高档的核算器。即便买不起,看着密密麻麻的按键,也是一种享用。惋惜的是,它们除了外观略有不同,功用上和我手里那台没有任何差异,实在是无趣。直到高三下学期的某天,午饭吃饱后,不想在教室里吃狗粮,去城隍庙透透气,意外发现了一款看上去就很高档的核算器,屏幕是点阵的,按钮十分多,还能输入26个英文字母,如下图:

我用 1 个 2 手计算器换了 3 台 MacBook(上)

这货的中文姓名十分很霸气,叫「超级函数核算器」,印在 A 面的外壳上,拍照时现已遗失。老板娘开价80,我是学生,抹个零,8块。你是畜生也不行,滚!最终貌似是38仍是48买来的,简略研讨了下,比较我手里那台山寨夏普,这家伙的确配得上「超级」的名头。它内置了许多物理和化学的公式及常数,也能够自定义公式,输入各变量的值,直接输出公式的值。例如:E=mc^2,输入 m 的取值后,会自动核算出 E,c 是内置的常量之一。

临近高考,没时刻再研讨其他更复杂的功用了,高考后,就把它给我妹了。可是,没多久,它就被我妹摔驾崩了,享年1岁。上面的相片貌似是05年用同学的手机拍的,它那会现已薨了大半年了,相当于拍的是「尸身」了。我后来拆开看过,电路板很漂亮,里边有好几块十分工整的方形牛屎芯片。抱愧,看不懂硬件,只能这么苍白的表达了。

由于它的早逝,一向没能搞清楚它到底有哪些功用,我现在还经常在网上查找这款机器,希望能能再买一台。惋惜一无所得,或许是保有量很少吧,甚至连资料都找不到。算了,随缘吧,让往事随风。

0x6. 码农之路的启蒙教师

信任绝大多数程序员的启蒙教师都是凡人,而我的编程启蒙教师是位神仙 — 文曲星:

我用 1 个 2 手计算器换了 3 台 MacBook(上)

惋惜的是,启蒙教师现已遗失在岁月的长河里了,图中的文曲星是我最近花了130大洋买的,仍是比台版文曲星「哈电族」更常罕见的港版。卖家或许是怕我到手刀,反复叮咛我港版装置程序会有乱码,主张我买国行的CC800。我说乱码无所谓,买回来回忆下芳华,首要是为了情怀,能用就行,还让卖家趁便帮我装了几个程序。

高一,花400多买了台支撑数码录音的文曲星 PC1000,没多久机器出问题了,换成了刚出不久的PC1000a,不支撑数码录音,但外观更细巧,配色更舒服,看上去就像是一台迷你笔记本电脑。让人费解的是,我用它玩了两年多俄罗斯方块,词汇量竟然没有一点点进步,足以证明文曲星并不能提高英语成果。

文曲星也自带了许多核算器的功用,有科学核算公式核算核算核算等等,两个没用的常识:

文曲星能核算的最大阶乘数是 3208! = 8.6168014*10^9856

文曲星能显现的时刻范围是1932年1月1日 ~ 2031年12月31日

高三的某天,翻开文曲星预备算点什么,不小心进入了「核算/换算」里的GVBASIC,只要一个光标在闪烁。尽管之前也进来过,但一向不知道是做什么用的,所以每次都是马上就退出来了。那天或许是无聊,本着来都来了的精神,亦或是大意了,没有闪,我按下了「求助」按钮,阅览起了机器自带的协助,里边有IFFORGOTOASCII等内容的介绍,模糊地感觉是编程相关的功用。

高一的微机课结束后,除了偶然去网吧冲浪,就没机会接触到电脑了。并且微机课也仅仅教了点打字和微软三件套等皮裘,最终一课时,微机教师简略演示了Visual Basic编程,看上去很厉害的姿态,不过,我是真没看懂他在搞毛。莫非文曲星也能像电脑相同编程?

其时,恰逢数学刚学完椭圆不久,发现协助里有个ELLIPSE的指令,能够用来画椭圆,协助内容如下:

ELLIPSE 画椭圆

用法:

ELLIPSE X0,YO,A,B,FILL,TYPE

*FILL=1 填充

*FILL=0 不填充

*TYPE=1 画椭圆

*TYPE=0 清椭圆

如:

]10 GRAPH

]30 ELLIPSE 80,40,60,30,1

把示例代码输入文曲星后,按下RUN运转,马上显现了个实心的椭圆,测验把代码中的1改成0,椭圆就没有填充了:

我用 1 个 2 手计算器换了 3 台 MacBook(上)

卧槽,好奇特,后来还测验了CIRCLE画圆、LINE画直线等内置指令,制作出的图形完美符合数学中的相关定义。靠着阅览协助,我在文曲星上学会了赋值、条件、循环等编程中最基础的常识。所以,正是文曲星教会了我编程,是指引我走上码农之路的启蒙教师。但也仅限于入门了,PC1000a的代码修改体会实在太糟糕了,在没有电脑的情况下,很难开发超越10行的程序。

其时,数学正在学习极限、导数的内容,假如能把函数图画制作出来,不少函数的极值能一眼看出来了,但惋惜的是,绝大多数函数图画是很难通过手工画出来的的。高一的时候,看过数学教师用电脑软件演示过恣意函数图画的制作,感觉真 TMD 牛逼。

所以,我就想,能否通过编程,让文曲星也能制作恣意函数的图画呢?然鹅,心有余而力不足,我也只能是想想了,毕竟刚学会1+1=2,就想核算微积分,属实是痴人说梦了。后来,班里的一位电脑高手给我传了个程序,号称能在文曲星上制作恣意函数的图画,例如制作y(x)=x*sin(x)的函数图画:

我用 1 个 2 手计算器换了 3 台 MacBook(上)

据高手说,这是他自己开发的,应该是真的吧,由于他还给喜爱的女孩开发了个相似flash的小动画,编程才能杠杠的。那时他在开发中国象棋和恣意函数求导的程序,据他说很复杂,应该是没能在高中毕业前完成。

尽管我其时不知道他是怎么做到制作恣意函数图画的,可是我用的很欢乐,晚上做题做累了,翻开程序,修改个十分复杂的函数,看看图画长什么姿态,也算是为数不多的消遣了。小镇做题家的高兴,便是这么朴实无华且单调

然鹅,没多久,这种简略的高兴就被下面的妖媚贱货给取代了:

我用 1 个 2 手计算器换了 3 台 MacBook(上)

这是当年文曲星上十分火爆的《黄金英豪坛说》,也是我第一次接触RPG游戏,比较上瘾,玩坏了两个键盘,废了几十个5号电池。

三年前,为了再体会一把当年的高兴,特意买了个横版MiYoo开源游戏机,自带文曲星CC800模拟器并内置了《黄金英豪坛说》,上手5分钟后抛弃,操作太繁琐了;也在 iPhone 上装过《英豪坛说》,同样是玩了5分钟弃疗了;即便是最近买的文曲星 PC1000a上,也只玩了10分钟就退出了。

并非是游戏不好玩,游戏仍是那个游戏,但我现已不是那个我了:

高中,尽管家境贫寒,但也能吃饱穿暖,学习成果也不错,底子没有需求我操心的事

现在,上有老下有小,每天睁开眼就要面临生活、作业上的小事,何故解忧,唯有搞钱

如我和卖家的沟通相同,我是由于「回忆芳华」才买的这台文曲星,翻开文曲星的瞬间,似乎又回到了无忧担忧的少年时代,得以片刻的喘息。

其实,我现在是个不折不扣的的「垃圾佬」,买了挺多相似的二手老物件,以手机居多,今后有机会再找个主题共享给咱们。

0x7. 冰火两重天的体会

高考前几天,最终的一次模拟考试,年级第10名,是我高中时代最好的排名,科大,等我。高考,大概班级第30名左右,而平时都是在前3名徘徊的,是我整个高中最差的一次了,只比二本线高了40来分,科大,再见了。除了语文,一切科都考的很烂,妈的,我也不知道为啥,分明题目简略的一匹,或许是过于轻敌了吧。

高考的滑铁卢,着实让我 emo 了好久,整日以泪洗面,不愿踏出闺房半步。短短几天,从顶点跌入谷底,没去东莞,也体会了一把冰火两重天。本想着复读一年,圆了中科大的梦想,可是爸爸妈妈看到我的状况,底子不敢让我复读,万一来年又没考好,你丫岂不是要玉玉到自挂东南枝了?

最终,在家人的劝说和化学教师的主张下,报了与中科大仅一字之差、一街之隔的医科大:

我用 1 个 2 手计算器换了 3 台 MacBook(上)

我在安医和科大都听过相似的故事:

某某由于学习压力大,转学到马路对面了,那里压力小不少,从此石沉大海

地图里的科大中区,当年仍是合肥学院,那么安医、安大、科大、合肥学院,谁是压力较小的「马路对面」呢?都不是,「马路对面」是指中间的「第四人民医院」,这是一所精神病医院

不过,我在那片区域流窜了9年,还真不知道「四院」详细在哪,也就没见过它的真容了。没想到,多年今后,咱们一家三口走进了北京的一所精神病医院:某年暑假,老婆来北京慰劳我,自检两道杠。为了赶快承认一下是否真的阳了,我带着她骑上我心爱的 N(>=3) 手电驴,以 25km/h 的速度飞奔向最近的一所大医院 — 回龙观医院。

当医师得知咱们要抽血检查 HCG 时,用一种难以置信的口气跟我说:

小伙子,你应该是来错当地了,咱们这是一所精神病医院

卧槽,哈哈哈哈,医师也忍不住笑了起来。啊,不好意思,再见了,您嘞!至今,老婆还会时不时地拿这事嘲讽一下我

言归正传,再说回高考。其实,在填志愿之前,我从未考虑过学医,我甚至都不知道安医在合肥,我一向认为的安医是芜湖的皖南医学院。我感兴趣的是电子或化学类专业,标志性地报了郑大提前批的核算机系和安师大的化学系,从前底子看不上的校园,现在也高攀不起了。学医,将来哪怕是找不到作业,当个赤脚医师也能混的不错。听上去也还行?那就从了吧。

决议认命之后,为了找点事做,防止胡思乱想导致又玉玉了,花100买了个小霸王学习机,又花35买了个 RPG 游戏卡带 –《封神榜》。购买《封神榜》,也是受《英豪坛说》影响,那里边的剧情和对话都很好玩,认为一切 RPG 游戏都是这样,就找老板随意买了个 RPG 卡带。过后,我才发现,我并不喜爱玩游戏,尤其不喜爱这种练级类的游戏,一来没有耐心,二来打怪晋级,实在是太无聊了。我只跟同学一起玩了前1/5剧情,剩余的都是他一个人玩通关的。

听说小霸王上有个学习卡,支撑BASIC编程,为了一睹她的芳容,我顶着40度的酷日,跑了好几家店都没找到,只能作罢。直到多年今后,我才用 PC 模拟器看到了学习卡的真面目:

我用 1 个 2 手计算器换了 3 台 MacBook(上)

假如当年找到了学习卡,会由于更早地学会了编程,影响我后来的开展轨迹吗?我想大略是不会的,反正都是不或许,由于即便是现在,面临黑乎乎的F-BASIC窗口,除了PRINT,我也实在想不起再输入点啥了,何况当年小白的我。并且就在那个暑假,我还把表姐家的电脑借过来了1个多月,干的最多的事便是在《抢滩登陆》和《雷电》里打飞机。电脑技能方面,除了学会了装置和卸载软件,连打字的指法都没测验去学,更甭说学会编程了,这波是叶公好龙了,属所以。

0x8. 未完待续 & 彩蛋

至此,花了好几个晚上和两个周末,码了近7000字,终于把大学前的编程启蒙阶段写完了。剩余的两篇文章,也在预备素材了,争取春节前更新结束。由于现在毒圈现已缩小到公司同楼层了,假如我没有准时交卷,除了在跟老婆友爱地交流意见外,更大的或许便是我参加圈了,请知悉。

我用 1 个 2 手计算器换了 3 台 MacBook(上)

其实,上面文曲星制作的y(x)=x*sin(x)的图画是错误的,有仔细的读者发现吗?这个程序是咸鱼卖家给我装置的,估量是核算 y 坐标的当地手抖了,多输入了个负号,当年我同学给的那个是没问题的。

前面说到,为了搞清楚按键事情监听,我反编译了奇葩核算器的 apk,发现了这样一段代码:

package xx.oo;
public class SerialPortHelper {
  private static Context mContext;
  private static SerialPortHelper mInstance;
 
    public SerialPortHelper() {
     foo();
   bar();
   }
 
    public static synchronized SerialPortHelper getInstance(Context context) {
    SerialPortHelper serialPortHelper;
    synchronized (SerialPortHelper.class) {
      mContext = context;
      if (mInstance == null) {
        synchronized (SerialPortHelper.class) {
          if (mInstance == null) {
            mInstance = new SerialPortHelper();
           }
         }
       }
      serialPortHelper = mInstance;
     }
    return serialPortHelper;
   }
}

JavaAndroid攻城狮帮助 Review 一下,上面有几处错误?