第三百篇博客:写给自己的总结

Python 爬取唐诗宋词三百首 你可以使用 和 来爬取《唐诗三百首》和《宋词三百首》的数据。以下是一个基本的 Python 爬虫示例,它从 中华诗词网 或类似的网站获取数据并保存为 JSON 文件。 其中,这里的base_url替换成这个网站唐诗三百首全集_古诗文网右侧每一栏具体的url即可爬取对应栏目的数据运行之后控制台输出如下所示:爬取来的唐诗的数据: 爬取来的宋词数据: 阅读详情

微信公众号搜“非典型开发者”,添加关注,不再迷路
在这里插入图片描述

返航

在这里插入图片描述

这篇博客是这两年来写的第三百篇博客,所以不打算写和技术相关的东西,而是想用来回顾和总结一下这几年来的学习生活历程,回顾几个重要的时间节点。算是一篇写给自己看的总结吧。

今年是地狱开局难度,肺炎施虐中国和海外地区,目前已经有近10w人被感染(包括治愈的),比03年的Sars更加恐怖。其他的地区还有非洲蝗灾、澳大利亚山火、美国流感等。

原本打算2月9日返校,但是学校的开学时间被推迟至少一个月,可能到四月份才会开学,现在还不得而知。

这篇总结写了好几天,几乎是想到哪写到哪。不知道自己以后再看到这篇总结时是怎么样的心情和境遇呢,哈哈。

开篇的图片是我很喜欢的一张图片,是去年回家过年时,从湛江乘船到海口所拍,我很喜欢这种在大海上航行的感觉,毕竟从小看海贼王长大,不禁脑补一波自己成为“海贼王的男人”,哈哈哈。

这张图片意味着返航,是我从学校返航回我的家中,我也顺着这张图,将思绪返航到几年前。

我的中考和高考

在这里插入图片描述

我出生在海南的某个小县城中的某个小镇子,籍贯是广东揭阳,所以算是在海南土生土长的“客家人”。

从小学到初中,我的成绩都很差,沉迷于电脑游戏,在初二时的成绩也只能勉强考上我们县最差高中。

在初二升初三的那个暑假,父亲刚从外面工作回来,走进我的房间翻看我的暑假作业情况。

我的暑假作业中写满了游戏中的术语,突然,父亲把我的暑假作业都撕碎了。

“不想读书了,以后就和我做苦工吧,以后一辈子都活在这个小地方,像我一样”

看着父亲离去的背影,我突然意识到如果我不好好学习,我可能这辈子都不会走出我们县城这个范围,但是我想看见更大的世界。

所以从那时起,我放弃了玩了三年游戏,把账号送给了工会的一个朋友,专心的开启了复习之路。在初中的最后一年里我几乎把一切时间用来复习之前没有认真学习的课程,从班级倒数十名逆袭到了年级前十。

在中考中,我发挥地格外的好,考取了年级第三名,最后被三亚市某私立学校免学费录取。

这所私立中学在三亚市还算有些名气,当时我也顺利地进入了这所学校的火箭班中,接下来就开启了三年的高中生活。

高中三年里,由于火箭班采取的是末位淘汰制度,两个火箭班会在高一和高二两年中进行末位淘汰,最后只留下一个火箭班最为高三重点培养的班级,另一个班级则不做重点培养。

所以在这三年中我的学习也算是刻苦,成绩也比较理想。那时心中的理想高校是华南理工大学,高一与高二几乎都是班级前几,在高三的省考中最好的成绩是三亚市前二十名,我认为华工势在必得。

2017年参加高考,令我终身难忘,因为高考的试卷是我历次考试中做得最烂的一次。整场数学考试几乎都在发懵。

那一年,是近几年来全国高考难度最大的一年,全国各地的重本线都比去年低了三十分以上。

我考砸了,最后报志愿的时候,我听取了父母的建议,放弃了江浙和北方的一些211大学,报了南方某所普通一本,并且被机械自动化专业所录取。

就这样,我成为了家族第一个考上一本大学的孩子,也是当时我们初中的班上唯一一个。

初入大学的迷茫与思考

在这里插入图片描述
当时新生开学典礼上,我们一帮新生都怀揣着对未知的兴奋,听着校长、院主任、优秀师兄的发言,听得我们热血沸腾,感觉大学就是知识的海洋,可以任我们遨游。

听着一堆社团中的师兄师姐介绍各种社团、部门、活动时,我感觉到大学真实充满了精彩!就这样,跟风参加了几个社团的面试和考核,没有什么才艺的我,最大的作用就是被刷KPI和充人头。

在开学的前一个月,我还积极地报名成为了辅导员助理、班级的实践委员等,就这样忙碌了一两个月。

一两个月后,身边的同学开始出现了奇怪的现象,大家似乎都没那么热爱学习,开始了玩游戏、刷剧、吃吃喝喝的生活。

