初创公司股本结构

Until recently, I'd spent the last 4 years of my career at FinTech start-ups. I'd always worked for smaller companies, and being at a start-up was the next logical step in looking for roles where I could make the biggest difference.

直到最近,我在金融科技初创公司度过了职业生涯的最后四年。 我一直在较小的公司工作,而在初创公司是寻找可以发挥最大作用的角色的下一个逻辑步骤。

But a common problem with early-stage start-ups is that it's kind of a free-for-all in terms of how they're managed.

但是,早期初创企业的一个普遍问题是,就如何管理它们而言,这是一种万能的。

These companies tend to be run by people who don't have a ton of experience running companies. And management tends to consist of founders and those who got in early, not necessarily those who excel in leadership roles. (No shade – good person + talented doesn't necessarily mean they're a good boss or leader).

这些公司往往由没有大量运营公司经验的人经营。 管理层往往由创始人和早起的人组成,不一定是那些在领导角色方面表现出色的人。 (没有阴影-好人+有才华并不一定意味着他们是好老板或领导者)。

During my time at one such start-up, I was promoted from senior developer to lead developer.

在一家这样的初创公司工作期间,我从高级开发人员晋升为首席开发人员。

The catalyst for this change was that the development team lacked leadership. The CTO had too many responsibilities, and the job of keeping the dev team engaged and productive was falling through the cracks.

这种变化的催化剂是开发团队缺乏领导能力。 CTO肩负着太多的责任,保持开发团队的参与度和生产力的工作正逐渐陷入困境。

On top of this, we didn't have a project manger, and our product managers were too inexperienced to introduce any kind of structure.

最重要的是,我们没有项目经理,而且我们的产品经理经验不足,无法介绍任何类型的结构。

This is the story of the wins and losses, and how to add process to a company that has none.

这是关于胜利与失败以及如何为没有一家公司的公司增加流程的故事。

导致变化的事件 (Events leading to the change)

First, a little bit of background. My previous job had been as a developer at a digital agency. This agency was a hard-core scrum shop that had trained all of their employees fairly thoroughly in scrum, and agile in general.

首先,有一点背景知识。 我以前的工作是在一家数字代理公司担任开发人员。 该机构是一家核心的Scrum商店,已经对所有员工进行了相当全面的Scrum培训,并且总体上敏捷。

So I came from an environment with a lot of process. That's partially why I left to pursue a start-up.

所以我来自一个有很多过程的环境。 这就是为什么我要去创业的部分原因。

About a year in, I started to notice some issues. Firstly, the developer turn-over was growing. Developers weren't feeling engaged. They were handed half-baked projects with no context on how it would aid the growth of the company, no input in the design or planning, and with nowhere near enough detail.

大约一年后,我开始注意到一些问题。 首先,开发商的营业额正在增长。 开发人员没有参与的感觉。 他们是半熟的项目,他们没有任何关于如何帮助公司发展的背景,没有设计或规划方面的投入,也没有足够的细节。

Then came a project that crystallized our problem. The product that I worked on had the concept of bills (payables) and invoices (receivables). We were working on a new feature that would allow users to upload an image of an invoice and have it input manually by a service.

然后是一个明确了我们问题的项目。 我研究的产品具有票据(应付款)和发票(应收款)的概念。 我们正在开发一项新功能,该功能将允许用户上传发票图像并由服务手动输入。

The problem was that the product manager kept saying "bills" instead of "invoices". There was no user story, no ticket, this was all in the mind of the product manager. Requirements were communicated verbally or in slack messages. The developer working on the project had only ever been told "bills".

问题是产品经理一直说“帐单”而不是“发票”。 没有用户故事,没有门票,这是产品经理的全部想法。 需求以口头形式或松弛信息传达。 仅在项目开发人员中被告知“条例草案”。

It wasn't until the CTO overheard a conversation a few days before release that we realized that we'd targeted the wrong aspect of the system.

直到CTO在发布前几天听到了一次谈话,我们才意识到我们瞄准了系统的错误方面。

Luckily, bills and invoices were, for the most part, symmetrical in our system, so it wasn't much work to make the change. It just became very clear that we had a problem.

幸运的是,票据和发票在我们的系统中大部分都是对称的,因此进行更改不需要太多工作。 很明显我们遇到了问题。

Given my background and the fact that I was one of the most senior and tenured developers at the company, it made sense for me to take the lead.

