软件项目技术路线图

Continuing from my previous article, at this checkpoint, I have two things with me:

上一篇文章的后续内容 ,在这个检查点,我有两件事:

  • A primitive idea of what I want to build- Something related to applied AI, a framework that creates content, curates information, and interacts with social media.

    我要构建的东西的原始想法-与应用AI有关的东西 ,这是一个创建内容,策划信息并与社交媒体进行交互的框架。

  • A reference job description that can help me convert my primitive idea into something more solid and industry-relevant.

    参考职位描述可以帮助我将原始想法转变为更扎实和与行业相关的事物。

Now, let’s read through the description of the job profile I chose.

现在,让我们通读我选择的工作资料的描述。

Some highlights and thoughts-

一些亮点和想法-

  • From the first image, you can see, we are almost doing what they want- We are self-directed, owning the problem end to end, and acquiring knowledge to get the job done.从第一张图可以看到,我们几乎正在做他们想要的事情-我们是自我指导的,端到端拥有问题,并获得知识以完成工作。
  • So, OpenAI is building an API platform for its deep learning models. While I am aware of what an API is, even if you are not, you can easily find out via a simple google search.

    因此,OpenAI正在为其深度学习模型构建API平台。 虽然我知道API是什么,但即使您不是,也可以通过简单的Google搜索轻松找到。

  • From my basic understanding, I can deduce the simple architecture of my project. An application that can access the deep learning models via an API and obtain the results which can be used in our social media interactions. Whenever I build something I look at reusability, hence keeping each component separate would help in that. It is a good practice.根据我的基本理解,我可以推断出项目的简单架构。 可以通过API访问深度学习模型并获得可在我们的社交媒体交互中使用的结果的应用程序。 每当我构建某些东西时,我都会着眼于可重用性,因此,将每个组件保持独立将对此有所帮助。 这是一个好习惯。
  • I finalized that my first step would be in creating my own API service. Using this API service, I should be able to create the content I want. Once the content is created, we can have another module that will do something like posting it on social media, etc.我最终确定,第一步将是创建自己的API服务。 使用此API服务,我应该能够创建所需的内容。 创建内容后,我们可以拥有另一个模块,该模块将执行诸如在社交媒体上发布内容等操作。
  • So, what tech stack do I use? I know python, but I noticed that OpenAI has a part of its codebase in Go (a programming language). I have never written even a single line of code in Go. So, I just googled, “Python vs GO, building an API”.

    那么,我使用什么技术堆栈? 我知道python,但我注意到OpenAI在Go (一种编程语言)中有一部分代码库。 我从来没有在Go中编写过一行代码。 因此,我只是在Google上搜索“ Python vs GO,构建API ”。

  • I got a bunch of good articles to read and understand why I should consider using Go.我有很多不错的文章可供阅读和理解,为什么我应该考虑使用Go。
  • To summarise the above articles, Go is better in terms of scale and performance. So, I have concluded that I will use Go for building the APIs. However, deep learning models may still remain in Python. I will explore how much of it I can make in Go, and how I can use Python functions directly in Go. In your context, at this stage, it is okay even if you do not know any programming language. Just understand the theoretical logic behind your choice.总结以上文章,Go在规模和性能方面都更好。 因此,我得出的结论是,我将使用Go来构建API。 但是,深度学习模型可能仍保留在Python中。 我将探讨我可以在Go中制作多少代码,以及如何直接在Go中使用Python函数。 在您的上下文中,即使您不知道任何编程语言,也可以。 只需了解您选择背后的理论逻辑即可。
  • Next, it was mentioned that OpenAI’s services run on Kubernetes Clusters and are versioned in Terraform. I have never used them and have no idea about either of these. But I will explore to see if I can use the same tech to run my service.

    接下来,提到了OpenAI的服务在Kubernetes集群上运行,并在Terraform中进行了版本控制。 我从来没有使用过它们,也不知道这两个。 但是,我将探索是否可以使用相同的技术来运行我的服务。

We now have a basic idea of what tech stack to use. And then I started looking into how exactly I should design my API? I decided to create a RESTful API. I just googled about it and here are some results (All of them from the first page of search results) I referred to.

现在,我们对要使用的技术堆栈有了基本的了解。 然后,我开始研究应该如何设计API? 我决定创建一个RESTful API 。 我只是用谷歌搜索,这里有一些我提到的结果(全部来自搜索结果的第一页)。

These articles are a great starting point on this journey (especially, the third one). It gave me some basic idea of what I should do next- Creating the API specifications.

这些文章是这一旅程的一个很好的起点(尤其是第三篇)。 它给了我下一步应该做什么的基本想法-创建API规范。