似乎除了高考时拥有奋斗的目标,在上大学后大家都成为了无所事事的人,大家好像都忘记了自己曾是某个地区的佼佼者,而接受了普通与平庸,忘记了曾经那个努力的自己。当然,我也是其中之一。

由于对自身的专业其实并不感兴趣,所以上课时觉得蛮无聊的,就这样,在大一的上半个学期中,我陷入了一种十分迷茫的状态,我不知道我未来要做什么,以及要成为什么样的人。

那时的一个深夜,在王者连跪十局后,我打开了朋友圈,在里面发布了一条心情:

“不是因为玩物而丧志,而是丧志才玩物”

当时每天的生活就是上上课,抄抄作业,没有目标,没有对自身的定位,找不到上大学的意义。

我甚至开始了看一些哲学的书籍,例如苏菲的世界、梦的解析、自卑与超越,不是为了充实自己,而是真的不知道自己应该做什么。

人生第一个Hello World!

在这里插入图片描述

由于对自己的专业并不感兴趣,并且以后也不希望从事机械行业的工作,我开始在知乎上搜索,我应该怎么办,我应该学些什么,做些什么。

我开始思考未来应该做些什么,我的定位是什么,我的职业规划是什么,我不想再混下去了。

我的微信签名改成了"想好明天要做什么了吗",一直到今天都没有换过。我想时刻提醒自己要为自己的未来负责,要想好明天要做什么。

“富学金融,穷学计算机”

考虑到自己家中并没什么背景,所以没有考虑学金融类的知识。所以我的想法就变成了学习计算机专业的知识,以后成为一名程序员。

首先考虑的是转专业,当时是考虑转去计算机学院的专业,可是发现每年可以转专业的名额都是极少的,一届一万人,可以成功转专业的不到200人,几乎每个人都必须是他当前专业的前几名。

因为我自身的成绩并不好,所以走不了转专业这一条路。

于是我萌生了自学编程的想法,我开始在网上搜索应该学哪一种技术,最后我选择的是Java这门语言。

2018年1月13日,大一上学期的期末,我正式地开始自学Java这门语言,在这之前我并没有任何的编程经验,也不了解什么是数据结构、算法或操作系统这些基础知识。我甚至不知道什么是“编译”。

当时也是头铁,装个JDK都装了半天,差点就此把我劝退。

终于,折腾了一个下午,我终于搭建好了JDK环境,我使用NotePad++对着书本敲上了第一个main函数,第一行输出语句,使用javac对程序进行编译,使用java运行程序,输出了我人生第一行HelloWorld!

我高兴得发了一条朋友圈,向我的朋友们展示我的“成果”,要是那天没能输出这一行HelloWorld,我现在可能已经没有在学习Java了。

这一行HelloWorld几乎改变了我的人生轨迹,从那天起,我找到了自己的目标,就是将来要成为一名Java开发工程师,开发软件,写程序,即使当时还并不知道Java的作用。

一开始的学习十分地痛苦,对于书中的几段代码,我可能都需要理解个半天。但是我并没有就此放弃或怀疑自己,而是告诉自己坚持下去。所以放弃了一开始就看书这种学习方式,转而向视频中学习。

大一一年,我靠某培训机构的培训班视频,从Java基础学到了数据库、Servlet、Web前端框架、JS、Spring、MyBatis等开发技能,从无到有一步步进行学习,后来在18年5月份的时候,我学习到了SSM框架,当时觉得自己应该有所输出才会把知识记得更牢固、理解得更透彻。

“深入理解一项技能最好的方式就是教授他人”

所以,2018年5月份,我正式在优快云上开始写博客进行输出或者是记录我的学习笔记,一直到现在几乎都没有中断过。

第一次尝试找实习

在这里插入图片描述
18年的9月,此时我刚上大二。看完了培训班的视频,开始自学SpringBoot,然后用SpringBoot和Gradle迭代了一下github上的博客系统,此时我自信满满,觉得自己可以尝试着去找一下实习了。

于是当时关注到了大学城这边的某大学有个初创企业想招技术合伙人,当时也是怀着试试的心态过去那边面试。

这所学校离我的学校只有两公里左右,我骑着我的小死飞,跟着导航大概花了二十分钟左右就到了,然后去到他们所谓的公司的一个办公室面试。

面试我的是一个三十多岁的大叔,大叔连我的简历都没有看一眼,上来就和我聊我会些什么,现在是大几了。

我说我大二了,他有点震惊,觉得我哪来的勇气来面试,然后和我聊了下为什么不做本专业,我又巴拉巴拉一大堆,说我对Java的理解,和对后台开发的认识。

聊了几个简单的问题,大叔开始问我觉得技术合伙人是一个什么样的定义。

我说应该是类似于实习生之类的叭(当时也只想找实习)。

大叔说不是的,他有个大项目,是一款小程序,他整合手中的资源,有八成的概率可以成功,他现在需要我作为技术合伙人,从0到1组建开发团队(或整个开发团队就我一个人,前后端,嗯)

