我的大学四年

终于还是到了毕业的日子,按照惯例每到一个人生的关键点时总要写点东西记录一下,如今本科四年已经过去,也是时候好好回顾下,只是这次我不想单单只从自己的角度去回顾我的大学四年,为此我给许多大学好友私发了一条信息: 别人眼中我的大学四年 收到的回答也是各不相同,有长有短,这里选几个: 可能会有人觉得奇怪为什么要从别人的角度看自己这四年?怎么说呢,不知道你们周围有没有那种明明觉得自己很努力,但是却一直没什么成果的人。我同样担心自己也是这样的。毕竟只有站在不同角度,才有可能看到问题的真相。 我眼中我的大学四年 那我自己认为的大学四年是什么样的呢?如果要给我的大学打个分,我打8分(满分10分)。 回顾我的大学四年,自认为是比较充实的,结交了一众好友、学到了很多技能、去过很多城市,也有明确的目标。到现在,父母身体健康,学业也算有成,自然在别人眼中我可能是过了一个让人羡慕的大学生活。 可是成功的花儿,人们只惊羡她现时的美丽。这几年因为无人指点,自己摸索,在很多事情上都踩过坑,浪费了很多时间,错过了很多机会,自然也留下了很多遗憾。 人生中什么最珍贵,失去的东西和得不到的东西。那些我们走过的每一段路,经历的每一件事,现在都已经成为过去了,它不会给我们机会重新来过,我们能做的就是把它好好珍藏,作为美好的回忆。 从前有人对我说,将来你一定要上大学,而且要好好珍惜大学4年的生活,大学的生活不同于中学,你可以更自由,远离父母,去支配自己的生活、学习。那时候的我真的充满了对大学的向往,可是高考的失利击碎了这一切。 我以过一本线60多分的成绩来到了一所双非大学,内心自然是不甘的,可我也明白"既来之则安之"的道理,在一个差一点的学校,最关键的一点就是让环境对你的影响降到最低。 为此我把**“被窝是青春的坟”**当作大学期间的信条。这里借用🐔哥的一句话:大学男生宿舍,有时候就是屌丝的培养皿。对于这句话,我感触颇深,因为我的宿舍就是一个这样的培养皿。所幸,终于可以后会无期了。 那有什么遗憾的事情吗?恐怕就是最后离开学校的时候还是单身吧!不过感情这种事也不是可以强求的,有句话说的好,所遇非良人,故独善其身。 当然,我这四年最不后悔的一件事情就是选择了软件工程这个专业。如果你身处一个三流大学,而又偏偏选择了计算机/软件,那真应该祝你选择了一个好的专业。因为在这个专业,只要自己够努力,学校之间的差距是可以被弥补的。 之前有人问过我为什么喜欢编程,我说因为我是一个喜欢创造的人,编程让我体会到了创造的乐趣,我可以用手中的键盘,把我脑海中构建的世界通过代码展示出来,哪怕在别人眼中这是一个脆弱的、混乱不堪的世界,但他出自我手,旁人便不可亵渎(护犊子)。 说了这么多,总算到了最后。今天,毕业典礼已经结束,我的本科时光也终于落下帷幕。虽然不愿承认,但有些**成长(分别)**是避免不了的。大学这四年,或许是人生中仅有的最自由的年华。总的来说,我不后悔,因为我奋斗过,拼搏过,我相信只要肯努力,世界必定会给予回报。 假如你还在校园中,就去做你一直想做的事吧,去成为你想要成为的样子。

手淘实习百日记