But, before that, I thought I will list down all the steps I should explore, and the questions I should ask myself along this journey- our road map.

但是,在那之前,我想我会列出我应该探索的所有步骤,以及在此旅程中我应该问自己的问题-我们的路线图。

  1. What deep learning models will I use to create/curate content- like news, art or poetry, etc?我将使用什么深度学习模型来创建/策划新闻,艺术或诗歌等内容?
  2. How do I create a program that receives input required to be fed to the deep learning model, get the output I want, and send it back to me?如何创建一个程序,以接收需要输入到深度学习模型的输入,获取所需的输出,然后将其发送回给我?
  3. What are all the different APIs related to deep learning that I need to make? What is the functionality of each one of them?我需要制作与深度学习相关的所有不同的API? 它们每个的功能是什么?
  4. What are the APIs required for interacting with social media? For example, If I want to post the created content on Twitter, how do I do it?与社交媒体进行交互需要哪些API? 例如,如果我想在Twitter上发布创建的内容,该怎么做?
  5. Once all of this is finalized, do the actual coding to build them. Notice that, still step 5, it is just me logically thinking what my product will do. If you are a non-tech person, just creating a solid product idea along with specifications and use cases in itself should give you a lot of experience in building something from scratch. You can actually pitch it to other developers and take the role of a product manager.一旦完成所有这些操作,请进行实际编码以构建它们。 注意,仍然是第5步,这只是我从逻辑上考虑我的产品将要做什么。 如果您不是技术人员,只需创建一个可靠的产品构想以及其规格和用例本身,就可以为您提供从头开始构建产品的大量经验。 您实际上可以将其推销给其他开发人员,并担任产品经理的角色。
  6. How do I test my APIs after they are built? The debugging and enhancements.构建API后如何测试? 调试和增强。
  7. How do I host my APIs in such a way that other people or applications can use it?如何以其他人或应用程序可以使用它的方式托管我的API?
  8. The finishing touches, and packaging the project into a usable product.最后润色,并将项目包装为可用产品。
  9. Added to that, taking inspiration from the job description (Build tools to accelerate your own workflows), I have decided to make a User Interface for my APIs which can be used to configure different parameters and control how the APIs are used. For example, a UI where the user can generate content by simply clicking some buttons and then post it on their twitter from this application itself. This makes it easy to test the APIs as well.

    此外,从工作描述(构建工具以加速自己的工作流程)中获得启发,我决定为我的API创建一个用户界面 ,该界面可用于配置不同的参数并控制API的使用方式。 例如,一个用户可以通过单击某些按钮然后将其从此应用程序本身发布到其Twitter上来生成内容的UI。 这也使测试API变得容易。

I will think about the tech stack I should use for the UI once I complete building my basic APIs. Overall, this should give some good full stack experience. You might think there is so much complexity here. I’m not going to lie, it can feel quite overwhelming. But stick to your idea. Ask all the hows and whats you can think of. It is okay even if you have a longer list of questions and no clue about the answers to any of them. The best approach for any project you do is to break it down into very small stand-alone tasks, as modular as it can get. Read through this series and you will get a grasp of what I mean.

完成基本API的构建后,我将考虑应该为UI使用的技术堆栈。 总体而言,这应该会提供一些良好的全栈体验。 您可能会认为这里有太多复杂性。 我不会说谎,它会让人感到压倒性的。 但请坚持您的想法。 询问所有的方式和想法。 没关系,即使您的问题列表较长,也没有任何答案的线索。 对于您所做的任何项目,最好的方法是将其分解为非常小的独立任务,并尽可能获得模块化。 通读本系列文章,您将了解我的意思。

For people just getting into programming and feel a lot difficult to proceed further, I would suggest you take up something on a much smaller scale. For example, if you are also thinking to make APIs, you should be good even if you create just one-two simple ones.

对于刚开始编程的人来说,很难继续进行下去,我建议您以较小的规模来学习。 例如,如果您还在考虑制作API,那么即使您只创建一两个简单的API也应该不错。

At this point, it is completely okay if you do not know about any of the programming lingoes. Search on google, one keyword at a time. Even I don’t know a lot of things. Notice that so far, we are just thinking in terms of the product we want to build, and given a particular functionality, I am asking myself, “How do I make it happen?”- And that is exactly what I am googling. I call this question based learning. It works very well for me, and I hope it does for you as well.

在这一点上,如果您不了解任何编程术语,那完全可以。 一次在Google上搜索一个关键字。 甚至我都不知道很多事情。 请注意,到目前为止,我们只是在考虑要构建的产品方面,并且考虑到特定功能,我在问自己:“ 我如何实现它? ”-这正是我在谷歌搜索的内容。 我称之为基于问题的学习。 它对我来说效果很好,我希望对您也一样。

