码农感叹,三年白混了!

虎三儿 2014-09-12 11:19:42
近两天,感觉现在的工作干得不是很爽,于是就请假出去面试了几家企业,有一家是我本人觉得最有把握也是最喜欢的公司,但是结果却让我吃惊。当然也是正是由于这次经历,才有了我在这里的吐槽。发这个帖子主要就是想用自己的亲身经历来个自己来个重新的审视,也给朋友们一个拍砖吐槽的机会,博得大家一乐。

本人2011年毕业,至今混了三年,虽然在开始的阶段有过一段打酱油的机会,但是出于“资历”的考虑,我还是在自己的简历上写上从毕业就开始了工作。三年,对于以个码农来说却是是一个分水岭,因为三年以下的同行,估计面试都会让你去做笔试题,然后面试官拿着你的笔试成绩在你面前不停的翻动,然后让你开始自我介绍,.....,其间,你也许就会看到自己做的题的成绩,也许很好,也许很惨,如果很惨,在最后的阶段问你你的薪资待遇的时候,也许你就不会那么有底气了,我想大概面试官也有这个意思,所以会在你面试过程中“故意”让你看到自己的答卷吧,呵呵。

既然混了三年,有了不用做面试题的待遇,那就开始正是的面试吧。第一轮的面试,不知道是自己的信心十足还是运气太好,面试官问的关于java的一些问题都是平时在工作中会常常处理的或者是平时有过积累的东西,比如java中对象在内存中如何存放的?final修饰的对象不能被重新复制在它修饰的是一个类的时候如何解释?java中equels和hashcode方法重写的意义是什么......大家看到这,是不是感觉这个面试也没有什么太大的稀奇呢?确实,对于编程老手或者是“面霸”而言,这些都是小菜,所以第一关下来,大家都笑呵呵的过去了,甚至还提到了直接找人事详谈除了工资之外的细节问题(期望薪资已经得到了他的同意)。我感觉自己貌似应该考虑从正在做的企业离职的事宜,于是这一天过得很开心。

第二天从人事面试结束之后又被要求再去面试一次,于是我去了,我觉得这次应该是找我谈谈目前项目的事情,结果是让我分析一个简单的网页设计的功能,我在下面会描述一下这个简单的东西,对于我的表现,希望大家不要笑掉大牙。

题目:
用html将这个登陆界面的代码写出来,我的答题是这样的:
<html>
<head>
</head>
<body>
<form method="">
<input type="text" name="用户名:">
<input type="password" name="密码">
<input type="submit" name="登陆:">
<input type="reset" name="重置:">
</form>
</body>
</html>
说实话,我确实是很久没写html代码了,三年多时间里除了刚开始的时候写过,之后就很少接触这个东西,当时也不知道是原因造成自己就这样答题了,下面是我和面试官的对话,M代表面试官,I代表我。
M:method这个东西是拿来干嘛的?
I:好像是跳转的url的
M:那action是干什么的?
I:哦,不好意思,我很久没写html代码了,这个我搞混了,method是请求方式,action才是跳转的url的
M:指定name是让界面显示”用户名:“这样的东西的吗?
I:input的value表示标签的值,那么name应该是表示现实的标签吧。
M:那你觉得name和id有什么区别呢?
I:dom可以通过id也可以通过name获取觉得dom节点元素,但是name可以相同,id通常唯一标示一个控件,所以取dom节点通 常使用id而不是name,当然name也可以。
M:好吧。那我们在来看看你对这个登录的校验如何实现吧,现在我把参数都给你,数据库表建好了,数据库连接给你了,需要你对这个登录做一个后台的验证,你如何实现,一边写SQL一边给我讲解下吧。表名称叫user,只有两个字段:name,password.
I:第一步先校验输入的用户名在数据库中是否存在:select count(1) from user where name='????';
如果第一步过了那么进行password的校验:select password from user where name ='???';
M:登录这东西你做过吗?
I:项目中登录这个东西我还真没做过,只是在学校的时候常常用它来做实验。
M:但是这个项目中存在的话,总的有人来做吧。我想问你,为什么你做一个校验要查两次数据库呢?用一次不就行了?
I:我只是希望通过两次校验得到登录失败的信息提示更明确....(打断了我)
M:用一次不也可以实现吗?
I:(这时候想起了自己写的html代码的严重问题,完全慌了,似乎都没有听到他说什么)啊?
M:就用你第二个sql:select password from user where name ='???';如果没有用户名,那么查出来的数据是空的,对吗?
I:是的(这时候想到自己连html界面都不会画,昨天的大好前程应该是没有了,继续慌张)
M:如果用户名存在,查出来的password和输入的匹配不就可以判断得到的密码对不对嘛?
I:.....(这是想到自己不仅没有写出界面还后台简单的校验也出问题了,更加慌张)
M:我们公司对人员的需求很大,但是我希望找到的是扎实基础的员工,经验谁都可以混,但是基础不是混出来的,我想我们只能以后再合作了.....
I:(完全沉浸在被打击的思考中),哦....好吧.....多谢.....

面试结束,一个简单的登录打败了这个”有三年经验的码农“。