我此时心中有些发蹙,是什么项目能有八成概率成功的,然后问了他大概是什么项目,他说现在还没确定。。还没确定。。还没确定。。!

好的,我知道我可能要被骗入传销组织了,至少这个大叔神志不是很清醒。所以随便尬聊了半个多钟,加了个微信我就回学校去了。

回到学校后回复他自己不是很想做技术合伙人,并且祝他项目成功。(刚才看了一下,目前还在找技术合伙人,已经过去一年多了)

这应该算是我的第一次用自己所学找实习。

加入工作室

在这里插入图片描述
18年11月,计算机学院的朋友转了一个推文给我,是创客空间的一个互联网团队正在招收大二的前后端开发,我看了一下,感觉我应该可以去试试。

在填报名表时,里边有个个人技能介绍,当时年少无知,对技术的理解很差,写下了我认为可能是我最近五年来都没办法达到的层次:

  • 精通Java编程,熟悉SpringBoot的使用
  • 精通MySQL数据库、Redis缓存数据库,并且使用过集群
  • 熟悉Dubbo搭建分布式应用
  • 熟悉Maven、Solr搜索引擎技术、RPC技术
  • 。。。。

现在看来当时还是太年轻了,都敢用“精通”和“熟悉”这样的字眼,native。

十二月份的某个周六,晚上九点,我开始了第一轮面试。

第一轮面试有二十多人参加吧,当时我等了很久,是倒数第二个被面试的。

进入会议室中我开始面了,首先是自我介绍,然后两位师兄对着我的简历和博客,问了我一堆问题。

问题都是这样开头的:听说你精通xxx、熟悉xxx,那么要是遇到了xxx问题,你该如何解决?

我脑子已经有点断片了,但还是支支吾吾地说出了自己的看法,最后的一个令我印象深刻的问题是

“如何用栈实现队列?”

我又是一堆思索,最后承认自己想不出来。当时对数据结构的理解很肤浅,觉得就是什么ArrayList、LinkedList、HashMap这种,用API不就好了吗?最后被打脸,连两个栈实现队列的思路都没想到。

可能是由于我的知识面比较广,对于一般的开发来说还是可以做到的,所以我也顺利地通过了一二轮面试,成为了当年的两个后端新人之一。

对技术的反思

在这里插入图片描述
加入工作室后,我们后端组组织了一场交流会,主要是用于交流一下后端学习路线上的问题。

了解到我的个人情况之后,师兄们纷纷表示我学的太多框架与业务上的知识,所以建议我多多学习数据结构和算法、计算机网络这样的基础知识。

我也开始从师兄的面试经历中了解到,其实对于应届生或者校招生来说,基础知识更为重要,没有基础知识,以后的发展也不会长远。

所以从那时起,我的学习重心开始有了偏向。

在大二的一年中,开始了对数据结构和算法的学习,我终于开始理解到数据结构和算法对开发者来说有多么的重要。

例如ArrayList的底层是数组,为什么数组不能够改变大小?因为它是线性表,线性表创建时需要申请一段连续的空间,如果需要改变数组的大小,那么只能够再开辟另一块连续的空间,然后进行复制。

为什么HashMap要使用数组与链表的结合?因为这是解决哈希冲突的方式之一,其他的方法还有一次线性探测法,二次线性探测法等。

我终于开始意识到

程序 = 数据结构 + 算法

再看完了师兄推荐的《算法第四版》之后,我又开始看一下计算机网络和操作系统的书籍,例如《计算机网络自顶向下》、《操作系统精髓》等书,遇到不明白的地方,就去找一下别人总结的博客或者是在b站上看视频。

就这样,我慢慢地“从尾到头”去学习基础知识,这是一个长久的过程。

第一次做外包项目

在这里插入图片描述
2019年1月,由于掌握的开发技能比较全面,在加入工作室的一个月后负责人就打算让我和大三的的师兄师姐一起做一个保利地产某部门的投票系统,不过由于人员有限,所以后端只有我一人,其余师兄师姐作为前端开发,

这是我第一次做外包项目,我在听了师兄说的一些开发流程后,我又开始在网上找资料,学习了Git的使用和阿里巴巴数据库建表规范,以及如何梳理业务流程并根据业务流程画ER关系图、如何使用PostMan做接口自测,Eolinker做前后端API对接等。

由于系统可能会有300人左右同时投票,所以第一次了解到真正的【并发】的概念,不过当时做的处理比较少,只是简单地把MySQL的并发量参数和Tomcat的并发量调大,然后用Redis缓存热点的数据。

终于,在代码写完后,大家进行了简单的测试,最后逻辑上是不存在Bug了,然后把它交付给保利那边。

2月份的那个夜晚,工作室的人都回家了,只有我还呆在学校。这一天就是保利他们使用这个系统的时候了,我盯着数据库的数据量变化和3306、6379端口,保证当MySQL或Redis服务挂掉的时候我能够尽快重启服务。

还好,那天晚上并没有出现服务宕机的情况,一切正常,我长呼了一口气。

