以服务于中国广大创业者为己任,立志于做最好的创业网站。

标签云创业博客联系我们

导航菜单

java完不成任务想离职,想辞职自己创业,什么项目好

作者:关注大橙链接:https://www.nowcoder.com/discuss/156087

房东是个19岁的学生。他去年在牛科学到了很多,在实习和秋季招聘中也获得了一些offer(Java后端开发工程师)。由于20届春节即将开始,我将整理大量资料,与大家分享。对了,我会做一个广告233把广告往里面推。有点像标题派对。学习Java可能需要两年的时间,但是复习春秋招聘大概需要三个月(但是感觉比之前学的所有内容都多.).

重播

首先,我绝对不是大神,拿不到一堆ssp。我只是想和大家分享一个不是很聪明的人(我是一个高中文科生,数学很差)如何能尽力找到一份程序员的工作。

学习课程

大一的时候,家里一般都想找一份高薪的工作,因为我的专业就业前景一般,没有什么学术野心。然后在知乎的CS霸主地位让我决定换专业。大一的时候,不知道自己适合不适合。尤其是转专业很容易,心里一直没底。大一的时候,我自学了JavaSE。当时看了一吨各种培训机构的教学视频,然后看了几本《Java核心技术》、《Java编程思想》等语法书。然后根据培训结构的视频做了一个XX管理系统,然后大一就结束了。大二学生一年时间不好过,一年要上两年课(补大一的课),但还是要花点时间学习JavaEE技术(也是为了课程设计),比如Spring、Hibernate、Spring MVC等框架,以及MySQL、Redis等存储技术,然后学一点前端,勉强写个网站的演示。当时我不懂Java和框架的原理,只能说会用。而且当时培养了一个错误的观念,就是越学框架越牛逼,好像自己也牛逼一样。我花了很多时间学习各种框架,写了一堆demo。大二,不知道参加了菜鸟的春招有多少斤。结果不到10分钟就开始GG了。原因大概是一些专业课,比如OS、网络等。从未被研究过。我记得问过一些问题,比如Spring原理和Redis原理,但自然什么都不会。我还问有没有正式的项目经验,自然也没有写一堆演示.大二的时候大概正常上课,因为一门课的课程设计和数据分析有关,我去学了Python,Numpy,Pandas,中途放弃了.大二暑假前,学长介绍了一家公司招聘暑期实习,然后就去放屁了。结果当时我是大三,有好几个大四的都要大四了。好像只是面试的时候随便问了几个问题,很疑惑.听说最后问学长谁要当学长.大二暑假,我意识到只学框架是不够的,最好有项目经验,但项目经验只能通过实习获得。这幅画可以牺牲在这里。

没有正规的线上项目经验,只能靠基础知识来补充。

暑假期间补充了Java的并发和NIO相关的基础,写了一个聊天室项目(不知道为什么后来变成了100星.)https://github.com/songxinjianqwe/Chat;然后我看了一些并发的书《Java并发编程实战》。然后我想起我在学JavaSE的时候,有一个教程教我怎么写一个WebServer(只使用JavaSE API),然后我自己模仿写了一个,最初的版本只有1000行,然后完善了spring的绝招。当然也补充了一些框架/中间件,比如SpringBoot、Dubbo、RocketMQ的研究,写了一堆演示。一个演示(自己)觉得还不错,就是在机器上搭建了一堆虚拟机,模拟分布式,把数据库分成表,用MQ解决分布式问题