知乎上有一个问题: 说实话,虽然我的编程能力没有突飞猛进过,不过一些重要的转折点还是有的。第一次对编程起了兴趣还是在大学的软件协会里看到学长演示了一个 flappy bird,其实就是一个很简单的 Swing 小程序,可正是这个小程序帮我打开了编程的大门。 第二个转折点是大二的暑假,从那年开始,我陆陆续续参加了一些软件设计比赛,第一款作品是一个智能家居 APP,功能很简单,就是用语音控制空调、风扇等家电,硬件部分由我的队友实现,我负责软件,包括后端服务和 app。现在回过头看那一套东西做的是真的粗糙,不过那一年 AIoT 的概念还没被人提出,智能家居也远不如现在这么普及,所以对他的印象还是比较深刻的。 而第三次的转折点就是这次实习了,阿里巴巴是我实习的第一家企业,在淘系的这三个月里,我认识了很多前辈,也结交了很多非常优秀的同龄人,感慨良多。如今,我就快要回学校去度过我人生中最后一段校园时光了,想着在这里记录下来,作为对自己这几个月的一个小总结,也希望能对你有所帮助。 缘起 魔幻的 2020,让很多本就不顺的人生际遇变得更加奇妙,这场新冠疫情让我度过了人生中最长的一段寒假(现在还没开学)。其实我挺感谢年初政府号召的"居家令",如果没有这段无聊到让我只能去学习的时光,我可能也进不了淘宝去实习。那段时间,整理复习各种基础知识,在 leetcode 上疯狂刷算法题,也一直和舍友们相互分享各自看到的知识点,复盘各种面试经历,这种和舍友们一起并肩作战的感觉,上一次经历应该还是高三那年吧。 幸运的是,那段时间学院的通知群每天都被各种公司的内推信息刷屏,其中最疯狂的莫过于字节跳动了,感觉他们每个部门都缺人(现在好像也是),群里的学长们也都很好,有的学长不仅会帮你修改简历,还会帮你进行一次模拟面试,这些操作对我的实习面试有很大的帮助。有关我是怎么找实习的以及实习过程中有哪些注意点,可以参考我的这一篇文章 👉计算机相关专业实习指北 最终,在两家都很不错的公司里我选择了一直想去的阿里巴巴。(终于也是有小牌牌的人了) 缘聚 知乎上还有一个很好玩的问题,找对象和找工作哪个更难? 之所以会有人把找对象和找工作一起比较,我觉得是因为这两者都是一个双向选择的过程,找对象需要双方看对眼,找工作也是。对我们来说,大厂的平台、技术积累是我们需要的。对于公司来说,需要有勤奋、靠谱、有潜力的实习生作为人才储备。u1s1,和字节跳动疯狂招年轻人的情况相比,阿里这几年校招的 hc 越来越少,对实习生的要求越来越高,甚至出现了“大量 hc=2 人,海量 hc=3 人”的调侃。这里我不得不吐槽一下,我不知道这样的做法是出于什么考虑,但年轻人太少,总觉得缺少了一些活力。 而且,在和主管沟通的过程中,我发现了一个很有趣的现象。他们毕业的时候,阿里还处在快速发展期,虽然薪资不高,但是他们都相信马爸爸那句“让天下没有难做的生意”,和他聊天的时候我真的可以感受到当年他们做事时的冲劲,可现在来阿里的年轻人又有多少人愿意相信画的“大饼”(很庆幸我的主管是一个非常务实的人,到底是弄技术出身的人),再加上现在阿里对招进来的实习生要求越来越高,和校招难度几乎是一样的,能来阿里实习的秋招去其他大厂基本也不会有太大问题,可薪资和其他大厂相比却并没什么优势,在如今年轻人越来越不好忽悠的情况下,我不知道公司靠什么再去吸引那些有能力留在阿里的年轻人,难不成真像外界流传的那样《阿里巴巴不再需要年轻人》,然后拱手送给竞争对手吗?这点,我也有些迷惑。 当然了,这些还是有点扯远了,回到本节的话题,我觉得还是找对象更难一点,毕竟努努力我可以找到工作,但是找对象这个事,光靠我努力就有点难了 🙃。 成长 阿里内部有很多优秀的自研中间件,像配置中心、RPC 框架、分布式缓存、Arthas 等,这些对于拓宽知识面起到了很重要的作用,当然还有很多秀到飞起的大神在内网里分享一些文章,有讲量子力学的,也有连载小说的,简直是摸鱼必备。 文章开头说,实习的这几个月是我编程生涯的又一个转折点,并不仅仅是因为在这里了解到了一些技术,更多是在编程的规范和遇到问题的态度上。 以前,自己的角色更像是一个野生程序员,编码没有规范,对日志也不做监控(也不一定会打日志),写代码更多的也只在于实现功能,而不去考虑性能优化。而现在,你写的代码会被上千万人使用,小小的性能问题,都会影响众多用户的使用体验,这使得你不得不谨慎对待你所写的每一行代码。 这里我再来吐槽一下在阿里的开发体验,由于各种中间件“优秀“的封装以及严格的权限管理,我来这里三个月了,不知道数据库长啥样(据说师兄也没有见过),再加上每个项目依赖众多,管理混乱,几乎没有一个项目可以在本地调试,硬是肉眼 debug 了三个月(朝着人肉逻辑机进化 🙃),即使可以尝试将项目部署到日常/预发环境进行远程 debug,但是项目的庞大使其部署一次就需要花费 20 分钟左右的时间,而且由于数据太多,根本没有办法很好的做到数据隔离,如果数据异常,就有可能触碰安全红线,所以与其花时间想怎么远程 debug,倒不如做好日志监控、花些心思好好锻炼下肉眼 debug 的能力。 最后 成年人的世界里除了长胖没有什么是容易的。今天是我来阿里的第 100 天,说长不长,说短也不短,可我却很成功的从 145 斤涨到 155 斤(等回学校之后又要开始减肥了),当然这一切都要归功于离我只有 2 分钟路程的食堂 😂。其实本来坐在电脑前不知道写些什么,可还是流水账似的写了这么多。这是一家让我又喜欢又讨厌的公司,喜的是他技术氛围、可以让上亿人用到你的代码的成就感,厌的是他的文化(不仅仅是加班文化,不过现在国内好像没有不加班的互联网公司了),我不知道接下来我会不会继续留在阿里,但很感谢能在这度过充实的 100 天,阿里,我们江湖再见!

挪威的森林——书中的女孩们

