从走出校门到Java实习生生活

男,95年,这个学期就大四了,非计算机专业(数字媒体)。目前在二线城市做Java实习生,待遇一般,应该算一个正常的实习生水平吧:租的一个约10平米的小单间,月房租网水电大概在1600+,每餐饭大概在15~23之间,大概这个水平,勉勉强强能养活自己。

技术的基础大概是这样,从去年4月开始学JavaWeb技术,从jsp开始一直学到Spring MVC、Mybatis这样的技术栈,中间做了几个小项目(CMS、管理系统等)。从去年10月开始转做Android了,水平也就是四大组件+蓝牙/NDK+一些库的技术以及稍微了解了一些什么事件机制、OOM优化。嗯,这样随手列出来感觉自己水平一般般,就是能做一些J2EE和Android项目的水平。

写简历

因为从 去年10月~出校门的7月 这一段时间一直在做Android开发,我自己也一度认为我出来后也只是做Android开发的,所以投了很多Android的简历,简历上除了写Android的技术,还写了一大堆的Web开发中的Spring、Mybatis上去,项目经验也是臃肿的不行,2个Web,2个Android的,看上去内容挺多的,但是两个方面的开发都不突出,于是我就想了一个策略,分简历,做一份Java简历,做一份Android简历。两者各突出其重心,投简历的时候分别投不同的岗位。大概效果可以看下面区别

Java简历

熟练Java开发,良好的代码风格以及IOC/DI、AOP、OOP、高内聚、低耦合等编程思想与设计模式

掌握Tomcat/Apache/Nginx等服务器的基本配置与使用。

掌握Spring/MyBatis/Hibernate/Spring MVC等主流后端开发框架,具备相关经验

熟悉MySQL、SqlServer、SQLite等关系型数据库的使用,熟练编写SQL语句,了解Redis缓存技术

掌握微信公众号开发技术,XML与JSON的解析技术,OAuth2.0技术等

掌握Android App开发技术

掌握HTML5/CSS3/JavaScript/jQuery等前端技术,能够编写PC/移动/响应式页面

掌握Linux的使用与常用shell脚本的编写,掌握Gradle、Maven、Git等工具使用

Android简历

熟练Java开发,良好的代码风格以及IOC/DI、AOP、OOP、高内聚、低耦合等编程思想与设计模式

熟练Android的四大组件、常用与第三方UI控件与布局的使用、了解View机制与自定义控件

了解Android IPC机制、图片缓存、NDK技术、OpenGL es、蓝牙开发技术

熟悉Android SDK的开发,了解xUtils、GreenDao、OkHttp等第三方框架的使用

掌握Spring等Java后台开发框架的使用,与Tomcat服务器的配置

熟悉MySQL、SQLite等关系型数据库的使用,熟练编写SQL语句

掌握微信公众号开发技术,XML与JSON的解析技术,Webservice、OAuth2.0技术等

掌握HTML5/CSS3/JavaScript/jQuery等前端技术,能够编写PC/移动/响应式页面

掌握Linux的使用与常用shell脚本的编写,掌握Gradle、Maven、Git等工具使用

投简历

因为在某三四线城市,当地互联网产业不是很发达,准备去网上投递一些二线城市的公司的简历,我试过的工具有51、智联、拉勾、BOSS直聘。前两个不是纯IT招聘的,上面投的全部没消息了;拉勾上投的比较多,但是最后可以说99%的简历直接被拒绝了,BOSS直聘上面的比较多,性质不同,这里比较推荐的是后面两个。

入职后,发现拉勾上的简历实在是太多了,对于“Java实习生”这个岗位来说,每天HR都能转3~8份简历到技术经理这边,平常工作时间都在敲代码,没时间看,一般都是下班前或者吃饭的时候看几个,不通过的也不和一个个的去跟HR反馈,就丢到邮箱里,所以反馈的速度比较慢的,但一般来说投了简历之后过了一周还没动静的就代表没什么希望了。

BOSS直聘这边聊天的人大多是HR,所以聊技术问题是没有用的,所以大多数都是随便聊一下,然后要简历,给技术VP看看,如果可以的话就安排你的面试时间。

