- 多汇报,多表现,不当工具人
- 有些技术点用不到不钻研,时间花在更有意义的地方去
- grep -r XXX ./
- 复现的话尽全力与原文保持一致
- 写代码开发多锻炼,参与国外大型开源项目锻炼
- try except 尽量不用,特别的,python解释器会拖累时间
- 去掉 if else 一般用标志位,向量化操作
- 解决vocab oov的方法,遍历vocab的key,token赋值UKE,或filer,或oov词表,或(1.原始词有没有2.全小写有没有3.全大写有没有4.首字母大写有没有5.三种次干化有没有6.长得最像的几种编辑方法有没有)或 sub-word level embedding
- torch.amp.autocast,看是哪种FP16
- with torch.autograd.profiler.emit_nvtx(): count = 0 torch.cuda.nvtx.range_push('batch')
- 出问题再打profiler,已有方法能加速的话,不用分析
- 打比赛是一个产业,与普通的训练代码区别很大,他们的代码是有很多不为人知的trick的
- 多抛问题,甩锅给别人
- 做一件事之前先判断这件事值不值得做
- 先怼一个方案,这样有话说
- 入职后第一个周期很重要
- 不同公司文化不同,tx崇尚自由,有很多向上交流的机会,中国facebook
- 把产品卖出去是最终目的,哪怕你有关系,不一定崇尚依托技术卖产品
- 永远都要避免搬砖,做老板认为有价值的事
- cuda runtime驱动
- FP8 miniblock
- 与人交往,不卑不亢
- 做好OKR,勤记笔记
- 与同事、客户和沟通是不一样的,不要问客户过多问题,会让他们觉得自己很业余
- sudo chown -R yuyu /mnt/ssd1/yuyu
- cfs nvme
- 做一件事情考虑其价值,不考虑其投入,做完之后,我应该怎么说,才能显得我干了很多工作,有很多业绩
- 有些时候重复造轮子是可以的,只要让老板觉得可以,不管其实际是否带来收益
- 不要参与与别人打交道过多的项目,这样会有大量的时间浪费在沟通上
- 少做合作类的项目,多做自己团队定位的项目,这样业绩才是自己的,不会被别人抢去
- 一旦遇到与别人定位相同,多想差异化价值
- 黑产一手信息还是很有帮助的
- 针对一件事情,不一定要做成,只要有人兜着你,完美完成下一个任务,就不会有人记得你这件事到底做没做成了
- 一般来说,换一个老板要裁一半以上的人,因为不好管理
- 不一定别人做的好,如果别人和你有利益关系,你要希望别人做的不好.
- 针对一件事情,想出最有说服力,最有信赖的方案,即使做不成,不是因为能力问题,而是因为条件不具备.一个衡量点,别人来了,也会这样做,把我踩的坑,全部踩一遍.
- 想要留用的话,就多在老板面前表现,比如开会的时候,多发言,有自己的思想,有领导力,在混乱的时候能够统一局面并提出方案
- 很多时候拼的是soft skill,而不是hard skill
- 升职路径,项目越乱越好,人越多越好
- 做开发,可以埋几个坑,这个坑只有你能解决,这样才能说明你的价值
- 但这也分情况,如果一件事情不看过程只看结果,那就不行了,例如刷榜.
- 关键时候的决策很重要,人与人之间拼的是选择.
- 有些体力活不要做,做老板认为有价值有意义的事情.
- 与人交往的时候礼貌很重要,即使项目上有冲突,现实中也要保持良好关系
- 不要什么话都往外说,要留着自己的筹码,不然把你的工作抢走了怎么办
- 有时候有些事情很乱,看起来没有效率,有可能是老板也没有办法解决问题
- 边缘化一个人很简单,让你管的东西少一点,你底下的人会一个接着一个离职
- 有时候组织架构半年一变,一下就把你优化掉了
- 不小心踩到别人的脚什么的要道歉
- 学技术的话去稳定的组,升值加薪的话去变动大的组
- 做一件事情,首先老板需要懂,老板不懂的话就做不下去了,因为重要方向无法决策
- 大老板不需要懂技术细节,只需要拿捏方向,管理手下,分配资源,决定战略.
- 做计划时,有具体方案
- 维护好自己的代码包,工具库,不要反复写同一份代码
(1)职业发展的最好方法是换公司。
(2)技术栈不重要。技术领域有大约 10-20 条核心原则,重要的是这些原则,技术栈只是落实它们的方法。你如果不熟悉某个技术栈,不需要过度担心。
(3)工作和人际关系是两回事。有一些公司,我交到了好朋友,但是工作得并不开心;另一些公司,我没有与任何同事建立友谊,但是工作得很开心。
(4)我总是对经理实话实说。怕什么?他开除我?我会在两周内找到一份新工作。
(5)如果一家公司的工程师超过 100 人,它的期权可能在未来十年内变得很有价值。对于工程师人数很少的公司,期权一般都是毫无价值。
(6)好的代码是初级工程师可以理解的代码。伟大的代码可以被第一年的 CS 专业的新生理解。
(7)作为一名工程师,最被低估的技能是记录。说真的,如果有人可以教我怎么写文档,我会付钱,也许是 1000 美元。
(8)网上的口水战,几乎都无关紧要,别去参与。
(9)如果我发现自己是公司里面最厉害的工程师,那就该离开了。
(10)我们应该雇佣更多的实习生,他们很棒。那些精力充沛的小家伙用他们的想法乱搞。如果他们公开质疑或批评某事,那就更好了。我喜欢实习生。
(11)技术栈很重要。如果你使用 Python 或 C++ 语言,就会忍不住想做一些非常不同的事情。因为某些工具确实擅长某些工作。
(12)如果你不确定自己想做什么东西,请使用 Java。这是一种糟糕的编程语言,但几乎无所不能。
(13)对于初学者来说,最赚钱的编程语言是 SQL,干翻所有其他语言。你只了解 SQL 而不会做其他事情,照样赚钱。人力资源专家的年薪?也许5万美元。懂 SQL 的人力资源专家?9万美元。
(14)测试很重要,但 TDD (测试驱动的开发)几乎变成了一个邪教。
(15) 政府单位很轻松,但并不像人们说的那样好。对于职业生涯早期到中期的工程师,12 万美元的年薪 + 各种福利 + 养老金听起来不错,但是你将被禁锢在深奥的专用工具里面,离开政府单位以后,这些知识就没用了。我非常尊重政府工作人员,但说真的,这些地方的工程师,年龄中位数在 50 岁以上是有原因的。
(16)再倒一杯酒。
(17)大多数头衔都无关紧要,随便什么公司都可以有首席工程师。
(18)手腕和背部的健康问题可不是开玩笑的,好的设备值得花钱。
(19)当一个软件工程师,最好的事情是什么?你可以结识很多想法相同的人,大家互相交流,不一定有相同的兴趣,但是对方会用跟你相同的方式思考问题,这很酷。
(20)有些技术太流行,我不得不用它。我心里就会很讨厌这种技术,但会把它推荐给客户,比如我恨 Jenkins,但把它推荐给新客户,我不觉得做错了。
(21)成为一名优秀的工程师意味着了解最佳实践,成为高级工程师意味着知道何时打破最佳实践。
(22)发生事故时,如果周围的人试图将责任归咎于外部错误或底层服务中断,那么是时候离开这家公司,继续前进了。
(23)我遇到的最好的领导,同意我的一部分观点,同时耐心跟我解释,为什么不同意我的另一部分观点。我正在努力成为像他们一样的人。
(24)算法和数据结构确实重要,但不应该无限夸大,尤其是面试的时候。我没见过药剂师面试时,还要测试有机化学的细节。这个行业的面试过程有时候很糟糕。
(25)做自己喜欢的事情并不重要,不要让我做讨厌的事情更重要。
(26)越接近产品,就越接近推动收入增长。无论工作的技术性如何,只要它接近产品,我都感到越有价值。
(27)即使我平时用 Windows 工作,Linux 也很重要。为什么?因为服务器是 Linux 系统,你最终在 Linux 系统上工作。
(28)人死了以后,你想让代码成为你的遗产吗?如果是那样,就花很多时间在代码上面吧,因为那是你的遗产。但是,如果你像我一样,更看重与家人、朋友和生活中其他人相处的时光,而不是写的代码,那就别对它太在意。
(29)我挣的钱还不错,对此心存感激,但还是需要省钱。
- 有做产品的思维,很多时候提一个点并不重要.复杂问题简单化,系统问题模块化,做领导,创业,做产品,出demo,有些事情可以很巧妙的解决.
- 有些文档不要写的太好,这样别人才会来问你
- 认识了个thu cs的团支书,get 到了很多social的技巧,例如先把所有同学名字全记住,多和师哥一起跑步,人情社会是真的,很多东西操作一下就可以,比如某pku本cmu phd回某校教书,操作一下就能转phd
- 想清楚要什么,要钱绝对不是phd,挣钱有很多路子,像杰哥一样周末干个外快都能好几万
- 物以类聚,人以群分;不忘初心,与人为善。每天耍心机和同事为了一点小东西竞争真的没必要,格局放大一点,这样卷会让老板同事都不开心。但是该争的利益还是要争得。
- 老板分配一个项目时,谁吃甜头,谁背锅,早就想好了。这样的项目如果你似乎背锅侠,那能不接就不接。
- 在老板面前表现好就行了,真正的代码写的怎么样没谁会管你
- python copy会有inmuttable
- 有了一定的技术的时候,social,人脉真的很关键,开学了一定要好好social一下。
- 学好CSAPP,终身受益
- 跟一个不懂的老师也有好的地方,无缝衔接某司
- lsof -i:端口号
- netstat -tunlp | grep 端口号
- --master_port 29588(分布式linux)
- | tee -a $LOGFILE
很赞同你的观点。其实面试考察,从来不会按照自己有限的知识领域里对于这些dl方法的解释去限制候选人。面试过程中也有很多候选人从头到尾讲dl,如果自己能够结合项目背景、数据的分布、调参过程的一些重要经验、网络的优化和改进等任何一点给出自己的思考其实都是加分的,不可能因为不知道传统方法的解释而fail掉,当然如果知道会更加加分。实际上这些理论知识,更多时候是去面试实习/校招以及项目经验不多的候选人,有限的项目经验无法充分了解其算法掌握程度,只能从简历里提到的算法,从原理一层层考察候选人的了解程度