这是一本很神奇的书,说他神奇的原因是,我既可以把这本书作为言情小说看,也可以当作色情小说看,甚至可以把它当作讲大道理的鸡汤书看,而且作为一个情窦初开的年轻人,总能在书中的几个人中找到和自己相似的影子。 其实整本书都是围绕了几个主要人物的情感展开的,包括四男(渡边、永泽、木月、敢死队)和四女(还有直子、绿子、玲子、初美)。读这本书其实就是读书中的这几个人物。本文主要讲下书中的四个女孩。 绿子 先说这里面我最喜欢的绿子吧,她是一个活得很通透的人,在她身上我看到了一个敢爱敢恨的女生。相较于书中的另一个女主角直子,绿子像个春天里的熊,大胆又有活力,她是生动的,鲜活的。他爱绿子,爱她的率真、洒脱。“我可是有血有肉活生生的女孩,而且现在就在你的怀抱里表白说喜欢你。只要你一声令下,赴汤蹈火都在所不惜,虽然我多少有蛮不讲理的地方,但心地善良,正直勤快能干,脸蛋也相当俊俏,乳房形状也够好看,饭菜做的又好,父亲的遗产也办了信托存款,你还不以为这是大甩卖?你要是不买,我很快就到别处去。”说实话,如果是我,遇到这样的女孩子想必很快就会沦陷了。只是开篇的种种都暗示着渡边最终也没能和绿子在一起,不免有些唏嘘。 虽说绿子是个大大咧咧的丫头,但对待感情却也会有些自私的(谁又不是呢?),绿子知道渡边心中有一个没法忘记的人,却还是选择等待他处理好自己的事情,她对渡边的要求也仅仅只是要我时就只要我,抱我时就得只想我,以及千万别做伤感情的事,毕竟在过去的生活里绿子已经被伤害得够厉害了,不想再被伤害下去了。好在书的最后绿子等来了她的渡边。 直子 对于直子,我感觉她更像是我们年少时的执念,一个爱而不得的人。她和绿子是一个对立面,生与死的对立面(不单单是因为两个人的人生分别选择了生与死)。书中提到过“死并非生的对立面,死潜伏在我们的生之中。”这句话结合着整本书来看很奇怪,直子的死并不是渡边选择绿子的原因,而是因为直子的死让渡边更好的明白了需要好好地爱着绿子(感觉有些奇怪)。引申到我们身上,年少时的执念并不是让你用来和已有情人对比的,相反的,正是经过了那种执念才更能体会到要好好爱着已有的幸福。直子的死,一定程度上其实也是反映了我们应该要学会放下心中的执念,把握当下已有的幸福。 那为什么直子还是会和渡边做爱呢?一方面可能是因为日本的性文化我们确实难以理解吧,不过更重要的我想其实是因为直子也有想过要从木月死去的创伤中走出来,她也挣扎过,努力过。只是她失败了。从之前的直子与渡边的街头暴走,到直子进入那个疗养院,再后来病情不断恶化直至自杀,个人认为其实也反映了直子内心世界的挣扎。我认为她挣扎的原因是因为她挣扎努力的方式就错了,她错把渡边当成第二个木月,与他做爱,甚至赤裸着给他看,可她终究没有意识到渡边只是渡边,不会也不可能是她心爱的那个木月。于是,在明白了这些道理之后的直子,终于决定要追随木月的脚步,与这个世界说再见。 初美 初美是一个相处了会让人特别有好感的女孩。虽然外表普普通通,但她“娴静、理智、幽默、善良,穿着也总是那么华贵而高雅。”以至于对渡边来说“东大也罢外务省也罢,唯一羡慕的,就是你有一位初美小姐那样完美的恋人。“其实在读本书的时候,我也在思考,渡边对初美究竟抱着一种什么样的情感。说渡边喜欢初美吧,感觉不像,说不喜欢吧,字里行间又能表达出因为“永泽有一个地地道道的女朋友,名叫初美。”而羡慕不已。这对渡边来说是一个很矛盾的人,我个人倾向于渡边其实是喜欢初美的,只是这种喜欢存放在渡边内心的深处以至于他自己都没有发现。在渡边心中,初美是那样的完美,完美到自己只能远远的看着而不会心生情谊。 绿子梦想中的爱情是:如果她想吃饼,男人就跑几条街去给她买来,然后她说又不想吃了,那个男人会十分抱歉又问她想吃什么,满头汗地再跑去给她买。绿子想找的是个爱她的人,然后好好爱他回报他。可初美与绿子截然相反,初美的梦想是:“结了婚,每晚给心上人抱在怀里,生儿育女,就足够了,别无他求。我所追求的只是这个。” 初美想找的是个她爱的人,然后和他在一起生活。不然也不会接受和永泽这样的男生在一起三年之久了。她是真心的爱着永泽的,因为她愿意相信人是会变的,她坚信只要自己等下去,永泽就一定会改变,但永泽偏偏就是“亲切热情倒是不假,但就是不能打心眼里爱上某个人,而总是有个地方保持清醒,并且有一种饥渴感,如此而已”。 如果初美不是爱永泽就好了,如果她后来结婚遇到一个她爱的人就好了,如果她哪怕少爱一点,少执着一点,少迂腐一点,混日子过下去就好了,如果她能学永泽自给自足一点,而不是一味等待,如果…… 玲子 这个人物是最让我感到奇怪的,对于本书,我也看了一些读书笔记,但是几乎写的都是直子&绿子,描述玲子的实属不多。而且我也不是很能理解这个人物的出现是为了什么,以至于最后一章玲子和渡边仿佛是为了完成任务一样做爱更是让我莫名其妙,兴许是因为自己境界还不够高吧。对于玲子,网上有人说因为玲子和直子长期生活在一起,所以最后来看望渡边君的时候是以玲子的心态来的,算是代表直子和渡边君的一个告别。呃呃呃,反正我是没法理解的,对于她,我就写到这吧,如果以后有新的理解了,再来更新。 总的来说,这是一本非常好的书,书中很多句子的语言也非常优美,书中的人物在现实中也会多多少少的映射在我们的身上,豆瓣上有过一个问题,对于直子&绿子,哪个才是你的选择。其实这个问题就是红白玫瑰,于我而言,如果非要选的话可能是绿子吧,毕竟那样的女孩,会让人有活力和生存下去的意志。 当然,如果未来的伴侣既有绿子的活泼可爱洒脱又有直子的安静温柔岂不美哉。(哈哈哈,我在想peach😂)

plainify

搏一搏,单车变摩托,记录一下我的淘宝实习面试