做个比较来说:拉勾的一整套机制很符合公司的招聘流程,在互联网行业也是比较知名的,竞争比较大,安排面试的几率比较低。BOSS直聘这边因为招聘是通过聊天进行的,简历表现的东西有限,通过聊天的方式能快速了解一些个人经历方面的东西,还不错。另外一些大一些的公司自己公司网站上也有招聘入口也可以关注一下。

面试

坐了通宵的火车从学校来到这个城市后,刚到的第一天下午就有一个Android面试,舟车劳顿的我一晚上不仅没睡,而且不敢睡,临时安置在学长家,然后急急忙忙的搜面试资料,毕竟是第一次面试,搜资料的过程中都睡着了1次,然后中午随便找了一家店吃了点东西就去面试了。HR先拿了一张个人信息表给我填,然后找了个技术人员给我面试,记录大概如下:

1、你的项目里用到了SlidingMenu,这个Acitivity是普通的Activity吗?

不是,用的是它封装好了的Activity

2、简单的说一下你知道的设计模式

单例、builder、责任链、观察者、工厂……反正一大堆,看了一本设计模式的书,几十种想不起来了

3、那你说一下Builder模式的最广泛的应用

当然是生成对话框啦

4、Builder模式的链式有什么优点

代码更加优雅

5、除了优雅呢,还有什么优点?

呃。。。(没答上来,应该是根据实际的需求可以builder执行不同的方法,更加灵活。比如说生成的对话框有几个按钮,这些都很好控制的。虽然能理解这个,但是没有答上来)

6、同一个Acitivity中Fragment之间如何进行通信,Fragment什么时候执行getAcitivity会空指针

fragment我在项目里面都是操作同一个service,没有通信过,要我想的话应该可以先从碎片传到activity中,再传到碎片中去;第二种方法应该是可以用AIDL实现的(面试官:一般不这么弄)。

7、简单说一下你知道的有几种BlockQueue以及他们的特点

不知道(我只用过BlockQueue这个类,其他的子类没用过)

8、说一下线程池把

不知道(回去立马学了一遍)

9、说一下Android中的IOC把

是在说注解式把,我一般不用的,用注解开发降低Android运行效率,服务器端开发一般就不需要考虑这个问题

10、为什么用注解会降低效率

因为涉及到类的加载器与反射……效率比较低

11、有没有注解是不降低效率的?

ButterKnife的注解是在编译的时候生成Java文件,仅在编译时需执行,执行后就和普通代码一样了

12、OOM的解决方案?

用更小的图片、压缩图片、使用LruCache、回收。(这个答的特别烂)

水平有限,只能回答成这个样子,他问的问题也是按照我简历写的以及他们公司的项目问的,可能有些也答错了,不过半个小时的聊天和答问还是挺愉快的,技术面试应该算是通过了吧。然后HR来谈待遇,我报了个我现在(写这个文章的时候)实习的工资,她觉得有点高,说他们这边招实习生一般是给3500左右的,不过刚刚面试的人说我技术很成熟,然后要我回去听消息,他们还要对去他们公司的其他实习生面试,对比一下再决定。这是在BOSS直聘上投的,整体感觉还好,但是最后并没有要我:)。

面试这家后出门没几分钟就收到另外一家的面试电话,通知我明天上午11点到公司面试,嗯,对,这次又是Java岗位,面试完后,又回学长家开始搜Java面试题(虽然第二天一个都没问到),通宵的站票加上到处跑,实在是太困了,6点钟就睡了。第二天算好时间出发去面试,有点远,要1个多小时,结果我坐公交车坐反了!!坐反了!!坐反了!!我就说怎么就到终点站了?!!眼看着就赶不上面试了,我掏出了现代文明利器——滴滴打车,然后40分钟跨了2个区就到了。

第二次面试底气足了一点,先去做了一套Java选择题,30道,主要考的是Java 基础部分(多线程、IO、static、计算、集合、泛型)的,以及Hibernate、Spring等框架,大概弄清楚了公司用的技术,然后就开始面试了,先告诉我这笔试题错了5个,还不错。(入职之后发现很多别的来面试的错一大半,20的大有人在,我应该是得益于考了一个Oracle的Java证吧,虽然没什么用,但是的的确确是把Java基础给弄的挺牢固的)后面正式开始面试,结果因为我已经大半年没做JavaWeb开发了,一直在做Android开发,面试官要我举几个开发中碰到的难点问题,我居然一个Web开发的难点都没想起来!!光想着Android开发中碰到的NDK驱动编程与修改安卓系统触摸屏的c代码了……,硬着头皮的和面试官说了一下Android开发中的难点以及一次碰到的金融信用评分系统的软件结构设计问题,然后机智的加了一句