考虑到我的背景以及我是公司中最资深,最任职的开发人员之一的事实,让我带头是很有意义的。

Since I was leading the initiative, I chose to implement a scrum-type process.  In the remainder of this article, I'll outline what we did, how we did it, and why it was done, as well as my learnings.

自从我领导该计划以来,我选择实施一种Scrum型流程。 在本文的其余部分,我将概述我们做 什么,我们如何做, 为什么做以及我的学习

获得买入 (Getting Buy-in)

I'm gonna preface this by saying that I don't like handing commandments down from on high. I feel like a leader-team relationship is a collaborative one. I may occasionally play leader because it's my nature, but it's important that ideas are discussed and that people feel their opinions are heard and valued.

我要说这句话是我不喜欢从高处传下诫命。 我觉得领导团队关系是一种协作关系。 我有时会扮演领导者的角色,因为这是我的天性,但重要的是要讨论想法,让人们感到自己的意见得到重视和重视。

The first step was to gather the developers to have a discussion.  In this initial discussion, I outlined what I felt our issues were.  This included lack of clarity on requirements, sliding deadlines, and our complete lack of a testing strategy.  The discussion validated my thoughts, because the team felt the same way.

第一步是召集开发人员进行讨论。 在最初的讨论中,我概述了我认为我们的问题所在。 这包括对要求的不明确,截止日期的缩短以及我们完全缺乏测试策略。 讨论证实了我的想法,因为团队也有同样的想法。

The rest of the meeting consisted of me outlining scrum, what elements I felt could benefit us, and what that would look like. I also discussed some things that I learned about test plans and systematic QA that I learned in my agency days.  We then went around the table, giving thoughts, asking questions, and tweaking.

会议的其余部分包括我概述scrum,我认为哪些元素可以使我们受益,以及看起来如何。 我还讨论了我在代理期间学到的有关测试计划和系统质量检查的一些知识。 然后,我们围着桌子走来走去,思考,提问和调整。

I conceded that manual testing wasn't fun or ideal for the dev team, but until we could justify a full-time QA engineer, we had to do the best with what we had.

我承认,对于开发团队而言,手动测试并不是一件有趣的事情,也不是理想的选择,但是在我们能够证明一名全职QA工程师合理之前,我们必须尽力做到最好。

Learnings:

学到:

  • If you have a good idea, all you need is a chance to prove its worth. 如果您有个好主意,您所需要的就是证明其价值的机会。
  • Enlist your team to help build this together, make everyone part of the solution and they'll own it with you.招募您的团队来帮助共同构建,使每个人都成为解决方案的一部分,他们将与您一起拥有它。

我们的Scrum版本 (Our Version of Scrum)

After describing what a "full" scrum process would look like, I laid out to the team what the purpose of each aspect and ritual was.  I wanted to highlight where we could get the most gains. No one wanted 10 hours of meetings per sprint.

在描述了“完整”的Scrum流程的样子后,我向团队提出了各个方面和仪式的目的。 我想强调一下我们可以从中获得最大收益的地方。 没有人希望每个冲刺10个小时的会议。

Speaking of sprints, we decided to start with a 2 week time-box with an eye on moving it to 3 weeks if we wanted less overhead and could afford less frequent releases.

说到sprint,我们决定从2周的时间开始,如果希望减少开销并减少发布频率,可以将其移至3周。

The process I put in place was as follows.

我执行的过程如下。

We'd have a sprint started with a 2-hour grooming/planning meeting on a Monday morning. In this planning meeting we (the dev team and the product manager) did a pass over the backlog.  This pass consisted of clarifying the story to clear up misunderstandings; estimating using story points; and prioritizing based on company road-map.  The team then picked out the amount of work we felt we could do, based on priority, and brought it into the current sprint.

我们会从一个星期一早上的2个小时的梳理/计划会议开始冲刺。 在这次计划会议中,我们(开发团队和产品经理)对未完成订单进行了检查。 此通行证包括澄清故事以消除误解; 估计使用故事点; 并根据公司路线图确定优先级。 然后,团队根据优先级挑选出我们认为可以完成的工作量,并将其纳入当前的冲刺中。

This work was a collection of user stories. The product manager would leave, and the dev team would break these stories down into tasks, get a general sense of who would work on what, and then we got to work.  This gave the product manager transparency on what we could deliver, which was sorely lacking.  It also gave the team their full workload for 2 weeks, which allowed us to plan and pace accordingly.