楼主这段时间一直在找暑期实习,前几天刚结束了阿里巴巴淘系的 HR 面,现在在等通知,正好趁着这段空窗期整理回顾下前段时间的面试。 目前我是研一在读,投递的岗位是 Java 后端的暑期实习,我是在今年 2 月份开始准备实习的事情,虽然简历投递的很早,但是到面试已经是 3 月的事情了。接下来说说我前期做的一些准备吧。 不知道为什么,今年好像很多公司都加入了笔试环节,这里就要求我们对一些算法题进行针对性的训练,这里推荐力扣和牛客的剑指 offer 系列,把那 70 多道题刷两遍,心里多少就会有点底了。其次就是对于知识点的针对性复习,这个过程就跟我们高三时的一轮复习一样,力求将知识点都过一遍,包括但不限于 Java 基础、数据库、计算机网络、操作系统、组成原理、框架源码、设计模式等。这些知识点可以根据网上其他人的面经针对性学习,也可以根据市面上流传的各种面试宝典针对性复习。这里我推荐一个仓库,我复习时的知识点都是按照这上面来的,https://github.com/Snailclimb/JavaGuide 下面的内容是我整理的面试题目。大家可以参考着复习。 提前交流 我是找的学长内推的,刚开始有一次交流,也不知道算不算一面,主要问了下面的东西: 说一下 cas,主要应用在哪 说一下 Java 中的锁,自旋锁会升级成什么? 项目中的限流是怎么做的 说一下 Java 是如何加载一个类的? 什么是双亲委派模式? TCP 滑动窗口了解吗? 用的是什么数据库?说一下 mysql 的的事务隔离 InnoDB/MYINSAM 的区别和应用场景 介绍下 MYSQL 的索引 进程和线程的定义 进程调度算法有哪些? 说一下你对线程池的理解 用过什么模式(除了 JDK 以外。自己实现的 /除了单例模式外) 单例模式为什么要有两个 null 判断,一个不可以吗? 排序(归并排序 /堆排序/快排) 说一下你对 Spring 的理解,AOP 的原理是什么? 有什么想问面试官的 因为是提前交流,感觉就是摸一下底,问的知识点都很基础,只不过因为是刚开始复习,所以有些知识点还不是很清楚,后来交流的学长也给了一些建议和指导。 一面 然后就是正式的一面了,一面比较细致,上来先做了一道算法题,题目很简单,剑指 offer 里的原题,顺时针打印矩阵,https://leetcode-cn.com/problems/shun-shi-zhen-da-yin-ju-zhen-lcof/ 还有道多线程编程题,大致意思就是提供一个多线程的工具类,打印数组。 下面是问题的记录: 自我介绍、说一下最近在做什么事? 可以跟我介绍下卷积神经网络吗? 可以说一下逻辑回归是什么吗? 你觉得反向传播和动态规划之间有什么样的联系吗? 我看你的微信公众号叫「01 二进制」,那你能说一下为什么计算机会使用二进制,而我们人类会使用 10 进制呢? 计算机是怎么做加法的?那如何用加法代替减法? 使用过 Linux 吗?可以说下常用的 Linux 命令吗? 用什么命令可以查询文本中的文字?用什么命令可以查询磁盘存储的容量? Vim 使用过吗?可以说下有哪些快捷键吗? 我看你的博客里有一篇博客写到了区块链,你可以说下去中心化对我们的生活有什么影响吗?你觉得区块链有价值吗? 在区块链的世界中,那些数据怎么样会变得有效?(广播机制、共识机制) 类比打电话,两个系统的通信我们可以采用哪些方式?(我说了 http) 说一下 HTTP 和 HTTPS 的区别 HTTPS 中用了什么加密方式,在什么阶段体现的? 分布式的 CAP 理论了解过吗? 你了解的一些集群有哪些选举方式? 公众号里写了很多和 python 有关的文章,那你觉得这两个语言使用起来有什么差异? 最近有看什么书吗? HashMap 为什么线程不安全?是否模拟过不安全的场景? 说一下 Java 的值传递和引用传递 SpringBoot 和 SpringMVC 的区别 说一下 Spring 中 bean 的加载过程 JVM 的垃圾回收器了解吗?垃圾回收算法有哪些?JDK8 默认的垃圾回收器是什么? 有什么想跟我沟通的吗? 总的来说这一次的面试体验不是很好,因为那个时候刚大致过完一遍知识点,脑袋里的知识都混在一起了,而且偏偏问的东西也很杂,就连公众号里的文章他也看了,这点是我没想到的。不过面试官很 nice,一直都在和我探讨这些问题,气氛也不是很紧张,之后几天就迎来了二面。 ...

plainify

是时候和学生时代说再见了

