本文是我大四保研之后学校老师让我去给当时的新生做的分享的内容,偏口语化,现在过去也有将近一年时间了,有些学弟学妹给我发消息说很感谢当时的分享,如今正好又到了新生入学的时候,我也开启了新的征程,就当是过来人给的建议了。以下是当时的分享内容。
很高兴收到王老师的邀请来到这和学弟学妹做一个有关自己这几年大学经历的分享。首先我先自我介绍下,我叫XXX,来自15级软件工程。
不知不觉你们都已经在大学度过3个多月了,不知道你们现在对大学都有一个什么样的认识,我当时来的时候特别的迷茫,因为刚从高三那个紧绷的环境过来,宛如一匹脱缰的野马,自由但是没有方向,说实话我很羡慕你们在这个阶段可以有学长和学姐引导,我刚来的时候只有一个告诉我上大学只要不挂科就ok的学长,而且当时我还奉为人生信条。
今天我来不是跟你们说要你们好好学习之类的,因为那没什么用,自助者天助,我今天来是想把我从入学到现在所遇到的一些困扰来和你们分享,相信对你们应该会有所帮助。
第一,大学的目的是什么? 我问问你们,你们觉得大学的目的是什么?我以一个同龄人且是过来人的身份告诉你们,在我眼里,大学4年,如果你能明白自己就行想要怎么活,你的人生想怎么过,你最想要得到的是什么,就足够了。
有的人大学不学习只玩游戏,有的人大学不玩游戏只学习,有的人大学什么不做只恋爱,有的人大学就要找个白金男。
很正常,你可以说玩游戏是浪费生命怎么的,也可以觉得天天逃课的都是傻逼,也可以觉得去学生会做事的就是浪费时间。如果你就是喜欢玩游戏,并且认为自己能够为止奋斗一生那么就去做吧,其他人怎么评论又如何,难道只有拿奖学金是牛逼的?
如果你认为人生就应该平平淡淡娶妻生子 ,乖乖念书然后去找工作一步一步过有什么不好?比起那些会为玩游戏而抛弃一切的我更鄙视那些什么都想做什么都要做,结果机会给他了又开始说这个不会那个不会的人。找到那个最美的自己,然后为之不断奋斗,这是我在大学的最大体会。
第二,你对学校失望吗? 扪心自问下,你们来到这也有3个月了,你们对这个学校失望吗?我刚来的时候对这个学校真的是非常非常失望,论面积不如我的高中;论地理位置,夹在南京和扬州中间,尴尬;那图书馆,随便找个别人家的大学都比我们气派,就更别说学校的食堂、宿舍了。你问我失不失望,失望呀,可是我不能对我自己失望啊。一只站在树上的鸟儿,从来不会害怕树枝断裂,因为它相信的不是树枝,而是它自己的翅膀。与其每天担心未来,不如努力现在。自己努力做到最好,那么人与环境均为一流。
第三,我需要合群吗? 我需要合群吗?这个问题我在大一的时候反复的问我自己,我需要合群吗?那个时候的我为了合群,我积极参加了社团活动,去不断的认识新的人,这种状态我一直持续到了大二下,当然我并不是说参加活动,广泛交友是坏事,只是后来我在想,这是我想要的吗?人们往往把合群看作一种能力,却忽略了独处也是一种能力,并且在一定意义上是比合群更为重要的一种能力。低质量的社交不如高质量的独处。为何会有芸芸众生这个词,说到底就是因为群体的智商往往都是低下的。现在回头看看我独来独往的大三一年,真的觉得没必要为了随大流在不重要的人身上浪费时间。君子之交淡如水,用陪伴、时间和玩乐次数磨出来的朋友大多是酒肉朋友,配得上知音二字的朋友不会拖着你浪费时间。如果不是本身性格孤僻封闭,而是对生活有明确目标、计划和安排的话,不要因为旁人或集体打乱自己的节奏,想想是理想重要还是所谓的“合群”重要。朝夕相处共同生活不等于真正的朋友,真正的朋友就算远在天边,很久没有联系,他们也永远在那里。想要学会与别人相处,就要先学会和自己相处。
第四,为了不让我的大学荒废,我应该做什么? 其实这个问题你们去知乎上搜索是会有很多回答的,你们可以自己结束之后去搜搜,我来这并不是来教育你们的,更不是来教你如何成为一个优秀的大学生,因为我自认我并不优秀,我只想以一个同龄人以及过来人的经验告诉你们,大学期间,需要做些什么。
明确自己想要的是什么? 刚进大学,你们很多人都才从紧张繁重的高中学习跳出来,带着一些稚嫩的孩子气,那种初生牛犊的韧劲儿,无论对什么都充满着无限的好奇和憧憬,你们这个时候就像一张白纸一样,可以任意的去涂鸦出属于你自己的那抹斑斓,我认为大一就应该是一个不断尝试的时候,这个时期我建议你们尽可能多的尝试,不要有任何的顾忌与犹豫,敢于犯错,因为什么都才刚刚拉开序幕。我为什么说让你们多去试试呢,因为你们在尝试的时候是对自己的一个重新探索的过程,以前的你们,只有一个目标,那就是高考。但是现在正值青春年少,为何不多去尝试一些之前没有接触的新鲜事物,只有你积极的探索了之后你才知道你自己想要的是什么,而且越早行动,就越早知道自己的目标,就可以更好的去为了那个目标去奋斗了。
为了自己的追求,全力以赴 当然每个人想要的可能都不太一样,比如说我想在大学谈个恋爱,我想认识一帮好基友,我想成为一个更好的人,等等等等。想要的东西不分大小,不分主次,更重要的是你愿不愿意为了你想要的去全力以赴,这就是我想说的第二点。假如说,你喜欢一个女孩子,但是自己不敢去追求,那你只能眼看着她被别的男生追走,又或者你想认识一帮好基友,但是自己整天在宿舍打游戏,如果是这样的话,想要的再多又有什么用呢?重要的是,你愿不愿意为了你想要的全力以赴。也许你付出了不一定会有结果,但是你不付出,就一定没结果。
永远不要在学习上懈怠 我相信在座的很多人都听别人说过到了大学就轻松了,只要考试不挂科就可以了,但是真的是这样的吗?拿我自己举例吧,我大一大二两年就是以60分万岁为信条的,这样的后果就是我大一大二的成绩一般,大三一年为了保研花在争取加分项上的精力要比其他保研的人多很多。你们可以想象下我大三一年,我要忙学生会的工作,社联和本创都是我负责,还要学技术,做项目,参加比赛,写论文,复习考试,后期还要准备简历,准备复试,联系学校和导师。大三那一年我几乎没有早于凌晨一点半睡觉的。现在看来,我的努力都有了回报,但是回头看看,如果我大一和大二的时候不那么放纵自己,多花点时间在学习上,我的大三就可以稍微轻松点不是吗?所以如果在座的各位和我当时一样有60分万岁的想法,我劝你们趁早结束这种想法,因为出来混迟早是要还的,你今天欠下的东西,未来必然会以某种你不喜欢的形式出现。
结识一些志同道合的朋友 刚才我在合群的问题上提到了享受一个人的乐趣,但并不代表优秀的社交圈就没有用处。见贤思齐焉,见不贤而内自省也。一个好的交际圈真的很重要,我很庆幸我在大学期间认识了很多优秀的人。举个例子,我有一个学长叫XXX,保研浙大的,楼下的海报上还有他的名字,我大一的时候经常跟在他后面写代码的,关系还算不错。大二快结束的时候,他拜托我帮他打印一份文件给老师签字,因为那个时候他已经在东区了,我收到文件打开之后发现是他申请浙江大学夏令营的导师推荐信和他的个人简历,真的,我当时很震惊,我们学校的学生竟然可以申请浙江大学的研究生,而且他和我说他已经和浙大那边的教授联系好了对面也愿意接收了。我相信在座的各位每个人都跟我一样,心中都有一个名校梦,这件事情对我触动最大的地方就是他让我的名校梦死灰复燃了,那一瞬间我觉得我这辈子还是有机会去我想去的大学,也是从那时候开始,我才意识到接下来的一年我该做什么了。现在看来如果不是他让我帮的那个忙,我可能后来也不会有去南大的想法了。当然还有和我一起开发果核的那两个人,我很庆幸可以和他们一起把我们的想法付诸实践。
不要害怕展示自己 如果你对自己的实力表示自信,那就不要错过展示自己的机会。举个例子,今年7、8月是保研的夏令营期间,那段时间全国各个想保研的学生都会给名校投递简历,我也不例外。但是南大、复旦这样的名校的计算机类的专业基本上是不会在夏令营期间收我们这样学校的学生的,所以在我被刷了之后心里很不平衡,因为我自认我的能力并不比那些211/985的人差,于是我就在7月底,南大的夏令营已经结束之后,自己联系了导师并且私下去和导师面谈,也正是那次的面谈,导师决定给我一个机会参加南大9月的复试,后来复试通过我也就被录取了。试想一下,如果7月底我没有主动和老师联系然后去面谈,那我仍然会因为本科学校的原因被拒绝,然后再一次让我的名校梦化为泡影。
谈一场单纯并且完整的恋爱 大学里的爱情,相比高中更加成熟,相比工作以后更加单纯。你们的爱情可以不用担心每个月的房租、不用去管未来会是什么样子。通过大学这个平台,相识、相知、相爱,从第一次见面,第一次约会吃饭、第一次一起上自习、第一次一起翘课去看电影、为了爱情而疯狂,尽管很多人批判现在大学的恋情已经变了味,但我仍然相信,大部分情况下,大学生的爱情是澄澈而纯洁的。
在恋爱中,两个人相互交换彼此的思想,学会为对方考虑,学会担当和责任感,两个人之间的交流、争吵、矛盾、谅解,也是一个重新认识自己并让自己获得成长的过程。更何况,大家以后基本都是做IT的,工作之后就很难有机会接触异性了不是吗?
世界那么大,多出去看看 上大学的时候,你有大把大把的课外时间,还有着学生证这样一件神器,在很多旅游景点,可以享受半价的优惠。这样一件利器不用简直太可惜了,况且工作以后你需要考虑生活、家庭、工作,很难像大学那样有一次纯粹的旅游。
多出去看看世界,去自己喜欢的的地方,感受每个地方不同的历史和文化,不仅把它当作是旅游,同时也是提升自己见识的好机会。俗话说得好,“读万卷书,不如行万里路”,这个道理是没毛病的。
最后 最后,希望各位学弟学妹们在不影响自身学业的情况下,可以为了自己想做的事全力以赴,让自己的大学不留下遗憾。
去年四月的时候,我在公众号「01 二进制」发了几篇和春招面试有关的文章,眼瞅着现在已经 2 月底了,马上又到了一年一度的春招黄金时期,即将找工作的你做好准备了么?
作为一个经历过春招的老狗,我决定在今年的金三银四到来前梳理下对大家春招可能有帮助的文章,也算是回馈我为数不多的公众号粉丝了,如果你觉得对你有所帮助,还请大家点赞关注支持一下 🌹
知识储备 作为一个计算机专业的学生,想要找到一份好的工作,知识的储备是毋庸置疑的。去年,我在公众号开了一个「技术科普」专题系列,主要是做一些知识的分享,争取用通俗易懂的方式介绍一些计算机知识,其目的就是要扩展读者们的知识面。
技术科普系列的链接在这 👉技术科普系列,其中有一些我觉得对你们的面试可能会有些帮助。
如何向女朋友解释在地址栏中输入网址后发生了什么?
科普系列——如何解释什么是 AJAX?
科普系列——从网购/直播入手理解什么是 CDN
聊一聊 RPC
浅入浅出消息队列
接口调度者——API 网关
想追女神?先学 Synchronized 吧
互联网是如何工作的?
面试时的刁难问题 对于校招生而言,面试官除了会检验一些基础知识,还会额外的对面试者的思考能力做一个评判,方式就是通过提出一些“八股文”之外的问题,所谓面试中的“八股文”也即各种面试宝典、面试题库里的题目。GitHub 上有很多这样的仓库,我就不一一举例了。
在掌握“八股文”外,如果可以对场景有更深层次的思考,是可以在面试中加分的。去年我同样在公众号中开了一个新的系列「每周一问」,目的就是解决一些在编程中遇到的一些可以让人产生疑惑的小问题,如果面试中问道了,而你刚好又看过了,岂不是赚了?
比如说为什么我们需要批量操作?就是我在淘宝转正面试时遇到的一个小问题,其实答案稍加思考就可以得出,只是平常我们很少对自己问出这样的问题,如果突然被问到可能会慌。虽然这个系列目前的文章数量比较少,但是我一直在更新,还请大家多多关注。
每周一问系列 👉每周一问
推荐文章 👇
为什么不建议在 for 循环里捕捉异常? API 与 SDK:有什么区别? 为什么我们需要批量操作? 刷题 「Talk is cheap. Show me the code」作为一个计算机专业的学生,编程能力无疑是最重要的,而想要在短短一小时的面试时间里判断出你的编程能力,最好的办法就是做题了,这个题目可能是算法题、也可能是面向对象的设计题,当然也有可能是写脚本的题目。因此平时的做题训练是必不可少的,我之前也曾在公众号中发过力扣的题解系列,可后来由于阅读量惨淡也就没有坚持下去了,这里我就不推荐了,建议大家自己去力扣上多刷题,上面有很多大神的题解。...
看到标题大家可能还会有些诧异,这不是才刚刚国庆吗,怎么都开始写双十一的文章了。的确,虽然国庆还没有过完,但今年淘宝的双十一活动已经开始了。
我的上一篇文章是在 9 月 12 日发布的,直至今日一直没有更新的主要原因就是这半个月全身心的投入到这次双十一项目的研发中了。这半个月一个字总结下来就是 「累」,不仅仅是身体上的累,更有心理上的累。
短短半个月的时间,几十个令人无语的需求,没完没了大大小小的会议以及根本写不完的代码在前半个月疯狂摧残着我,不知多少个夜晚回到家已是第二天,一觉醒来继续重复着昨日的行为,总是会让我怀疑在这里工作的意义。
不过好在 10 月 1 日 0 点,这次的活动平稳上线了。虽然还有很多功能之后才会陆续上线,但连续半个月的连轴转总算是有暂缓脚步的迹象了,我也终于可以趁着这个国庆假期简单分享一下我来淘宝的第一个双十一了。
双十一活动 2009 年 11 月 11 日,是淘宝的第一个双十一,自那时起,每年的 11 月 11 日变成淘宝的一个固定节日(当然现在各种平台都会凑一下双十一的热度)。不过那一年我还小,我第一次听说双十一是在大学的时候,那个时候对一些电子产品感兴趣,双十一会有很大的优惠力度,不过可能是我的购物习惯导致的,蹲点抢购我一般是不会参与的。但是第二天我总还是会关注一下公开披露的数据,比如交易峰值,QPS 这些,毕竟是专业所致。去年实习因为个人原因没参与到双十一就离职回学校了,今年 7 月正式加入淘宝后,我迎来了自己的第一个双十一。
我所在的部门今年的双十一活动名为 「双十一种草机」,目前这个活动已经上线了,手机淘宝扫描上方二维码即可体验。其需要解决的问题痛点是 「想参与双十一,但是又不知道买什么」 。看到这可能有的人就要说了,整这么多花里胡哨的干嘛,直接像 PDD 一样,百亿补贴直接减免不就行了吗?
额,对于这点,我只能说,我就是一个写代码的,领导说要做啥那就做啥。至于为什么不直接像 PDD 一样直接减免如下图所示 👇
功能开发 我负责的功能是种草机活动的干预模块,其实要做的事情并不是很复杂,在不同时间段运营人员会根据当前情况对种草推荐/结果做一些紧跟时事的干预,比如增加某些优质内容的曝光量,或者拉黑某个劣质明星及其相关内容,一些敏感词过滤等等,大致流程如下图所示。
运营在某一个干预后台上可以进行一些配置的填写,前端同学负责搭建这个后台的页面,服务端同学需要将运营填写的配置数据落库,然后在前台履约的时候拿出这些数据。乍一看,确实没什么难点,不就是一个简单的 CRUD 功能吗?难不成阿里的双十一就这么简单吗?
后台数据落库 为了使整个干预模块形成一个闭环,我们需要从 后台数据落库 和 前台数据履约 两个角度去考虑实现运营干预。
对后台数据落库而言,的确就是配置数据的 CRUD,但难点在于对配置 数据的抽象。运营的配置需求千变万化,究竟是以何种方案实现成为了一个难点。如果每一类配置都作为一张表,那未来这个数据库将会出现 “数据表爆炸” 的情况,而且配置与配置之间并不是独立的,是有可能存在某种关联关系的,因此数据表的设计必须能够做到针对此类需求的通用性、易扩展。
其实本来写到这里的时候我是准备了一张简化后的数据模型图,但考虑到数据安全的问题,这里就用文字简单说明了,下一部分的前台履约同样。
可以说明的是,对于干预配置,设计的核心理念是 「一切都是配置」。在设计中,我们将一份运营配置分为两类属性:基础属性和表单属性。基础属性很好理解,如 ID、名称、操作人员、投放人群、投放时间等这些每个配置都会考虑到的东西。表单属性即运营后台呈现出来的需要运营填写的奇奇怪怪的属性,例如拉黑配置中的黑名单词,指定搜索词的头像等。
对于运营配置的基本属性以 树形结构 存储数据,通过 ParentId 指定配置之间的父子关系,通过 Group 指定配置类别,再通过唯一主键明确一个配置。采用树形结构存储将会天然支持此类运营配置的业务需求,理解起来也会更加自然。...
唔,突然就年中大促了啊 5月26日晚8点,618第一波预售活动正式开始,虽然各家都在紧锣密鼓的准备这个年中大促,但说到底活动的玩法、套路营销手段都是市场部等业务方制定的,作为技术人,究竟在大促活动中承担一个什么样的角色?以及大促活动究竟能带来什么改变,确是值得我好好考虑下的。
大促状态下的业务与技术 对于电商业务,既然有大促活动,肯定就会有日常状态,那么大促和日常究竟有什么区别?
相较于日常零碎的需求,大促的需求会更成体系,理想状态下,日常的需求基本上是各个产品经理在自己的盘口里反复横跳。搜索类的产品日常情况下只会提搜索相关的需求,推荐类的产品只会提推荐相关的需求。一旦到了大促,就需要各个盘口相互合作,以内容业务为例,往往是供给、用增、消费、搜索、公私域等盘口的联动,这时日常可能需要2-3个人日的需求就会变成可能需要40-50人日的团队作战。
由于业务需求更成体系,对于技术来说,就需要让整个迭代流程更加合理,无论是方案设计还是人力分配,这就很考验技术PM的经验与能力了。几乎所有的大促需求的时间是倒排的(大促开启时间是确定的),开发时间是十分有限的,因此一开始就要做足准备,可能涉及的上下游通知清楚,模块的边界划分事先明确,临时方案与通用方案的抉择,这些都是和日常态的区别。
也正是因为这些区别的存在,对技术也有着和日常不一样的要求。
全局意识 刚才说了因为需求更成体系,所以技术设计方案的时候也要更加合理。而想让方案更加合理就需要技术能真正的理解整个活动的玩法是什么样的。甚至可以说,技术应该要做到比业务更加了解业务(毕竟写代码的是技术不是业务)。只有做到这一点,才能真的站在更高的维度去看整个需求,才能知道如何规划系统,如何对齐资源,如何梳理上下游依赖关系,哪里可能会有坑,风险会在哪。
更加高效 对于一个技术团队来说,一个很重要的指标是效率。如何提高整个团队的效率是每个领导者需要关注的问题。现阶段我也只是一个大头兵,如何提高团队效率暂时不是我的命题。但有一点是确定的,只有团队里每个人更加高效了,整个团队才会更加高效。因此,如何在技术开发中变得高效就是每个技术人应该探索的命题了。
工具 首先是工具的使用。这里的工具不单单是开发工具,也包含一些效率工具。对于人类社会来说,生产工具的进步标志着生产力水平的提升。生产力最终是通过生产工具在人的作用下转换为产品的。这是生产过程必不可少的一环。
落实到每个人头上,最直观的表现就是一个好的工具可以给你节约非常多的时间。你现在还会使用netbeans去开发Java吗?
在这次618大促的开发过程中,有几个工具极大的提高了我的工作效率。滴答清单的子任务、语雀的小记、mindnode的脑图等。开发工具就更多了,首当其冲的肯定是idea,排查问题的Arthas,以及一众集团内部的工具与平台。
熟练的基本技能 正所谓技多不压身,多一项技能,在关键时刻往往会救你一命。
不熟悉git命令,怎么快速解决冲突?不熟悉jstack命令,如何快速定位问题?arthas命令不会用,怎么抓包排查问题?
为什么会出现OOM?为什么机器的线程数飙升?为什么机器会被限流?频繁ygc和fgc会给整个系统带来什么后果?在准备面试背八股文的时候大家都烂熟于心,但只有真的在现实场景下遇到才会意识到这些平时记得八股文是真的有用。
在掌握了一些技能与工具之后,如何沉淀出排查问题的方法论就是一个值得深究的命题了。哪些问题可以用什么工具排查,可以用什么方案解决,这些就要靠平时的积累了。记得多请教周围的师兄。
时间的合理分配 这就要说到另一个需要好好探索的命题了。如果单位时间内能做的事情已经到上限了,如何让一段时间里做到更多的事情?也即如何实现全局的最优解?
对于这种情况,我们可以将一些计算机科学的理论落实到实际生活中。
我们通常不喜欢被打断做事的节奏,此时如果把人比作一个计算机,那就是一个单核的计算机,这时你要做的就是不要频繁的切换上下文。
同样的,如果你只能做到单线程,做什么改进才能提高效率?一个很好的参考就是NodeJS的异步I/O模型。
有了这个输入,不妨考虑一下怎么把消息队列的生产者/消费者模型运用到人际交往中。
自1945第一台计算机诞生以来,为了让计算机拥有更高的效率,每年有无数的人才前赴后继投入到计算机科学的发展中,在更快更强上,计算机是多少天才智慧的结晶,可谓是提高效率最好的参照物。
更加健壮 代码 虽然做科研的一直流传着“凡是能靠怼硬件拿到结果的,就别做程序优化”的言论,但到了工业界,还是需要考虑成本的。无论多复杂的系统,都是靠一行行代码实现的,因此如何让系统更加健壮、稳定,最原子化的代码健壮一定是必不可少的。为了让VSCode拥有最高的运行效率,其开发团队几乎没有使用什么开发框架。虽然在现实场景下,我们的业务代码可能并不需要这么高的效率,但是清晰的逻辑、边缘case的全覆盖仍是我们该考虑的问题。
将代码写得像诗一样优雅应该是每一个技术人追求的目标。
架构 代码写的优雅,执行的高效,下一步就应该就是如何让架构变得更加合理了。
虽然“没有什么是靠增加一个中间层解决不了的”,但增加了一个中间层,虽然减少了耦合,却也意外的引入了一个不稳定因素,尽可能减少无用的依赖,合理的选择中间件,减少系统潜在的风险,DDD似乎是一个比较好的选择。
但是「没有银弹」也告诉我们没有一种单纯的技术或管理上的进步,能够独立地承诺在10年内大幅度地提高软件的生产率、可靠性和简洁性。因此架构的抉择本质上是一种取舍的艺术。
监控/预警 不存在没有bug的系统,只有还没发现的bug。如何做好监控与预警,如何实现问题的溯源、现场复原、快速响应在大促中尤为重要。
如果涉及权益、资产,对账监控怎么做?面对灰产、盗刷,怎么快速报警?面对大促时的尖刺流量,技术如何快速响应?真的出现问题,是止血还是启动应急预案?这些都应该是在大促开始前就要考虑清楚的问题,只有这样才能临危不乱。
(当然最好就别出现危险情况,325警告⚠️)
前台体验 对于一个toC的业务,就算真的系统出问题了,也不应该让用户感知。
以抽奖这个场景为例,如果抽奖QPS过高,导致服务端限流了(或者其他的什么原因导致服务请求失败),是告诉用户「前方道路拥挤」合适还是「很遗憾,未中奖」合适?答案不言而喻。
这里说一些题外话,从2021年开始,仿佛刮来了一股用户体验的风,各个头部产品都开始卷体验了,虽然这对于消费者来说确实是一件好事,但也从侧面反映了一些问题。如果不是真的没有东西可以卷了,谁会没事做去卷用户体验?(不过看起来天猫还是没学到教训,这次的活动又是复杂的很……)
更加乐观 做大促,真的会让人抑郁。尤其是在如今这种大裁员的背景下,外面人心惶惶,内部歌舞升平,似乎互联网马上就要完蛋似的。可说到底,大家追求的不过是碎银几两,乐观面对总好过日日碎念。
之前有说过要开一个新的系列的,那个系列最新的一篇已经是快一周前了,可能会有人奇怪我干嘛去了,为啥一直没有更新(也有可能是我想的太多)。其实我这周的主要就做了两件事,做毕设和复联4。不过这毕设不是我的毕设,而是我接的其他人的毕设,这也是我写这篇文章的原因。我想从我个人的经历看看我们大学生究竟该不该接私活(临时加需求真是太痛苦了)?
这是一个纠结的话题 其实这个话题特别的纠结,为啥呢?原因有二,其一是因为现在还是大学生,学业仍然是第一要素,如果把心思过多的放在这些和学习无关的事情上,对之后的升学可能会有影响。其二就是因为穷,尤其是作为一个大学萌新,从高中的牢笼解脱,女生有那么好看的衣服想穿,男生有那么多游戏装备想买,但是每个月生活费就那么点,你说着不着急?
但是急能怎么办?急就有钱了?肯定不会啊,所以也就有了校园兼职这一说。就我个人而言,我从大一开始就接触了一些兼职,我去过物流中心搬过快递一晚上100、做过家教一小时30、送过外卖一单5块,卖过电话卡(记不得一单多少了,但是那一天赚了600,现在大三软工的学弟只要是移动卡的多半是我当初帮他们办的),当然还有些临时的,零零散散的做了好多,但是单论价钱的话都没有接一个私活来的多。
从实例出发 举个我自己的例子,我之前接过一个私活,是一家材料厂,为了应付上面检查,要有一个出入库的管理软件(app+后台),让我两天内做完,最后那老板给了我3000,其实这玩意大家也都知道,无非就是增删改查,而且目的也就是为了应付检查,所以不需要考虑太多,能跑就行。我当时也就加了一晚上班就做出来了。而且难度不大,会安卓+随便一种后台就足以应付了,你说这钱赚的是不是很舒服?
但现实真的这么美好吗?我再举个例子,我大三的时候,手头正缺钱(因为当时准备保研发期刊是需要money的),一个认识的人找到我问我能不能做毕业设计,我当时看了下他的开题报告觉得没什么问题就接了,顺便包论文,东西在他中期答辩前就弄完给他了,当时还觉得这两千块钱赚的真舒服。结果后来那个人找到了我,说他老师觉得他完成的工作太简单了,任务量不够,要加些内容(都是些乱七八糟的想法),否则不给我尾款(先给了500定金的),那个时候论文我已经写了一半了,碍着那钱我心想忍忍就算了,结果后来论文又说不合格,得改,那大半个月真的是前前后后几乎啥事没做全去忙他那个傻X玩意了。
从经济学入手 有了上面两个例子,你觉得我们大学生要不要接私活呢?在回答之前我先说一个经济学的知识,叫做比较优势理论,是我之前看薛兆丰的经济学看到的,他的核心是:自己跟自己比,总有效率比较高、成本比较低的生产项目,专注这种生产项目然后跟别人进行交换,整个社会的财富就能够增加,而个人的财富也能够增加。假设盖茨家有块草坪,他自己打理需要2小时,请隔壁王大爷打理需要3小时,那你觉得盖茨是会自己打理草坪还是请王大爷打理呢?那肯定是请人打理了(除非他自己想体验生活),因为这两小时他都不知道可以赚多少钱了。
该不该接私活? 这么看来,你翘课去做外包,接私活好像也没什么不对,毕竟上一节课就要花23块钱。但真的是这样吗?对我们大学生来说财富二字难道可以狭义的理解为money吗?当然不是,你的财富除了你能掌握的金钱,还有就是你的精力和时间(我这几天没怎么更新公众号也是因为最近接了一个毕设)。我的好朋友🐔哥前两天也写了一篇关于接外包的文章:《怎么接外包?该不该接外包?几次踩坑后的思考》,他提到了收入分为两种形式:主动收入和被动收入。主动收入可以理解为,我给老板打工,老板给我发工资,我追着钱跑。被动收入可以理解为我花一些时间后,钱就会追着我跑,因此也就被形象的称为"睡后收入"。最简单的,我写完了这篇文章,开了赞赏,就去睡觉了,你早晨起来看到觉得写得还不错,给我赞赏了2块钱,等我起床发现自己余额多了两块,这就是"睡后收入"了。
所以作为一个即将毕业的且踩了些坑的大四老狗,我对大学生要不要接私活这个问题的看法是NO,除非自己真的是非常缺钱并且时间相对充裕的情况,否则不如好好培养自己"睡后收入”的能力。
其他赚钱的方式? 如果你觉得你的编程能力足够优秀,而且也不想浪费这个优势,我建议你可以试试去参加各类学科竞赛,中国最不缺的就是各种比赛,如果你觉得你足够优秀那么水几个比赛,拿几个奖金自然也是不在话下了,再加上有的学校老师会报销一些研究经费以及竞赛奖励(这些钱估摸着得有大几千,虽然也不多,但是对于一个普通的大学生来说也是一笔不小的财富)。
如果你想到了好玩的点子,做成app,万一火了,其实大学的学费都能供给了,大学里面很多有钱的学生,他们很多都是自己在大学之前写app赚钱的,现在时下流行,代码经验同样可以为日后生活积累。
当然如果想赚钱其实还有更好的办法,那就是好好学习,然后收割各种奖学金,比如国家奖学金、励志奖学金、学校的人民奖学金、一些企业的奖学金。我周围就有一个同学,年年奖学金拿到手软(拿到的钱都是以w为单位),好生羡慕😂。
一点建议 虽然上面说了那么多 ,但是你仍然有可能会手痒想接外包(毕竟贫穷使人接活),那么作为一个负责任的博主,我就结合自己的经历提点建议吧。
不接熟人的私活 不接没有详细需求的活 不接屁事多的甲方的活 不接没有现成解决方案的活 不接要写论文的毕设 会后台的前提下去学着做app 最后 身为未来码农的你在上学的时候还不找女朋友?难不成等着工作之后国家分配吗?
之所以会起这个标题,源自于前段时间笔者的亲身经历,上个月我利用ZhipuAI结合开发了一个阅读PDF的AI小工具,还没开始正式使用,突然发现KimiChat已经支持20万字的超长文本输入,意味着你可以直接塞入一整套知识库进去。再回头看看自己写的那个工具,才越发觉得所做的一些努力不值一提。
这不禁引发我的思考,移动互联网时代,个人开发者以极低的成本(一台电脑,一部手机)开发出独立作品的场景,在如今的大模型的时代变得不再现实。那个年代,代码稀少,因此程序员的薪资才水涨船高。可生成式AI的出现,让代码生成的成本变得更低,代码在这个时代变得越来越不值钱。
你问我焦虑不焦虑,那肯定是焦虑的,真的很焦虑。尤其在对比了国内外的现况后,变得愈发焦虑了。似乎海外一直在高歌猛进,Google、Meta、OpenAI等大公司军备竞赛,NVIDIA股票节节攀升,各种开源工具应接不暇。反观这里,仍然一直发布着各项评测结果遥遥领先,但实际效果一般的大模型,颇有一种被世界甩在身后的感觉。
笔者常年在互联网上划水,算是比较先接触AIGC和大模型的,期间也陆陆续续写过一些文章。从一年多的使用来看,大模型真的很强,强到帮我写代码,根据大纲编辑文字,给我提供各种思路和解决方案。但同时大模型也很弱,弱到我问他鲁迅和周树人是什么关系都会瞎说。这种矛盾带来的割裂感让我陷入了深思。技术,尤其是像生成式AI这样突破性的技术,始终带有双刃剑的特质。其一面能够无限放大人类的创造力,简化日常工作,提升效率;另一面则是误导信息、扩张偏见,让你无法分辨究竟什么是真,什么是假。因为大模型对于输出错误答案和输出正确答案同等自信,以至于在某种程度上反而增加了人类获取真实信息的成本。
大模型时代的开源 借着这个话题,探讨一下如今这个时代大模型开源是否还有意义。
首先,开源作为一种协作模式,是鼓励开发者共享知识和资源,这样可以加速技术的迭代和创新,同时也降低了参与门槛,使得更多的企业和个人能够参与到AI大模型的研发和应用中来,颇有一种众人拾柴火焰高的意思在里面。但是现在,我们发现各种性能卓越的大模型都是闭源产品,无论是GPT4,还是Gemma,都是大公司的产品。OpenAI在成立之初,是希望让AI服务于每个人,但是现在越来越多的人调侃他们变成了CloseAI。
闭源可以保护商业模式,聚集人才和算力资源,反观开源社区的很多成员都是个人开发者,没有足够的算力支持,所以观察GitHub可以发现一个规律,大公司不断发布自己最新最强的大模型,个人开发者不断的发布自己的各种调用大模型API的应用和工具。
也许未来开源社区会成为反哺这些大模型公司生态重要的一环。
大模型之于我们 这几天腾讯新闻有两篇文章值得看一看。分别是《朱啸虎讲了一个中国现实主义AIGC故事》和《月之暗面杨植麟复盘大模型创业这一年:向延绵而未知的雪山前进》
这两篇文章介绍了中国科技界对大模型的态度分裂成两股阵营,一方认为应该追求更大更强的AI能力,另一方认为应该将足够的AI能力投入可以快速变现的商业场景中。
其实,杨植麟和朱啸虎并不是对立的。在中国也可以做大模型,但是要基于两个真相。第一,阿里这类云计算厂家会砸钱,反正大模型买我的算力,甚至投资款都用算力支付,云计算规模上去还可以打价格战,一石多鸟,空手套白狼。第二,大模型作为基础设施,中国肯定要自主可控,不管好不好,肯定要有。
这些机会,属于杨植麟这样的,和杨立昆一起发过paper的天之骄子。而普通人做AI,多听听朱啸虎说的,不要挑战高大上的科研,一定要做应用,一定要想办法快赚钱,养活自己。
套用《一代宗师》的台词 —— 今天我们不比武功,比想法。
那么未来AI的走向会是什么样的呢? 悲观的预测,这轮AI是元宇宙,泡沫破裂,英伟达成为思科。又或者这轮美国的AI,成了中国的5G,的确遥遥领先,但是烧了那么多钱,却找不到爆款应用。中性的预测,这轮AI是互联网。前期技术曲线陡峭,后期变得平缓,中国能慢慢赶上来。再次印证,美国擅长底层技术,中国擅长应用落地。最乐观的预测,这轮AI是AGI,scaling law带来的强人工智能,是黑客帝国,是人类被全面超越和奴役的开始。
但是不管怎么样,我们都不应该焦虑,饭是一口一口吃的,路也是一步一步走的,我们注定不是会引领世界的一批人,因此让自己站在巨人的肩膀上才是我们要做的。历史课本上说人类进化的重要标志是学会使用工具,现如今大模型是进入信息时代以来,人类最伟大的工具,你能够直接调用人类千年以来积累的知识与技能,这些足以让你变得十分强大。
今天登录公众号后台看了一下,上一篇文章已经是 2 个月前写的了。
其他平台也基本属于停更状态,这段时间一直在忙毕业设计和论文的事情,属实有些耽搁了,不过今天刚好把毕业论文提交了,毕业的倒计时也开始了。想着从下周开始,我就准备恢复更新了。今天就先水一篇,讲讲最近停更期间发生的一些事情吧。
毕业设计和论文 熟悉我的读者应该知道我现在还没毕业,今年 6 月份才能拿到我的硕士毕业证。总体上来看,我读研的这两年还是比较快乐的,科研的压力虽然有一些,但因为是推免的进实验室比较早所以也就提前适应了。研一的课程虽然比较多但是难度适中,再加上去年碰到了疫情,很多时间都是在家中度过,之后暑期去实习了几个月就回学校了,研二因为实验室已经来新人了相对就轻松了些,等之后找个时间写一篇文章专门聊聊这几年读研的生活。
其实读研期间我没有做出什么成果,主要还是因为自己的想法就是找工作,不想花那么多时间浪费在一些无关紧要的事情上,所以这个毕设可以算是我读研期间为数不多的成果之一了。大体框架如下:
和大多数软件系学生类似,我的毕设也是一个 XXX App,用的技术也是很常见的一些技术,Flutter、Spring Cloud、Docker、MQ 这些,但是涉及的领域是我比较喜欢也比较看好的智能家居领域。
我自己是一个智能家居的爱好者,也爱好捣鼓,所以在家里也购买了一些小米智能家居和苹果智能家居的设备,读研的时候恰好学长就给我安排了一些和智能家居有关的活,虽然活不是很多,难度也还好,但因为自己喜欢也就坚持着做了,所以毕设也就恰好选择了这个方向。做下来这段时间,总体感受还是很不错的,如果有学弟学妹读研之后不知道选什么方向的,这个领域可以涉及下,还是挺好玩的。
多平台短视频发布工具 MediaPub 其实这两个月里,除了在忙活毕业设计和毕业论文,我还在捣鼓另一个东西,也就是一个多平台短视频发布工具 MeidaPub,做这个工具的初衷就是实现一个可以一键将短视频发布到多个平台的工具,提高一些视频制作者的发布效率,其实已经开始内测了,之前也贴出了官网地址和使用说明,目前看来用户不是很多,可能是跟宣传有关吧,不过好在还是收集到了一些测试反馈,之后我也将会持续更新这个软件。
其实最近也在忙活着给他来一个大版本的更新,未来可能也会把图文多平台发布也加进去,有兴趣的小伙伴也可以联系我一起搞点事情。
最后 简单聊了聊最近停更期间做的一些事,接下来要忙活的应该就是准备毕业答辩和旅行了,公众号文章我也会持续更新下去,还有就是之前一直说的要写的 Spring Boot 入门教程,虽然中途写到了第二章就停更了,不过近期也会慢慢拾起的,最后希望接下来这段时间可以顺利的从科研狗 🐶 过渡到打工人 👨🔧。
Web 发展三部曲 青铜时代 在互联网诞生之初,网页还只是一个承载静态信息的载具,只能显示一些纯静态的文本和图片。这种静态页面不能读取后台数据库中的数据,是一个完全封闭的生态,我们姑且称这是 Web 发展的“青铜时代”。
白银时代 而为了使 Web 更加充满活力,开发者们一次又一次的对动态网页这一高地发起进攻,主要目标是允许网络开发人员快速编写动态页面。这一个阶段,以 PHP、JSP、ASP.NET 为代表的动态页面技术相继诞生。在这些动态页面技术面前,网页不再是静止的,可以根据不同的人,不同的地域,不同的时间段呈现出不同的数据结果,从这时开始,Web 发展进入了其“白银时代”。
黄金时代??? 随后,各种各样的网站如雨后春笋般出现,网站的复杂程度也呈爆炸式增长,程序员既绘制页面又控制业务逻辑的难度也越来越大,这时,前后端分离的概念被提出来了。核心理念是**「让专业的人做专业的事」**。于是,程序员的职业发展来到了一个分叉点,是选择专门绘制页面的程序员还是专门控制业务逻辑的程序员成为了一个争论点,直至今日。 在这个阶段,前端是完全不需要参与后台的数据处理,他只需要利用约定好的接口拿到合适的数据,然后渲染页面即可。而且这么做的一个好处是,开发进度不会堵塞,后端开发不需要等待前端完成之后才能继续,只要 Mock 完整数据之后前后端联调即可。
前后端分离的挑战 那这个阶段,是 Web 发展的“黄金时代”吗?
私以为不是。
前后端分离是一个非常好的思想,让专业的人做专业的事情这一美好愿景,在实际的过程中却受到了很多挑战。 举个例子,前端的接口通常是按照逻辑来展现数据的,有时候为了提高效率,后端会根据前端需要的数据结构做数据封装。这就意味着后端还是做了 view 层的工作,违背了前后端分离的初衷。
Web 系统架构的中间层 为了解决上述问题,有人提议干脆把 Controller 和 View 的工作都转移到前端,后端只负责处理 Model 的数据与底层逻辑。于是 Node 中间层这个解决方案就被提出来了,这种方案好不好我们暂且按下不表,先来说说这一个中间层的职能是什么以及架构是什么样的。
中间层架构 其实中间层要做的事很简单。
原来客户端直接向 Server 发送请求,Server 层收到请求后经过计算处理将结果返回给浏览器。如今浏览器将请求发送给 node 层,node 层经过一轮处理后再向 Server 层发起请求。Server 层处理完毕将响应结果返回给 node 层,node 层最后将数据返回给浏览器。因为 node 层的出现,Server 层可以只用关注业务本身,而不必理会前端对字段的特殊要求。
而且,由于增加了 NodeJS 层,每种前端的界面展示逻辑由 NodeJS 层自己维护。产品经理在中途如果想要改动界面,可以由前端自己维护,无需后端操心。前后端各司其职,后端专注于自己的业务逻辑开发,前端专注于产品效果开发。这样就实现了更彻底的前后端分离。
乍一看是不是觉得这个方案很完美呢?但事实真的是这样吗?
太阳底下无新事 细心留意文章里的图,就会发现整个系统越来越复杂,系统复杂会带来很多问题,比如人员沟通成本增加,系统整体性能下降,安全隐患增加等等。这些都是老生常谈的,只要是增加系统的层级就一定会出现这些问题,还有什么其他的问题吗?
我们先思考一个事情,这些东西是不是非 Node 不能做?...
官网:www.ytools.xyz
我个人对软件开发是有一定偏爱的,我的梦想就是能做出一款让所有人都用上的软件,「开挂Lite」就是这个大梦想的一次简单尝试。
保研结束后,时间相对充裕起来了,再加上毕业设计是要做一个风格迁移的小工具,所以干脆就想把这个工具的功能拓宽一点,于是便有了「开挂Lite」。
其实这个小程序的功能非常简单,就是提供一些日常生活中可能会使用到的工具,例如车辆识别、食物卡路里识别、QQ音乐下载等功能。
功能介绍什么的我就不多说了,直接看上面的图片吧。
名字和logo的由来 其实这个小程序刚做出来的时候想名字我也想了好久,但是总感觉哪里怪怪的,毕竟ios端有「捷径」,android端有「一个木函」,我这个小程序怎么也该有个能记住的名字啊,后来在和同学打游戏的时候遇到了几个开挂的,当时便想到既然游戏能靠程序开挂,生活为什么不能靠着程序开挂呢?
相比名字,logo的由来就很简单了,灵感来自雷神1中索尔重新举起雷神之锤的场景,因为锤子代表的是工具,锤哥又是我最喜欢的超级英雄之一,所以干脆就借鉴了这个画面。这里说句题外话,logo的制作网站是https://www.designevo.com/,
下面简单说说这个小程序的架构吧 平台:微信 能力来源:百度AI,自己训练的模型 前端:html+css+js(官网)、微信小程序 后台:Flask,Nginx,Gunicorn,MySQL… 因为不是第一次做小程序了,遇到的坑还是比较少的,代码我就不公开了,有兴趣的可以加我微信和我交流,觉得好玩的可以点下小程序里面的广告,就当是给我支持了哈。
再谈点其他的 caoz在《你凭什么做好互联网》一书中提到了创业的四种冷启动方式:单点启动,单边启动,双边启动,多边启动,其难度和成本依次递增,而一旦启动成功,其竞争门槛则从低到高。
单点启动,简单说就是,一个人,一个客户,也能用起来。这种项目的特征非常明显,个体用户使用你的产品和服务时不会受到其他人、其他服务商的影响。因此对于一个穷学生/个人开发者,在没有资金注入、时间相对充裕的情况下,单点启动可以说是最好的选择了。因为这样的产品 ,启动推广可以慢慢来,不用担心说,我没有很多的用户,就会导致大量的流失,可以慢慢磨产品,针对每一个用户,客户的反馈去调整优化,直到产品打磨成熟,然后逐步推广做大。最常见的就是各种单机游戏、各种工具类应用。
很明显,「开挂Lite」就属于单点启动。不过就像开头说的,我只是把它当作是一次简单的尝试,并没有想着他能走多远,只要它真的可以为我、为周围人的生活带来一点点便捷,「开挂Lite」在我心中就已经成功了。
为什么大晚上更新,因为突然想写点东西,所以 7 点 40 就走了。走的时候心里竟然有点负罪感,不知道是不是我的问题。
今天早晨刚到公司的时候,看了老季的那篇《不要把周末主动加班的人当成异类》,虽然我很赞同老季在文章中的观点,但说实话,大多数人是没办法做到在周末主动加班的,毕竟国情在此,有双休的互联网公司也没多少了。
最近这段时间有关加班的消息貌似又出来了,刚有鹅厂工程师因「每天在岗不足 8 小时」被辞退,后脚就出来个海淀某互联网公司鼓励员工尽量住在公司。
我知道这些公司是何居心,也知道员工们的无奈,可现实就是残酷的,996 喊出来才多久,007 就已经有多少了?今日割五城,明日割十城,然后得一夕安寝。起视四境,而秦兵又至矣。然则诸侯之地有限,暴秦之欲无厌,奉之弥繁,侵之愈急。故不战而强弱胜负已判矣。
2 个月前的今天,我满怀期待来到淘宝实习,毕竟这里是国内首屈一指的大厂,有高额的收入,有顶尖的技术人才,还有所谓互联网大厂的光环。我的主管很活泼(请原谅我用活泼这个词来形容我的主管),人很 nice,我的师兄也是一个非常努力、代码能力很强的人。在来这里之前,我一直以为我是喜欢写代码的,作为一个还没毕业的实习生,以前在学校看代码、打比赛、刷题,弄到凌晨 2、3 点都很有精神。可这两个月,让我越来越觉得对自己的兴趣爱好是不是有什么误解。每次回到家后,不仅不想看代码,甚至连电脑都不想打开。都说国内的安卓手机推送不行,可为什么我这大半夜还能收到钉钉的消息推送?
的确,阿里的技术积累很丰富,这两个月我也确实学到了很多很多东西,但这并不意味着我觉得工作到深夜是理所应当的。合同上写了工作 8 个小时,那么我就应该只要认认真真工作 8 个小时就好了。但是在目前国内这个氛围就不太对,似乎你 996 每天工作 12 个小时才是本分。要是 8 个小时准时下班,那么就是偷工减料。毕竟大家都加班,你走人岂不是成了“另类”?劣币驱逐良币就是这么来的吧。
回到开头,今天之所以回来早,是因为在实验室的群里看到了学长发的一条招聘信息,看完我就当场下班走人了:
我很纳闷,都这样明明白白的写出来了,真的不违反劳动法吗?我也不懂法律,不知道读者里有没有学法的普及一下知识点。🌚
当时春招找实习的时候之所以拒了字节跳动,很大程度就是因为字节是大小周,而双休已经是我的底线了。所以秋招大概率我也会扔掉他。我知道会有人说我过于矫情,你这每天 9 点就能下班,还有双休,抱怨个啥?我就纳闷了,8 小时工作日+双休不应该是我应得的吗?敢情我这 9 点下班还是资本家赏给我的?然而刚刚我才发现,可怕的并不是我 7 点 40 才下班回家,而是回家的时候心里有了负罪感。
当然,我写这篇也纯属是吐槽,毕竟这是行业现状,改变不了了,所以你问我支不支持,我当然说支持啊!已经到了这个程度,回头是不可能回头了,最佳的解决方案就只有加速了。90 后是独生子女的一代(虽然我不是),受父母的宠爱,心中有梦想和傲气。他们中很大一部分人,不懂“忍让”或者“权衡”,只是有那么一股骨气。这是一个非常好的趋势。现在我就想看看 007 普及以后社会主义市场经济体制下的人民富豪/前浪还能出啥新招?毕竟我们大家都有光明的未来!
今加一小时,明加二小时,然后得一夕薪水。起视公司,而加班又至矣。然则员工之时有限,老板之欲无厌,奉之弥繁,侵之愈急。故不战而强弱胜负已判矣。