这就是我第一次做真实项目的经历,我从中学到了很多。

脱单纪念日

在这里插入图片描述
19年7月18日,是我大学四年来最最有纪念意义的一天,因为在这天我与喜欢的女孩成为了情侣。

本身我上的就是纯工科院校,学院的男女比例是20:1,班上也只有一个女生的我本来是想大学就这么单身下去了,可是没想到一个我会在大二的时候脱单,哈哈。

她是我们团队中做产品经理的师妹,第一次见到她是在吃夜宵的时候,那天她也穿着一身蓝色的裙子,很漂亮。

第一次见面,一番攀谈之后才知道原来她也是客家人,并且是计算机类专业的,我开始心生好感。

在之后的一个月几乎没有见过面,只是在团队开会时见过几次,也仅此而已。再后来交集比较多的时候是她和几个师弟作为项目的测试,那时候还特意约师妹出来吃夜宵,聊工作哈哈。

在19年7月18日的凌晨一点钟,我们几个刚从工作室肝完项目一起去吃夜宵,然后快两点钟的时候散伙了。因为我和师妹都是东区的,所以她提议开电动车载我回去。

回到一半她提议要不要去转一转,然后我们就边转边聊天,因为我们两者都相互有好感,就这样聊着聊着确定了情侣关系,当时还在华工旁边的一个下坡上。所以,我们是在电动车上确定的情侣关系,想起来还真是挺有意思的哈哈。

准备春招

在这里插入图片描述
在19年9月份,我已经上大三了,我意识到自己应该开始准备春招。

之前LeetCode也陆陆续续地刷了一百题左右,但是许多都已经忘记了,所以我又开始刷题和总结。

之前看的Java多线程、MySQL、JVM也已经忘得差不多,所以我开始复习之前写的博客和笔记,发现许多遗漏和错误的地方,所以我又开始了重新的学习之旅。

那两个月份主要是重新看《Java多线程编程艺术》、《深入理解JVM》、《Redis深度历险》这三本书,同时也有在刷《剑指Offer》上的 题目,在这个过程中我突然发现原来有道云笔记是一个神器啊,用来记笔记真的太方便了,并且可以多端同步。

所以果断开了一年的会员,所以从那时起,有道云笔记成为了我最经常使用的工具,我在这里记录着自己的笔记抑或是自己的一些思考和学习心得、面试心得。

时间很快,两个月的时间一下就过去了,时间来到了11月。这时我已经复习完了常问的基础问题,并且也积累了一定的编程题数量,所以12月份我开始了投递我的第一份简历,并且不断地修改和完善它。

投出去的简历大多是日常实习的,大概投了二十多家吧,但是有回应的并不多,有回应的几乎也因为考试月不能实习而拒接给我面试,直到那天,一个叫做CVTE的公司给了我笔试的机会。

人生第一个Offer

在这里插入图片描述
19年的11月,CVTE开始招收21届的长期实习生,我抱着试一试的心态参与了这个实习项目。

由于是第一次参加笔试,我对CVTE的笔试网站并不熟悉,做完了20道选择题后就不能够再回头看自己选的答案。第一道编程题写了出来,但是在做第二道编程题的时候出现了一些问题,导致我的网页刷新后,直接提交了第二道题。

我以为我的第一次笔试就这样凉了,因为我觉得做得比较糟糕,第二个编程题直接没写完。但是过了一星期之后,我还是接收到了笔试通过的消息,于是进入了面试阶段。

面试在CVTE黄浦区总部举行,但是面试的后一天就是控制工程的考试了,我还没有进行复习,很纠结要不要去。

最后是女朋友鼓励我去,因为面试的机会很宝贵,黄浦区也比较近,大概一个多小时的地铁就到了,最多就是少了一个下午的复习时间。所以我选择参加面试。

面试那天,我提前半个钟头抵达了香雪站,在外面等待的同学几乎都是参加CVTE面试的。一辆大巴车把我们载到了CVTE总部,一开始HR先带着我们一堆人参观了CVTE的各种健身房、电影厅、办公场所等,然后介绍了一下实习福利,最后让我们在大厅中等待通知面试。

一面很顺利,主要是问了一下项目的支付流程和与第三方的对接问题,然后问MySQL索引相关的知识,最后是白纸手写归并排序。写完之后,面试官让我去外面等待,马上开始二面。

二面开始了,主要问的是Redis、多线程和JVM的相关知识,然后问了一下项目问题,最后是问我希望做什么业务(我有点吃惊,我还可以选的吗?)

最后是白纸写一个双指针的算法问题,大概写了十分钟然后和面试官讨论了一会儿,让我出去等待HR面。

HR来到的时候已经六点多了,所以HR提议先吃个饭,然后再开始综合面试。

在快要七点的时候进行了HR面,问了下我为什么不做本专业,为什么选择后端开发等等问题。有一个问题我记得很清楚,问的是“你身边有你很讨厌的人吗?”

我的回答是