If you are following the self-learning technology program along with me, here is a checklist for you at this stage.

如果您和我一起学习自学技术计划,那么现阶段这是一份清单。

  • You now know, what exactly your project will do. What is the input? What is the output? Where and how it will be used? In my case, my input is some instruction or data. This could be a prompt to create more content or get some specific content from elsewhere.您现在知道,您的项目将执行什么操作。 输入什么? 输出是什么? 在何处以及如何使用? 就我而言,我的输入是一些指令或数据。 这可能会提示您创建更多内容或从其他地方获取某些特定内容。
  • You know your tech stack. If you don’t know how exactly to work with them, at this moment, just knowing the names of these frameworks and the logical reason of why they were chosen should be enough. (For example, my reason for choosing Go)您知道您的技术堆栈。 如果您现在不知道如何正确地使用它们,只需知道这些框架的名称以及选择它们的逻辑原因就足够了。 (例如,我选择Go的原因)
  • You have a basic list of steps to follow or the questions you have to ask yourself to make this idea into a reality. I have listed down my questions above.您需要遵循的基本步骤清单,或者要使自己的想法变为现实而必须问自己的问题。 我已经在上面列出了我的问题。

While I do have some deep learning experience, let us assume I don’t know anything about it. So, how do I proceed further? I am not going to do any online courses. My approach here is a little different. Moving forward I will be clearly dissecting my thought process to find answers to all the questions one by one and build the project.

虽然我确实有一些深度学习经验,但让我们假设我对此一无所知。 那么,我该如何进一步? 我不会做任何在线课程。 我在这里的方法有些不同。 展望未来,我将清晰地剖析我的思维过程,以寻找所有问题的答案,并建立该项目。

Find out more in the next article where I will make a more detailed project road map from this basic understanding.

在下一篇文章中找到更多信息,在此我将基于这种基本理解来制定更详细的项目路线图。

For more details about SLTP 2020, visit-

有关SLTP 2020的详细信息,请访问-

I have also created a peer to peer learning group on WhatsApp (Can be migrated to Telegram if more people are interested) to support your self-learning journey and the exchange of ideas and experiences with the community. There is a google form in the above article, which you can fill to get the invite link.

我还在WhatsApp上创建了一个对等学习小组(如果有更多人感兴趣,可以迁移到Telegram),以支持您的自学旅程以及与社区交流思想和经验。 上面的文章中有一个Google表单,您可以填写该表单以获得邀请链接。

翻译自: https://medium.com/the-research-nest/creating-a-basic-project-roadmap-4655929d5c96

软件项目技术路线图


http://www.taodudu.cc/news/show-2721308.html

相关文章:

  • web前端学习路线图
  • 前端web开发学习路线图
  • 如何创建Roadmap产品路线图
  • 地图上制作线路的动画_使用百度地图API制作线路轨迹播放
  • word文档如何画线条流程图_教你如何利用Word来画技术路线图!
  • Python学习路线图
  • 家到学校路线图怎么画_PPT绘制家到学校路线图教程
  • 嵌入式学习路线图
  • 前端学习路线图
  • 嵌入式开发学习路线图
  • 在地图上绘制路线图
  • 如何制作校园平面图及路线导图
  • 计算机英语
  • Android8-Settings-BlueTooth
  • android系统蓝牙自动连接
  • window 下蓝牙开发
  • android 蓝牙自动连接,蓝牙自动连接实现
  • 键盘之王——求打字峰值速率的小程序(C语言)
  • 编程猫python讲师面试_【编程猫教师面试】笔试:试题+打字测速-看准网
  • 代码打字速度_使用VueJS创建打字速度效果
  • vue 模拟随机变速的动态打字特效【支持多行文本】(含css实现闪烁光标,js动态改变setInterval定时器的时间间隔)
  • 一分钟600字,Python实现打字网站作弊并过检测
  • 在线打字测速系统
  • 手机打字测速软件简版
  • 打字_盲打训练/打字训练网站(updating)/打字测速网站
  • C#:Winform 打字测速程序 Typer
  • 在线打字测速
  • python打字测速_【pygame游戏编程】第四篇-----打字测速游戏
  • 计算机打字测速,5款打字测速软件分享,打字练习、测速两不误
  • 计算机打字测速,电脑的打字测速软件分享