年前和朋友吃饭,聊到了一个问题,如果可以重新选择职业方向,你还会坚持现在的选择吗?她很坚定的告诉我虽然很累,但还是会毫不犹豫的选择学医,只是单纯因为热爱。随后她便反问我,如果你可以重新选,你会换吗? 我犹豫了,我今年 22 岁,这个月硕士毕业,很快就会加入互联网打工人的大军,这一行起薪很高,甚至是很多其他行业奋斗打拼几年都追不上的高薪,我承认我是一个世俗的人,这一行的高薪让我很满意,但我总是会想,我真的热爱它吗? 梦开始的地方 我从小就是一个很闹腾的人,属于那种上课爱搞小动作,下课爱讲话的人,为此年少时免不了被老师“请去喝茶”。中学时也曾沉迷游戏无法自拔,差点成为一个网瘾少年,好在后来幡然醒悟。虽然戒了游戏,但阴差阳错的对计算机产生了浓厚的兴趣,大学填志愿时也曾纠结过是选择计算机科学还是软件工程,现在想想倒也不那么重要了。 本硕我都是学习的软件工程,算是一条路走到黑了。很多人说软件工程和计算机科学的区别着重在后面两个字,一个是**「工程」,一个是「科学」**,软工更偏应用,计科更偏研究。这个说法没什么不对的,因为这两者的路线确实有很多交叉,没有理论指导的工程只会是无源之水、无本之木;理论研究再好不演化成工程落地那也只是空中阁楼,因此我觉得对于刚踏入或者即将踏入计算机领域的人来说不必纠结于「软件工程」还是「计算机科学」的选择。而应将重点放在对兴趣的培养上。 兴趣是最好的老师 每当有人问我为什么会喜欢计算机时,我都会告诉他,我喜欢创造(creating)的感觉。《哈利波特》是我很喜欢的一部作品,而在计算机这一个由“01 二进制”构成的世界里,我就是“霍格沃茨”的魔法师。在这里我可以指点江山、激扬文字,实现我任何天马行空的想法,仔细想想这是一件多爽的事情啊。 在《黑客与画家》一书中,作者说编程是一种技术创作,黑客就是艺术家,开发软件与画家画画、雕刻家雕刻、建筑师设计房屋并没有本质不同。他们都是在尽情的将脑海中的想法创造出来,而这就是我喜欢编程的原因。 每当我说到这的时候,都会有朋友跟我吐槽,说他们压根没有这种想法,选择这个专业纯粹是不知道选啥,或者因为这行钱多。 的确,很多人选择计算机更多是迫于无奈,我理解。但是我没办法好为人师,也没办法告诉你们怎么样对编程提起兴趣。人生是由无数个选择构成的,如果真的无感,趁早放手对彼此都好;但如果你坚定的选择了这一行,用心做下去就好了。 一万小时定律与十万行代码 Malcolm Gladwell 在他的《异类:不一样的成功启示录》书中讲到了 10000 小时法则:“人们眼中的天才之所以卓越非凡,并非天资超人一等,而是付出了持续不断的努力。1 万小时的锤炼是任何人从平凡变成超凡的必要条件”。 如果按比例计算的话,每天工作 8 个小时,一周工作 5 天,那么成为一个领域的专家至少需要 5 年的时间。 也有人说,从初学者成长为一名合格的程序员,需要 10 万行代码的积累,那么从你开始学习编程到现在,你写了多少行代码呢? 当然了,写代码的行数和程序员的能力没有太直接的关系,代码数只是编程能力的一个体现,不能以偏概全。而且不同的岗位代码能力数量差异非常大,一万小时定律与十万行代码更多是想要告诉人们想要学好编程,实践是万万不可缺少的。 熟悉我的朋友都知道,我在现实生活中的兴趣爱好并不多,除了摄影可能就是看书喝咖啡了。但是我在二进制的世界中爱好广十分广泛,移动 App、桌面应用、爬虫、Vue/React、Java Web、Python Web、AI、容器、分布式等等我都或多或少接触过并实践过,可能会有人觉得你完了这么多东西都没有一个精通的没什么用。的确,这里面的东西我没有一个敢保证我是精通的,但是六年的校园时光你不广撒网,多涉猎新奇的东西,难不成等以后工作了,每天 996 了再去涉猎新东西? 而且,在涉猎新玩意的同时,我的实践能力得到了质的飞跃,有了很多前置知识之后,再接触一些新东西时往往都会有“哦~,这玩意不是和那 xxx 差不多吗!”的感觉,很多东西都会「触类旁通」,上手新东西自然会越来越快。 所以,赶紧行动起来,现在就去。不要找任何借口! 动手去做,Just do it! 做东西是最好的学习方法。 无论是软件工程还是计算机科学,都被划分到了**「工学」**的领域,而工学最重要的就是实践。上面我说了一万小时定律和十万行代码的理论,相信很多人都会问应该怎么去学习计算机领域那些专业课的知识,怎么去提高自己。毕竟很多人觉得《计算机网络》、《操作系统》、《计算机组成原理》这些课学了没什么用,还非常枯燥,我当时也是这么认为的,好在我一位老师曾回答过这个问题,他对此的看法是: 本科阶段不要先花大量的时间去啃一本厚厚的上百元的专业书,而应该先去做一个相关的可以迭代的项目,这样才是更好的学习方式。在项目中锻炼,遇到了问题,难点,然后针对性的进行知识学习,效率也是最高的。另外学了以后不能活用的知识实际上都很容易被遗忘,而课程的学习能够帮助你了解概括,了解全貌,可以更准确的找到相关的知识进行学习,这样经过实践学习后你会发现那种大部头的书实际上已经被啃掉了不少,再回头去啃厚书的时候,你会比一开始就啃要获益多得多! 对这个观点我深有体会。本科有一段时间我对制作 App 非常感兴趣,便抱着郭霖大神的《第一行代码》反复钻研学习,后来机缘巧合和两个朋友制作了一个校园应用《果核》,那是我们仨的第一个作品。在制作这个小玩意的过程中遇到了很多很多的问题,爬虫方面的、计算机网络方面的、操作系统里的多线程等。 在解决这些问题的过程中,不光涨了经验值,对这些枯燥的知识点的理解也加深了。再之后,为了方便苹果用户使用,我们又学习了微信小程序的制作。Flutter 横空出世后,我又用 Flutter 重构了整个 App 使其可以跨平台运行,这一过程中加深了对设计模式的理解。虽然从现在的角度看,整个过程非常粗糙,无论是代码编写还是后来的推广运营,我们都是以一个萌新的身份在探索,但也正是那段经历造就了现在的我们。 再到后来,每学习一个新的东西时,我都会想着用这些知识点搞一些小玩意,学习 Electron 时做了「MediaPub」,学习神经网络时参考论文整了一个「图像风格迁移」的小程序,还拿他做了本科的毕设,直到现在还有人在公众号后台留言要代码。 说这么多,其实想表达的观点就是,你在做东西的过程中会知道你该学习哪些知识,这是比直接读枯燥的编程书籍认识和掌握知识更有效的途径。 更多的探索 我时常会思考自己的核心竞争力到底是什么,毕竟从事这一行的人越来越多,总有人年轻着,也总有人被后浪拍死在沙滩上。很惭愧,我至今仍在寻找,这么些年也一直在探索着。 ...

暑假了,你是不是该做点什么?