不管是Android开发还是Java开发,虽然他们是不同方向的开发,但是我觉得本质上都是编程的逻辑和业务思维在不同程序中的不同体现而已。

虽然公司用的Hibernate和Struts我都没学过,但是我会Spring MVC和Mybatis,有了这种编程思维从其他框架转用hibernate这些也是很快的。编程最重要的其实也不是这些框架,而是编程的逻辑和思想。

(说的好乱,乱到我自己都不知道我想表达的东西表达出来了没有)

虽然比第一次面试有底气,但是这次10分钟左右就结束了,感觉表现的没上一次的好,然后HR来和我谈待遇,说了一下我的学习经历和项目经历,然后我就把我的“创业”经历拿出来“吹”,然后说了一下自己申请到的创业基金和项目资金什么的,然后按着招聘启事上的报价说了一个价,也是感觉HR觉得我报的略高,但还是说要我回去等,一周内出结果。送我走的时候我,她突然问我要不要先参观一下公司?WHAT??这代表是要了我嘛?虽然内心很激动,但是强行装作很淡定的样子。然后我把公司三层楼参观了个遍,然后我就回来了。

那天很高兴,但是担心是不是因为报价太高了。然后问了一下群里学长,二线城市的实习工资大概什么水平?群里的学长一报价,我就觉得果然是我报价报高了……可是真的很想进今天面试公司,晚上很忐忑,想着第二天和HR询问情况提一下降个500的报价什么的,真的很希望能进那个公司。然后第二天我还再纠结投下家的简历是哪一家的时候HR就直接打电话给我说我通过了……

入职

公司用的开发环境是Ubuntu,嗯,作为一个学习Adobe全家桶的多媒体设计类的专业来说,表示根本用不习惯啊,第一天勉勉强强学了一下什么apt-get之类的命令,把STS\Tomcat\MySQL之类的软件都安装好了,第二天丢了个SSH项目给我,然后花了三天的时间把struts、Hibernate学好了,因为有基础学起来还挺快,(偷偷看imooc的视频学的,用了x2的速度)并把项目看的差不多了,这是一个小项目,大概也就8张表的大小。

第一周就这么过了,然后第二周跟我说了有好多个优化的地方要我优化一下,然后我就一个个模块的改,还有好几个SQL的优化,这个项目虽然不大,但数据量是百万级别的,然后我就打开show_sql慢慢读,发现还真有很多可以优化的地方,然后就把leader提出的问题全部弄好了。嗯,半个月的时间就这样过了,很快,也就两个星期。

第三周就安排了我和PM联系开发一个新的模块,然后给我预估2周的时间开发完,然后我就开始设计程序的流程,和PM确定好了之后,差不多3天就开发完了,就跑去和PM交付,结果测试了一下,使用这个系统的人觉得有些功能设计的不好,要变,然后就又变了需求,就开始新的需求的开发。

第四周这个功能就发布投入使用了。这个一周又接了一个微信扫码对接的接口功能,然后我又开发了2天弄好了。这个系统基本上就比之前要优化不少了。leader看安排给我的项目都做的ok,就拿公司对外的一个项目给我看,拿到SVN后,一看项目我傻眼了,我用搜索统计了一下java文件900+,数据库的表格200+张。先随便看了一下,发现看不懂,然后去看web.xml,根本就没有熟悉的spring的dispacherservlet,用了一个什么见都没见过,搜也搜不到的框架(后来阅读代码发现这个框架居然是公司自己基于Spring写的),然后硬着头皮看xml文件一点一点的看业务逻辑,最后终于看通了。

然后开始让我写一个给Ajax的接口,熟练后差不多1天就写好了,然后第二天和前端一起调试,又接了一个Ajax接口,然后第三天写接口,也写的很快,然后继续和前端调试,嗯感觉很顺利的时候就是出问题的时候,上线后的系统不正常了,因为前端写了一个input,但是没有赋值!因为这个值是后端赋的,然后我不知道应该是我来做的,上线后的系统表单不能提交,因为那个值没有获取到。产品、前端、leader都急的不行,然后我急急忙忙的fix后,新的接口和以前的一个接口在使用的时候又有Bug了,导致页面上什么数据都不显示……然后一行人又的去找问题,发现是另外一个系统的前端的问题。反正就是这类大型网站涉及到多个系统的对接,我刚入职还不了解这些接口分别对应的是什么系统,所以出了Bug,急急忙忙的一周的最后一天就这样结束了……

