<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Job-Search on TouchingFish.top</title><link>https://touchingfish.top/tags/job-search/</link><description>Recent content in Job-Search on TouchingFish.top</description><generator>Hugo</generator><language>zh-cn</language><lastBuildDate>Thu, 16 Apr 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://touchingfish.top/tags/job-search/index.xml" rel="self" type="application/rss+xml"/><item><title>夕阳职位，SP求职真实心境</title><link>https://touchingfish.top/2026/sp-sunset-position/</link><pubDate>Thu, 16 Apr 2026 00:00:00 +0000</pubDate><guid>https://touchingfish.top/2026/sp-sunset-position/</guid><description>&lt;p&gt;2025年第二季度，我做了一个决定：不再找SAS Programmer的工作。&lt;/p&gt;
&lt;p&gt;像告别。是那种你早就知道该走了，却一直站在原地不肯迈脚的告别。站了很久，久到腿都麻了——然后你迈出去了，迈完的那一刻，腿还是麻的，但人轻了。&lt;/p&gt;
&lt;p&gt;人轻了之后，是空落落的。&lt;/p&gt;
&lt;h2 id="一"&gt;一&lt;/h2&gt;
&lt;p&gt;我写了五六年代码。2023年秋天，才开始稍微看一点SAS——不是因为我热爱这门语言，是因为招聘JD上写着&amp;quot;必须熟悉SAS&amp;quot;。&lt;/p&gt;
&lt;p&gt;以前不是这样的。&lt;/p&gt;
&lt;p&gt;以前SP招聘，写过R和Python，那SAS和SQL肯定没问题。逻辑是一样的，语法可以学。这是招聘者的潜台词：我们要的是编程能力，不是特定语言的熟练度。&lt;/p&gt;
&lt;p&gt;后来人多了。&lt;/p&gt;
&lt;p&gt;人一多，门槛就变了。写过R和Python？不够。必须写过SAS。有没有项目经验？没有？那不好意思，下一个。&lt;/p&gt;
&lt;p&gt;我理解这种筛选逻辑。当供大于求，用人单位当然挑最顺手的。&lt;/p&gt;
&lt;p&gt;但理解归理解，接受归接受。&lt;/p&gt;
&lt;p&gt;开始学SAS的时候，心里其实有点别扭。不是为了学新东西——学新东西我从来不抗拒。是为了迎合一个我并不认同的筛选标准。&lt;/p&gt;
&lt;p&gt;这种感觉，像是被迫去考一个含金量存疑的证书。&lt;/p&gt;
&lt;p&gt;（证书这种东西，有用的时候是通行证，没用的时候就是废纸。）&lt;/p&gt;
&lt;p&gt;其实更早的时候，种子就已经埋下了。&lt;/p&gt;
&lt;p&gt;2021年，第14届中国R会，线上。MSD的张亦龙做了一个presentation，讲的是用R做临床研究报告和提交。那时候我坐在屏幕前，心想：原来这件事已经有人在做了。不是学术讨论，不是概念验证，是真的在用R做提交。&lt;/p&gt;
&lt;p&gt;但我没有当回事。&lt;/p&gt;
&lt;p&gt;（人总是这样，听到了信号，却选择性地忽略。）&lt;/p&gt;
&lt;h2 id="二"&gt;二&lt;/h2&gt;
&lt;p&gt;FDA在2025年8月更新了eCTD技术规范9.3版，新增支持&lt;code&gt;.rds&lt;/code&gt;、&lt;code&gt;.rdata&lt;/code&gt;、&lt;code&gt;.rda&lt;/code&gt;等R数据文件格式，允许&lt;code&gt;.zip&lt;/code&gt;打包R包提交。PMDA在2025年3月确认接受R用于申报。EMA正在探索使用SAS和R进行审评分析。&lt;/p&gt;
&lt;p&gt;以前R脚本要转成.txt才能提交。现在不用了。&lt;/p&gt;
&lt;p&gt;这意味着R正在获得监管认可。SAS在监管提交领域的垄断地位，正在被打破。&lt;/p&gt;
&lt;p&gt;R Consortium在2023到2025年间牵头了三个FDA试点项目——Pilot 1、2、3——验证R提交方案。三次都成功再现了。&lt;/p&gt;
&lt;p&gt;强生用SAS+R混合策略完成了FDA提交——SAS生成ADaM，R生成表格输出。为了保证审评者能重现R环境，他们在ADRG里加了安装脚本和&lt;code&gt;renv.lock&lt;/code&gt;。勃林格殷格翰更激进，启动了跨部门的SAS向R迁移，用生成式AI把约20万行SAS宏代码翻译成R。CRO们开始搭建R基础设施，培训员工，建立社区。&lt;/p&gt;
&lt;p&gt;JPMA 2024年的调查显示，约59%的公司在临床编程中已经用上了R。&lt;/p&gt;
&lt;p&gt;这是行业层面的转型信号，而2021年那个presentation，原来不是信号。是预言。&lt;/p&gt;
&lt;p&gt;（预言这种东西，听到了是运气，听到了不当回事是宿命。）&lt;/p&gt;
&lt;p&gt;技术替代这件事，说快不快，说慢不慢。&lt;/p&gt;
&lt;p&gt;SAS不会明天就消失。它有几十年的积累，有稳定的用户群，有完整的验证框架。FDA的指南也没有强制要求R，只是提供了技术支持。&lt;/p&gt;
&lt;p&gt;趋势是清晰的。&lt;/p&gt;
&lt;p&gt;R生态中涌现了{metacore}、{admiral}、{xportr}这些专用包，用于CDISC SDTM/ADaM构造。tidyverse的管道式编程在数据清洗重塑方面灵活直观。开源社区的力量，正在把SAS的护城河一点点填平。&lt;/p&gt;
&lt;p&gt;SAS还在依赖DATA步、PROC SQL和自定义宏。不是说这些工具不好——是说，当R社区用元数据驱动的自动化流程替代手动操作的时候，SAS的工作方式看起来越来越像是在用算盘对抗电子表格。&lt;/p&gt;
&lt;p&gt;更关键的是生成式AI。&lt;/p&gt;
&lt;p&gt;SAS Institute的研究报告指出，大型语言模型能理解自然语言规范，输出符合要求的SDTM/ADaM编程代码。实际案例已经演示了LLM辅助完成SDTM映射、ADaM推导逻辑编写和标准表格输出。&lt;/p&gt;
&lt;p&gt;重复性很高的规则性编程工作，正在被自动化工具覆盖。&lt;/p&gt;
&lt;p&gt;这意味着SAS Programmer这个岗位的核心价值，正在被重新定义。从&amp;quot;编码者&amp;quot;变成&amp;quot;验证专家&amp;quot;或&amp;quot;数据科学家&amp;quot;。而如果你本来就会R和Python，这个转型反而更容易。&lt;/p&gt;
&lt;p&gt;Atorus甚至专门开了Academy，帮SAS程序员学R。培训需求旺盛——这说明市场已经在动了。&lt;/p&gt;
&lt;p&gt;但为了求职，我不得不迎合一个正在失去垄断地位的技术栈。替代这种事，落在一个具体的求职者头上，就是一个具体的失意。&lt;/p&gt;
&lt;p&gt;因为劳动力市场还是保守的。数据也很有意思。&lt;/p&gt;
&lt;p&gt;美国SAS程序员平均薪资约9万美元，中位数也是这个数。经验丰富者可达13万美元以上。看起来还不错。&lt;/p&gt;
&lt;p&gt;但从2018到2028年，SAS程序员岗位预计会下降约7%。行业对多语言技能的需求增加。&lt;/p&gt;
&lt;p&gt;招聘广告越来越关注数据可视化、机器学习、Python/R语言及云计算技能。SAS技能仍有市场溢价，但这个溢价正在被稀释。&lt;/p&gt;
&lt;p&gt;中国市场更戏剧化。SAS宣布退出中国，可能影响近500人。国产替代方案（如启维QiviData）开始推广。&lt;/p&gt;
&lt;p&gt;PPD/Thermo Fisher在PhUSE年会上分享过他们的经验：初始时几乎没有R基础设施和流程，于是引入RStudio、搭建集中R环境、组织内部&amp;quot;R马拉松&amp;quot;——从零开始，一步步培养团队R能力。他们的结论是，R采纳需要系统的变革管理：领导支持、清晰愿景、持续培训与社区支持。&lt;/p&gt;
&lt;p&gt;一家CRO从零搭建R基础设施。这本身就是信号。&lt;/p&gt;
&lt;p&gt;（有时候你看到的是行业趋势，有时候你看到的是自己的处境。两者叠加在一起，看得格外清楚。）&lt;/p&gt;
&lt;h2 id="三"&gt;三&lt;/h2&gt;
&lt;p&gt;2025年4月，老父心梗发作，住了ICU。&lt;/p&gt;
&lt;p&gt;找工作这件事，突然就不重要了。&lt;/p&gt;
&lt;p&gt;不是说不急。是说不出来急。人在ICU外面坐着的时候，脑子里转的不是JD和面试题，是监护仪上的数字和医生的脸色。&lt;/p&gt;
&lt;p&gt;那几天我反复想一个问题：如果我现在还在为SAS Programmer的面试刷题，我坐在ICU外面会是什么心情？&lt;/p&gt;
&lt;p&gt;大概会更焦虑。不是因为面试本身，是因为我知道自己在为一个不认同的方向投入时间，而这些时间，本可以用在更重要的事情上。&lt;/p&gt;
&lt;p&gt;我反而更确定了。&lt;/p&gt;
&lt;p&gt;不是那种&amp;quot;大彻大悟&amp;quot;的确定。是那种在医院的走廊里坐了几天之后，对什么事情重要、什么事情不重要，有了一种不需要思考的直觉。&lt;/p&gt;
&lt;p&gt;SAS Programmer的求职，不重要。&lt;/p&gt;
&lt;p&gt;（但有些事情，不重要了之后，并不意味着其他事情就变得重要了。只是优先级重新排列了。）&lt;/p&gt;
&lt;p&gt;不敢想象，前阵子刚重温了一遍《转角遇到爱》，那部剧我中学时候看过一遍，大学时候又看过一遍，每次看都觉得自己还是个小孩。突然大家就说徐熙媛去世了。我在SNS留下五个字：晚安，俞心蕾。&lt;/p&gt;
&lt;p&gt;角色是假的，但看剧时那些下午是真的。&lt;/p&gt;
&lt;p&gt;有些人是音乐，有些人是空气。&lt;/p&gt;</description></item><item><title>毕业后最认真面试的季度</title><link>https://touchingfish.top/2025/q1-interview-retrospective/</link><pubDate>Wed, 30 Apr 2025 00:00:00 +0000</pubDate><guid>https://touchingfish.top/2025/q1-interview-retrospective/</guid><description>&lt;p&gt;回忆2024年，多少有点不真实。&lt;/p&gt;
&lt;p&gt;8月底，某央企的 HR 打来电话，说恭喜通过面试，体检报告过关就发 offer。我攥着手机在房间里站了五分钟。毕业三个月，终于快要有一个正经工作了——虽然是个放射类药物企业，体检等了一个多月还没下文，但好歹有个着落。&lt;/p&gt;
&lt;p&gt;11月初，hc 取消。&lt;/p&gt;
&lt;p&gt;那个 HR 的声音我现在还能想起来。先是很职业的恭喜，然后是一段不太职业的沉默，最后是&amp;quot;公司战略调整&amp;quot;。六个字，一场空。&lt;/p&gt;
&lt;p&gt;硕士读的是生物统计，论文写的是演化博弈。听起来挺唬人——实际上也确实挺唬人的，唬到秋招投了一圈 SAS Programmer，只捞到两次面试，最后拿了一个实习 offer。GCP 证书到手那天，我还认真地觉得自己要入行了。Good Clinical Practice，药物临床试验质量管理规范，翻译成人话就是：药厂认的实验怎么做，它告诉你。&lt;/p&gt;
&lt;p&gt;然后就到了2025年。&lt;/p&gt;
&lt;p&gt;一季度大概是我整个求职周期里最动荡的一段。不是投简历投得最多的时候——是内心最晃的时候。放弃了一个方向，不知道下一个方向在哪，每天翻招聘网站像翻一本永远写不到结局的小说。&lt;/p&gt;
&lt;p&gt;放弃 CRO 不等于那些东西白学了。临床试验的很多概念——随机化、盲法、偏倚、数据标准化——骨子里都在讨论同一件事：怎样在不完美的现实里，尽可能诚实地回答一个因果问题。这个问题的底层逻辑，放到哪个行业都不会过时。&lt;/p&gt;
&lt;p&gt;所以还是把这些准备材料整理了一下。&lt;/p&gt;
&lt;p&gt;当时为什么学，学的时候卡在哪，面试官问了什么，我怎么答的——答对的、答错的、答不出来的。流水账。有些事情不记下来真的会忘。&lt;/p&gt;
&lt;h2 id="面试不问定义"&gt;面试不问定义&lt;/h2&gt;
&lt;p&gt;第一场面试，我把随机化的定义背了一遍。&lt;/p&gt;
&lt;p&gt;面试官听完，没点头也没摇头。他问：&amp;ldquo;一个受试者入组后被分到了错误的组，你怎么办？&amp;rdquo;&lt;/p&gt;
&lt;p&gt;我愣了大概五秒。&lt;/p&gt;
&lt;p&gt;不是在考定义。是在考你有没有想过实际操作中会出什么花活。那些课本上读不到的角落——系统出错了怎么办，随机表被人为干预了怎么办，发现的时候数据已经入库了怎么办。&lt;/p&gt;
&lt;p&gt;后来学乖了。每个概念后面都挂一个问题：&amp;ldquo;如果出错了呢&amp;rdquo;。回答一下就有血有肉了。&lt;/p&gt;
&lt;p&gt;临床试验的知识点翻来覆去就那些：随机化、盲法、AE 报告、SDTM、中心效应、脱落率。上过 GCP 课的人都能说上几句。面试官想看的是另一层东西——这些概念在真实世界里长什么样，摔过跟头的人才知道。&lt;/p&gt;
&lt;h2 id="书本之外"&gt;书本之外&lt;/h2&gt;
&lt;p&gt;准备面试那阵子，我花了大量时间啃 ICH E6 GCP、FDA 指导原则、统计方法的推导。这些东西当然有用。&lt;/p&gt;
&lt;p&gt;真正让我卡住的，是那些书上没有的问题。&lt;/p&gt;
&lt;p&gt;&amp;ldquo;CRO 现在收缩得很厉害，你知道吗？&amp;rdquo;&lt;/p&gt;
&lt;p&gt;&amp;ldquo;数据管理员和 SAS 程序员的日常工作差在哪？&amp;rdquo;&lt;/p&gt;
&lt;p&gt;&amp;ldquo;你做过几个项目？用过什么 EDC 系统？&amp;rdquo;&lt;/p&gt;
&lt;p&gt;书本不会告诉你行业寒冬这件事。书本不会告诉你 SAS 在临床数据处理领域的江湖地位正在被 Python 一点点蚕食。书本不会告诉你，某些 EDC 系统的市场份额直接决定了你要不要花时间学它。&lt;/p&gt;
&lt;p&gt;（这个问题我到现在也没有好答案。能说的就是：书本上的东西我可以学，行业经验需要时间——给我时间。）&lt;/p&gt;
&lt;h2 id="追问是好事"&gt;追问是好事&lt;/h2&gt;
&lt;p&gt;有些面试官喜欢追着问。追到你答不动为止。&lt;/p&gt;
&lt;p&gt;第一次被追到哑口无言的时候，恨不得找条缝把自己塞进去。&lt;/p&gt;
&lt;p&gt;后来想通了。追问意味着他在认真听。他想知道你是真懂还是背的。&lt;/p&gt;
&lt;p&gt;被问到不会的地方，老老实实说&amp;quot;这个我不太确定&amp;quot;，比硬撑着胡说八道强一百倍。&lt;/p&gt;
&lt;p&gt;有一次面试官问我 LOCF 的假设。我答错了。他当场纠正了——但没有露出那种&amp;quot;又来了一个背书的&amp;quot;的表情，而是说了一段话：&amp;ldquo;这个问题，很多做了好几年的统计师都不一定答对。你能往这个方向想，说明你动过脑子。&amp;rdquo;&lt;/p&gt;
&lt;p&gt;那场面试后来有了下文。&lt;/p&gt;
&lt;p&gt;（当然也可能只是他比较善良。）&lt;/p&gt;
&lt;h2 id="理论是加分项"&gt;理论是加分项&lt;/h2&gt;
&lt;p&gt;面试官有时会扔一些开放性问题。&lt;/p&gt;
&lt;p&gt;&amp;ldquo;多中心试验最大的挑战是什么？&amp;rdquo;&lt;/p&gt;</description></item><item><title>为了追剧（Binge on My Own Terms）</title><link>https://touchingfish.top/2024/binge-on-my-own-terms/</link><pubDate>Thu, 29 Aug 2024 00:00:00 +0000</pubDate><guid>https://touchingfish.top/2024/binge-on-my-own-terms/</guid><description>&lt;p&gt;答辩那天，同届学生其他人都是委员会全票通过，只有我拿到一张弃权票。老板跳槽后没有出席，倒也省了看他脸色的麻烦。&lt;/p&gt;
&lt;p&gt;没有什么仪式感。打包，退宿舍，回家。&lt;/p&gt;
&lt;p&gt;汕头六月的太阳毒得很，晒得人无处可逃。毕业前没找到工作，金三银四投出去的简历像石沉大海。&lt;/p&gt;
&lt;p&gt;总得做点什么。&lt;/p&gt;
&lt;p&gt;摆摊卖红豆冰，跟朋友一起买了辆&amp;quot;倒骑驴&amp;quot;，批发了一大袋红豆和一次性杯子。我妈听说我要去摆摊，沉默了几秒钟，说，也好，总比在家里躺着强。&lt;/p&gt;
&lt;p&gt;理想很丰满：烈日炎炎，路人挥汗如雨，来一杯冰镇红豆冰，透心凉。现实很骨感：我这个人太i了，有人走近摊位的时候，恨不得把头埋进冰桶里。眼神对上就开始紧张，话到嘴边变成含糊不清的几个音节。每天就是找个树荫坐下，手机打开，一边投简历一边乘凉。红豆冰自己喝掉了大半。&lt;/p&gt;
&lt;p&gt;朋友问摆摊怎么样，我说挺好，就是有点热。他没追问，我也没多说。&lt;/p&gt;
&lt;p&gt;可能难以融入社会是在逃避创伤。三年下来，老板是自由的，我们是自由的奴隶。导师的责任心差一点，但至少是个好人——这种评价本身就很荒谬。知识结构合理成为永远实现不了的目标。学院教授们一味施压，美其名曰为论文盲审着想，却没人愿意听我怎么答怎么辩。&lt;/p&gt;
&lt;p&gt;倒也不是一无所获。学会了伪装。&lt;/p&gt;
&lt;p&gt;我需要一个缓冲期。一个不用说话、不用见人、不用解释自己为什么还找不到工作的空间。&lt;/p&gt;
&lt;p&gt;追剧。&lt;/p&gt;
&lt;p&gt;最近为入手一年的电视盒子升级一个新系统，试了两三个固件，总算把安卓TV升级到满意的版本。可能是WiFi模块不太兼容，网速一直有点慢。微妙的是，每一次改动路由器的设置，机顶盒就自动关机重启。&lt;/p&gt;
&lt;p&gt;于是，还没怎么追剧，盒子就因为一次次“断开”和“连接”崩溃了。不会焊板，只能默默承受。&lt;/p&gt;
&lt;p&gt;昨晚，拿着手机开始逛京东和淘宝。没错，我准备干脆物色一台新的智能电视。一直对市面上的智能电视没信心——广电备案过的能有什么好产品。家里一直是一部日货外接机顶盒的组合，十年依旧扛打。如今才知道，40寸以上的品牌电视，已经找不到一台非智能的机器了。&lt;/p&gt;
&lt;p&gt;失业多年没有收入，实在是难下剁手决心。&lt;/p&gt;
&lt;p&gt;翻墙倒柜，掏出了去年刚刚换掉的前任机顶盒，却因为卡得无法忍受，而又将其收起。&lt;/p&gt;
&lt;p&gt;今日，学习事毕，对着平板上播放的综艺节目，索然无味。感慨畅享大屏之体验一去不返。又是拿起手机，浏览起了智能电视论坛，寻觅一部物美价廉的替补机顶盒。技术傍身（有一点点动手能力），只要是重新烧录后可以开机的，大抵会考虑低价购入，将就使用。&lt;/p&gt;
&lt;p&gt;意外之喜，看到号称系统老顽固的前任机顶盒，竟然也有可以使用的自制固件。&lt;/p&gt;
&lt;p&gt;工具齐全，开始实操。初次试验，莽莽撞撞。错选版本，中途重置。重振旗鼓，慎之又慎。&lt;/p&gt;
&lt;p&gt;终于，功夫不负有心人。&lt;/p&gt;
&lt;p&gt;在这个晚上，前任机顶盒的不离不弃，为我重新实现了在电视机上收看节目的小确幸。&lt;/p&gt;
&lt;p&gt;感恩美好生活。&lt;/p&gt;</description></item></channel></rss>