我身边没有我很讨厌的人,因为我觉得每个人都有缺点,我自己也有缺点,所以要保持包容的态度去看待他人,学会与他人相处。

哈哈,我都不知道当时我的脑回路是怎么想到这句话的,说完这段话,我觉得HR看我的表情都变得温柔了。

HR面后的第七天,收到电话通知通过了三轮面试,在九月前可以选择来实习的时间。

这就是我获得人生第一个Offer的经历。

惨败字节与阿里

在这里插入图片描述
20年2月20号,这天我同时被邀请参加了字节服务端开发实习生二面和阿里妈妈Java实习生三面,那时也算是做好了准备,把之前做过的算法题再分类总结,梳理了一遍。我以为我应该能收获到其中一个Offer,没想到均以惨败告终。

字节之前已经面过一次,不过是一面就凉了,这次撑到了二面。

字节二面约在了下午5点,一开始的问题比较简单,最后要求做一道编程题,是一道数学规律类问题,和数字中1的个数类似,不过面试官修改了一下题目要求。

暴力法提出后被否决,希望我能够想出优化解法,也就是通过总结数学规律来解决问题。但是当时脑子一片空白,根本想不出这些数据间有什么规律,之前也很少做这种找规律的问题。20分钟后面试官说换一个问题吧,然后换了个背包问题的变种问题,当时脑子一片空白了,啥都没想出来,所以二面就这样凉了。

阿里妈妈三面在晚上八点开始,1个多钟头全程怼着项目问问题,问项目中的实现细节和难点,遇到的问题等。

由于这个项目已经过去了半年,所以有一些细节回答上出现了严重的错误,面试官抓住错误一步一步深入,我也一点一点地答蹦了,并且项目本身并不算出彩,技术难度低,亮点少。所以最后也凉了。

这是我目前与字节和阿里距离最近的一次面试,面试完了之后心情很难受,消沉了一段时间。

在这段时间里我想特别感谢的人有两个,一个是我的女朋友,没有她每天晚上和我视频谈心,我可能会一直消沉下去;第二个人是虎牙直播的张大仙,大概这之后的十多天我每晚都会边玩王者边看张大仙直播,几乎每天都守着张大仙下播我才睡觉,哈哈。

在这段时间里我的王者技术倒是精进了不少,因为我主玩上单,一个人单排上分还是比较难的。但是还是打到了星耀三段位,王者段位就不追求了,毕竟不是经常玩。

这段时间看大仙直播和从游戏中,我悟到了一些道理:

  1. 团队合作比单打独斗更重要,一个人永远打不赢三个人
  2. 无论现在有多强势,一个小失误就有可能被对手抓住,一波翻盘,所以一定要稳住
  3. 现在很弱就不要招惹敌人,好好发育,怂在塔下,等经济起来了,敌人也飘了的时候,抓住机会和队友一波翻盘
  4. 收益并不是线性的,前期注意积累经济,后期强势起来,经济会滚起雪球,越滚越大,所以要注意对自己投资
  5. 猥琐发育,别浪;稳住,我们能赢!

开始种下一棵树吧

在这里插入图片描述
非洲经济学家Dambisa Moyo在《Dead aid》一书的结尾留下了一段简洁却令人深思的话:

种一棵树最好的时间就是十年前,其次是现在。

从现在的角度来看,种一棵树最好的时间是十年前,因为十年前种下的树,现在已经长大。

但从未来的角度来看,种一棵树最好的时间就是现在,就是此刻。

“树”并不是树,而是理想或目标。只要是值得做的,无论之前是否错过,请抓紧时间,立刻开始。

美国有一条小诗,我觉得讲的很好,贴出来作为本篇总结的结束语吧:

纽约时间比加州时间早三个小时,

但加州时间并没有变慢。

有人22岁就毕业了,

但等了五年才找到好的工作。

有人25岁就当上CEO,却在50岁去世。

也有人直到50岁才当上CEO,然后活到90岁。

有人依然单身,同时也有人已婚。

奥巴马55岁就退休,

川普70岁才当上总统。

世上每个人本来就有自己的发展时区。

身边有些人看似走在你前面,

也有人看似走在你后面。

但其实每个人在自己的时区有自己的步程。

不要嫉妒或嘲笑他们。

他们都在自己的时区里,而你也是。

生命,就是等待正确的行动时机。

从现在开始,种下一棵树吧!