这项工作是用户故事的集合。 产品经理将离开,开发团队将把这些故事分解成任务,大致了解谁将从事哪些工作,然后我们开始工作。 这使产品经理可以透明地提供我们所能提供的东西,而这是非常缺乏的。 这也为团队提供了2周的全部工作量,这使我们能够做出相应的计划和进度。

The next week and a half were dev days. This included peer code reviews on feature branches before they were merged. Dev hands-off was the Wednesday of the 2nd week at noon. We would then prepare the QA build, QA spreadsheet (more on this in a bit), and start manual testing.

接下来的一周半是开发日。 这包括在合并功能分支之前对它们进行对等代码审查。 开发人员交接时间是第二周中午的第二个星期三。 然后,我们将准备质量检查构建,质量检查电子表格(稍后对此进行详细介绍),并开始进行手动测试。

The idea was to finish the initial QA pass by the end of the Wednesday, and spend Thursday and Friday in a bug fix/test loop until we were satisfied with the build.

这个想法是在星期三结束之前完成初始质量检查,然后在星期四和星期五进行错误修复/测试循环,直到我们对构建满意为止。

At this point, the build would be handed off to the CTO for a final code review, and it would be deployed the following Tuesday. Issues found in the code review would be fixed and tested on the Monday if needed.

此时,该构建将移交给CTO进行最终代码审查,并将在下周二进行部署。 在代码审查中发现的问题将在周一修复,并在需要时进行测试。

Friday afternoon we would have a blameless retrospective/postmortem. Here we laid things bare. It's important to acknowledge what went poorly, and to address the cause(s) so that we could avoid it in the future.

星期五下午,我们将进行无罪的回顾/验尸。 在这里,我们把事情暴露了。 重要的是要确认出现问题的原因,并解决原因,以便我们将来可以避免。

All of the developers (including myself) learned a lot through this process. I feel like we're all better off after having gone through it. I actually overheard the CEO suggest doing blameless postmortems a few weeks after we started doing them on the dev team. It was nice to see that our ideas were catching on.

所有开发人员(包括我自己)在此过程中都学到了很多东西。 我觉得经过这件事我们都过得更好。 实际上,我听错了CEO的建议,即在我们开始在开发团队中进行几周的无罪死后尸检。 很高兴看到我们的想法正在流行。

This was one of the big wins. We learned why a feature was needed, what the intention behind it was, and all of the details and expectations.

这是最大的胜利之一。 我们了解了为什么需要功能,其目的是什么以及所有细节和期望。

Learnings:

学到:

  • Split and join meetings based on your team's needs.  Don't do things "just because"根据您团队的需要拆分和参加会议。 不要“仅仅因为”做事情
  • Share your progress outside your department.  Sometimes your ideas can provide benefits outside of your team.在部门外分享您的进度。 有时,您的想法可以为您的团队带来好处。

您可以相信的测试框架 (A Testing Framework That You Can Believe In)

This company had never had a formal testing process. This meant no test plan, no peer testing, just a developer verifying that it worked, and it going to production.

该公司从未有过正式的测试流程。 这意味着没有测试计划,没有同行测试,只有开发人员验证它是否有效并投入生产。

In my experience, developers are as good at testing as they are at estimating, so we needed to change that. We had a good suite of automated tests (unit and integration), but no end-to-end tests. I also prefer to have some exploratory testing as well. In the past, I've seen it uncover weird behaviors that automated testing can miss.

以我的经验,开发人员在测试和评估方面都擅长,因此我们需要对此进行更改。 我们有一套很好的自动化测试(单元和集成),但是没有端到端测试。 我也更喜欢进行一些探索性测试。 过去,我发现它揭示了自动测试可能会遗漏的怪异行为。

We set up a google doc with all of the tickets (including links to the user stories) in the first column, and all of the developer names (and the PM) in the first row. The idea was that every ticket had to have 2 X's, both from people who didn't work on the feature. This divide and conquer strategy allowed us to test very thoroughly in a fairly short amount of time.

我们在第一列中设置了所有票证(包括指向用户故事的链接),在第一行中包含了所有开发人员名称(和PM)的Google文档。 这个想法是,每张票都必须有2个X,都来自没有使用该功能的人。 这种分而治之的策略使我们能够在相当短的时间内进行彻底的测试。

Learnings:

