V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
sampeng
V2EX  ›  程序员

developer工作了5年,一点想法,给应届生一些忠告。

  •  1
     
  •   sampeng · 2013-10-19 13:55:10 +08:00 · 9105 次点击
    这是一个创建于 4054 天前的主题,其中的信息可能已经有所发展或是发生改变。
    最近校招非常残酷。。面试的时候有些话想说但是不能说。所以开个帖说道说道

    先说说经历。

    其实工作了6年半。头一年做的售后,中途还做了3个月的电话销售到现在为止都一直觉得那一年的售后对我的影响多大。所以说人生的第一份工作再没用,对以后的影响也是无穷无尽的。然后去工厂打工。糊纸盒子。哦,忘了说了。我大学没读完就出来工作了,专科,当年也是好好学习天天向上的学霸,为了转本努力,学各种课外的东西。然后因为感情的事堕落下来了。。。。这个按下不表。

    糊了3个月,觉得我好歹也是个读过大学的。去糊纸盒子算什么事。然后老妈又托人给弄到医疗器械公司做电焊之类的电工。又做了3个月。摔~~~~我tmd这是混些什么啊。。。以后怎么办。我想起我5年后会是什么样子。。害怕了。。然后就跟老爸说,再养我半年。只要半年就行。

    然后就是闭关学习。完了命的学编程理论。。我这里说的是编程理论。不是如何编程。现在想想我当初的决定是多么的明智。

    接着就是工作5年咯。

    好吧。下面说说自己的想法

    首先,第一份工作非常重要,如果你认可这份工作的话。不用担心这份工作拿不到多少钱,一个人的成功或者说成功的走上社会,不是说工资拿到多少钱。我当初是混的最差的。被家人看不起,被亲戚看不起,被同学看不起。但每个成功的未来是一个一个的今天组成的。如果你的今天能够给你的未来带来帮助。做就是了。售后以及做电话销售的工作给我最大的帮助就是沟通。以及。。抗压。做程序员,尤其是天朝的程序员,不能抗压。那你就玩大了,会工作不开心。工作不开心就会引起生活的不开心。幸福感缺失。

    更多的这份工作还带来了站在对方角度考虑的能力。因为程序员每天打交道的不仅仅是代码,还有,你的同事。你的上司。你的产品。产品多坑爹的设计,你站他的角度想。其实是ok的。做就是了。这就是宿命。久而久之,你能在他想到之前你就做好了设计。产品提出来的时候,你只要稍微改动就ok了。这就是靠谱。

    所以,这两个能力缺一不可。

    其次,数学真的很重要,算法导论真的很重要,设计模式真的很重要。英语也真的很重要。他们确实很枯燥,很空洞,相信我,哪怕一个理论,你真吃透了,工作中的帮助无穷无尽。这都是万木之源泉。数学和算法导论网上众多前辈说烂了就不说了。说说设计模式吧,设计模式这个东西被很多人不耻。我前面说过,我第一件事就是学设计模式,先不管我看不看得懂代码,先把设计模式的思想吃透了。以后的工作中慢慢打磨。然后最重要的是看了一本交think in java。这都是编程思想的圣经。

    为什么说他在所有里面是最重要的。程序员,写出来的代码其实需求一致的话,思路差不太多。一眼就能看明白,这是一种能力。产品的需求能够很快的实现这也是一种能力。不害怕产品变需求就更是一种能力了。。

    包括现在,老员工也天天喷产品天天变需求。其实我很不care这个变需求的事。只要设计的好,万变不离其宗。如果每天,每一行代码,每做一个类,每做一个需求,都是站在比较高的角度去深入抽象和思考。真的变需求什么的都无所谓。随便你变。。当然,需求变到要推倒从来的。一年能发生一次了不起了。。。

    再其次要说说思想,为什么要分java开发,c开发c++开发,php开发,前端开发。这样的各种细分领域。其实我到现在的想法是程序开发,没必要分这么细,我们是程序员。not XXX程序员。当然,这是我自己的一点观点。可以不采纳。。

    为啥要这么说呢,因为php开发久了。你做做java。你会觉得你原来写的php这个语言的特性真正在哪。你的实现弱在哪,好在哪。而不是别人告诉你的,是你自己发现的。如果你做java做久了。去做c。你又能发现内存真正在内存里面是什么行为。并发时实际要考虑哪些问题。这对解决bug和设计实现,是帮助匪浅的东西。

    如果害怕拥抱新的东西,就拿开发作为赚钱工具,未尝不可。所以这一番话是说给想做好的朋友们。我自己的思路就是,什么好玩我做什么,表面上是语法差异。实际上当每一种语言进入知识体系,就会多一层对编程这一件事的深入思考。这是好事,谁知道10年or20年后会不会有新的技术出现。现在不做好准备,到时候等死么?

    最后,关于工资的事情。其实我个人不care。。我从我第一份工作的老板那听到,我招你,是要你给我产生最少400%的利润。如果你做不到,你滚蛋。你做到了。我会给你100%。正常的老板一般会这样。。这是什么意思呢?假设工资是8000,你做出了一个产品。一年的收益能到100w。这是你一个人干的?无良的老板不在我们讨论范围内,正常的公司,正常的人事部门。会比8000给你给的多。这是毋庸置疑的。

    ok,这是讨论一个人做一个产品的情况。假设是在一个团队里。产品本身的收益变化没有。也就是一个恒定值。按找上面说的理论。人事拿出来的钱也是固定的。如果收益变化产生。那工资也会上涨。但。。涨的这个人不一定是你。一定是这个团队贡献最多的。有可能是这个团队最讨好上司的。当然程序员世界可能前者更多。这就是弱肉强食。

    所以很多公司说每年固定涨多少。我个人的意见保留,从来不关心这个。原因就是上面说的这个理论。但要是努力干活,不计较得失。哪怕在这一家公司你没得到满意的报酬。不用担心,当技术成熟。换到任何一家公司,都是没问题的。但是患得患失。总觉得业界工资多少,我就应该拿多少。这其实是很扯淡的一件事。。业界那是平均水平。也就是说公司的工资体系如果正常一定是平均水平和其相似。但是不一定你是在这个平均之上。理论同上。。。
    54 条回复    1970-01-01 08:00:00 +08:00
    sampeng
        1
    sampeng  
    OP
       2013-10-19 14:00:45 +08:00   ❤️ 1
    麻烦帮忙移一下。。。发错频道了。。
    bengol
        2
    bengol  
       2013-10-19 14:41:21 +08:00 via iPad
    呵呵,给应届说这些没用
    sampeng
        3
    sampeng  
    OP
       2013-10-19 14:55:13 +08:00
    @bengol 只是校招的时候想吐槽。。没法说
    angelface
        4
    angelface  
       2013-10-19 15:13:32 +08:00
    think in java,呵呵。
    twor2
        5
    twor2  
       2013-10-19 15:24:37 +08:00
    交换的尊重,不要施舍的尊重

    工资就是一个量度
    faceair
        6
    faceair  
       2013-10-19 15:32:29 +08:00 via Android
    说得不错
    detailyang
        7
    detailyang  
       2013-10-19 15:36:45 +08:00
    听听过来人的经验 :)
    brikhoff
        8
    brikhoff  
       2013-10-19 16:05:31 +08:00
    我还好啦,一直都是做程序员,最近出了点状况,感觉有点恐慌,思考了如果不做程序员我能做什么,但我想了想我那些在国企里面等死的盆友我又感觉生活其实没有我想的那么坏
    GTim
        9
    GTim  
       2013-10-19 16:28:40 +08:00
    不错,我的第一份工作也不堪入目,但至少带我进了这个行业,从此衣食无忧
    Ricepig
        10
    Ricepig  
       2013-10-19 16:52:20 +08:00 via iPhone
    有些人毕业之后才有了第一份工作,有些人读书期间就完成了第一第二份工作的积累。
    rteta
        11
    rteta  
       2013-10-19 17:52:00 +08:00
    请问LZ 刚开始学的“编程理论”是指什么?看的是什么书?能分享下不? 我想转开发,学了几门语言,都是学完语法就完全不知道干什么了? 摔.....
    sampeng
        12
    sampeng  
    OP
       2013-10-19 17:59:21 +08:00
    @rteta think in java
    设计模式。。
    sampeng
        13
    sampeng  
    OP
       2013-10-19 18:03:51 +08:00
    @rteta 你这样最好是找份工作。。。
    rteta
        14
    rteta  
       2013-10-19 18:07:01 +08:00
    @sampeng 工作是运维 平时很闲 就想学门语言,学完不知道这鬼东西能干什么,唉,再看了
    rteta
        15
    rteta  
       2013-10-19 18:12:30 +08:00
    @sampeng 感觉很多讲python的书 都是为有“其他语言编程经验的人” 写的,我总是看到类似“在这一点上jave是如何 C++又是如何的,perl又是如何如何的,so python完胜前几者”之类 莫名其妙的东西 大意就是这样,,我想我需要一本从前端到后台从HTML开始,从头开始介绍 web项目的书, 一直没找到,我总是感觉没有办法把后台和前端和用户看到的实际网站效果联系起来, 我也描述不清楚, 算了,慢慢学,也许是我太急躁了。
    sgissb1
        16
    sgissb1  
       2013-10-19 18:25:57 +08:00
    有些事情不同的角度理解不同,而且有些事只可意会不可言传的,和谈恋爱差不多的。

    所以我一直在和别人说,有些是只可意会不可言传,说出来很难被接受的。
    sampeng
        17
    sampeng  
    OP
       2013-10-19 18:36:53 +08:00
    @rteta 说的就是这个道理。关键是思想。。其实从头开始介绍web项目的书没有太大用。扔项目里。1个月什么都会了
    hewwcn
        18
    hewwcn  
       2013-10-19 18:45:28 +08:00
    @sampeng 是thinking in java。被4L呵呵了还没感觉出来
    sampeng
        19
    sampeng  
    OP
       2013-10-19 18:55:10 +08:00
    @hewwcn 不要在乎那些细节。。
    viator42
        20
    viator42  
       2013-10-19 19:21:15 +08:00
    到底是先考虑好做什么再去学对应的语言还是先学语言再考虑做什么,一直在纠结这个问题。
    mr_nop
        21
    mr_nop  
       2013-10-19 20:39:55 +08:00
    应届生通常不能明白这些,等他们能明白时,他们也工作了一些时间了。
    davansy
        22
    davansy  
       2013-10-19 20:59:25 +08:00
    楼主我们的遭遇差不多啊!看到你这篇文章感触挺深得,差不多同际遇的人,总会有那么一点倾肠相倒的感觉。
    我工作三年有余,大专毕业。当年高考语文作文跑偏,语文只赏了80分,高考总分过省内二本线30来分。高考填志愿,又跑偏,差1分录取。在家郁闷了几个月,后来9月份的时候最后一次补录,草草填了个打着地址是北京的专科学校。这实在是坑爹,坑大爷,天坑!学校不是北京的,是北京东边的!当时的心情是 去你大爷的,然后千万个草泥马 在心中火辣辣的奔腾。
    在学校,一混,二年半过去了。大家都开始找工作,面对之前去配电所参观学习,站在好几万千伏的高压电线下我都会担心是不是会被吸上去的经历,我对本专业的就业实在提不起兴趣。本专业之于我,如中年大妈之于18岁男青年!我对本专业就业不感兴趣的还有另外一个原因,专业实在太烂,还不如自己看闲书学的前端方面的东西。最后,我一份本专业相关的都没投,猛的扎进了一家小互联网公司,开始了码农生涯。
    一非计算机专业,打了点鸡血的前端愣头青,当时对什么设计模式,什么算法导论,什么数据挖掘,感觉陌生而遥远。自然就把何时弄明白这些东西 同 何时弄明白宇宙大爆炸 归到了一类。几个月过去了,情况有所改变,觉得前者要 比 弄清楚宇宙大爆炸要紧急。于是花钱买了本《javascript 设计模式》开始慢慢啃。从那时起,开始旁敲侧击接触到设计模式,在写代码的时候也开始注重代码的组织和结构。在第一家公司写css,html,javascript 写了半年,觉得自己提高不少(当时公司无特别厉害的高手,这里也有自信心过于膨胀因素)想找个更好的平台练练,于是就到了现在的公司。
    在目前的公司一干,两年半过去了,从最开始只干前端到现在后端。这是一条不归路!以前干前端的时候不觉得 自己当时没有了解的东西是自己工作上的瓶颈。到后端之后完全不一样了,需要了解很多计算机基础,和理论方面的东西。至少了解了这些东西,才更像一个后端码农,更合格的后端码农!
    livemighty
        23
    livemighty  
       2013-10-19 22:03:41 +08:00   ❤️ 3
    找工作快一个月了,也来吐个槽。
    楼主说英语重要,设计模式重要,算法重要,请问在你面试的时候,什么时候考过非历年面试题的设计模式?什么时候考过非历年面试题的算法?《算法导论》很重要?为什么总是来回考《编程之美》上面那几题?英语很重要?开玩笑,现在研发什么时候考过英语?
    你们说很重要的,都是假的,对于你们,真正重要的,是历年面试题,是《编程之美》上面那几道被应届生死记硬背的题目。
    技术很重要?非历年面试题上面的东西我和面试官扯聊一下就知道他根本不关心不了解了。
    面了快一个月,只有两个面试官真正让我佩服。其他只会扯历年面试题的,我也就呵呵了。
    slimbloody
        24
    slimbloody  
       2013-10-19 22:25:42 +08:00
    数学很重要。。。哪些数学很重要?应用范围在哪里?
    Keinez
        25
    Keinez  
       2013-10-19 22:37:10 +08:00 via Android
    好,作为一个做设计的,表示参透多领域的知识非常重要,进入一个新的领域,就能理解之前所不能理解的难点和疑问。

    感觉楼主谈编程思维和设计模式,其实是谈解决问题的方法和思路,这一点和成熟的设计师并无区别。
    ms2008
        26
    ms2008  
       2013-10-19 22:59:21 +08:00
    A:什么样的工作算是有意义的?
    B:80%打杂之外再掺杂20%更有意义的任务。
    sampeng
        27
    sampeng  
    OP
       2013-10-19 23:09:51 +08:00
    @slimbloody 算法的基础是数学。需求和代码的逻辑性是数学。。无处不在。就看你怎么想
    sampeng
        28
    sampeng  
    OP
       2013-10-19 23:12:11 +08:00
    @slimbloody 不是说数学重要就是用公式。。那尼玛是天朝式教育。。。关键是解决问题的逻辑性。。。我数学全忘完了。。大学也没学。。。正在自补充中。。。
    sampeng
        29
    sampeng  
    OP
       2013-10-19 23:12:26 +08:00
    @davansy 就是这么个节奏。。。
    sampeng
        30
    sampeng  
    OP
       2013-10-19 23:13:23 +08:00
    @Keinez 就是这个意思。。。不要以码农自居。。而是~~~设计师。用26个字母完成任务。。没有比这个更神奇的事情了
    sampeng
        31
    sampeng  
    OP
       2013-10-19 23:13:49 +08:00
    @ms2008 不是这样的。。是自己觉得开心。就是有意义的事
    thfurior
        32
    thfurior  
       2013-10-20 00:01:23 +08:00
    马上找工作了,谢谢楼主的经验
    vincent1q84
        33
    vincent1q84  
       2013-10-20 00:46:59 +08:00
    @brikhoff 我也是,想想那些下了班需要经常喝酒应酬的朋友,觉得现在走的路也没那么坏。
    reiayanami
        34
    reiayanami  
       2013-10-20 02:37:09 +08:00
    你这样的帖子多少有点打击那些第一份工作找错了的人,而且其实出路很多的,很多人其实不是很适合这个方向。
    monkeylyf
        35
    monkeylyf  
       2013-10-20 03:32:17 +08:00
    经验让人谨慎
    sdpfoue
        36
    sdpfoue  
       2013-10-20 12:11:34 +08:00
    呵呵
    pycq2002
        37
    pycq2002  
       2013-10-20 12:44:21 +08:00
    @livemighty 真的是同感,大多数面试公司的题目我感觉都差不多,而且网上一找都能找到答案,我就在想能通过这些面试的人估计很多都是之前背过很多面经的,我觉得真是很无聊。
    sampeng
        38
    sampeng  
    OP
       2013-10-20 14:55:02 +08:00   ❤️ 1
    @reiayanami no,不是这样的。。是在做第一份工作的时候觉得这份工作真烂。其实。。。他真不像想象中那么差。。。只是不知道而已
    reiayanami
        39
    reiayanami  
       2013-10-20 15:27:28 +08:00
    @sampeng 我的意思是说如果遇到真的很烂的,真的就是选错了职业的,对这些人而言似乎没给出什么出路。
    sampeng
        40
    sampeng  
    OP
       2013-10-20 15:33:11 +08:00
    @reiayanami 职业可以错,想法不能错。其实到现在我的看法是,任何工作都会对未来的理想工作有所帮助。你明明知道那是个坑,你还想在坑里面呆一辈子。。那怪得了谁。。。
    bigcoffee
        41
    bigcoffee  
       2013-10-20 17:21:59 +08:00
    可以恭喜楼主开窍了吗?阿弥陀佛。
    LuciusChen
        42
    LuciusChen  
       2013-10-20 18:33:58 +08:00
    想弄前端开发,可是不知道从何处着手啊。。。
    hourui
        43
    hourui  
       2013-10-20 19:01:54 +08:00
    共鸣+1
    Edward
        44
    Edward  
       2013-10-20 21:01:19 +08:00
    恩,这个和应届生感觉确实没啥用,不过确实有些共鸣。。。

    楼上有很多说数学感觉不出什么用来,极端的说,如果自己的数学综合水准只有小学水平,那写出来的代码绝对和系统学习过高等数学系列(不限于高数、高代、概率、离散等)的人差距极大,单从计算从1加到100就能看得出来。计算机本质是数学,于是如果数学学得好,基本上都可以搞计算机,而且可以搞得风生水起,我叔叔搞化学的,现在早不搞化学了,自己写 APP,据说月入5W人民币(我觉得是吹牛),可见这个和自己原来是什么专业没啥关系。

    英语学习确实相当关键,天朝计算机水准不高,很多东西都需要去阅读国外的文档,甚至论文,这时候如果英语不扎实,就会搞得很累。

    学东西确实不能只学一种。语言能不能各种学,我觉得这个问题可以开场辩论会了,这其中有一个度,要明白自己想要什么,不然就会迷茫。各种学最终意义在于让自己能在自己所折腾的领域有所建树。

    至于前端,还是要提高一下自己的审美能力,多看美女据说可以提高自己的审美能力。。。

    至于面试考什么,能不能面上,那是求生基础,这里讨论是如何生活得更好。。。
    vicence
        45
    vicence  
       2013-10-20 21:51:31 +08:00
    @sampeng 求推荐编程理论相关书籍
    sampeng
        46
    sampeng  
    OP
       2013-10-20 22:03:48 +08:00
    @vicence 网上有无数的。。。。
    chemzqm
        47
    chemzqm  
       2013-10-21 03:29:59 +08:00
    做了4年的前端也给大伙几点建议:
    1. 不要指望靠项目能涨多少经验,要下大功夫学好基础知识(包括英语,底层的API,JS/css/html特性),最简单的办法就是把MDN上的文档都好好研究研究。
    2. 不要觉得会个xx框架自己就有多厉害,平均6个月淘汰一轮,而且找工作也会受很大限制。
    3. 写代码相对于设计优秀结构和调试代码要简单的多,光写的快只能算码农。设计出简单的结构,写出可维护代码才是真正有价值的程序员。
    4. 最好的学习方法是研究真正优秀的代码,而不是去跟风什么时髦框架。
    5. 善于利用各种工具可以帮你事半功倍,例如:nodejs、vim、shell脚本。
    6. 不是很兴趣的话没有必要太纠结算法以及底层的东西,除非你的工作涉及图形学,否则不大可能用得上。

    顺带帮公司招收优秀的前端人才,我们基本不考虑IE。
    chemzqm
        48
    chemzqm  
       2013-10-21 03:36:46 +08:00
    最重要的是要知道你的价值不是由HR或者面试官决定的(有的人习惯于通过打击别人来自我感觉良好),每天问问你自己做了那么多到底进步了多少,还是说仅仅只是为了应付工作
    breeswish
        49
    breeswish  
       2013-10-21 07:50:52 +08:00
    jimrok
        50
    jimrok  
       2013-10-21 10:31:07 +08:00
    如果真像你说的是程序员,不是xx程序员,建议你去试试ruby,这个更有意思。
    tioover
        51
    tioover  
       2013-10-21 11:38:04 +08:00 via Android
    大专新生路过
    ChiangDi
        52
    ChiangDi  
       2013-10-21 23:07:50 +08:00
    我刚上大二,每天都在看算法书学语言写程序,看看你的忠告觉得好复杂的样子
    bluntblade
        53
    bluntblade  
       2013-10-22 10:15:19 +08:00
    设计模式并不如想象中那么重要。
    sampeng
        54
    sampeng  
    OP
       2013-10-26 19:26:04 +08:00
    @bluntblade 设计模式本身不重要。重要的是培养一种抽象能力
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   901 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 21:06 · PVG 05:06 · LAX 13:06 · JFK 16:06
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.