更新

  • 2020年11月
    整个9月到10月能投的大厂已经不多了,主要都是参加的正式批,拿到的offer有阿里、字节、华为、BIGO、小米这几个,目前从部门、工作内容、工作地点和薪资来考虑,最后应该还是会选择字节吧。。。快点把三方签好,后面去实习一段时间,然后好好做毕设才是王道,太累了,不想每天都这么紧张,自己也不是offer收割机,秋招上岸后,学点其他的东西,好好提升自己,或者放松放松吧。
  • 2020年9月
    现在是2020年9月,8月底才从阿里答辩完回到学校,开始匆匆忙忙地准备秋招,今年的秋招特别地早,我完美地错过了提前批。腾讯HR面挂、Shopee HR面挂、快手简历挂、N个公司笔试挂。。。后端今年真的太卷了,各路高学历算法大佬涌入。钉钉HC不够不给转正,我和同组的实习生都被推荐去了其他部门参加面试,整个9月基本上都在这种失败和打击下度过,有时候期望越大,失望越大,不如好好准备剩下的面试。
  • 2020年4月
    现在是2020年4月,前两个月在迷茫和坚持中度过,依然每天刷题、学习和看面经,也是在这个月拿到了阿里巴巴-钉钉事业部和腾讯-CSIG-腾讯云的后端实习Offer。
    总结起来吧,找工作/实习是一个长期的过程,要做好不断学习的准备,不要被一时的失败或者挫折击倒,挺过去好好复习,offer肯定是有的,只是满不满意而已。暑期应该还是会选择去阿里实习吧,毕竟在JAVA领域阿里的技术很厉害,钉钉也是疫情期间绩效最好的部门(听说那边转正率很高哈哈哈),想去那提升自己的视野,为后续的秋招当简历敲门砖。
Isaac Sim 使用经验(配置要求,云服务器) Google Colab及AutoDL都是在docker内运行,其中google colab并不支持docker指令,而依照AutoDL的相关文档,AutoDL并不直接提供docker指令。2. Google Colab/AutoDL 不支持图形化界面,图形渲染等任务,所以没有办法使用Omniverse Streaming进行直播,从而更好的对结果进行展示。对于第一点,或许存在直接手动复现镜像的可能,但是考虑到Isaac Sim/Isaac Lab由于比较新,可能不够稳定,因此还是按照官方文档进行部署。 阅读详情

相关推荐

IIS - 会话cookie中缺少HttpOnly属性

不啰嗦,我们直接开始! 先进行常规设置 打开配置编辑器 选中图中节点,将httpOnlyCookies设置为true 然后。。。不起作用。。。 换种方式 通过配置出站规则getcookie添加HttpOnly 在Web.config中添加如下出站规则 <rewrite> <outboundRules> <rule name="Add HttpOnly"> <match serverVa.

。 21万+

个人博客全部文章汇总

个人博客全部文章目录汇总

飓风_数字IC验证的博客 349

Ubuntu服务器通过IPV6端口转发搭建幻兽帕鲁私服实战

本文详细介绍了在Ubuntu服务器上通过IPV6端口转发搭建幻兽帕鲁私服的完整教程。针对只有公网IPV6地址的服务器环境,提供了从硬件检查、端口转发工具配置到游戏服务器安装的全流程解决方案,帮助玩家轻松实现多人联机游戏体验。

weixin_30652491的博客 490

人生第一篇博客(自我感受)

Hello,我是来自“电气工程及其自动化专业”的一名大一学生,对于编程的第一次感受是在抖音和b站的一些视频,他们通过一串串代码创造出图案,游戏,小程序等等时,我不经感叹编程的伟大和高深。开心的能过学习新的知识,害怕的是编程这么难,自己是否能够坚持。学习肯定要有目标,我学习编程的目标是想要用编程去做自己喜欢的事如开发游戏,游戏测试和赚钱等等。对于编程的学习规划:参加一些关于编程的在线平台和加入一些编程社区和论坛学习,与其他人共同学习。我的第一篇博客正式完成,也希望这篇博客能够时刻提醒自己和激励我。

2301_81526792的博客 597

某盾blackBox逆向——纯算

某盾blackBox逆向——纯算

Lzyydsb的博客 5897

Windows 10 本地开发环境:用 ShardingSphere-Proxy 5.4.1 快速搭建 MySQL 分库分表测试环境

本文详细介绍了在Windows 10系统中使用ShardingSphere-Proxy 5.4.1快速搭建MySQL分库分表测试环境的完整教程。从环境准备、MySQL配置到ShardingSphere-Proxy的核心设置,逐步指导开发者完成本地开发环境的搭建,并提供了分片策略详解和常见问题排查方法,帮助开发者高效验证分库分表功能。

weixin_28366053的博客 215

第一篇博客文章

然后讲一下我的经历吧,小学初中成绩比较好,当然也顺利进入了我们市里最好的高中,在分班考试后也进入了一个很好的班级,本想在这个班级能“出人头地”,但现实狠狠地打击了我,最终的结果就导致我高考失利,进入了一所工科双非本科院校(我好多同学都是985,211,双一流),一比较,落差感瞬间涌现。首先,做个自我介绍,我是来自四川的双非本科生,对C语言比较热爱(也许是因为学好编程语言能更好找到工作吧)。除此之外,热爱书法。最后,我想对自己说,即使前方困难重重,只要眼里有光,必然会得回报!

2403_88274959的博客 310

Python爬虫实战:抓取CVE安全漏洞数据库