文:「雇个城管打天下」 | 图:Pixabay 眼瞅着时间到7月了,中小学生都放假了,现在还有多少大学生试还没考完啊,不知道考完试的大学生现在是不是跟下面一样。 然鹅,竟有一些学弟私聊问我:“学长,暑假到了,我想学点新东西,能不能给点建议?” 现在的学弟都这么认真的吗?暑假也不放过自己吗?这让我们这些寒暑假都没有得人情何以堪啊。 不过作为一个知心学长,我还是认真地搜索了「大学生暑假」这类问题,然后: 搜索结果这么真实的吗?竟然还有六成的大学生在家当“肥宅”?难不成那些想要学习的学弟都是些不放过自己的“变态”? 抱着对搜索结果怀疑的态度,我问了下周围的人,他们之前的暑假都是怎么过的。果然,很多人在暑期刚开始制定了超多超多的计划,然后,执行了两天之后就被空调、WIFI、西瓜打回原形,最后还要受到爸妈的数落和嫌弃。 但是学弟好心来问,总不能直接劝退吧,多少还是要给些建议吧。 结合搜索结果和我自己前几年的假期经历,我总结出作为一个有假期的大学生,你要做的三件事: 必须做的事、正确的事、喜欢的事 必须做的事 举个简单的例子,学车。作为一个已经成年的大学生,在暑假你最该做的事就应该是学车,因为学车这个事需要大把的空闲时间,除了教师,也就是放荡不羁爱自由的大学生才有空能找出整块的空闲时间了。而且现在学车的难度和学费都在涨,你确定不早点拿个证?还能加学分哦~ 再比如,如果你现在已经大三了,这个暑假是不是该好好想想自己是考研还是好好准备出去实习呢?(保研党除外) 当然,无论什么事情都是因人而异的,毕竟有些人光是“活着”就已经很不容易了。比如对我来说现在必须要做的事就是好好减肥。看到这,期末挂科的还不赶紧复习去? 正确的事 啥是正确的事,看到下面这张图你还不明白吗? 正所谓,活到老学到老,作为受过“高等教育“的我们,学习二字必定会贯穿我们的一生,所以为期两个月的空闲期又怎么能放过呢? 不过这里的学习并不是单纯的指那些考试挂科的要应付补考的学习,而是指那些能提升自己的事。 举个例子,对于男同胞来说,有一件事一定非常正确,那就是拍照! 提到拍照就想起了那些不堪的往事,开开心心和心仪的女孩子出去玩,对方主动提出让你给她拍照片,然后???? 所以,掌握正确的拍照技术对很多直男来说是一项必须要去学习的事情。 当然还有件值得去做的正确的事就是**「读书」**了,书单就不推荐啦,每个人喜好不一样,自己在知乎搜索「年轻人读的书」,你会有新发现的~ 喜欢的事 夏天最喜欢的事是什么?当然是**「空调、WI-FI、西瓜」**啊🤪 好吧好吧,不皮了,虽然喜欢「空调、WI-FI、西瓜」无可厚非,但是我之所以把喜欢的事放在正确的事后面其实也是想说,虽然现在还年轻的我们就应该去做自己喜欢做的事,但是也该分清主次。 在经济条件允许的情况下,趁着暑假的时间出去旅旅游、和多年不见的好友聚聚餐、亦或是好好和自己的男朋友/女朋友经营下感情,或者去做一件自己以前不敢做的事情,挑战一下自己。比如自己摆地摊,比如主动跟陌生人说话,或是去学一个从来不敢想的新事物。很多事情,没做的时候你会觉得自己做不了,没有能力,但真正去做了,你才会发现,原来也不过如此。 然鹅,对于绝大多数大学生来说,刚放假的那几天肯定还是会选择好好浪一把,不过持续不了几天,你就会发现 于是开始制定超多超多的计划,再然后,执行了两天之后就被空调、WIFI、西瓜打回原形,最后在家受尽白眼,仿佛自己是垃圾堆里捡来的。 最后说一句,个人认为在执行计划的时候,我们应该注重过程,至于结果尽力就好,做事只求问心无愧,享受过程比注重结果更有意义。

plainify

最后一天,写给 2019

相较于 2018 年的我,虽然每天仍然忙忙碌碌,始终觉得在为自己的未来未雨绸缪着,但静下心来仔细回顾这一年,却发现和自己期待的 2019 大相径庭。 这一年,我做了挺多事,毕业、读研、减肥、写作、编程、摄影、购物、恋爱,相对只有保研这一件事的 2018 年,2019 年我过的丰富的多,可这一年却也是我最近这几年最迷茫的一年。 如果要用一句话总结我的 2019,我想应该会是「想法太多,行动太少」。 2019 年,我本科毕业了,也顺利读研了。导师之前说过,对于大多数不想就业或者难就业的应届生来说,读研是最好的选择。说实话,即使到现在我也仍在困惑自己是否是因为恐惧就业才读研的。可能和大多数人在考研前期待的不太一样,并不是所有读研的人都会整天泡在实验室研究些高大上的东西,由于时间限制,大多数专硕是接触不到多少科研工作的。当然,专硕本就是以就业为导向的,多出一两年的就业缓冲期对于一些人来说也未尝不是一件好事。 2019 年,我给自己定了很多的目标,掘金要有多少关注、公众号要有多少粉丝、要看多少本书等等等等。总的来说,这些目标算是基本完成了。 这一年的写作,满打满算加起来有 90 篇,看起来很多,但是注水的文章也不少, 占大比重的是翻译和算法题解,这两个部分的内容往往干货很少,其次就是和机器学习有关的内容了。我在去年的总结中写到,今年是准备进入机器学习领域的,因此前期我输出了一些和机器学习有关的内容。开篇提到的「想法太多」说的也是如此,因为后来在意识到了自己的能力上限以及各种生活压力后我还是决定放弃走机器学习的道路。 这一年是我开始做自媒体的第一年,说是做自媒体,其实也就是写写公众号、发发博客。可一年过去了也没多少起色,虽然早已达到年初制定的目标(掘金 4000+,公众号 1000+),但我并没有多少喜悦。不知为何,总觉得现在产出好文章的公众号越来越少了,取而代之的是各种广告。说实话我很讨厌这些,我做公众号的初心是分享我自己的所学所想,因此我也尽力在做原创,但可能是因为我在写作上有很多问题,这些原创文章反响平平,阅读量寥寥无几,而且缺少和读者交流的过程,这些一度让我没有更新的动力,最近的发布一篇文章还是 2 个月前(当然拖更还有一部分原因是因为读研的压力)。不过 2020 年就要来了,我会步入正轨的。 至于阅读,相比去年还是有些进步的,虽然还有些书没有读完,但数量比去年多了一些,也开始做些书摘、写些读书笔记了。涉及的知识领域也广了一些。除去技术书籍,也开始阅读一些名著、历史、心理相关的书籍了。不过一些书籍的搁置率也挺高的,年初的时候给自己列了个书单,但直到年底都还停留在“买了就是看过了”这个阶段,所幸 2020 年还可以接着看,这里推荐几本书,有兴趣的可以了解下: 《小狗钱钱》,篇幅不长,许多大 V 推荐过的理财入门书 《人类简史》,对人类的深刻思考,今年第二次阅读,只读一遍的话太可惜了 《高性能 MySQL》,看过才知道自己以前对 MySQL 性能优化的理解有多么浅显 《Head First 设计模式》,写代码容易,写好代码难,写让人看懂的代码难上加难 《程序员代码面试指南》,用 Java 刷题的时候看的,虽然还没有看完,但是内容真的非常好 2019 年,最值得高兴的应该是我减肥成功了。去年的总结中还说到自己对减肥一事很佛系的,毕竟不抱太大希望,但终于还是瘦下来了。简单分享下心得就是“管住嘴,迈开腿”,减肥期间,我基本保持每天跑步三公里,这可以说是今年做的最成功的一件事了。如果有兴趣,后期我也可以分享下我的减肥历程。 2019 年,对自己最不满意的部分应该就是技术这一块了。不满意的原因就如标题所言,想法太多,行动太少。想学的东西很多,从今年写的博客就能看出来,数据分析、机器学习、Flutter、Spring、Flask 这些都有涉猎,但偏偏每个方面做的又太少,做的也都不怎么样。 毕设选了和深度学习有关的题目,又自学一些和机器学习相关的内容,可读研之后才发现根本没什么用。自己的天赋有限,又不想读博深造,未来若是想走算法岗,没论文的硕士又怎么可能被应聘。 刷题上,年初预定自己在 LeetCode 上做满 400 道题,可截至今日,也不过完成了 346 题,题解记录的数量也远远低于预期。 GitHub 的贡献量更是少的可怜,相比去年 318 的 contributions,今年直接缩减了一半。 作品上,本期待今年可以做一款 3000+ 用户的产品,可直到现在也没出现。对移动端有兴趣的我,今年也只是简单看了看 Flutter 的一些更新内容,没有亲自使用跟进。 总的来说,这一年在技术上的投入实在是太少太少了,阅读的技术书籍不够、做的东西太少、对外技术分享的频率也过低,2020 年应该好好吸取教训,静下心来沉淀自己才是最重要的。 ...