软件项目技术路线图_创建基本的项目路线图相关推荐

  1. 软件项目技术方案_榆林化学公司项目工艺包关键技术创新方案审查顺利完成

    3月30至31日,陕煤集团榆林化学有限责任公司煤炭分质利用制新材料示范项目一期180万吨/年乙二醇工程草酸二甲酯.乙二醇工艺包关键技术创新方案审查会在合肥顺利召开.陕煤集团榆林化学有限责任公司.东华工 ...

  2. 【源码+教程】Java学生成绩在线管理项目_Java实战项目_Java开源项目_Java毕设项目_Java毕业设计_计算机毕业设计_Java项目开发

    今天为大家带来的是Java实战项目--学生成绩在线管理,可以用来做毕业设计喔~源码和教程就在下方.请大家查收~[源码+教程]Java学生成绩在线管理项目_Java实战项目_Java开源项目_Java毕 ...

  3. 软件项目技术路线图_为您的项目创建路线图

    软件项目技术路线图 Scrum has a tool for roadmap and release planning as well. We use two different mechanisms ...

  4. 软件开发技术顾问_成为成功的软件开发顾问的5个关键

    软件开发技术顾问 为什么我成为顾问 当我在2007年离开首席信息官(CIO)职位时,我想回到纯粹的软件开发领域. 软件开发工作(编程)是我的挚爱,在担任CIO几年后,我开始讨厌预算和更多预算以及捍卫预 ...

  5. sts中给项目添加服务器,sts创建java web项目

    sts创建java web项目 [2021-02-03 01:57:35]  简介: php去除nbsp的方法:首先创建一个PHP代码示例文件:然后通过"preg_replace(" ...

  6. 产品经理 需求 项目经理 选择_产品经理和项目经理的区别

    "产品经理和项目经理都负责什么工作?" "我想做产品经理,你觉得合适吗?" "程序员做几年可以做到项目经理?" "产品经理和项目经 ...

  7. it项目经理带一个项目的完整_如何控制IT项目需求范围?千万别让用户把你带沟里……...

    IT项目管理之需求范围控制篇 作为一名项目经理,如果您遇到这种情况该怎么办?客户仅仅付给了你一块蛋糕的钱,但他却想拥有一顿非常丰盛的晚餐.如果有一位项目经理能够让客户非常满意的只带着一块蛋糕离开,那么 ...

  8. java搭建maven项目_Eclipse使用maven创建Java Web项目完整示例

    项目开发环境 软件 版本 mac macOS JDK 1.8 maven 3.5.0 tomcat 8.5 Eclipse已经安装插件maven 1.创建Maven web项目 1.1 新建meven ...

  9. 前端项目结构构建_如何通过构建项目成为更好的前端开发人员(包括想法)

    前端项目结构构建 If you want to fast-track your growth as a front-end developer, nothing beats doing real de ...

最新文章

  1. GMQ稳定币可降低交易成本,构建智能化支付生态体系
  2. 借力英伟达打造车规L3智能驾驶大脑,揭开德赛西威量产的“秘密”
  3. 谷歌正在测试一个人工智能系统,帮助视障人士参加跑步比赛
  4. 中英字体不同导致的下划线不对齐问题
  5. oracle安装缺少,安装oracle11g R2 缺少依赖包
  6. 企业为什么要建设数据分析平台?应该怎么建?
  7. linux命令 查看某安装包是否已安装
  8. PCL点云学习(1)——pcd文件的生成和读取
  9. python自动搜索最佳超参数之GridSearchCV函数
  10. 《上古卷轴5重制版》支线任务
  11. TextCNN(文本分类)
  12. 【AI撬动地球】超级大国政治将让位于跨国AI巨头
  13. Ruby 安装 - Linux
  14. PCIe Gen4 Equlization失败掉速到Gen3的问题排查
  15. Python爬虫——爬取网站的图片
  16. 云南中医药大学计算机与科学技术,2019年云南科学技术厅-云南中医药大学应用基础-云南中医学院.PDF...
  17. 解决索尼WH-1000XM3使用蓝牙连接电脑无法使用麦克风的问题
  18. 同时删除多个 Txt 文本文档的前几行
  19. C++设计模式——模板方法模式(高屋建瓴)
  20. 2020春季校园招聘求职总结

热门文章

  1. PDF文件如何提取页面,PDF提取页面的小技巧
  2. python主进程 子进程_Python关闭主进程时关闭子进程
  3. 支付宝配置沙箱测试android,个人开发者使用支付宝沙箱环境进行代码调试
  4. jquery-实现的添加个人信息加验证,附完全的注释,相信大家可以看懂
  5. java程序员必备英语词汇_java程序员常用英文单词整理
  6. 中国天眼进入“多出成果”“出好成果”新阶段
  7. Flutter 开屏方案
  8. MyBatis高效同步百万级数据
  9. Day 5:自己编写的mysql类
  10. uniapp使用逍遥模拟器调试项目