在网络安全领域,CVE(Common Vulnerabilities and Exposures)是一个非常重要的安全漏洞字典,它为每个安全漏洞提供了唯一的标识符。安全研究人员、开发人员和系统管理员都需要及时了解最新的CVE信息,以便采取相应的防护措施。本文将详细介绍如何使用Python爬虫技术从专业CVE网站抓取漏洞数据,并构建一个完整的CVE信息采集系统。本文详细介绍了如何使用Python爬虫技术从专业CVE网站抓取安全漏洞数据。多种爬虫技术反爬虫策略:User-Agent轮换、代理IP、请求延迟。

2201_76125261的博客 369

关于一个初学者的第一篇博客——自我介绍篇

大家好,我是一位来自双非普通本科的大一在校生。所学的专业是数据科学与大数据技术,高考的失利让我与心仪的大学失之交臂,想过去复读,但是高三被学习压的喘不过气的学习环境让我彻底打消了复读的念头,最终选择了直接就读大学。进入大学后,我接触了计算机,接触了编程,我体会到编程中的学习乐趣,不再那么枯燥。

shixiong_的博客 546

C# 上位机程序中的数据采集与存储技术:从采集到持久化的完整解决方案

本文系统讲解C#上位机程序如何实现设备数据采集与持久化。主要内容包括:1)多种数据采集方式(串口通信、Modbus、OPC等)及代码示例;2)详细对比不同存储技术(CSV、SQLite、关系型数据库等)的优缺点;3)提供SQLite等存储实现代码;4)推荐分层系统架构(采集-缓存-存储-可视化);5)性能优化建议(多线程采集、异步存储、批量写入等)。文章强调应根据项目需求选择合适的技术方案,构建高效稳定的数据采集存储闭环系统。

这里只有干货:从 Modbus 通信到 MES 对接,从 YOLO 训练到工控机部署,带你搞定工业软件开发全流程。 1026

【x264编码器】章节1——x264编码流程及基于x264的编码器demo

提供了一种方便的方式来根据指定的配置profile应用相应的设置到 x264 参数结构体上。不同的配置文件类型会对参数结构体进行不同的修改,以满足特定的编码需求。然后是编码器参数,包括帧参考数、最大关键帧间隔、最小关键帧间隔、B 帧数、场景切换阈值等。结构体的成员进行赋值,将其初始化为默认值。之后是一些编码器设置,如去块滤波、CABAC 编码、码率控制方法、参考帧压缩系数等。接下来是一系列与视频属性相关的参数,如色度格式、宽度、高度、宽高比等。然后是一些与日志输出、分析类型、量化矩阵等相关的参数。

vcvdv123的博客 5746

什么是博客

博客,从英文 Blogger 音译,可以理解为网络日记,可以在网上发布个人文章或想法、随笔等,通常还可以发布图片等。

PeterJXL的博客 4万+

出现 RuntimeError: adaptive_avg_pool2d_backward_cuda does not have a deterministic implementation的解决方法

大致就是在执行主函数的训练函数中,在反向传播这一块出现了问题。解决方法就是添加如下代码块。找到提示bug的行数。

码农研究僧的博客 5534

Python三百行代码实现一简约个人博客网站(全网最小巧)

这是全网最小的博客,没有比这更小的。虽然小巧,但功能一点儿也不弱,支持文章的分页展示,文章表格,图片和代码语法高亮。文章无限制分类,访问量统计,按时间和按点击量排序,展示最新文章,最热文章,文章留言评论等功能。

猫哥 的沉淀、积累、总结。天天学习,好好向上...c/c++,嵌入式 linux,Android,HarmonyOS,AIOT) 4832

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

今年的博客数量上三百了

今年的博客数量上三百了

tanjunming2020的博客 171

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

唐诗三百首数据集介绍

唐诗三百首数据集介绍 【下载地址】唐诗三百首数据集介绍 唐诗三百首数据集汇集了我国古典文学的瑰宝,包含李白、杜甫、王维等唐代著名诗人的300首经典作品。这些诗歌在形式、内容和风格上极具代表性,为文本生成、古诗创作等应用提供了丰富的素材。数据集适用于学习、研究和非商业性应用,尊重原作者的版权,确保数据的完整性和准确性。定期...

gitblog_06798的博客 696

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

国学 - 三百千

国学 - 三字经 百家姓 千字文

qq_43350524的博客 1131

哲理故事三百篇[转]

1、一只火鸡和一头牛闲聊,火鸡说:我希望能飞到树顶,可我没有勇气。牛说:为什么不吃一点我的牛粪呢,他们很有营养。火鸡吃了一点牛粪,发现它确实给了它足够的力量飞到第一根树枝,第二天,火鸡又吃了更多的牛粪,飞到第二根树枝,两个星期后,火鸡骄傲的飞到了树顶,但不久,一个农夫看到了它,迅速的把它从树上射了下来。  生存之道1:牛屎运让你达到顶峰,但不能让你留在那里。   2、乌鸦站在树上,整天无所事事