批评

新人入职不免被批评,虽然不愿意听,但还是要接受,leader批评的再多,也是为我好,为项目好,整理如下:

1. 在linux环境下,你必须要会用vim,不要用那个什么geditor

2. 代码缩进要对齐、对齐,等号前后的空格也很重要,你这样谁看到都烦

3. 注释要简单明了,你这注释自己读一遍试试?

4. commit代码前要检查,每一个修改的地方再看一下,show_sql这种代码还要提交到线上的服务器的吗?!

5. 获取到的值要先自己判断空指针,再使用

6. 开发使用debug模式,不要用什么start server

感受

1. 公司里的项目比在学校做的要复杂的多的多的多,学校里最多做5~8张表的项目,这里这个200个表的涉及到的业务比较宽,但是细细读下来还是能理解的,大项目和小项目都是由一个个板块堆积起来的,更多的是要一颗能静下来的心

2. IT行业加班是常态,但在我在的公司感觉氛围不是很明显,6点就可以走,但是我一般是10点回去的,毕竟没有必要回去那么早。前几周是为了加班补充知识缺陷,后几周稳定下来了就用晚上的时间做做毕业设计了,做完后就好好按15k的标准补充自己知识点

3. 出来之前以为JavaWeb就是ssh或ssm的框架写一些业务逻辑,现在看自己的知识短板真的很多。而且了解到知乎上有很多应届生把 Spring 源码什么的都弄的特别熟,而我只了解Spring的特性和API的调用,任重而道远

4. 在学校我这个非计算机专业其实我技术还算是挺好的,但在公司,不仅每个人的技术都比我好,而且其他的实习生还是纯种的软件工程或计算机专业的,Linux用的比我熟,而且专精JavaWeb开发,不像我野生生长还去学移动端和前端开发,虽然并没有坏处,但是应届生专精一块能找到更好的工作

5. 在公司低调做事,认真完成手头工作,能力范围内帮助他人

6. 人与人的差别,在八小时之外

7. 两年内不理财,用于个人提升

8. 入行后锻炼身体很重要

9. 保持长期的学习心态

时间: 2024-08-07 23:05:05

从走出校门到Java实习生生活的相关文章

----->>刚刚走出校门实习的我

到2016年11月7日我已经在企业待了2个月零7天了,现在想想时间过得真的是快啊,不知不觉2个多月也结束.从学校转变到企业是个很大的转变,不再是睡到自然醒玩到3点钟,不再是水电全免房租减半. 现在回想才会知道,学校的日子真的很幸福.确切点说是安逸!不用担心任何事情,甚至不担心自己期末会挂科,因为期末考之前突击下就OK了.不用担心会没钱花,因为我的身后永远有政府(fumu)赞助支持.总之就是什么都不用你去担心 什么都有办法来解决,日子过得是异常的安逸.实习期间的某个周末回学校看同学,晚上在原来的宿

京东Java实习生面经

先自我介绍下,国内渣本科211学校,坐标京津冀,面的北京京东JAVA研发,实习通知已经拿到.大学感觉过的挺颓废的,每天课去上,去听,回宿舍做完专业作业就开始打游戏,看视频.偶尔跟着同学做过几个项目,大三的时候好不容易拿了校的二等奖奖学金.但是平时自己对互联网这方面特别感兴趣,经常去cnbeta还有爱范儿虎嗅这类的网站逛逛,看看知乎上面的分析.所以自己觉得自己对于互联网方面还是挺有感觉的,和同学们讨论相关的新闻也说的自我感觉头头是道.大三准备开始寻找实习,虽然说北京互联网公司众多,自己在BAT和几

java实习生的成长之路<转>

java实习生的成长之路<转> 首先初识语法的阶段,必须要学会怎么操作对象,操作if和for,操作list set map,然后是线程.IO和jdbc什么的,其余的,若是一时不理解,可以后边需要时再学. 这阶段完了,你可以写些能在控制台打印出来的小程序,锻炼下逻辑思维.也就是号称JAVASE毕业了,其实不过是入门而已,如果要往WEB方向发展,这些倒是基本足够了. 接下来要学html,jsp,servlet,javascript,oracle,tomcat,目标,写出第一个动态网站,也 许只是个