最近做的一些事

图文均本人😆 一大早起来迷迷糊糊的以为今天是周六,打开电脑才发现今天已经是周日了,给导师发完今天的文章海报后登陆公众号后台看到了上篇的文章数据,真是好惨一男的,怎么才78个阅读量😂 不过虽然阅读量少,但还是非常感谢给我赞赏的那几个人,吃水不忘挖井人,等我的号有一定规模了,可以像其他号一样可以发福利的时候一定不会忘了你们的🌹 上篇文章是我的"AI画家"系列的第四弹,我在后台收到了有小伙伴回复让我赶紧更新第五弹,说实话不是我不想更新,实在是最近事情太多了,昨天刚刚结束论文的第二次查重,这几天翻来覆去的降重弄的我头疼,原计划今天写下这周的文章回顾的,翻了翻才发现这周一篇文章都没有写,所以干脆趁着今天下雨没办法出去放松的机会把最近做的一些事情好好整理下。 毕业论文的两大难题 降重 作为一个临近毕业的大四狗,这段期间最头疼的就是莫过于毕业论文了,其实毕业论文最头疼的地方不在于怎么写,毕竟本科生能力有限,做的东西也不可能太牛逼到哪去,用的技术、实现的方法多半也都是现成的,所以写的时候还是很快的。可是麻烦就是麻烦在这,正因为是现成的技术和方法,你写的东西,往年的学长学姐多半也都写过了,算法类的论文可能还稍微好点,如果是那种应用实现类的论文,介绍前后端分离,介绍数据存储的时候你能保证能有多大的概率和前人不太一样呢?有人说中华文化博大精深,把一个句子颠过来倒过去的说就可以了,但是你能想到的,前辈们基本也都能想到,哪怕你把中文=>英文=>中文也很难保证不被认为不是重复的了,所以各位骚年们,往后写毕业论文的时候还是安安心心自己手写吧,不然的话就真的是"写文一时爽,降重火葬场"了。 格式 毕业论文里面第二个让人头疼的肯定就是格式了。说真的,就那个格式真的差点没把我这个钢铁直男逼疯,学校要求毕业论文用word写,查重过了满心欢喜发给老师,结果没一会就被老师叫到实验室劈头盖脸说一顿,你这英文没用罗马字体,你这图表的标注字号有问题,你这参考文献格式不对,还有页眉页脚到哪去了,论文的公式也没公式的样子。没办法,退回来重新改了一下午格式,这里我就真的要实名吐槽下Mac版的Word了,竟然连自动目录都没有,害得我只能把文件发到windows的电脑上调格式,结果这时候又出幺蛾子了,我的公式格式咋回事,咋全变样了😂真的,我改格式的时候真的就下面这个表情。 对于格式我真的不想多说什么了,懂得自然懂,这里推荐一个我在写论文的时候粘贴LaTeX公式的一个神器——mathpix,这个神器强悍到什么程度呢?你们自己欣赏下吧: 强到连爱因斯坦、牛顿、图灵都来为他们代言了。 当然这里就是开个玩笑,下载地址👉https://mathpix.com/,用法官网写的通俗易懂,这里就不多说了。 最近做了一个小程序 最近除了忙毕业论文的事情,还顺带做了一个小程序(我并不是因为做这个玩意才没有更新文章的),他是一个工具的集合,我知道这样的小程序有很多,但是那又怎么样呢?那些又不是我的小程序。 界面比较简洁,基本沿用我之前做的那个校园小程序,我给他取名"开挂",寓意是希望使用它的人在生活中体验开挂的感觉。就比如压马路的时候看见一辆不知道什么牌子的车的时候就可以用🚗识别看看到底是保时捷还是法拉利;再比如你可以测测你的颜究竟是真的好看还是你自己认为的好看。 其实做这个小程序的初衷比较简单,你们也都看到了有个AI油画的模块,本来就打算做个小程序当毕业设计就行了,但是后来想想既然都做了那就做大点吧,所以后来就把其他的功能加了上去,技术栈也很简单,就是前端小程序+后端Flask+数据库MySQL,代码我就不公开了,有兴趣的可以加我微信和我交流,这里附上小程序码,欢迎大家体验尝鲜(或者直接在公众号底部点击"开挂Lite"也可以体验),觉得好玩的可以点下小程序里面的广告就当是给我支持了哈。 学了摄影 因为总觉得有必要发展些兴趣爱好,正巧前段时间买了一个富士相机,这里说是学了摄影,其实就找了一些和摄影有关的书籍看看,然后请教了一些认识的摄影爱好者拍了些照片,开头的那个图就是我拍的,其实这里没啥好写的,要不就自恋点放两张我觉得拍的不错的图片吧😆(摄影小白的作品,不喜轻喷啊) 减肥 终于到了这个沉重的话题了,说这个话题沉重的原因是因为我本身比较重,去年年末写的一篇年终总结里面定了几个小目标,如今已经年中了,有些已经完成了,有些仍在进行中,然而只有减肥我没给自己定个明确的目标,因为我自己也不确定我究竟有没有决心把减肥这件事做下去。最胖的时候我有180斤,现在我已经到166了,给你们看看我的体重变化趋势(这里给小米体脂秤2点个赞👍)😁 虽然效果还不是很明显,但是为了健康,该做的我还是会继续做下去的。 最后 其实这篇文章就是想把最近的一些事情做些总结,就算我们做不到吾日三省吾身,也该时不时总结下自己的一些经历,也方便为之后的生活做些规划。可能大家关注我的公众号是因为之前的一些技术文,但是我在公众号的介绍里也说了,除了技术我也想给我的读者带来一些不一样的东西,这篇文章就是我的一个小小的尝试。虽然我不是一个优秀的人,但是我也不会放弃去成为一个优秀的人,与君共勉。