学到:

  • Lean hard on automated testing.  It's reliable and finds many classes of bugs with no manual time.努力学习自动化测试。 它是可靠的,并且无需手动即可发现许多类别的错误。
  • Test with a plan.  You're going to waste a lot of time just wandering.  A systematic approach can make manual testing more efficient.用计划进行测试。 你会浪费很多时间只是在流浪。 系统的方法可以使手动测试更加有效。

成功 (Success)

What was the result? I don't have exact numbers, but the defect rate plummeted. There were no longer rushed hot fixes to production. The work promised was delivered. Features were being released on time.

结果如何? 我没有确切的数字,但是缺陷率急剧下降。 不再匆忙修补生产。 承诺的工作已经完成。 功能已按时发布。

We were moving faster than ever, and the developers were happier. We were working as a team instead of in silos, we all knew each others' features intimately because we all went through the user stories and estimated together. There was no more of this "oh, I can't touch feature X, I didn't work on it" siloing stuff.

我们的移动速度比以往任何时候都快,并且开发人员更快乐。 我们是一个团队而不是孤岛,我们都非常了解彼此的功能,因为我们都经历了用户故事并一起进行了估算。 没有更多的“哦,我不能触摸功能X,我没有进行处理”的东西。

One dev who was planning on leaving stopped looking. It was great.

一位计划离开的开发人员停止寻找。 太好了。

Learnings:

学到:

  • Keep adjusting your process based on results.  It's an ongoing process.继续根据结果调整流程。 这是一个持续的过程。
  • Sometimes people don't want to leave a company, they want to leave a situation.有时人们不想离开公司,而是想离开一种情况。

突然结束 (An Abrupt End)

But nothing gold can stay :) Ok, that's a bit dramatic. While the dev team was gelling, increasing our velocity, and building more camaraderie, management was going in a different direction.

但是,没有任何黄金可以留下:)好吧,这有点戏剧性。 当开发团队陷入困境,提高我们的速度并建立更多友爱关系时,管理人员却朝着另一个方向发展。

The CEO had done a ton of reading and decided that OKRs were what was gonna get the company to the next level. Unfortunately, it was decided that OKRs would go down to the individual level, meaning that the team would no longer be pooling work, breaking it down and tackling it together. Instead, each developer would work out (or in practice, given) a set of KRs, and they alone would be responsible for delivering on them.

首席执行官进行了大量阅读,并决定将OKR提升到一个新的水平。 不幸的是,决定将OKR降到个人水平,这意味着团队将不再集中精力,分解工作并将其解决。 取而代之的是,每个开发人员都会制定一套(或在实践中给出)一套KR,而他们自己将负责交付这些KR。

We were back to silos. The development team pushed back, we tried to compromise, to stop OKRs at the team level, but it was no use. The dream was dead. Yes, again with the drama, but it was a little sad.

我们回到了筒仓。 开发团队推迟了,我们试图做出让步,以在团队级别停止OKR,但这没有用。 梦想已死。 是的,这出戏又来了,但是有点难过。

This change coincided with a slight change in power structure, my title as lead developer became little more than a platitude, "leadership" said some very unkind things to the development team (somewhere along the lines of "get on board or get out"), which led to half the dev team, including myself, leaving within a month.

这种变化与权力结构的轻微变化不谋而合,我作为首席开发人员的头衔只不过是陈词滥调,“领导”对开发团队说了一些非常不友好的内容(类似于“上任或下班”) ,导致一半的开发团队(包括我自己)在一个月内离开。

Learnings:

学到:

  • Good ideas don't always win out.  Even in a situation like this, you can learn a lot.好主意不一定总能赢。 即使在这种情况下,您也可以学到很多东西。
  • Recognize when you can no longer make a difference. 识别何时不再可以有所作为。

犯了错误 (Mistakes Were Made)

Given the way that last paragraph ended, you may thing that I was about to enumerate the mistakes that the company made. But I'm not going to do that.

鉴于最后一段的结尾方式,您可能想列举一下公司所犯的错误。 但是我不会那样做。

It's been about a year since I left, and in that time I've learned a thing or two. There were some serious gaps in the process that we'd created. These were things that I just didn't really understand or know about at the time. It was due to my shortcomings, but we all get better every day.

我离开已经大约一年了,那时我学到了一两件事。 我们创建的过程中存在一些严重的差距。 这些是我当时当时并不真正了解或了解的东西。 这是由于我的缺点,但我们每天都在进步。

