V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
gricn
V2EX  ›  学点什么

计算机专业弱校,一个普通学生开发项目时遇到的困难

  •  
  •   gricn · 2020-04-29 00:25:26 +08:00 · 4960 次点击
    这是一个创建于 515 天前的主题,其中的信息可能已经有所发展或是发生改变。

    目前大二下,由于我目前所在大学学校并不是工科学校,甚至跟计算机等前沿领域牛头不对马嘴。目前楼主也不是在计算机专业或者是相关大类,如果涉及计算机的教学难度的话,估计专业学科等级只有 C 吧,学起来很痛苦。学校计算机相关老师只有硕士文凭,技术方面问题基本不会,纷纷写论文,但学术上很一般,有发现老师发布的知网论文图片一字不改照抄美国某大学论文。

    目前帮一位老师做微信小程序,2 月初开始开发,原本 3 月中旬要发布的小程序拖延到现在。具体原因包括:

    1. **开发伙伴代码质量很差。**另一个一起开发的同学不会用 Git,也因网络限制问题没法上 GitHub 。中间沟通以及微信传送文件花费很多时间。也正是因为不会用 Git,代码质量非常差,每次发过来的代码超过六成都得重写一遍。(花了大半天时间把他原来一个 2000+行不停复制粘贴的 wxml 代码改成了 100+行)

    2. **我的基础也很差。**上过学校的玩具版 C 、JAVA 后,其他课基本都翘课自学了。老师上课 C 语言完全没谈指针,JAVA 老师用 Eclipse 敲代码速度像打字初学者一般,而且英文单词都经常拼错。甚至花了很多精力在 GUI Swing 部分……为了赶这个项目,我也花了很多精力,奈何基础太差,刚开始连 LEMP / LAMP 都没听过。连后端用的 Node.JS 也是网上搜才找出来的。前期 Linux 学习也花费了很多时间。

    3. **没有人帮忙。**之前 GET/POST 开发出现问题,找高一届计算机能力比较强的两个学长学姐问,都说不知道。老师更别说了,大多是写论文的能手。服务器购买选择、备案,开发过程中每一个 bug 都是自己 Google / StackOverflow 或者摸石头过河这样走来的,花费的时间非常多。如:如何在后台一直跑 Node.js 这个小问题,竟然花了半天时间; Node.js 如何将第一次网络请求获得的数据及时第二次请求(其实用 fetch 就行),但这个我花了一整天;数据库方面因为开放了安全组+权限没设置好,还被疯狂攻击当傀儡机,只能去阿里云那关机,然后半夜起来解决 bug 。

    4. **前期开发还想高大上。**Docker 、CircleCI 等都花了两三天甚至更多的时间,后面认清现实后 Cut 掉了。


    现在微信小程序的进度是:

    • 后端:Node.JS(Express.JS) + node-postgres + postgresql + Nginx,开着 PM2 一直在服务器 Ubuntu 上跑着。
    • 前端(小程序):这部分估计也就七八成进度吧,且性能方面非常差,估计还得花很长时间。

    和老师聊天过程中,老师因为我严重超时非常嫌弃;同时,我每天翘在线上课写代码;但同时,进度很慢,经常一个问题就得耗费半天时间,且每天都非常累。

    通过这段时间学习的确成长了很多,但一方面项目不能及时完成+本学期其实学校开了两门和计算机相关的重要课程自己也想好好学,所以最近非常焦虑。不知道这是不是瓶颈吧。不知道各位小伙伴能否提供一些建议呢。

    第 1 条附言  ·  2020-04-30 00:28:40 +08:00
    感谢各位回复,v1.0 已经做出来了,接下来好好学习专业课,尽量秋季参加比赛和同伴 pk 一下,看看自己的实力。
    第 2 条附言  ·  2020-04-30 09:08:45 +08:00
    在刚写回答的时候,其实有点 pessimistic 。身边的老师和同学其实也很优秀,论文肯定还是我学校老师更厉害,都是计算机 /师范类硕士起步,也有 CS 博;这次合作的小伙伴提交的两次代码其实进步也很大,但他毕竟不走 cs 路,能写成这样也已经很棒了。

    任何时候都坚持下去吧,只要熬过来一切都会好的~~
    28 条回复    2020-05-02 18:48:29 +08:00
    Pyjamas
        1
    Pyjamas   2020-04-29 00:29:09 +08:00
    放弃幻想,全都自己干,能一个人组队就一个人
    WolfIsMyName
        2
    WolfIsMyName   2020-04-29 00:34:46 +08:00 via Android
    大学真的一个人一组会省很多事
    fishCatcher
        3
    fishCatcher   2020-04-29 00:40:25 +08:00 via iPhone
    不瞒你说,我在计算机评分 A-的某中流 985,很多本科生和甚至研究生的水平也是这样的,只会死背课本,平时实验都是复制粘贴互相抄,毕业都不会写代码,工作只能找一些面试不考编程的公司。老师也只顾论文,瞧不起做开发的。
    Lonely
        4
    Lonely   2020-04-29 01:11:42 +08:00 via iPhone
    没有金刚钻就别揽瓷器活。github 不能用的话可以用国内的托管平台。
    Mithril
        5
    Mithril   2020-04-29 01:17:39 +08:00
    建议放弃。
    虽说你觉得自己学了不少东西,但是为此放弃学业非常不值。
    如何搭建并维护服务器,做个简单的全栈开发并不是非常难。只是因为没人带你需要自己花时间摸索。这些你以后工作了有大把的时间和机会去搞明白。
    但是你现在放弃的专业课,可能你以后都不会有机会去认真学了。
    CEBBCAT
        6
    CEBBCAT   2020-04-29 01:23:04 +08:00 via Android
    首先要解决老师嫌弃你的问题。锅不能咱背着,不然自己很可能因为这个以后大学生活受阻。

    关于建议,其实你忘了把你的问题清晰地列出来。

    开发上,要记得时刻保持跟各方的沟通,即使是自己闯了祸,或者有严重延期,也要硬着头皮说出来,不然到时候别人满心欢喜找你验收,后患更大。

    关于个人的技术成长,我也有点纳闷自己是怎么一步步成长起来的,似乎觉得哪里都没好好学,但现在也是同学中比较出众的了。但是,我觉得如果你跟着一些比较好的书籍或在线文档、博客、视频学下来一两门技术或完整项目应该是可以取得比较大的收益的。保持 Google 不要丢,另外时间允许的话可以看见不懂的名词就去 Google,这样可以扩大知识面(但很浪费时间)

    看到你的文字,我似乎看到了当年的自己,老师消息比较闭塞,不仅身边没有,往上找学长也没有比较拔尖的。(但说真的我怎么觉得你说得你老师一无是处……我老师里有的还是有两把刷子的)

    如果你觉得这是瓶颈的话,那我想这是一个上升受阻的瓶颈,你找不到更好的学习资源可以借用、借鉴
    Zheming
        7
    Zheming   2020-04-29 01:31:03 +08:00 via iPhone
    无限递归学习极其影响心情和自信心,能做这么多依然很可以了。
    lights
        8
    lights   2020-04-29 02:25:47 +08:00
    你现在遇到的困难并不是你的错
    认清现实,老师和同学都没法带你的话,建议草草完结这个项目(或者直接不干了,看你自己),然后自己做自己的项目(比如做个开源的 Nes 模拟器、搭建一个只是在本地跑的论坛服务给室友玩)

    另外就是计算机,打好基础比做项目重要一万倍,还在学校的话,可以不用过于着急项目,基础都自学好了吗?
    jadec0der
        9
    jadec0der   2020-04-29 03:23:13 +08:00
    我觉得你不错,你的队友和老师坑也是很常见的问题。找个合适的机会和他们拜拜,然后找更好的队友,或者自己玩。

    作为非计算机专业的学生,如果你将来打算做码农的话,专业课确实没必要投入太多精力,计算机专业的专业课需要自学一下,没必要全学,主要是计组、数据结构与算法、网络、操作系统、数据库这些基础课要学好,这是应届生面试最重要的部分。

    项目的话,宜精不宜多,像你这种小程序项目,做一个并且做好是加分项,做三个就是浪费时间了。做完这个之后可以认识一些计算机专业的同学,看看他们参加什么比赛,组队去参加一下。ACM 我估计你参与不上,阿里腾讯之类的大公司组织的比赛还是有价值的,蓝桥杯就可有可无了。
    nvkou
        10
    nvkou   2020-04-29 04:53:08 +08:00 via Android
    心疼抗压。
    但是这行业就是这样的,学生比老师更有生产力的比比皆是。企业要求员工有能上手的技能的同时也要求对基础知识有相当的理解,避免低级错误。有基础知识才能入行,有项目经验才能快速上手。这 2 方面要并驾齐驱的,不然你简历永远只能写 微信小程序开发。
    至于学校的事情,都这个样子了能混过去就混。多去补充自己短板,毕竟没那学位证连面试机会都没有。
    crella
        11
    crella   2020-04-29 07:09:56 +08:00 via Android
    所以说楼主不是计算机专业的,为什么要给老师做小程序呢?
    watzds
        12
    watzds   2020-04-29 07:17:20 +08:00 via Android
    大二就懂这么多啊,就做项目还赶着,像是工作压力一样,
    chihiro2014
        13
    chihiro2014   2020-04-29 07:19:09 +08:00
    另外放弃想用高大上的技术
    1. 你没能力,啥也不懂,上了瞎搞,时间浪费了,反倒得不偿失
    2. 学习开发,先看培训机构视频,这是目前学习的最快途径,毕竟看书,没人看得下去
    3. 大学没事好好学习,不要帮人做项目,你先学会培训机构那一套,再去考虑做项目
    4. 把学业搞好,基础打牢,才是王道。其他这种项目忽视即可,因为基础不牢,你写的项目再多也是不行的。项目随时都能写,但是基础学习不能落下,哪怕不会写项目,也无所谓,因为套路就那么点
    gricn
        14
    gricn   2020-04-29 07:21:05 +08:00
    @crella 好吧,首先这是一个学校课题,我同意加入项目是因为听说我这个小伙伴做了个“深度学习”的微信小程序,然后等我入坑后才发现核心代码是某位老师提供的,课题结辩时小程序没上线~~原本看到那个小伙伴挺兴奋的,觉得总算找到了好伙伴,结果~~~

    @CEBBCAT 有列滴答清单的看板,现在回顾解决了 70 多个小问题吧,到时候写几篇博客总结一些。我老师也有一两个有两把刷子,但是要么很注重 work-life-balance,如果不涉及自己项目应该不怎么管学生。要么是只有暑假小学期能见到。所以要想获得长期帮忙的话,还得靠自己。
    gricn
        15
    gricn   2020-04-29 07:23:26 +08:00
    可能昨晚编辑时没考虑顺序问题带来的影响吧,这里还得为我一起开发的同学说一句。其实那人心还是很好的,但可能不是很喜欢编程吧。和他沟通时被迫当一个类似上级的角色。以及,这个项目的 CSS 部分还多亏了他,我的审美不够。但是以后涉及 js 、html 以及其他代码,我还是自己来了。
    gricn
        16
    gricn   2020-04-29 07:29:23 +08:00
    @fishCatcher 我是从学校评分 A 专业转到的这个新的专业,还算稍稍知道目前大学情况吧,高考保证了公平性,但是在录取时对学生专业热爱、专业能力方面的考核没有涉及,因此的确有很多这样的同学(比如在原专业痛苦且咸鱼的我)。但是在这种强势专业的好处是,还是有很多处于热爱选择计算机专业的大牛,而且学长学姐总是能找到大牛;以及除了计算机这种对实际能力要求真的很高的专业外,其他专业其实很是很好找工作的……
    gricn
        17
    gricn   2020-04-29 07:30:37 +08:00
    @Mithril 嗯,谢谢建议,但是我还会完成这个项目,因为团队需要。不过完成后我会尽量将所有时间涉及专业知识的学习中。
    gricn
        18
    gricn   2020-04-29 07:39:53 +08:00
    @jadec0der 谢谢回复,和你想法相同。专业课方面学校专业课我现在也是能水就水,项目也是弄完这个后就不做微信小程序了。
    gricn
        19
    gricn   2020-04-29 07:44:52 +08:00
    @Lonely 谢谢建议,原本我小伙伴说 GitHub 用不了时,我也是花了半天比较选择国内的托管平台,注册好码云后,他直接表示,就在微信传吧。。。
    至于能力问题,我当时也清楚自己不懂小程序,但是现在和我一起开发的小伙伴之前写了个,我以为能跟着学一些东西。经历了这些后也就明白在哪都还得靠自己。
    gricn
        20
    gricn   2020-04-29 07:57:25 +08:00
    @chihiro2014 谢谢建议。明白基础重要性。现在很多老师想找我合作,从他们利益考虑,其实就是帮他们造项目发论文。(本科阶段提前体验了把研究生生活)所以我现在已经推脱过几次老师了。另外想请教一个问题,学习开发最好方式真的是看培训机构视频吗?我当时也本想着用视频学的,但是看了蒲公英 pt 站搜索排名前几的国内的视频后觉得质量很差,于是后面直接看文档去了。但一些 YouTube 视频的确帮助了我,代码规范性以及告诉了我大概能实现什么效果。但觉得视频适合入门,不太适合依赖性学习。不知道是不是和我没选好视频有关,故想来问问。
    laike9m
        21
    laike9m   2020-04-29 08:16:23 +08:00 via Android
    跟水平差的人混是学不到东西的。要么出去实习,要么参与一些高质量的开源项目,两者选一个吧
    chihiro2014
        22
    chihiro2014   2020-04-29 08:50:06 +08:00
    @gricn 一般培训视频最好的大概也就是黑马和尚硅谷了,其他你再根据需要去看,看这两个足够。因为学它们,你学会的是吃饭的工具。对你以后找工作也方便,至少业务熟练。
    文档虽然是最佳学习工具,但基本上没什么人看得完或者看得下去,这个到你进阶到一定程度再去看会比较好。
    如果对 Java 感兴趣,倒是推荐去看看知秋的视频。国内讲的最为深入,没有之一。
    https://space.bilibili.com/2494318
    另外实习的话,得看企业,其实并不是说有了实习你就能学到东西,更多学到的是怎么搬砖。实习这块,我建议是走 pivotal,微软或者谷歌之类的,个人比较喜欢 pivotal 。毕竟 Spring 就是它旗下的。bat 我倒不是很推荐其实。不过最近听说鹅厂之后招人的题目除了算法,不少都是以国外的公开课里的内容为主,倒是也可以去学一学,反正没什么损失。
    libasten
        23
    libasten   2020-04-29 09:31:34 +08:00
    好好的读书阶段不好好学习,写这玩意干嘛?

    学习阶段还是以学习为主

    吐槽老师水平不行,要从老师身上发现亮点,即便少,肯定有,否则也不会做到你们老师的位置上。

    另外,觉得老师上课水平不行,现在网络上名校的计算机课程也不少。
    YadongZhang
        24
    YadongZhang   2020-04-29 15:06:59 +08:00
    先把完整的项目做出来,再搞优化
    yuxiaoguai
        25
    yuxiaoguai   2020-04-30 18:26:40 +08:00
    考虑一下小程序的云开发, 能省很多事情.
    moreant
        26
    moreant   2020-05-02 05:14:18 +08:00 via Android
    云开发+ 1,不然之后还有数据库、存储的坑等着你。
    gricn
        27
    gricn   2020-05-02 13:26:12 +08:00
    @moreant 目前在用阿里云了,因为要用别的 GitHub 开源库,云开发好像没有类似功能。
    @yuxiaoguai 谢谢,开发前期考虑过,但考虑日后发展肯定不能一直依赖微信小程序 以及 小程序相关问答质量比较差而且很少,就放弃了。那些坑一直存在,且随着开发和知识面的扩展越发清楚哪些环节容易掉链子。但熬了一个多月,更能“微笑面对危险”了 XD
    yuxiaoguai
        28
    yuxiaoguai   2020-05-02 18:48:28 +08:00
    @gricn 能把微信小程序做好就很不容易了, 等真做起来后再做全平台也不迟. 最怕啥都没有呢, 就想着各平台兼容. 另外云开发其实很方便, 照着文档基本上没什么问题, 也没有很多坑啊.
    关于   ·   帮助文档   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   3433 人在线   最高记录 5497   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 03:53 · PVG 11:53 · LAX 20:53 · JFK 23:53
    ♥ Do have faith in what you're doing.