2015阿里巴巴春季Java实习生面试经验

2015阿里巴巴春季Java实习生面试经验 一.笔试 大概今年四月初的时候在线进行了笔试,笔试题目都是考基础的,包括数据结构.计算机网络.操作系统.数据库原理等,Java基础的话不用说,个人建议可以去看一下<Java编程思想>这本书,这本书提到了许多细节的东西,是初学者提升Java基础的一本好书. 网上笔试不久,就收到了阿里的短信和邮件,说我通过了网上笔试和简历筛选,并叫我到网上去预约时间,我登录到网上的时候才发现,距离面试时间(5月5日~5月7日)还有差不多一个月的时间,因为我选择的面试地点

软件开发从业者如何走出自己的安逸环境[转]

过去的几个月里发生的几件事情,让给政府做软件开发的人感受到压力的陡增,一些事情让我回忆起曾经作为政府程序员的经历,以及这段经历如何变成一种一直督促我努力工作的思想动力. 我曾在某个政府部门维护过一个写于1990年代的老系统.当一个新的系统启动开发来替代部分的老系统功能时,很多的程序员对开发新系统的工作产生的严重的抵制心里.起初,我并不知道为什么他们会有这么大的反感.对这个系统维护一段时间之后,我才慢慢明白,有些程序员是专门维护系统(如crm系统),时间长达15年之久.当被邀请开发新系统时,他们对

走出寂寞,变卖所有

青山原不老,为雪白头,绿水本无忧,因风邹雨.赚钱的同时,也是魔鬼侵入的时候,一位房产老板很羡慕读书的多么纯洁,美好,走上社会,轿车,孩子有了,人已经头发秃顶,已经变成老头,过早的衰老,这是我想要的生活,上帝呀,怎么会是这样,寂寞随之而来.无奈,变卖所有,轿车豪华房产变卖了,过着乡下人的生活,简朴,远离城市的硝烟.这样才踏实 走出寂寞,变卖所有,布布扣,bubuko.com

走出浮躁的泥沼:关于技术与工作 选择与热爱

http://www.nowamagic.net/librarys/veda/detail/2339我觉得,技术与工作最理想的结合状态是,自己能学习到新的技术,这些技术也能应用到工作中:工作的内容又不那么枯燥,都那么具有挑战性. 程序员的工作首先应该是富有挑战性的 有这么一句名言: 工作,它之所以成为工作,是因为你只需要工作而不需要思考. 你也许会对这句话有异议,但是大部分人和大部分工作确实是这样的.工厂员工在流水线上机械地组装,服务员每天重复着招待客人,厨师日复一日地烹制菜肴,等等.工作,就是

没腿也要“走”出一条路来

中国青年网太原6月13日电(记者 王子瑞 王再文 通讯员 刘绍亮)从天而降的噩耗,让一个只有唯一儿子的农村家庭悲恸不已.残酷的命运让人失落.让人消沉,却不能让年轻的张鹏飞停止前行.他用无数个日日夜夜的辛勤付出告诉世人,没腿,也能“走”出一条路. 天降噩耗 让幸福家庭天塌地陷 2005年8月的夏天,太原市一家建筑工地上,打工仔张鹏飞失足从4米多高的脚手架上跌落,造成了高位截瘫.那年他21岁. 从昏迷中清醒后,张鹏飞发现自己已经躺在医院的病床上.全身像被钉子钉在地上,腰部以下没有任何知觉. 得知儿子

走出浮躁的泥沼:学会享受学习过程的乐趣 坚持做一件事,直到达到一个境界

http://www.nowamagic.net/librarys/veda/detail/2264学习是一辈子的事情,对于程序员来说更是如此,所以如果没有学会享受学习过程的乐趣,那么学习将会是你人生的一个重压. 以学习数据结构为例.大家都知道,对于程序员而言,数据结构是基础,是必须学会的课程.但是现在很多语言,细节都封装得很好,比如Java..Net.PHP,几乎都不需要你用到多少数据结构与算法的知识,以致于很多人觉得,我就不会数据结构,我还不一样好好工作吗?这就是浮躁的开始了. 的确,对大部