In hindsight, here are some major things I'd missed:

事后看来,我错过了一些主要的事情:

我们没有测量。 (We weren't measuring.  )

How do you know you've done it right if you didn't take measurements before and after? We had no telemetry, very little alerting, and frankly, if a feature had negative impact, we didn't know about it.

如果您前后没有进行测量,您怎么知道您做对了? 我们没有遥测功能,很少发出警报,坦率地说,如果某个功能产生了负面影响,我们对此一无所知。

过多的手动测试,不包含自动化。 (Too much manual testing, not embracing automation.  )

What we were really missing was a nice suite of automated E2E tests. We started working on these near the end, but we didn't prioritize them enough. Many of the errors we found during manual testing could have been caught during some acceptance tests using cucumber, or some E2E selenium tests.

我们真正缺少的是一套不错的自动化E2E测试套件。 我们在接近尾声时就开始进行这些工作,但是对它们的优先级还不够高。 我们在手动测试中发现的许多错误可能是在使用Cucumber的某些验收测试或某些E2ESelenium测试中发现的。

大爆炸发布。 (Big bang releases.  )

I know a common part of scrum for many companies is the idea that all of the sprint work is demoed and released together.

我知道,对于许多公司而言,Scrum的一个共同部分是这样的想法,即所有sprint工作都被演示并一起发布。

The problem with this is two-fold. Firstly, at a start-up you need to move quicker. You need to beat others to the punch and get value out to customers and feedback from customers as quickly as possible. And the tighter that feedback look is, the better.

这个问题有两个方面。 首先,在启动时,您需要更快地移动。 您需要击败其他人,并尽快将价值传递给客户并获得客户的反馈。 反馈看起来越紧密越好。

Therefore, multiple releases per sprint would have been better. It's more difficult to coordinate testing and QA, but it's still better to release quickly and often.

因此,每个sprint有多个版本会更好。 协调测试和质量检查比较困难,但最好还是经常发布。

Secondly, the larger the release, the more risk is involved. Releasing smaller chunks means that fewer changes are released at one time. If there's any issue, it's easier to identify and fix, and a rollback won't affect other, correctly functioning features.

其次,释放量越大,涉及的风险就越大。 释放较小的块意味着一次发布较少的更改。 如果有任何问题,则更容易识别和修复,并且回滚不会影响其他功能正常的功能。

So I've learned that releasing in verticals that are as small as possible is the safest, least coupled way of releasing software.

因此,我了解到,垂直发行越小越好,这是发行软件最安全,耦合最少的方法。

结论 (Conclusion)

For all of the missteps and the unfortunate ending, I feel like the experience was a success. I learned what it meant to guide a team of developers through a process, to take feedback and apply it, and to try and discard ideas that, even though they are "supposed to be there", just didn't fit our team.

尽管经历了所有的失误和不幸的结局,我觉得这次经历是成功的。 我了解了指导一个开发人员团队进行整个过程,获取反馈并加以应用以及试图丢弃那些即使它们“应该存在”但又不适合我们团队的想法的含义。

It's important to cater your process to your team and organization. You have to add enough process to guide, but not so much to hinder. It taught me how to implement process, to push ideas forward, to help others be heard, and how to lead from within a team.

为您的团队和组织服务是很重要的。 您必须添加足够的过程来进行指导,但没有太多阻碍。 它教会了我如何实施流程,推动思想前进,帮助他人发表意见以及如何在团队中发挥领导作用。

Although it ended poorly, it was a big step forward in my career, and really solidified my ability and desire to lead.

尽管结局很差,但这是我职业上的一大进步,确实巩固了我的领导能力和渴望。

You can find more of my articles on my medium blog.

您可以在我的中等博客中找到更多我的文章。

翻译自: https://www.freecodecamp.org/news/how-i-added-some-structure-to-a-start-up-dev-team/

初创公司股本结构

初创公司股本结构_我如何向初创公司的开发团队添加一些结构-以及从过程中学到的东西相关推荐

  1. 时间序列 线性回归 区别_时间序列分析的完整介绍(带R)::线性过程I

    时间序列 线性回归 区别 In the last tutorial , we saw how we could express the probabilistic form of the best l ...

  2. mysql++编程规范_建议收藏 - 专业的MySQL开发规范

    为了项目的稳定,代码的高效,管理的便捷,在开发团队内部会制定各种各样的规范 这里分享一份我们定义的MySQL开发规范,欢迎交流拍砖 数据库对象命名规范 数据库对象 命名规范的对象是指数据库SCHEMA ...

  3. 计算机视觉和机器学习_我从计算机视觉和机器学习硕士课程中学到的东西

    计算机视觉和机器学习 重点 (Top highlight) 经验 (Experience) I wrote this article as a reflection of what I picked ...

  4. vue 开发ui库_面向设计师的ui ux开发vue js

    vue 开发ui库 Because sometimes we have to add logic to our concepts, and Vue makes it a whole lot easie ...

  5. 【最新最全】Java微服务实战项目【尚医疗】_智慧医疗管理项目_基于若依框架快速开发

    尚医疗是专门为各大医院.门诊提供的一款医疗管理平台.系统包含:系统管理.药品进销存管理.看病就诊.收费管理.检查管理.数据统计等核心模块.通过尚医疗系统可以快速.方便的管理病人从挂号到门诊结束所涉及到 ...

  6. 企业微信SCRM系统部署_企业微信SCRM二次开发_企业微信SCRM系统独立版源码价格

    企业微信SCRM系统部署_企业微信SCRM二次开发_企业微信SCRM系统独立版源码价格 点趣互动是企业微信系统的第三方应用提供厂商,用于管理员工企业微信的内一款系统软件.点趣互动企业微信scrm软件主 ...

  7. 概要设计 英文_互联网知识大全:软件开发中和文档常见的英文缩写,还不快收藏...

    概要设计 英文_互联网知识大全:软件开发中和文档常见的英文缩写,还不快收藏... https://blog.csdn.net/weixin_39914243/article/details/11123 ...

  8. 传智健康_第9章 移动端开发-手机快速登录、权限控制

    传智健康_第9章 移动端开发-手机快速登录.权限控制 文章目录 传智健康_第9章 移动端开发-手机快速登录.权限控制 1. 需求分析 2. 手机快速登录 2.1 页面调整 2.1.1 发送验证码 2. ...

  9. 初创公司为什么要我_在一家大型初创公司担任副总裁之前,我希望知道什么

    初创公司为什么要我 by Assaf Elovic 通过阿萨夫·埃洛维奇 在一家大型初创公司担任副总裁之前,我希望知道什么 (What I wish I knew before becoming a ...

最新文章

  1. Eclipse使用Tomcat发布项目时出现YadisException异常解决方案
  2. android短信照片换ios9,iOS9不越狱恢复短信和照片方法说明
  3. Angular-在服务和组件中使用管道
  4. 敏捷个人架构图 V1.3
  5. Java 技术篇-IntelliJ IDEA修改类名后运行提示找不到或无法加载主类问题解决方法
  6. RV1108调试串口参数设置
  7. boost::geometry::strategy::vincenty用法的测试程序
  8. linux求生之路字体乱码,Linux中文字符出现乱码怎么办
  9. Ubuntu 12.04中设置安装Google拼音输入法
  10. 不为人知的Nothing和Is
  11. 刚刚!老干妈发布警方通报:3人伪造印章与腾讯签协议已刑拘,腾讯:辣椒酱不香了...
  12. 蜂鸣器驱动电路 自主开发设计
  13. 这五款办公神器一个比一个好用
  14. 小飞鱼APK签名工具
  15. adb 静默安装_apk 静默安装
  16. 谷歌邮箱无法显示使用 Base64 处理的图片的解决方法
  17. java mail 20m附件,发送邮件时附件大小不能超过20M,否则无法发送
  18. [已解决 2020年]你的支付授权失败。请核对你的信息并重试,或尝试其他支付方式。请联系你的银行了解更多信息
  19. 19深度探秘搜索技术_基于slop参数实现近似匹配以及原理剖析和相关实验
  20. idear——文件的刷新,清理和打包

热门文章

  1. 【C++基础】常见面试问题(二)
  2. 信号 09 | 信号概念
  3. 第3章 文件IO | 001 文件描述符
  4. 【Tensorflow】 Object_detection之训练PASCAL VOC数据集
  5. hyper虚拟机下对centos进行动态扩容
  6. UDP协议下数据的传输分析
  7. 使用Spring Task完成定时任务
  8. 图的四种最短路径算法
  9. 运行caffe自带的两个简单例子
  10. Java编写代理服务器(Burp拦截Demo)一