V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
xloger
V2EX  ›  问与答

遇到了一些糟心的事情,不知该怎么处理这份工作

  •  1
     
  •   xloger · 2019-08-05 02:33:42 +08:00 · 2805 次点击
    这是一个创建于 1946 天前的主题,其中的信息可能已经有所发展或是发生改变。

    前景提要:本人一名 3 年左右的 Android 开发,去年进了目前所在的一家小公司,老板前些日子觉得自研效率低没成果,买了份代码,交予我配置。

    老板一向自诩 20 年开发经验,今天周日,他对助理抱怨了一通我们“水平不太够,沟通能力非常差”,“别人两天能干好的东西,两周也搞不好”,“对开发这块非常不满意,本打算全部开除,念在对公司还算忠心没有下手,对工作的投入少了点什么”。

    对于他的认知我十分诧异,不知道是我瞎了还是他瞎了。下面的对接具体过程是我整理一下的这段时间经历,不感兴趣的可以跳过。

    对接具体过程

    7 月 18 日:老板购买 A 产品服务端代码。 7 月 19 日:我部署好了 A 产品后台。是 Java 实现的,没用到什么框架,后台管理页面是 JSP 做的。没有给具体的文档。搜索 ip:port 时有几十处,SDK 的 token 混杂在各个类之中没有统一管理。我只替换了 ip:port 部分,token 依旧用的是他们的。项目没有用 gradle 和 maven,我吸取教训下了个 eclipse 打开它的。按网上的说法生成 war 包部署的。 7 月 20 日-7 月 21 日:测试 Y 产品后台与整理 bug。(在此之前老板也买了一套 Y 产品的代码,是 PHP 的,自己部署失败后交予了我部署) 7 月 22 日:上午把默认的 ip:port 改成了对应域名的 80 端口(我改了 tomcat 的配置把默认的 8080 改为 80 居然没生效,然后让 80 端口转发给 8080 实现了),下午按老板的要求分析 Android 端代码质量。

    7 月 23 日-7 月 30 日:检查解决客户端和服务端存在的接口问题(我认为的真正处理我本职任务的时间段) 23 日:配合 A 产品服务端人员架设 openfire,更换极光 token 24 日:更换 Agora token 后依旧无法实现视频功能,最终证实原因为老板在 Agora 新建应用时配置设置错了。(理论上也不算配置错,Agora 有两种鉴权方式,一种是固定 token,一种是动态 token 加证书,老板配置时选了后者,该项目用的是前者。) 26 日、27 日:反馈服务端支付宝的支付参数无法正常返回。对方没有回应。(正常流程 Android 端发起支付前调用服务端获取 sign 参数,然后调用支付宝的接口,而这个是调用了服务器的接口后 200 了,但是返回内容是空)我没找到服务端生成的日志在哪,不好排查服务端的原因,就去测客户端的其他地方了。 29 日:更换短信 SDK 的 token,发现没法正确发送,询问短信方客服,他们让我们换了一个请求地址就可以了。(这时候我就开始怀疑给的源码是有问题的了)

    7 月 31 日:委托给 A 产品的技术人员搭建了,8 月 3 日他们提供了替换了我们 token 功能正常的服务端和 iOS 端代码给我们。

    本次对接的一些总结

    老板所谓的“别人两天能干好的东西,两周也搞不好”,我的计算是他们用了四天,我们用了六天。而且其中遇到的问题基本都是 A 产品自身代码存在的问题。

    比如 Android 端发起支付时有一个问题他们给的解决方案是把其中注释掉的一个代码段取消注释,然后把另一个代码段注释掉。

    iOS 端一运行就崩溃,最终解决方法是把初始化过程中的一部分代码注释掉。

    服务端的一部分接口有问题。我之前还真的以为是我部署的方式不对,后来拿到他们 8 月 3 号的代码一对比,根本就是之前的源码少了一些类。

    老板要是完全不懂技术没问题,我可以跟他解释原因,他自己分析有没有道理。可是他老喜欢不懂装懂显得自己厉害一样,觉得我们不就是搜索替换一下域名和 token 就完事了,一天就能搞定的事,上面遇到的这些问题我都跟他描述过了,阐明问题不在我们这边,得了,他现在就觉得是我们水平不够了。

    发 V2 上真正想请教的一些问题

    我是应该自己辞职还是等老板裁?

    平心而论,在这的工作体验很差(老板如果只是提要求那还好,但是他喜欢瞎 BB,反复无常,跟他解释过很多次的事他转头就忘了下次又跟你说怎么怎么)。很早我就想过离职,但是也因为是小公司,老板也不管具体技术实现,没啥历史包裹,我可以比较自由地选技术栈和尝试新东西,这也是我一直留下了的原因之一。

    不过现在的话显然是不打算继续留了,只是不知道是自己辞职还是等老板裁好,等老板裁的话总担心到时候会有很多不愉快。

    每次准备面试时,总感觉自己知识点不过扎实,有很多地方要弥补,从而不敢去面试怎么办?

    我自己整理过自己的技术栈不足,Java 的 NIO、多线程,kotlin 的泛型、协程都不太熟练。(多线程真是一个看着好像明白,Android 里运用得不是很难,但每次看到 Java 后端的面试题里出现相关的问题就有点懵的东西)

    Android 因为自己比较熟悉,感受到的不足就更多了,比如自定义 View 就不是很熟,还有 JNI,Framework 等,安全方面比如接口参数用 C 签名,同时校验 apk 的签名之类的我很想尝试一下,但是没服务端配合(小公司对代码要求没那么高,也因此果然技术水平提升还是有上限的吧)。

    然后一些 Retrofit、Glide 之类流行框架的原理我也还没去了解(疲于实现业务需求)。简单一些的比如 AsyncTask、Android 的数据库操作 API、AIDL 之类的,虽然我当时学习时明白了,但是工作中用到的比较少我差不多给忘了,要为面试准备的话我还得重新复习一遍。

    我自己也面试过别人,知道也不是要求面试者方方面面都要全答对才给过。但是我自己想准备面试的话这个度我就很迷茫,怕因为没准备好错失机会。

    而且总结项目的时候,会发现大部分还是只是实现业务需求,很少有值得我吹的实现比较精妙的地方...

    就某个岗位而言,技术栈应该是精通某个方面,还是比较全面?

    因为方方面面都粗通一些,也愿意去学,所以我在上一次找工作时就考虑过是继续做 Android 开发还是转 Java 后端。当时感觉后端对水平要求比较高比较有挑战(后来现实让我意识到了后端一样能很水,区分优劣的关键在人而不是岗位)。

    后来经历过一位前辈指点,意识到了深研某个方面才能让自己有核心竞争力,因此也确定了以后还是走 Android 的路线。但是就具体的 Android 岗位本身,像我这种 3 年左右的开发应该是应用层都粗通得差不多,市面上大部分应用层 App 的功能基本都能做。

    但是接下来,是把精力放在让代码更易维护更好管理,还是性能更优异,还是钻研特效动画用户体验,还是钻研底层了解比如音视频编解码、模块化之类的?

    我知道这些之间不是对立的,但是总有精力的侧重吧,精研某个方面会导致找工作时选择面狭窄,全方面粗通的话会导致没有核心竞争力。当然,也可能一名合格的 Android 开发应该这些都很熟悉......

    那就长远考虑,我目前应该侧重点放在某些方面的专精还是整个 Android 体系的熟悉?与之对应的,我应该找一个什么样的岗位会对我的职业发展比较好?(我因为第一份工作的一些小阴影,之后的工作都没选太大压力的,这次我考虑是不是回到一线城市找一个大公司的工作比较好)


    时光荏苒,人生无途。感觉又在一个人生的转折点徘徊迷茫了,不知未来在何方,不知旅途会怎样。也不知道过去的自己看到如近的样子会不会满意,未来的自己思索今天的决定时会不会后悔。

    我记得我找第一份工作时也上 V2 发帖求助过,十分感谢当时他们的解惑和建议,如今亦是如此,我略不太会与人表达自己的感情,给每个回帖铜币或者直白地表示感谢这些行为不怎么习惯,只能先提前对回帖的诸位表示一下感谢,你们的意见我都会认真浏览思考的,谢谢。

    15 条回复    2019-08-05 17:38:43 +08:00
    xloger
        1
    xloger  
    OP
       2019-08-05 02:34:57 +08:00
    # 一些碎碎念

    一些与主题无关的内容,不感兴趣者可以无视

    ## 给年轻的毕业生找工作的一些小建议

    目前这是我的第三份工作,因为前两份工作公司都比较靠谱让我没意识到社会的险恶。我前两份工作都是直接电话面试,面试过了后快递过去行李,然后人再去那。自己家在一个小城市,第一份工作在成都、第二份工作在福州。

    然后第三份工作时我也是这样随意,电话面试过了,对公司不是很了解问了一些问题感觉没啥毛病就直接去了。

    我找工作的时候是投的 XX 一线城市,然后这份工作的地址也显示在那,但是面试时老板说目前招人的是 XX 附近另一个城市的分公司,而且那里生活成本比较低什么的。工资标准根据能力来,刚进去不确定能不能干活只能先给个比较低的标准。公司最近在忙一个项目目前比较紧张因此是单休,也没加班费,不过等之后不忙了是能双休的。当时我觉得对我而言不是什么大问题就答应了。

    然后我问公司有多少个研发(当时我还是比较希望进一个技术氛围浓厚的公司),他言语不详地说 XX 那边的有二十多个研发吧,这边分公司刚发展,没多少人。

    嗯好的,我信了。后来才知道 XX 城市里根本没什么团队,只是他以前注册过的公司而已。整个公司也就是这么几个人。但是因为沉没成本的原因我还是留在了这里并渴望证明自己拿到他说的能力相符的工资。

    然后忙外了那个项目之后,依旧周六要上班,毕竟总是有各种事的嘛。当然,他们很友好地说你们有事的话也可以请假的,是不会扣你们工资的。因此偶尔你要回家或者出去玩什么的倒是可以双休,但也拉不下脸总这样,还是相当于单休。



    所以,我给一些社会经验不是很丰富的毕业生的建议就是:无论如何都得先实地考察一下工作环境。不要尽信老板吹的各种东西,你对他不了解,他说的很多东西你都证实不了,虽然你肯定不会真的都相信,但是一旦有万一是呢的想法那就已经中计了。没有落实的好处都是画饼,什么将来的待遇和忙这一段时间都是假的,温水煮青蛙,不要抱着给对方留下好印象的目的对这些地方不斤斤计较。



    ## 关于老板的一点吐槽

    假如一位老板不懂技术,这很正常,能理解,只要可以沟通就好。但是遇到一个自诩开发经验丰厚的老板,你在跟第三方对接的时候不仅要跟他们沟通,还要一边揣摩语气用不太尖锐的言辞拒绝老板不靠谱的建议就很心累了。



    1. 在我刚入职的时候,需要维护一个旧的项目,当时的第三方登录和短信登录都挂了,老板让我弄一个超级验证码,输入了这个之后就能跳过短信验证这个步骤。我当时解释了这种得服务器配合才行,不然即使我客户端跳过了登录页面,主页因为没法真正获取用户信息也会没法使用。他说明明可以的,iOS 端就有,你去问问。行,我就看了下客户端代码,服了,请求“短信验证”接口后,服务器会一并返回正确的验证码,然后客户端只需要假如用户输入的是比如 8888 这样的超级验证码,把刚才服务器返回的正确验证码提交给“注册”接口就好了。

    无独有偶的是,他最新买的这份 A 产品代码,也是这样实现的。你们真不怕运营起来有黑产搞你们的么......

    2. 他是说自己熟悉 PHP 后端开发的,然后之前买的 Y 产品代码,说是他搭一下后台,让我们负责客户端的就好了。然后第二天目测搭了一下没成功后,就让我去弄了。还信誓旦旦地说我已经把 XXX、XXX 弄好了,显得做了很多工作的样子,实际上就是把域名改了下解析地址到这台服务器。我一直在考虑是不是我应该直接装死说我不会,你自己看着办或者找别人来弄比较好,而不是自己去尝试一下。

    然后磕磕绊绊按 Y 产品提供的文档配置了,文档给的是用 OneinStack 搭建,然后遇到安装 phpMyAdmin 的时候访问地址提示连接被拒绝,我不太确定是什么原因,怀疑是阿里云有啥限制,就跟老板描述了一下问题,并让他看看阿里云后台是不是有啥安全限制了。然后他一顿操作后转头说给服务器安好了宝塔然后装好了一套开发环境( Mysql + phpMyAdmin + nginx 之类的),然后告诉我点宝塔的哪个页面能进 phpMyAdmin。

    我跟他讲,我对 Linux 不够熟悉,要让我弄的话我只能按照 Y 产品文档提供的方案进行,你这样贸然用了另一个一键包可能覆盖掉一些配置了,引起了未知的问题我可解决不了。然后他就说让我自己再去琢磨吧。

    然后后来我又配置了一遍,并且也发现了之前不行的原因是 OneinStack 为了安全默认只允许本地的数据库连接。然后一路配置到最后,服务器搭起来了,但是接口不正常,就是访问提示连接被拒绝。我不知道是不是数据库连接错误了,或者 Redis 连接错误了,找了一下也没有找到 PHP 输出错误的日志文件。然后使坏地想老板不是一直觉得自己很厉害么,这次到你本职地方了,看看你打算怎么做。然后跟他我服务器跑起来了,但是接口异常,应该是 PHP 代码哪里失败了,您比较熟悉 PHP,我没找到报错日志存在哪,您能不能去看看。

    好的,然后他捣鼓了一下跟我说他把宝塔里的几个东西卸掉了,让我看看怎么样了,不行就重装一下试试看。我一看服了,nginx 没了,然后关键是我后来又装了还是不行,死活不行,按网上说的方法试了还是不能恢复。

    好的,绝望的我终于打算去重装了。然后在新的系统下,按 Y 产品的文档一路顺畅,以前遇到的种种奇怪问题都没了,一下午就搭好了。(之前那个 PHP 项目提示连接被拒绝,问了下朋友,改了 PHP 一个参数输出代码报错,找到对应原因,是给的项目里一部分 runtime 文件没删掉导致的错误,删掉后就好了)

    3. 搭建这个 A 项目服务端时,他们连接数据库是访问 ip:3306 的,结果当时搭建时不能正确访问这个端口,阿里云的配置面板是开放了的,我觉得是 Linux 没有开放对应端口或者 mysql 的设置里对应用户是配置成只允许本地连接了的。当时我想着用 127.0.0.1 访问也没问题,挺好的,就改了。后来经历了一些波折最后 A 项目人员去搭建了,还是改成开放 3306 端口了。这里其实我挺想问这样不太安全,容易被爆破?

    然后运营访问宝塔的那个 phpMyAdmin 时访问不了,问 A 产品那边,他们让用 Navicat 连接,老板就问我会么,我说会,但是那个是收费的(言下之意是要不你给买个正版?或者我花点时间找个破解版。因为上个月他要求我们用公司电脑开发,我这台公司电脑还没装)。然后他说那你开个远程,我教你装个 phpstudy。我说 phpstudy 是一套 Windows 的 PHP 开发套件,而 Navicat 是一个数据库可视化操作软件。然后他说只用里面的集成工具就好了,我说那我为啥不直接装一个 Navicat 用呢?他说这个要收费啊。

    然后我就不知道说啥好了,然后他就去找运营远程控制了。然后我自己默默去装 DataGrip 以备不时之需了。我有那么一刹那还以为老板会愿意支持买个 JetBrains 全家桶的...

    4. 周日他不止数落了我们,也数落了助理,大概对话是“你知道你有一点很不好吗?老是联络不到人。做助理的,就是要 24 小时要随时可以呼。其实是所有职业都需要,这个是我建立 XX 的目的”。然后助理回了一句“ 24 小时不可能的,那是把自己卖给了公司”,老板就说“对啊,所以你水平上不来。没追求,就没办法了。就是感觉你做助理,缺了点什么”。

    在之前 996 的事情闹得沸沸扬扬的时候,他也发了条朋友圈,说他娃说那些叔叔怎么那么矫情,我们学生每天 7 10 7 都没抱怨过呢。



    ## 之前所谓的“忠心”的一个事

    在今年年初的时候,公司是和另一个实体公司 B 公司有比较深度的合作的,就是相当于我们老板也控股一部分,我们整个公司并入成为一个研发团队。

    项目快结束的时候,B 公司老板发现了个事,他需要的是我们的研发团队,而不需要我们老板。他想了一招釜底抽薪的妙计,打算把我们挖走,然后再以项目不满意为名踢开我们老板,不支付尾款。

    当时比较人心惶惶,有两个人早就跳反了,我们其他几个人都在犹豫,那边给我的待遇是涨 50%,各方面硬件条件都好些。但是总感觉良心过不去。

    后来老板与 B 公司老板面谈的时候,助理叫我一并去了(本来是后端比较熟悉项目逻辑的,但是他跳反了),B 老板各种耍赖皮不要脸还反指责我们老板是骗子,然后说要终止合作还要告他。当时我们老板一边比较无力地反驳(整个项目他是最不熟悉产品的那个,而且瞎指挥)一边喝水试图掩饰慌乱,我注意到他的手一直在颤抖。那时候我就下定决心了,不能做出这种雪花之事(雪崩时每一片雪花都觉得自己是无辜的),如果我们一并跳反了只会让老板的处境更艰难,尽管理论上我们跳槽没什么道义问题。

    然后当时就因为对早早就跳反的俩人的鄙夷和拉老板一把的心态,我们还是选择了留在这。事后跳反的一位还嘲讽着你们回去后老板有没有给你们加工资啊。

    我们选留,只求无愧于心。并不是老板有丝毫的人格魅力,没想到几个月后在他的嘴里看到忠心的话语,心里略不是滋味。
    chtan
        2
    chtan  
       2019-08-05 02:40:46 +08:00 via iPhone
    睡啦
    LxExExl
        3
    LxExExl  
       2019-08-05 02:50:04 +08:00
    工作需要职业精神 不需要忠心...
    老板天然和员工的利益就不是一致的
    如果找不到利益契合点就赶紧走人
    jeblur
        4
    jeblur  
       2019-08-05 07:25:05 +08:00 via Android
    私人老板懂点技术的都这样,我前东家就是这样,做了两个多月走了
    shuangyeying
        5
    shuangyeying  
       2019-08-05 07:50:37 +08:00
    钱没给到位,心受委屈了,两点都符合啦。
    kuyuzhiqi
        6
    kuyuzhiqi  
       2019-08-05 08:13:38 +08:00 via iPhone
    1.你们有后端为啥要你去部署,你还答应了,对你简历毫无帮助,你想全栈(干)吗?
    2.很多技术利弊和对话,用邮件或者聊天软件发出去,告知老板让他决定,日后老板问起你就给他看聊天记录
    3.跳反这件事看你怎么看,如果跳到 B 公司,不反咬原公司,只能当做跳槽
    4.选择你的同事很重要
    NerverLibis
        7
    NerverLibis  
       2019-08-05 08:49:22 +08:00 via iPhone
    @xloger 穷地方的学生是 7 10 7 的,比如河北衡水中学,一线城市下午四点放学双休,升学率全国第一了解下。
    wd
        8
    wd  
       2019-08-05 08:51:24 +08:00 via iPhone   ❤️ 1
    那句话怎么说来着,你们老板可能是 2 年开发经验用了 20 年。
    zhaishunqi
        9
    zhaishunqi  
       2019-08-05 09:13:41 +08:00
    好想看你老板怎么给自己玩死的哟~
    lkan
        10
    lkan  
       2019-08-05 09:31:34 +08:00 via iPhone
    无所谓忠不忠心,为钱干活
    virus94
        11
    virus94  
       2019-08-05 10:43:57 +08:00
    呵呵, 我之前面试,有个老板自称十几年开发经验.但是连个 JD 都写不明白,自己实际想招的是 Python,却挂着 php.哈哈哈
    maninfog
        12
    maninfog  
       2019-08-05 11:29:55 +08:00 via iPhone
    看了楼主的经历,好有意思,特别是找工作那段,电话面试直接去上班,很有魄力…
    xloger
        13
    xloger  
    OP
       2019-08-05 14:03:44 +08:00
    @kuyuzhiqi 1 楼里我提到的跳反的一个人就是后端,他走了之后老板招过一段时间人,没招到,就没继续了。然后我本身对程序的各方面都比较感兴趣,对此不是很排斥就做了。不过我也觉得这种杂活做久了对将来找工作帮助不是很大,当兴趣爱好拓展倒是没问题。
    嗯利弊理清楚发给他让他决定这种事一直在做,耐不住每次他看了就忘,反复就问,经常一个当时已经确定好的东西过几天又觉得另一个好了。我拿他以前的决定跟他说,他会承认,然后说可是我又觉得这样比较好什么的。有点责任心的人都被他气到了,一方面浪费我们研发的时间,一方面也是在浪费公司的时间。把“犹豫就会败北”贯彻得淋漓尽致。
    嗯是啊,我现在也越来越意识到了同事和公司的重要,所以下一份工作得仔细斟酌了。请问下挑选公司方面您有什么建议么?比如不挑外包公司,不选人数多少以下的公司?或者什么值得注意的点呢。

    @LxExExl @lkan
    是啊,我希望的是一种精神上的平等,你发我工资我给你做事,如果遇到了什么困难谈谈感情帮一把也没问题。但是老板一提什么忠心不忠心的我就很不是滋味了,感觉像被当条狗一样。

    @NerverLibis
    顶尖的学校师资力量太强,大部分学校还是比不了。不过我真不知道老板发这动态是真傻还是装傻,读书时拼命是为了自己,工作时义务加班是给老板修福报么?这都能混为一谈。

    @maninfog
    都是年轻不懂人心险恶,现在的我肯定不推荐别人也这样做了。当时我只顾着防止被培训班的皮包公司骗了,没想到还有那么多满嘴扯淡的老板。不过经历了这个老板倒是也体会了鸡汤百态和吹牛逼的常见套路了,自己免疫力提高了很多...
    houzhimeng
        14
    houzhimeng  
       2019-08-05 14:10:21 +08:00
    我只想说你一个安卓管什么后端部署的问题
    mikulch
        15
    mikulch  
       2019-08-05 17:38:43 +08:00
    ? 还不辞职等着回家过年?
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   909 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 22:32 · PVG 06:32 · LAX 14:32 · JFK 17:32
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.