- 2021-04-19 发布 |
- 37.5 KB |
- 7页
申明敬告: 本站不保证该用户上传的文档完整性,不预览、不比对内容而直接下载产生的反悔问题本站不予受理。
文档介绍
远程工作独立开发者暑期实习工作总结
远程工作独立开发者暑期实习工作总结 对于大学生来说,暑期两个月的假期是一个很好的时间去实习,让我们在成长中学习中度过有意义的暑假,你写好暑期实习心得了吗?下面小编带来的是远程工作独立开发者暑期实习工作总结。 六月中旬,我接手了一个基于WordPress平台的网页开发项目,作为远程工作的独立开发者,计划用三周时间实现核心功能,但没有取得任何实质性的进展;七月初,我作为实习生开始为期八周的全职工作,继续独立的推进这个项目,用四周时间实现核心功能,上线了内部员工测试版;在接下来的四周中,我实现了更多重要功能,整合同事提供的用户界面,最终在离职前上线了对外部访客的正式网页。本文试图从一名开发者的视角,以上述三个阶段为线索,总结这段经历。 ~ 圣地亚哥 考到学期最后一天的期末考,令人精疲力尽的搬家,短暂愉快的潜水旅行,这些之后我宅在家中开始着手项目。坦白说,这是一段舒适而效率不高的时光:每天花四五小时在电脑前工作,白天在阳光通透的客厅,晚上在灯火昏黄的卧室。因为处于刚刚放暑假的心态,难以长时间专注,经常是遇到障碍时研究一两小时就开始刷社交媒体,浏览无关的网站。 我的计划是一边研究项目所需的技术,一边与身在上海的领导沟通网页设计,试着确定一版设计稿。然而,远程工作沟通不便的性质决定了我们的交流不可能百分百有效,不能完全理解领导的意图;而急于给领导留下好印象的我,在技术研究不顺利的情况下,盲目的希望用设计图展示自己的能力,于是精耕细作的设计出许多我们所不需要的东西,浪费了不少原本可以用于学习技术时间。 在技术研究上,我的问题是急于求成,缺少脚踏实地的耐心。面对一个新的编程语言和开发环境,一开始的手足无措是正常的。但我的应对方式是花一半左右的时间寻找第三方插件,寄希望于通过修改专业人士的代码来解决我的问题,或至少通过看别人的代码搞懂项目架构。但是,项目的复杂性不允许我们整体采用第三方代码,而且我并不能完全看懂专业开发者的代码,修改更无从谈起。 我也有自起炉灶的尝试,下载了文件传输,本地服务器等各种软件,但惭愧的是,在我远程工作期间始终没有走出自己开发的关键一步:搭建本地网站。现在回头看,我当时已经有了搭建本地网站的所有软件、文件,也许再多Google一次,再看一篇教程就能做到。但别的无效尝试耗尽了我本就不多的耐心。 ~ 上海 经历了上一阶段的不顺利,我一度觉得自己没有能力在这个项目中起到主导作用。所幸,公司依然安排我担任项目开发的主力,这要感谢领导对我的信任。 在同事的帮助下,我搭建起本地网站。现下有了八周全职工作时间,不再急躁的我打开我能找到的最贴近实用的教程,像个初学者一样一个一个模块的实现教程里的代码,不去想是否有用。比起复制黏贴,我更喜欢一行行打出功能相同的代码,换几个变量名称,即便代码一模一样也坚持自己手打。这样做让我以最快的速度上手了PHP这门对我来说全新的语言。 跟随教程建立最基础的开发环境后,我接下来所面临的一大问题是明白自己要找什么。一个例子,在上一阶段对于第三方包裹的研究中,我知道了“短代码”这一概念。这时我搜索的内容,从“WordPress插件如何在用户端显示内容”,变成“如何实现WordPress短代码”。可以想见,后者远比前者更容易找到满意的答案。知道“短代码”这一概念,使我能够把较为模糊的最终目的,具象为清晰可行的技术手段,这便是我所谓的“明白自己要找什么”。 另一个更为曲折的例子,在本地实现核心功能后,我发现在线上测试时数据库读取不成功。改用了新版本的数据库函数并在本地测试通过后,运用到线上时依然不成功,但报错信息发生改变,花了五六小时调试没有成效。这时我认为我已经排除了数据库函数版本问题,问题理应不在我的代码中,于是请求负责数据库的同事着手,自己开始研究下一步的开发。两天后,同事发给我一段代码让我尝试,虽然没有成功,但其中一个关键词引起我的注意。经过几番搜索,我发现我的数据库函数版本在改动后仍然不符合现有平台,改用面对对象的数据库函数后,问题解决。 目前,我把“明白自己要找什么”不准确的定义为“已知所需的功能,落实到技术细节”的过程,我认为这经常比学习一项技术更难。比如在第二个例子中,我先前误认为问题出在线上数据库,正是已知出错的功能,而没有准确定位需要修改的技术,直观上说就是“找错了地方”。单纯学习一项技术可以简单的借助搜索、教程以及不断地实践;而功能落实到技术,常常不能搜索到明确的答案,而要依赖自己或他人的经验与主观判断。至于如何更好的“明白自己要找什么”,容我留到下一部分再说。 我能在四周中完成核心功能,做完之前三周毫无进展的工作,主要是做到了专注、踏实——专注于技术,踏实的从零开始做起。 ~ & ~ 上海 进入这一阶段的开发,我面临一些新的难点。面对更多样的功能需求,快速上手使用各种第三方包裹;在编写面向客户的页面时,与领导合作完成设计。好处在于,此时的我更熟悉岗位和项目,与领导和同事更好的沟通使我更专注并获得更多支持,对编程语言和项目结构的熟悉让我更好的工作在手头需要的功能中。 我上文提到的,如何“明白自己要找什么”,在这一阶段的工作中依然是最大的困扰。具体而言,学习、编写新功能之后,测试时出现“网页超时”、“下载失败”等有多种可能原因的问题,此时我往往没有好办法。也是在一次次解决问题的尝试中,我获得一些浅薄的见解。想要“明白自己要找什么”,根本的途径是提高项目经验与代码能力,前者帮助我们更准确的推断问题,后者使我们能够更快更好的验证每个改动。但显然,这两者不是一时能够提升的。 一个事半功倍的解决方法是高效的搜索,一项重要而需要练习的技能:用英文简短准确的描述问题,筛选有用的搜索结果(因为英文互联网中的技术指导更多更精)。比如,针对“WordPress插件如何在用户端显示内容”这个功能,谷歌搜索“WordPress plugin display content to user”,跳过搜索结果中前三项对可下载插件的介绍,第四项就是对于我们需要的技术的详细教程。 同样重要的是耐心和交流。有用的一则信息完全可能出现在十篇不相关的文章之后,少一分耐心就会错过;向他人解释自己遇到的问题可能是最好的理清思路方法,而外来的建议,即便来自不如自己了解技术的人,也常有旁观者清的效果。 以上之外,我想提的另一点不仅仅关于代码,同样关于做好任何一样工作,那便是精益求精。一方面是追求完美,在领导和同事无暇配合时,能否不仅仅停留在“我已经研究好了技术,就等你来配合我”,而是尽力做好所有自己眼下能准备的要素,待开始合作时就能紧密无间;另一方面是不懈努力,在一个功能测试失败,想尽办法没法独立解决时,能否不要沮丧的开始玩手机,而是转而研究另一个将来也要用的功能,保持整个项目总有一处在推进。这当然是说起来容易的高标准要求,但我清楚要是我在这两方面做的更好,或许能留下更完满的结果。 当然,尽管留下一些不完美的妥协,我最终在离职前比较好的完成了这个项目。这些能力和意愿上的可提高之处,不妨碍我为自己的工作成果而骄傲。 总结 开展新项目时,应聚焦于眼下的技术研究,并在搭建完整的开发环境后从最基础开始。 “明白自己要做什么”,即把功能上的问题落实到技术细节,是最大的难点,可能的应对方案包括: 提高搜索效率 秉持更大的耐心 更主动的交流 工作中追求完美,不懈努力 查看更多