foreveryday007's BLOG 6万+

宋词三百首爬虫程序代码

【代码】宋词三百首爬虫程序代码。

qq_32257509的博客 937

三百六十五里路

三百六十五里路睡意朦胧的星辰阻挡不了我行程多年漂泊日夜餐风露宿为了理想我宁愿忍受寂寞饮尽那份孤独抖落当地的尘土踏上摇远的路程满怀赤诚追求我的梦想三百六十五日年年的渡过过一日行一程三百六十五里路哟越过春夏秋冬三百六十五里路哟岂能让它虚渡我那万丈的雄心从来没有消失过即使时光消失依然执著自从离乡背境已过了多少三百六十五日三百六十五里路哟从故乡到异乡三百六十五里路哟从少年到白头有多少三百六十五里路哟越过春

向远处看的专栏 1029

JAVA三百篇

1、局部变量需要初始化才可以使用,它从属于方法或语句块。2、(常量)成员变量不初始化会默认赋予默认值,它从属于对象。3、静态变量不初始化会默认赋予默认值,它从属于类,并且被所有类共享。4、字节高到低需要强制转换,右高左低。5、字节低到高,在不超过低的,会自动转换,右低左高。6、this和surper():①this指当前对象。this()方法只能放在构造方法的第一行,来调用另一个构造方法。super()方法只能放在子类构造方法的第一行,来调用父类的构造方法。

weixin_59501920的博客 125

Scrapy 爬虫架构抓取唐诗三百首资源

Scrapy 爬虫架构抓取唐诗三百首资源 去发现同类优质开源项目:https://gitcode.com/ 此资源包含通过Scrapy爬虫架构从中国古诗网站抓取的唐诗三百首。Scrapy是一个强大的Python爬虫框架,用于抓取网页内容,它提供了很多内置的功能,以高效且结构化的方式从网站上提取信息。 资源简介 本资源是通过Scrapy框架,对中国古诗网上的唐诗三百首进行爬取所得到的原始数据文件。文...

gitblog_06726的博客 460

TowardsDataScience 博客中文翻译 2022(三百零二)

建立人脸掩蔽模型的第一步是选择人脸检测模型。面部检测模型必须能够以合理的推理速度和接近 100%的准确度在图像或视频帧中挑选出多个面部,以便易于部署。给定由人脸检测模型提取的坐标,将每个人脸提取为感兴趣区域(ROI)框。高斯模糊整个面部 ROI。在某种程度上,我们可以满足于简单的面膜。但是模糊外盒对于媒体呈现来说在美学上可能是不有用的。创建一个遮罩:创建一个与 ROI 尺寸相似的黑色方框,并在方框边缘画一个白色椭圆。

龙哥盟 1035

哲理故事三百篇(四)

31、一次,去拜会一位事业上颇有成就的朋友,闲聊中谈起了命运。我问:这个世界到底有没有命运?他说:当然有啊。我再问:命运究竟是怎么回事?既然命中注定,那奋斗又有什么用?  他没有直接回答我的问题,但笑着抓起我的左手,说不妨先看看我的手相,帮我算算命。给我讲了一能生命线、爱情线、事业线等诸如此类的话之后,突然,他对我说:把手伸好,照我的样子做一个动作。他的动作就是:举起左手,慢慢地且越来越紧地握起拳

VISUAL_LI的专栏 2420

大明王朝三百年兴衰史

摘要: 明朝(1368–1644)历经近三百年,分为三个阶段: 初期(1368–1435):朱元璋建朝,朱棣迁都北京,开创永乐盛世,郑和下西洋,仁宣之治达鼎盛。 中期(1436–1572):土木之变后由盛转衰,宦官专权,弘治中兴短暂回暖,嘉靖朝倭患与严嵩乱政。 后期(1573–1644):张居正改革昙花一现,万历怠政加剧党争,内忧(李自成起义)外患(后金崛起)交织,1644年崇祯自缢,明朝覆灭。 明朝从强盛到衰亡,体现为制度僵化、统治失衡与内外危机共振。

学习代码 1846

用dict读取和写入表格_项目实战 01:将唐诗三百首写入 Elasticsearch 会发生什么?...

1、实战项目将唐诗三百首写入Elasticsearch会发生什么?2、项目说明此项目是根据实战项目浓缩的一个小项目,几乎涵盖之前讲解的所有知识点。通过这个项目的实战,能让你串联起之前的知识点应用于实战,并建立起需求分析、整体设计、数据建模、ingest管道使用、检索/聚合选型、kibana可视化分析等的全局认知。3、 需求数据来源:https://github.com/xuchunyang/300...

weixin_39546661的博客 156
上一篇: 【吐血整理】LeetCode与剑指Offer百道经典题解总结
下一篇: 图论基础入门
BoringRong
BoringRong 领域专家: 后端开发技术领域 领域专家: 后端开发技术领域
博客等级 码龄9年 2万+粉丝 386原创
评论 15
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

BoringRong

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值