plainify

未雨绸缪,小米前端实习面经

前一篇文章中说到了我准备开一个新系列用于整理周围人面试的一些经历,本文是她面试小米的一份经历,也是这个系列的第一篇文章,投稿人是我同校同学,虽然本科就是一个学校的,但直到研究生才认识,之所以说她未雨绸缪是因为在我还没开始投实习简历的时候她就已经拿到了小米的实习 offer 了。作为一个米粉,我其实挺羡慕的,因为小米一直是我很向往的公司。 她是在 boss 直聘上投的小米,base 南京,因为是部门直招,看完了简历就约了面试,速度还是很快的。据她说虽然只有一轮面试,但是持续了将近一个小时,面试官还是比较随意的,问的问题都很基础,以下是她的面试记录。 一开始自然是老生常谈的自我介绍,一个好的自我介绍应该包含这几点要素: 用简单的话说清楚自己主要的技术栈于擅长的领域; 把重点放在自己在行的地方以及自己的优势之处; 重点突出自己的能力比如自己的定位的 bug 的能力特别厉害; 好的自我介绍会让面试官对你产生兴趣,毕竟换做你是面试官,一定也希望面试者不是客套地说说自己喜欢编程、平时花了很多时间来学习、自己的兴趣爱好是打球吧。 接下来就是一些基础方面的问题了,按照类别进行了整理。 css/js/html css 块元素和行内元素 css 如何实现水平居中? position 有哪四个属性?谈一谈你的理解 谈一谈你对盒模型的理解 flex 属性以及使用的一些问题 什么是 rem 布局? js 原型链是什么? js 闭包以及相关的使用 es6 新增了什么 基本数据类型(es6 新增) var 和 let 区别 什么是事件委托机制 es6 的 promise 以及回调函数的使用 es7 的 async 和 await LocalStorage 和 sessionStorage 区别以及 API vue MVVM 怎么理解 vue-router 说一下 vue 和 jQuery 的区别,哪个好 向面试官问问题 实习生培养方式 实习期间的主要工作 最后 问题基本都回答出来了,面试官可能也比较满意,主要运气比较好吧,面试官说没什么问题的应该只有这一轮技术面。 技术面试大概用了三十分钟,面试官说时间可能有点短,再随便聊聊吧。。。 ...

李鬼见李逵——我用翟天临的论文做了分析

完整源码可在公众号:「01 二进制」后台回复:「翟天临」获取 昨天是元宵节,在南京,元宵节一到也意味着这个年过完了,我们也该回到自己的工作岗位上了。都说今年的瓜特别多(葫芦娃的那种),但是过年期间最甜的我想非翟天临的“知网是什么?”莫属了吧。 前段时间,微博上开始不断爆出翟天临学术不端,论文抄袭的消息,以至于牵扯到其导师、院长甚至整个北京电影学院。 我平常不怎么关注娱乐圈,所以刚开始并没有把这件事放在心上,直到网上爆出翟的论文大篇幅抄袭陈坤论文的消息,我才对这位娱乐圈博士的文章起了兴趣。接下来就让我们以一个 coder 的角度来硬核分析下翟的论文吧。 实验环境 工欲善其事,必先利其器,在开始分析之前,我先说明此次分析所处的实验环境,以免出现异常: MacOS 10.14.3 Python 3.6.8(Anaconda) Visual Studio Code 使用的包有: pkuseg(分词) matplotlib(绘图) wordcloud(词云) numpy(数学计算) sklearn(机器学习) 数据获取 说实话,起初我以为就算翟不知“知网”为何物,“知网”也该收录翟的文章吧,可我在知网搜了好久也没能找到翟的论文,好在我在今日头条上找到了他的文章,保存在data/zhai.txt中。说到这,还真要感谢翟天临啊,都是因为他,大家才变得这么有学术精神,开始研究起本科硕士博士论文了。 数据清理 上一节我们已经将他的论文保存到一个 txt 中了,所以我们需要先将文章加载到内存中: # 数据获取(从文件中读取) def readFile(file_path): content = [] with open(file_path, encoding="utf-8") as f: content = f.read() return content 我统计了下,除去开头的标题和末尾的致谢,总共 25005 个字。 接下来我们来进行数据清理,在这里我用了pkuseg对内容进行分词处理,同时去掉停用词后输出分词的结果。 所谓停用词就是在语境中没有具体含义的文字,例如这个、那个,你我他,的得地,以及标点符合等等。因为没人在搜索的时候去用这些没意义的停用词搜索,为了使得分词效果更好,我就要把这些停用词过滤掉。 # 数据清理(分词和去掉停用词) def cleanWord(content): # 分词 seg = pkuseg.pkuseg() text = seg.cut(content) # 读取停用词 stopwords = [] with open("stopwords/哈工大停用词表.txt", encoding="utf-8") as f: stopwords = f.read() new_text = [] # 去掉停用词 for w in text: if w not in stopwords: new_text.append(w) return new_text 执行结果: 这里我提两点: 为什么分词工具用的是pkuseg而不是jieba? pkuseg是北大推出的一个分词工具,官方地址是:https://github.com/lancopku/pkuseg-python,他的README中说他是目前中文分词工具中效果最好的。 ...