其实好不夸张的说,在项目中,我也算是能挡一面的码农了,但是在这个最简单不过的登录页面和校验上败下阵来,估计大家都认为我的水分很多吧,我承认我有水分,但是我的水分不至于这么多吧?离开面试场地,我深深的思考了下,我觉得这轮面试败在两个方面:一.认为面试十拿九稳,基本没问题,太过于轻敌。二.工作中对重点的关注严重偏移:一般的面试官问道的一些问题都是通过你的经验来的,三年,他会问他认为你三年应该会的东西,基本都会忽略类似这种登录校验问题,因为这个太基础了,根本就不会拿出来作为面试题。但是今天我居然遇到一个如此不同寻常的面试官,我不得不佩服,我被如此基础的东西打败,我也无话可说,一个人经历的任何事情和自己都是有关联的,所以,面试失败只能有一个原因:太菜!

我觉得我这辈子也不会忘记这次面试经历,这也给了我一个启示,有良好的基础才能爬的更高,基础不牢靠,”高“得并不稳固!

最后我用他和我qq交流的一段话来结束这个帖子吧:
能从失败中总结经验,已经有了很大收获,现在开源的框架很多,我们是站在巨人的肩膀上,但是不要忽略了巨人怎么成长的,基础很重要!

...全文
19278 102 打赏 收藏 转发到动态 举报
写回复
用AI写文章
102 条回复
切换为时间正序
请发表友善的回复…
发表回复
baidanvip 2015-05-19
  • 打赏
  • 举报
回复
引用 49 楼 hhh350491385 的回复:
这个很正常,我说一个题,这个题有几千人看过,并且有几十个人点赞的题,那就是java中的+和StringBuilder.append()或者StringBuffer那个性能更好呢,大家都可以说说
这个问题: 首先是要区别他们两个: StringBuffer是线程安全的 StringBuilder是线程不安全的 很明显,StringBuffer的系统开销要大,所以如果我们只有一个单线程,考虑速度的话,StringBuilder更好。
JADP 2015-05-11
  • 打赏
  • 举报
回复
三年经验,登录都不会?谁敢要
坏坏DE超 2015-05-11
  • 打赏
  • 举报
回复
基础很重要啊。。。
eternal403 2015-05-11
  • 打赏
  • 举报
回复
这个的确是非常非常基础的东西了,注意基础还是很重要。我面试的时候,如果是招一般的开发人员,从来不会到网上去找面试题,都是问一些开发中基础常用的东西,发现会刷掉一大批只会背面试题的。当然招要求比较高的岗位就另说了。
猪头十二 2015-05-11
  • 打赏
  • 举报
回复
工作6年了 想了想也写不出来。。。
  • 打赏
  • 举报
回复
记忆深刻 想当年刚毕业 曾经栽倒在这个sql登录上面
ZhuoJieTech 2015-05-11
  • 打赏
  • 举报
回复
写代码之前还是要认真思考,不能不思考立马开始写,然后开始反反复复的测试修改。 不过是什么功能,都是要这样。想清楚了再开始。 面试官明显是给你一个陷阱,让你往里跳。
voiceofme 2015-05-10
  • 打赏
  • 举报
回复
哎~ 哪行都不容易
  • 打赏
  • 举报
回复
学习了 经验 谢谢楼周
dxqrr 2015-05-09
  • 打赏
  • 举报
回复
littleyanger 2015-05-09
  • 打赏
  • 举报
回复
说的是我三年后的酱紫... 我要去撸一把,丫丫jing...
会开花的树- 2015-05-09
  • 打赏
  • 举报
回复
先把匹配用户名再匹配密码,可以防止sql注入·······楼主是对的·····
oldmtn 2015-05-08
  • 打赏
  • 举报
回复
引用 40 楼 Explorer_day 的回复:
[quote=引用 37 楼 zjweiren 的回复:] 即使通过了应聘又能怎么样?还不是替人打工?程序员的出路还是利用自己的编程特长来创业吧,你可以看看这本书 《程序员接单宝典-第二版》,上面讲了很多外包的经验。这本书在CSDN上可以下载的,链接地址 http://download.csdn.net/detail/zjroland/8459335,记得给我分哦。
“How(怎么) old(老) are(是) you(你)?”几个帖子都看见你发布这个文档。[/quote] 不要理那人,他发广告的。。
文和8866 2015-05-08
  • 打赏
  • 举报
回复
引用 8 楼 ch2022 的回复:
让做java开发,搞这些入门前端,不合适。
还行应该注重前端的
flyhung 2015-05-08
  • 打赏
  • 举报
回复
好险,我现在就是站在巨人的肩膀上~~~
niejan 2015-05-08
  • 打赏
  • 举报
回复
楼主真得加油
业余草 2015-05-08
  • 打赏
  • 举报
回复
说实话,我现在很基础的东西都答不上来了。只会编码,只会跟着逻辑走了。
qq_28036189 2015-05-08
  • 打赏
  • 举报
回复
我也是醉了…………
shy13078 2015-05-08
  • 打赏
  • 举报
回复
2年工作经验 java 最凄惨面试:本次也是第一次面试,5分钟走人。 最全面面试:面试过 html,js,jquery等前端技术+服务端的框架理论,技术点+数据库+文件处理等等 20多个问题 用时3小时,有5题这样没答上了,最终HR压你 几百块。呵呵! 建议面试前多总结一下自己做过的项目,这样才能够在口头上有较好的表达方式。 记住找公司是一种双向选择,而不是公司在挑你。
liulu3 2015-05-08
  • 打赏
  • 举报
回复
唉,留个名,表示来过、
加载更多回复(81)

2,099

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 非技术区
社区管理员
  • 非技术区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