事务的问题(其实也没啥技术含量,只不过比单机的demo强一点...)
  • 学框架/中间件的教程(一些什么架构师教程233...)中看到了Netty,了解到Netty是一个网络编程框架,做分布式网络通信的(也就是做中间件的,不是搞应用开发的),读了《Netty权威指南》,又写了一些demo。
  • 再后来...一言难尽,自制力不足去打王者荣耀了emmmm。
  • 大三上的话课程也是有点多的,还有课程设计,为了课程设计学了Vue.js和PHP(这部分对找工作来说实践证明是没用的...),然后想要读一读框架源码的,就花了大概一两周读了Spring源码,读了《Spring源码深度解析》,还写了一些源码解析文章(当然和网上流传的大同小异https://blog.csdn.net/songxinjianqwe/article/details/78829923),然后又自己模仿着《架构探险-从零开始写JavaWeb框架》,自己又写了一个简化版的Spring IOC+AOP(不过后面面试的时候讲这个项目讲着讲着就讲到了Spring源码)https://github.com/songxinjianqwe/Mini-Rest。
  • 大三上快结束的时候意识到马上要决定以后的去向了,顿时慌得一批,自己分析了一下去向。成绩应该能保研,但是最后是放弃了,给自己找了一些理由:
  • 只能保研本校本专业,不能去更好的学校
  • 读研最好是能搞机器学习之类的,做Java开发搬砖啥的好像也不用读研
  • 懒吧,觉得要读研就要在两年后再经历一场春招秋招...还不如现在把这个事解决掉,要不又要提心吊胆担心失业
  • 另外自己觉得前两年也算是为找工作做了一点准备,也不至于说从零开始 决定了之后就开始迷茫,不知道要学哪些东西,学到什么程度。然后就花了好几天的时间去牛客网上找面经,大概看了有100篇+的面经,把问题分类都记了下来,算是心里有了点底。
  • 整理内容,在公众号后台回复 100篇面经


    • 之后就进入寒假,回家准备复习春招了。

    春招


    大概是从1月中旬开始复习,然后3月上旬开始投简历,中旬开始面试,一直面试到4月中旬。 - 我自己是文科生,在高中时时候就有个习惯是记笔记,因为自己记性很差,看过的书过几天就忘光了,所以自己记了很多笔记,之后在春找面试期间/秋招复习可以只看笔记快速复习。


    • 复习顺序大概是先去复习数据结构和算法,这部分因为自己不太聪明吧,学的很吃力。当时也买了牛客网的直通BAT面试算法精讲课。然后刷了《剑指Offer》,本来打算刷leetcode的,但是这里想讨点巧,自己确实不擅长,如果公司真的要求很高,干脆就放弃好了(对,说的就是你,头条)。
    • 然后是看操作系统、计算机网络、数据库理论之类的,这部分就看的当前上课时候整理的笔记
    • 之后是Java、分布式还有框架/中间件的复习。这部分是看了好多书,感觉这个寒假看的书比前两年加起来的都要多emmmm。

    《Java并发编程实战》 《Java并发编程的艺术》 《深入理解Java虚拟机》 《Java编程思想》(这本不建议突击看,最好是平时看) 《分布式Java应用 基础与实践》 《大型网站技术架构 核心原理与架构分析》 《大型网站系统与Java中间件实践》 《Head First 设计模式》 《Spring 源码深度解析》 《架构探险 从零开始写JavaWeb框架》 《深入分析Java Web技术内幕》 《Redis实战》 《高性能MySQL》 《从Paxos到Zookeeper 分布式一致性原理与实践》 《深入剖析Tomcat》(这本看的比较粗略,看博客也行) 《深入分布式缓存 从原理到实践》 《剑指Offer》(神书!除了头条、腾讯或者外企或者其他国内比较重视算法的公司,这本书足够应付面试了,当然对算法比较感兴趣的建议刷leetcode,更稳一些,笔试也不容易被刷,另外左程云的《程序员代码面试宝典》也很好,有时间可以看) 《Netty实战》 此外还要看操作系统、计算机网络、数据结构和Linux相关的教材。 另外还有一些我还没来得及看,但感觉非常好的书: 《Redis设计与实现》 《MySQL技术内幕 InnoDB存储引擎》 《大规模分布式存储系统》 《亿级流量网站架构核心技术》


    • 因为学了Netty、Dubbo等技术,打算再深入一点,把Netty用在一个稍微正式一点的项目上,不要只停留在demo上。所以花了一些时间手写了一个RPC框架,最初版本也就1000+行。https://github.com/songxinjianqwe/toy-rpc
    • 这个时候觉得写一些网站的(尤其是非正式上线的项目,自己写着玩的)之类的写不出什么花来,翻来覆去还是用别人的东西。但是面试,尤其是阿里巴巴,对原理要求挺高的,你在项目里用了啥,你最好是能说得出来它是怎么work的。如果自己去造个轮子之类的,你会对某个组件或框架变得很熟悉,比读一遍源码在理解上要深一些(而且没有SSM那么low...)。
    • 然后就开始春招了,总共投了18家公司,最后是收到了5家公司的offer(酷家乐、快手、菜鸟、携程、网易),最后是选择了菜鸟,主要是因为阿里巴巴对Javaer吸引力确实很大。说到菜鸟还是挺有意思的,一方面是去年就透过实习,另一方面内推名额不是找人要的,而是一位师兄在Github上爬虫爬到我的,然后就给我发了邮件说你的Github上的项目很让人印象深刻balabala,然后发了内推。后来实习入职以后问这位师兄,因为特别好奇是哪个项目被阿里大佬看上了,结果人家说是全发了...没有筛选(这可太尴尬了....)
    • 之后5月份中旬就跑去实习了,虽然学校规定是7月份期末考完才能出去,但是自己算了一下7月份实习到9月份转正答辩的话实习时间太短了,感觉做不了什么事情,所以提前就溜了。当然另一方面是课程也比较少,不过考试很多,要考好几次。实习了大概三个月就买了十几张南京——杭州的高铁票(感觉实习完全没赚到钱,全花在路费上了emmmm)
    • 4月中旬到5月中旬也是忽然颓废的一个月,明明后面还有秋招,但又去打游戏(那时候frostpunk刚出,玩了好几天),看小说。技术上就只是把WebServer这个项目又完善了一下,把原来的网络实现从BIO改成了BIO/NIO/AIO。

    实习


    然后就开始了实习,实习的时候大概做了几件事,比如给师兄研发的中间件开发一个Web控制台,做一个快递相关的业务系统,还有一个类似于ABTest的系统。


    • 第一件事其实业务很简单,只是熟悉了集团内部的一些中间件,但是后来觉得这样后面面试的时候实在没得聊,就把师兄自研的中间件的源码读了一遍,自己总结了一下。
    • 第二件事花的时间最多,但是代码快写完了突然收到通知说项目取消,业务没谈成...这件事对我来说打击挺大的,至此对业务开发就产生了很多负面情绪,这也是我后来离职重新秋招的主要原因。
    • 第三件事也是挺简单的,基本上没学到什么新东西。
    • 在实习后期觉得自己做的事情技术难度不大,学不到什么新的东西;而且觉得业务开发不好,很想去做中间件或者基础设施相关的研发。在一番纠结后(大概是7月下旬)决定重新秋招。但是自己情况很差劲,一方面实习任务还是挺重的,没有时间学新的技术;另一方面春招复习的内容也忘得七七八八了。
    • 之后打算先做点新的东西,总不能跟春招一个水平吧。然后就花了两个多周(主要是晚上和周末)把RPC项目重新写了一遍(模仿着Dubbo的分层结构),最后大概有4000行左右。
    • 另外抽时间把Dubbo、RocketMQ等中间件的源码也看了一遍。
    • 之后就决心要离职了,白天也开始复习春招时候的笔记,复习了大概一周,然后就离职了。

    秋招


    秋招时候一门心思想找偏技术的方向,先是联系了一些阿里的其他部门,包括集团的中间件、蚂蚁的中间件等,外面的面的比较少,只面了PDD和网易。比较遗憾的是集团的中间件没有面过,还是自己的水平不足。其他的拿到了offer,最后是选择了蚂蚁中间件。


    建议


    • Java方向的话最好是写点有自己思考的项目,不仅限于CRUD的那种。比如我简历中写了4个项目,一个是Web项目,其他都是小轮子,大部分面试官明显都对小轮子感兴趣,对全是套路的JavaWeb项目感觉兴趣不大。
    • 简历中项目中的各个实现要尽量熟悉,如果做得时间久了,可以考虑画一个类图或者时序图来加深印象
    • 有真实的、在线上运行的、有一定用户量的项目会加分的
    • 笔试的话一定要给后面的编程题留足时间
    • 不够熟悉的技术干脆不要往简历上写,比如我会写Vue.js,但仅限于使用,而面试官一定是会问基础的,做Java的前端基础不够好的话就不要写熟悉前端了...
    • 多刷刷牛客的面经 ### 面经 这里简单的总结了一下面试过程中经常被问到的,自己记性不太好,没有在每次面试完之后记一遍问到的问题(明明是懒...
    • Java集合框架源码,几乎每个公司直接间接地都问过
    • Java并发相关的知识,源码问的较集合少一些
    • Linux常用命令,列举一些
    • 关系数据库的事务、索引、锁、范式
    • JVM, 基本都在《深入理解Java虚拟机》上
    • 基础数据结构(链表、二叉树、队列、栈)以及排序查找算法
    • TCP UDP等网络协议,OSI七层,三次握手四次挥手等
    • 设计模式
    • 项目,这部分看个人情况,你在项目上写过什么技术,面试的时候就更容易被问到,而且往往会侧重原理

    最后内推


    我们团队是蚂蚁中间件中做中间件产品化工作的,当然也负责比如监控Metrics等一些中间件,主要是做金融科技产品的对外输出,就是把支付宝积累的高并发、高可靠的中间件、PaaS等产品化,以公有云或私有云的方式对外输出。目前蚂蚁金服的一大战略就是金融科技,我们可以算得上是内部创业,未来发展前景非常好,也非常缺人。 现在我们团队需要20届的实习生,岗位有Java工程师、Go工程师等,三月份开始把简历录到系统里然后开始面试,现在就可以投起来了。


    下面是师兄发的JD,大家可以把简历发到师兄的邮箱 xiangfeng.xzc@antfin.com。


    • 加入我们,你将参与 SOFA 开源的研发,打造金融级分布式架构的体系。
    • 加入我们,你将接受到每年双十一,双十二带来的高并发的,高性能的极致性能挑战。
    • 加入我们,你将在实际生产环境中应用世界前沿的技术方向,引领未来。 岗位要求: - 酷爱着计算机以及互联网技术,热衷于解决挑战性的问题,追求极致的用户体验;
    • 痴迷于数据结构和算法,热衷于ACM,常常为看到“accept”而兴奋的手足舞蹈;
    • 至少熟悉一门计算机语言(C,C++,Java,Python,Golang,Rust),有良好和快速的学习能力。
    • 有良好的进取心和责任感,有良好的团队合作精神。
    • 有大赛获奖经验,开源项目经验者优先。 邮箱:xiangfeng.xzc@antfin.com

    觉得文章不错的欢迎关注我的WX公众号:程序员乔戈里


    我是百度后台开发工程师,哈工大计算机本硕,专注分享技术干货/编程资源/求职面试/成长感悟等,关注送3000G编程资源,免费下载CSDN资源。