V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
rain0002009
V2EX  ›  职场话题

一年前端经验真尴尬呀

  •  
  •   rain0002009 · 2016-08-19 14:04:47 +08:00 · 15511 次点击
    这是一个创建于 2799 天前的主题,其中的信息可能已经有所发展或是发生改变。

    部门已经接近废部了,服务端都走光了, cto 都走了,就剩我这可怜的娃找不到工作了。

    像我这种闷骚的宅男,面试真的好难:

    • 本身技术不是特别扎实,叫写个页面还行,叫我介绍什么原理就难了,面试一般都问什么原理,什么浏览器的缓存机制啊(我就知道加个版本号去掉缓存,百度了一下™有九种, ozz ),什么垃圾回收机制(这事不是浏览器干的么)
    • 一说到用了 angular ,马上就问双向数据绑定的原理(我擦,我就知道怎么用啊), angular 什么优缺点(这种东西看过就忘过啊)
    • 来,写个冒泡排序算法吧(这能百度吗)
    • 解释一下原型链吧(我就大概有那么个映像啊)
    • 你们公司最大的困境是什么(我要知道 我就进入决策层了呀,关键这公司是老板推荐的,我敢乱说话么)

    唉,一开始感觉自己还知道好多东西啊,什么 gulp , sass , coffeescript , webpack , angular 。可人家随便一问我就什么都不知道了,果然自学的很多东西就是学的不太全面也就会用的地步。

    79 条回复    2016-08-26 08:47:32 +08:00
    df4VW
        1
    df4VW  
       2016-08-19 14:15:47 +08:00   ❤️ 1
    面的这公司不行。换一家。
    lwbjing
        2
    lwbjing  
       2016-08-19 14:16:54 +08:00
    现在的公司不行啊,楼主赶紧换...
    morethansean
        3
    morethansean  
       2016-08-19 14:18:40 +08:00
    这跟一年前端经验没什么关系吧……
    morethansean
        4
    morethansean  
       2016-08-19 14:22:08 +08:00
    这些东西如果不是你主动具有的意识,思维方式、学习方法,不管多少年前端经验,多几年也不可能自己突然就顿悟了啊。

    总结起来,一是你的知识面、视野,二是你对事物研究的深度。如果你只是发现哦今天这出了一个新东西,明天那出了一个新东西,大家都在用我也跟着尝尝鲜用一下,那你连最基础的他们的异同,解决的问题都不会知道。好在你的经验还只有一年,改变一些态度,加油吧!
    zealic
        5
    zealic  
       2016-08-19 14:28:31 +08:00   ❤️ 1
    总感觉面试过楼主的样子...

    其实问这些东西的目的是想要了解你是不是『知其然而不知其所以然』,也是能分出普通和优秀的分水岭。
    所谓万变不离其宗,铁打的原理,流水的框架。

    自学很好,但是也更容易发现自己的缺陷,多补补基础,思考为什么,自上向下往底层思考,就知道为什么需要这些东西了。
    ssynhtn
        6
    ssynhtn  
       2016-08-19 14:54:04 +08:00
    一年 Android 同样尴尬, 也被问了冒泡排序
    为什么面试官这么爱冒泡排序, 问点合并排序或者快速排序也好啊
    rain0002009
        7
    rain0002009  
    OP
       2016-08-19 15:00:27 +08:00
    @morethansean 关键现在怎么找工作啊
    humgy
        8
    humgy  
       2016-08-19 15:01:10 +08:00
    @ssynhtn 冒泡最简单
    rain0002009
        9
    rain0002009  
    OP
       2016-08-19 15:01:44 +08:00
    @zealic 不会这么巧吧,如果真的面试过我,会不会很尴尬
    ssynhtn
        10
    ssynhtn  
       2016-08-19 15:14:34 +08:00
    @humgy
    selection sort 或者 insertion sort 更简单, 关键是直观
    冒泡么, 还算有点小聪明的, 不是第一时间会想到的排序方法, 更加因为性能不行, 也不是实际被应用的排序方法

    国内的人喜欢冒泡排序, 只是因为这个排序在数据结构课程中作为传统的一道菜一直都在教而已
    MIT 的算法导论就不讲冒泡排序, 斯坦福的 programming abstraction, 同样讲排序也不讲冒泡, 还特别提到了冒泡排序不值得教学, 只因为那是奥巴马记得的排序才提到的
    humgy
        11
    humgy  
       2016-08-19 15:18:44 +08:00
    @ssynhtn 国内大学还是高中课程假如有的话,肯定会提,所以由简入深吧。
    humgy
        12
    humgy  
       2016-08-19 15:19:01 +08:00
    @ssynhtn 而且你又不去国外工作
    ssynhtn
        13
    ssynhtn  
       2016-08-19 15:20:33 +08:00
    @humgy
    对一些东西有膝跳反射般的执念不是由浅入深
    再说了复杂点的东西也不见得会问
    humgy
        14
    humgy  
       2016-08-19 15:24:08 +08:00
    @ssynhtn 会不会问要针对岗位和简历,不要猜想。真 n 的人不会发愁这些问题,如果那些人看到简历体现的还要问,可以不用去了。对于无法看到的怎么做都有其道理,毕竟面试的都是人,每个人经历不同,不要乱做评价。觉得 low 可以反映我算法很牛。自然会考你相应的。
    doublleft
        15
    doublleft  
       2016-08-19 15:32:47 +08:00
    1. 关注一些类似 36kr , 19 楼,果壳什么的公众号,然后仔细看每一篇文章并熟练背诵;
    2. 找一个天使阶段却声称做什么大数据,数据仓库,云计算, O2O 的公司(尤其是 O2O );
    3. 面试和老板一见如故,满嘴都是颠覆性的商业模式,对张小龙贪嗔痴如数家珍,对 BAT 大局了如指掌;
    4. 顺利入职,和老板天天见投资人路演,穿凡客 T 恤,泡 3W 咖啡,买某某佳缘终生资深会员…
    rain0002009
        16
    rain0002009  
    OP
       2016-08-19 15:36:21 +08:00
    当面试的人问 平常都逛啥网站的时候
    说什么网站会让人觉得 不错 有见识呢
    我记得 当时我说的是本站
    mind3x
        17
    mind3x  
       2016-08-19 15:37:14 +08:00
    冒泡排序都不能手写出来的话确实很尴尬。
    rain0002009
        18
    rain0002009  
    OP
       2016-08-19 15:39:03 +08:00
    @mind3x 不会吧,告诉我 不是只有我一个人写不出来
    Light3
        19
    Light3  
       2016-08-19 15:55:38 +08:00
    冒泡排序还好吧 ..
    感觉你觉得不自信 可以看看面试题
    虽然对工作中没鸟用 面试还是有点用的
    不过 进去了以后希望你慢慢能对的起薪资就行..
    66beta
        20
    66beta  
       2016-08-19 16:04:13 +08:00
    gulp , sass , coffeescript , webpack , angular 都是工具,问这个只是希望你能快速融入公司技术框架内

    其实最有价值的还是 HTML/CSS/Javascript 玩的溜不溜
    wph95
        21
    wph95  
       2016-08-19 16:10:31 +08:00 via iPhone
    冒泡排序……
    我能说是浙江高中会考都得考…
    aussieweever
        22
    aussieweever  
       2016-08-19 16:11:55 +08:00 via Android
    冒泡算法估计是我唯一记得的算法了
    juyulin
        23
    juyulin  
       2016-08-19 16:12:36 +08:00
    看看你所不知道的 js ,高程,搞一遍
    miyan
        24
    miyan  
       2016-08-19 16:13:16 +08:00 via Android
    你可以当作家啊。语言很风趣
    rain0002009
        25
    rain0002009  
    OP
       2016-08-19 16:28:25 +08:00
    ```
    let soft = function(arr){
    let i = arr.length-1;
    while(i){
    i--;
    arr.reduce((pre,cur,index,arr1)=>{
    if(pre>cur){
    [arr1[index],arr1[index-1]]=[arr1[index-1],arr1[index]];
    return pre
    }else{
    return cur
    }
    });}
    return arr;
    };
    ```
    刚才看了一遍冒泡算法的原理然后写的冒泡算法,可惜当时想不到
    timestamp
        26
    timestamp  
       2016-08-19 16:30:58 +08:00
    这家公司不适合你,换家公司,有的连笔试都没有,只看案例
    WenJimmy
        27
    WenJimmy  
       2016-08-19 16:49:48 +08:00
    问 html5 新标签, reset css , css 某些优先级,闭包,封装,原型链,作用域, angular 指令
    问是否使用过 webpack , sass 之流,能讲解下大概原理么?是否了解 ES6 。
    构建一个项目,前端要从那些方面入手。
    这些问题我有一半是懵逼的,面试的号称做大数据公司的前端

    四线乡下前端混了伪三年,外包企业官网做太多,真是废了。

    现在准备从头学 js 理论
    yhxx
        28
    yhxx  
       2016-08-19 17:29:15 +08:00
    看到这几道题我的感觉和楼主一模一样。。。
    也就垃圾回收还能扯一扯。。。好方
    mahone3297
        29
    mahone3297  
       2016-08-19 17:35:13 +08:00
    这么一说,回家努力复习,把这些问题都搞定,下次面试不就 ok 了?
    ianva
        30
    ianva  
       2016-08-19 17:36:34 +08:00
    现在面试前端越来越觉得各种概念意义没这么大

    比如某个 css 属性,某个 html 标签的意义,因为这些东西都是很容易习得的,当然有用的点在于去了解这些东西的人会对这些概念的使用会更深刻,既然在这些概念上都会深究,其他地方也会深究,当然这东西也不绝对,不是或了解过就多了不起了所以能考察的也只有这个点

    个人更倾向于面试者整个前端的知识结构,从面试者的角度自己去列,这样一个是可以看面试者的知识结构的广度,另外也可以从面试者了解的东西上去看他认识的深度,一层层问下去,避免某个概念不了解而无法做出正确的考察,缺点是面试时间会拉长

    其实真正重要的技能是在于应对复杂的业务,对于过程,数据的抽象能力,这点上其实到是难考察,算法上是一个点,谈之前的项目设计和细节是一个点
    billlee
        31
    billlee  
       2016-08-19 19:47:41 +08:00
    @ssynhtn 现在国内也不提冒泡排序了,我上学的时候书上就没有这个。
    ByZHkc3
        32
    ByZHkc3  
       2016-08-19 20:56:51 +08:00
    慢慢来,总会遇到合适你的公司
    pathbox
        33
    pathbox  
       2016-08-19 22:31:37 +08:00
    angular 这种已经快被淘汰的东西。。。
    pathbox
        34
    pathbox  
       2016-08-19 22:33:07 +08:00
    @ssynhtn 两种原因,面试官写不出快速排序,或者是 面试官担心面试人写不出快速排序
    alihanniba
        35
    alihanniba  
       2016-08-19 22:39:03 +08:00
    突然发现我也处在楼主这个尴尬的阶段
    misaka19000
        36
    misaka19000  
       2016-08-19 23:29:20 +08:00
    冒泡排序就算当场不能写出来,原理也是应该能讲出来的
    no13bus
        37
    no13bus  
       2016-08-19 23:35:23 +08:00
    @ain0002009 我们公司正在招聘前端工程师, 有兴趣来试试吗? 世界 500 强阳光保险投资互联网金融企业--阳光互信, 公司官网 www.51huxin.com. 有兴趣的话发邮件给我即可. [email protected]
    huai
        38
    huai  
       2016-08-20 00:52:13 +08:00 via iPhone
    楼主要了多少工资 和楼主挺像的。缓存机制今天才看乐知乎得一篇文章。其他的也是耳闻 并不能说三到四。冒泡排序也忘了差不多。总觉得不用的东西很容易就被遗忘
    oa414
        39
    oa414  
       2016-08-20 03:29:41 +08:00   ❤️ 3
    随便扯扯自己的看法,权当在扯淡好了。。。

    "一年经验","三-五年经验" 和工程师的水平只是上了规模的统计下有相关性,对于个体来说,差异是很大的。 V2EX 里面应该有一些非常出色的高中生大学生,能力或许并不逊于一些有经验的工程师。

    如果基础不是很扎实,一直做业务相关的内容,经验很容易聚集在自己熟悉的工作用到的那么一小块"舒适区域"。

    平时多点好奇心,多试着去挖掘 “舒适区” 背后的东西,对一些背后的内容稍微探寻下,适当了解下常见的面试题,把它当学习的方向也好,这些面试题并不是很难。

    - 缓存。类似的 “解释一下输入网址到页面显示发生了什么”,“如何优化网站速度”,看文章,不懂的搜 Google ,维基,看懂了其实就理解了。再动动手,尝试优化下自己个人主页的速度。知乎上有一个问题 “大公司前端如何工作”,有百度的工程师写了很多,但其实就是 Rails 中 assets pipeline 的内容,如果入门 Rails 之类的框架,并且明白这些框架为什么这样做,其实能学到很多东西。
    - Angular, 双向绑定的原理网上资料不要太多,系统一点的有 《 build your own angularjs 》, Angular 1 的方方面面的实现基本都涉及了。优缺点方面关注一些 MVVM 框架论战,多看几遍,而且认真思考下,结合自己业务中做过的坑,一个地方到底那里是好的,哪里是可以改善的,就不会忘记的。而且网上有很多很 mini 的 MVVM 框架,比如 rivets , riot 这些,源码千把行,啃下来很容易。
    - 冒泡。虽然很少会自己实现算法,但这实在是太基础的东西,适当学习下基础算法和数据结构。即使写不出来,我觉得如果能写出一个“更高级的” 快速排序、归并排序;或者原理什么讲的不错,也是可以过关的。毕竟很少有公司像国外大公司非常喜欢考手写 Leetcode 这种算法题。
    - 原型链。每一本 JavaScript 的书应该都会讲到,作为前端还是应该要了解的。

    我对以上这些东西都是平时翻翻书 + 写点玩具应用 + Google 了解的。相信 LZ 也可以。如果有不当的地方权当见笑了。
    wolfan
        40
    wolfan  
       2016-08-20 06:50:14 +08:00 via Android
    个人感觉,这就是区别科班出身和野生的方式吧,反正俺就是个农民工而已,问了宝宝也是一样回答不上来,所以现在搬真.砖中,突然觉得这活计也是不错吖,感觉自己堕落了……
    shiye515
        41
    shiye515  
       2016-08-20 07:19:48 +08:00 via Android
    你这个冒泡写的也不行啊
    Shura
        42
    Shura  
       2016-08-20 08:52:40 +08:00 via Android
    @ssynhtn 手写冒泡和手写快排,我肯定选择冒泡
    gouflv
        43
    gouflv  
       2016-08-20 08:53:41 +08:00 via iPhone
    多看书能解决新手的大部分问题
    fengzixu
        44
    fengzixu  
       2016-08-20 08:59:44 +08:00   ❤️ 1
    你这叫一年经验?我看 0.1 年还差不多。在学校稍微鼓捣一下前端的应届生都要比你强。你现在没有竞争力,首先打好基础,如果你想在这条路一只走下去的话
    mdluo
        45
    mdluo  
       2016-08-20 09:10:41 +08:00
    该看的书还是要看,这些都是基础知识,比如

    1. 缓存:《 HTTP 权威指南》整整一章讲缓存。垃圾回收,这个不是搞底层的不用懂太多,但是有两种基本的方法引用计数和标记清除应该知道吧,最好还应该了解哪些语言用的是哪种

    2. 前端框架:至少应该把官方文档过一遍,文档里都会说和其他同类框架的比较,另外最好再看一本相关的书籍或者资料

    3. 排序算法:《算法》( Sedgewick )里面一章讲了常用排序算法,冒泡排序因为太差了都没讲,但是搞懂了排序的原理和复杂度分析之后也很好理解了。算法复杂度分析可以看《算法基础》,讲得很透彻易懂

    4. 原型:《你不知道的 JavaScript (上卷)》,也是整整一章讲原型,比其他书讲得都好很多

    其他的, Google 是必须的吧,科学上网要会吧。那些前端技术,只知道去看别人的博客跟着一步步去用,一遇到点问题就去查百度,文档就只看过 Getting Started ,那不叫懂,可能“了解”都算不上
    wan9
        46
    wan9  
       2016-08-20 09:31:37 +08:00
    为什么我感觉我的情况跟你差不多,也是感觉好像看了很多,但是一问又什么都不知道
    cskeleton
        47
    cskeleton  
       2016-08-20 09:54:06 +08:00
    @humgy +1 高中学 NOIP 的时候第一个讲的排序就是冒泡。
    Seita
        48
    Seita  
       2016-08-20 10:15:58 +08:00 via Android
    废部。。你可以选择成为偶像
    shyling
        49
    shyling  
       2016-08-20 10:26:30 +08:00
    @Shura 不不不,快手写个堆排序
    svenFeng
        50
    svenFeng  
       2016-08-20 10:28:14 +08:00 via Android
    @ssynhtn CLRS 有讲到冒泡吧,刷过好像,忘了是正文还是练习题了
    wshcdr
        51
    wshcdr  
       2016-08-20 10:29:11 +08:00
    冒泡已经是很不好的实现了啊
    lixile
        52
    lixile  
       2016-08-20 10:44:59 +08:00
    。咦
    我这个机械生 上的课
    冒泡也是熟悉的
    排序必讲冒泡
    rain0002009
        53
    rain0002009  
    OP
       2016-08-20 10:45:51 +08:00
    @lixile 问题是 1 年后你还记得么
    lixile
        54
    lixile  
       2016-08-20 10:50:15 +08:00
    @rain0002009
    3 年了吧 代码记不得
    思路勉强
    breeswish
        55
    breeswish  
       2016-08-20 10:56:18 +08:00
    NOIP 党表示快排是背出来的(
    smallpath
        56
    smallpath  
       2016-08-20 11:43:52 +08:00 via Android
    我一个后端都知道原型链,冒泡写不出来我觉得无所谓,知道 Array.prototype.sort 是快排就够了
    zhenghuiy
        57
    zhenghuiy  
       2016-08-20 11:46:02 +08:00 via Android
    都知道自己哪些不懂还不赶紧充电去能怪谁。学习能力就体现在这。
    xieyudi1990
        58
    xieyudi1990  
       2016-08-20 11:46:21 +08:00
    曾经学 68k 汇编时第一个程序就是冒泡,那书是本英文的。所以说非大陆不讲冒泡不对。
    Yvette
        59
    Yvette  
       2016-08-20 12:02:17 +08:00 via iPad
    自学学出技校的水平,说明学习能力不够好。什么是技校水平,就是“熟能生巧”,而不是“融会贯通”。楼主可能做到了熟能生巧,但是离面试官的要求确实差了一些。对事不对人。
    neoblackcap
        60
    neoblackcap  
       2016-08-20 12:10:10 +08:00
    不想写冒泡就可以跟面试官说能不能换一种,比如快排或者归并排序,我想面试官一般都是同意的。
    但是若是冒泡都不能做到白板 bug free ,那么你的编程能力就很成问题了。
    工作上上很多问题不是说要求你写算法,但是你必须了解背后的原理,你总不能整天写 O(n^2)的东西吧?这样对用户体验都不好。
    至于该公司的问题真的已经很前端基础了,你的问题在于自以为懂很多但是其实是写的不多以及读代码不多。前端都是没有培训的,我很少见到有学校专门讲解前端,这样说来,大家都是自学的。能填表格填一百次不代表那就是正确的做法,你手填 100 次表格,别人已经花你一次的时间写了个生成器来自动化生成内容了。
    Biwood
        61
    Biwood  
       2016-08-20 12:25:28 +08:00
    知道自己哪里不足总是好的,哪里不足补哪里,不都是这么慢慢过来的,什么样的能力做什么样的工作,只要你有自我提升的意愿
    an168bang521
        62
    an168bang521  
       2016-08-20 13:06:54 +08:00
    垃圾回收机制,把闭包相关的扯一遍,哪种闭包可以被销毁,哪种不能销毁,还有相关哪些能自动销毁,不能自动销毁的;

    冒泡排序这个好像应该会的,不会的话找相同的解决办法啊,递归会不会,扯到递归上也可以啊,只要把问题给解决了,也比没词的强

    原型,原型链, this 指向相关的,还有设计模式这些不会,就真的说不过去了;前面两个往自己熟悉的上扯还行;原型链这个理不清,感觉对不住一年经验的工龄啊;
    Bensendbs
        63
    Bensendbs  
       2016-08-20 13:44:29 +08:00
    冒泡排序应该会吧...这个没什么难度的...
    GeekGao
        64
    GeekGao  
       2016-08-20 14:05:28 +08:00
    都这么过来的,刚入门时并不知应该好好了解技术实现机制的重要性,只关注于需求的解决了(靠搜索?)。
    等入门后,要把常用的框架思考一下:
    1.有没有更好的方法来做某件事儿?
    2.既然可以这么做事儿那么框架是咋帮我实现的呢?
    3.为啥这么设计和实现,有哪些自己不知道的技巧或设计思想?
    laucher
        65
    laucher  
       2016-08-20 15:38:11 +08:00 via Android
    题主不要抱怨了,我这样刚培训出来的前端还没人要我去面试呢,虽然我简历挺诚实的,兴蜀需时,切勿惫怠。
    litpen
        66
    litpen  
       2016-08-20 16:04:14 +08:00 via Android
    他只是想知道你对技术的钻研精神有多少
    Nbsaw
        67
    Nbsaw  
       2016-08-20 17:58:36 +08:00
    冒泡不难吧
    irgil
        68
    irgil  
       2016-08-20 18:22:13 +08:00
    这个一年经验几乎是白纸一张。。。
    bojun1995
        69
    bojun1995  
       2016-08-20 18:27:53 +08:00
    为什么前端要写冒泡排序
    learnshare
        70
    learnshare  
       2016-08-20 18:38:46 +08:00
    虽然问这些东西不算过分,但大多数工作内容和职位都不会用到,所以看起来像是高端而且无用的知识。

    不过学习并掌握的话,肯定能够大幅度提高功力。
    andypinet
        71
    andypinet  
       2016-08-20 21:32:45 +08:00
    这家公司不行
    skydiver
        72
    skydiver  
       2016-08-20 21:37:30 +08:00 via iPad
    慢慢来,总会遇到适合你这个水平的烂公司的~
    SCaffrey
        73
    SCaffrey  
       2016-08-20 22:23:27 +08:00 via iPad
    @breeswish 活捉 pascal 选手 233
    breeswish
        74
    breeswish  
       2016-08-20 22:41:57 +08:00
    oukichi
        75
    oukichi  
       2016-08-21 11:08:23 +08:00
    可是我也是一年前端经验啊……这些问题我都懂 -。-
    jarlyyn
        76
    jarlyyn  
       2016-08-21 13:10:50 +08:00
    不知道楼主去面的什么职位。

    但如果 1 年前端的平均水平都是需要这样考的。

    5 年的前端,好歹得能手写出个 jquery 或者 underscore 吧?
    moranqingchen
        77
    moranqingchen  
       2016-08-21 13:33:47 +08:00
    应届生表示都懂啊 . . .
    rain0002009
        78
    rain0002009  
    OP
       2016-08-22 09:32:41 +08:00
    @oukichi 你也是自学的么
    yongSir
        79
    yongSir  
       2016-08-26 08:47:32 +08:00
    拿冒泡说事儿多好啊

    当时我面的都是
    环链表 , 动态规划

    有啥抱怨的
    大学数据结构都还给老师了
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   3426 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 35ms · UTC 00:41 · PVG 08:41 · LAX 17:41 · JFK 20:41
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.