【万字干货】保姆级AI编程基础入门,看这篇就够了!

科技   2024-10-29 18:03   重庆  

Hello大家好呀,在上周五晚上,「豆包MarsCodeAI编程云课堂」专为编程小白准备了超级无敌霹雳零基础课程《从零开始理解AI编程》,收获了小伙伴们的一致好评,全网有万人进行观看~


想要学习AI编程,首先就要理解编程,本次分享由7年开发者经验的大圣老师为大家带来,源自他的开源AI编程基础教程,欢迎阅读、转发给身边想入门AI编程的小伙伴!

「课程介绍」

豆包MarsCodeAI编程云课堂也正在同步进行中,本课程由字节豆包MarsCode官方出品,每周1节课,1h带领大家感受AI编程的快乐!


活动全程免费,复制链接报名:https://zjsms.com/iBKWN1t6/,或者点击文末阅读原文报名。

「最新课程预告」

本周四20:00-21:00 《如何用AI分析股价变化趋势》


话不多说,我们现在开始!




引言


"我这个编程小白,真的能学会AI编程吗?"


这可能是很多人心中的疑问。


在传统编程时代,学习编程确实不太容易 —— 要记忆各种语法规则,理解复杂的概念,敲很多代码...


但是现在不一样了。


AI正在逐渐降低编程的门槛,你不需要成为专业的程序员,也能用编程来实现自己的想法。


谁适合学习AI编程?


传统开发者


已经是程序员的朋友无疑是最适合学习AI编程的群体了


利用AI编程,你可以:


  • 把重复性的编码工作交给Marscode等AI助手,自己专注在更有价值的设计工作上

  • 用AI工具辅助进行性能分析,代码框架,避免写出屎山代码

  • 在技术快速发展的今天,及早掌握AI编程也是保持竞争力的重要方式


产品经理


在我接触过的产品经理中。很多人都在为一些问题困扰:


  • 想法很好,但总是很难快速验证

  • 静态的原型稿没有办法帮助表达自己的产品框架

  • 总是被技术的方案牵着鼻子走


学会AI编程后,你能做的事情会变得很多:


  • 有了新想法,可以直接用扣子等平台快速做出一个简单demo,用实际效果来验证想法

  • 在跟技术团队沟通时,能更好地理解技术可行性,设计出更实用的功能

  • 产品原型不再局限于静态界面,可以直接用Marscode等AI工具生成可交互的演示版本


交互设计师


设计师朋友们应该都有这样的经历:辛苦设计的交互方案,在开发实现时总是差强人意。


学习AI编程能给设计工作带来新的可能:


  • 可以自己动手做出简单的交互原型,让产品和技术同事直观体验设计理念

  • 理解技术实现的过程,设计方案会更接地气

  • 用动态演示替代静态原型,让每个人都能准确理解你的设计意图


宝爸宝妈


最近有位妈妈找我咨询,她的孩子才6岁,但对编程很感兴趣。问我需要学那种语言


在AI时代,孩子学习编程的方式也可以变得更有趣。


建议家长们可以这样做:


  • 不用着急让孩子学习具体的编程语言,可以先用像扣子这样的平台培养编程思维

  • 让孩子发挥想象力,逐步用AI工具把天马行空的想法变成现实

  • 如果有时间,家长也可以一起学习,这将是陪伴孩子成长的绝佳方式


本次课程面向的对象


这门课程主要面向两类学习者:


PS:本节内容会偏向于编程新人


编程新人


如果你是编程新人,请记住:


  • 🎯 这节课的目标不是把你变成程序员,而是教会你利用AI来实现想法

  • 📝 课程会用最通俗的语言解释编程概念

  • 🌱 这是一个循序渐进的过程,不要期待一蹴而就

  • ⏳ AI编程不同于AI绘画、写作,需要持续学习和积累


传统开发者


如果你已经是程序员:


  • 带你初步了解Marscode这个开发效率神器

  • 帮你掌握AI辅助开发的技巧


学习AI编程的平台


在小白入门AI编程的时候,一上来就接触AI编程工具并不是一个很好的选择。


市面上的AI编程工具:例如国内字节的MarsCode或者国外的Cursor


它们的目的是帮助已经学会编程的同学提高开发效率,但对于对编程基础概念都还不是很清楚的同学,这些工具并不友好


我们将AI编程学习分为两个阶段,并给大家推荐下适合小白入门和进阶的学习平台和工具


第一阶段:新手期


特点:对于编程的基本概念还不清楚,例如:基础的Python语法、变量、数据类型以及JSON等


这个时候推荐使用字节的扣子智能体平台进行学习。


在搭建智能体工作流的过程中,你会使用插件节点、数据库节点、变量节点等,这些节点都蕴含着编程的概念,但是又不需要你编码。在实践的过程中就将这些概念掌握了


同时,当你进阶到一定程度,扣子中也会有代码节点让你体验一把写功能性代码的成就感


第二阶段:实战期


当你有了AI编程的基础,想使用代码开发一个完整的应用时,Marscode就可以大显身手了


当到了开发完整应用的阶段,你开始编写多个函数或者是多个代码文件。


这时候一款好用的AI编程工具可以大大提高你的开发效率


遇到问题怎么办


不论是小白还是资深开发学习AI编程,一定会遇到很多问题


这时候记住一句话:遇事不决问AI


我们是AI编程,不是传统编程,要善于利用大模型的强大能力!


  • 🤔 看不懂代码?让AI给你逐行解释

  • ❌ 代码报错了?把错误信息给AI分析

  • 📖 概念不理解?让AI用类比帮你解释


编程是什么


不管是传统编程,还是AI编程,我们都得了解编程是什么。


为什么会有编程


想象你在教一个特别听话的助手做事。但是这个助手有如下几个特点:

  • 非常准确,但有点"死板"

  • 只会按照指令行事

  • 需要非常清晰的步骤说明


这个助手就是计算机,而编程就是告诉计算机具体该怎么做事的过程。


所以编程的核心目的就是:指挥计算机按照人类的意愿行事,解决人类的特定问题


编程语言


编程就是给计算机下达指令的过程。


那么,计算机该如何听懂我们的指令呢?这就引出了一个关键概念:编程语言。


编程语言就像人类语言一样,种类繁多。常见的有:

  • Python

  • Java

  • C++

  • JavaScript

  • 等等


想象这样一个场景:你的的领导说:“XXX,今晚加班把这个任务完成”,你说:“好咧” 这里:你的领导就是程序员,你就是计算机,你的领导通过一句话就让你乖乖的把活干了~


程序员给计算机下达指令的过程也是一样的。


你可能会问:"为什么会有这么多编程语言呢?",因为每种语言都有其特定的应用场景和优缺点。


这里不过多介绍,如果你还没有接触过任何一门编程语言,建议你直接选择Python


IDE以及插件


IDE是专业软件开发工程师的必备武器,但是对于小白来讲可能会有些困惑


简单来讲:IDE就是程序员写代码的地方,就跟你用Word写文档一样


你为什么不用txt,而是用Word写文档,因为Word功能强大,可以加粗,斜体,区分正文和标题等等


同理,程序员也不用txt写代码,而是使用配套了各种方便程序员写代码的IDE工具。


IDE全称:“集成开发环境”


  1. Integrated(集成):意味着它将多种开发工具整合到一个应用程序中。

  2. Development(开发):表明它是为软件开发而设计的。

  3. Environment(环境):指的是它提供了一个完整的工作空间,用于编写、测试和部署软件。


这个全称概括了IDE的核心特点 - 它是一个将多种编程工具和功能集成在一起的软件开发环境,旨在提高程序员的工作效率和便利性。


而再强大的IDE都不会满足所有开发者的需求,于是便有了插件的诞生。


插件用来扩展或者增强IDE的功能。


就好比你的手机已经有了拍照的能力,但是你还是要下载一个美颜相机一样。


字节的Marscode就是一款基于IDE的插件,它可以安装在像VSCode、IDEA这些主流的IDE上,通过AI的加持,大幅提高开发者的效率




了解了编程是什么之后,我们正式进入编程基础概念的学习。


编程的基础概念


有了AI,为什么我们还需要学编程的基础知识呢?


我给你举个例子:


在日常工作中,大家可能不止一次心里暗骂过自己的领导:“什么玩意,什么都不懂,还瞎指挥”


如果你连编程基本的概念都不知道,却总想着去指挥AI帮你编程,那我相信AI可能也在心里骂你


所以了解编程的基本概念,是你和AI有效沟通的基础


另外即使是最先进的AI也可能犯错。


如果你对编程一无所知,你可能无法识别AI生成的代码中的错误或不合理之处。


基本的编程知识能让你成为一个更好的"把关人",确保最终的结果符合你的预期。


PS:请注意,编程新人不要期望下面的内容可以完全听懂,这块是需要不断实践的。


我希望你应该专注听我对每个概念的理解,而不是里面的细节。细节部分需要在后面不断的实践过程中学习消化


编程语言


首先我们需要了解一门语言的基础语法,这里我推荐Python


PS:编程语言了解一种即可,各种语言都是相通的,而且以后就算有了更高级的语言,只会学习起来更简单


学习的过程中请千万注意:


不要陷入到学习中无法自拔,尤其是Python,花3个小时了解基础即可,其余的时间要以练带学。


变量:程序中的“容器”


在编程语言概念中,变量是非常重要的概念


🌰

变量在编程中充当数据传递的媒介。具体来说,变量的主要作用可以分为两个阶段:


  1. 存储数据:将数据存储在变量中,使数据有一个名字标识,可以随时访问和修改。

  2. 引用数据:通过变量名来引用或使用存储的数据,从而在不同的地方或不同的时间点进行数据传递和操作。


我用一个例子来解释变量的作用:想象你有一个带标签的储物盒,这就是"变量":

  1. 盒子可以存放东西(数据)

  2. 标签上写着名字(变量名)

  3. 你可以随时更换盒子里的东西(修改数据)


下面这段代码可以简单的展示下变量的内容


# 创建一个名叫"age"的储物盒,放入数字18age = 18
# 创建一个名叫"name"的储物盒,放入文字"小明"name = "小明"
# 可以随时查看盒子里的内容print(f"{name}今年{age}岁") # 输出:小明今年18岁
# 可以随时更换盒子里的内容age = 19 # 把age盒子里的18换成19print(f"{name}明年{age}岁") # 输出:小明明年19岁


详细学习请参考我的AI编程基础体系教程中的:09|程序中的变量


我们说变量是用来承载数据的,那么数据又有哪几种类型呢?


数据类型:不同的“物品类型”


就像现实生活中的物品有不同类型:


  • 📝 文字(String):"你好","Python"

  • 🔢 数字(Number):整数(1, 2, 3)或小数(3.14)

  • ✅ 真假(Boolean):对/错,是/否

  • 📋 列表(List):[苹果, 香蕉, 橙子]

  • 📑 字典(Dictionary):{姓名: 小明, 年龄: 25}


其中列表和字典是Python中的概念,他们还可以被称作:JSON


我这里这里称之为复杂的数据类型,后面相对难学的也是这部分内容


JSON可以长下面这个样子


{    "name": "大圣",    "age": 18,    "city": "杭州"}


或者这个样子


[    {        "name":"大圣",        "age":18,        "city":"杭州"    },    {        "name":"艾木",        "age":16,        "city":"深圳"    }]


学习JSON就类似学习一门简单的语法,这里我们不展开。


详细学习请参考我的AI编程基础体系教程中的06|数据的桥梁,理解与应用JSON


我想跟你分享下在学习JSON时需要记住的两点:

  • JSON跟我们的电脑文件夹结构很像,是一个树状结构,可以一层层的嵌套

  • JSON与编程语言无关,不同编程语言都认识JSON,就像英语是通用的国际语言


学习数据类型请参考:08|数据类型,一切数据的基础


控制流程:程序的决策与重复


条件判断(if-else)


就像生活中的决策:


你早上起床时查看天气:

  • 如果下雨,则带伞

  • 否则,则带太阳镜


用代码实现如下:

# 下雨决策if is_raining:    take_umbrella()else:    wear_sunglasses()


循环(for/while)


重复做某件事情


for循环


想象你有几个朋友,想给他们发一个生日祝福。你可以使用循环来一次性给每个朋友发送消息。


就是微信中的群发能力


friends = ["小明", "小红", "小刚"]    for friend in friends:    print("祝", friend, "生日快乐!")


while循环


假设你想要每天都进行锻炼,直到你瘦了10斤。在这种情况下,使用while循环会更合适。


currentWeight = 100 # 当前的体重goalWeight = 90 # 目标体重
while currentWeight > goalWeight: print("今天锻炼!") currentWeight--;
print("恭喜!你完成了锻炼")


深入学习循环请参考:13|理解并应用循环


函数


函数是编程中非常重要的一个概念。简单来说,函数就是一段可以重复使用的代码。


函数就好比日常生活中的功能模块。


假设你是会计,你每天都要做各种加减乘除。


为了方便,你购买了一个计算器,这个计算器就相当于一个函数:


  1. 你输入数字(输入)

  2. 计算器内部进行计算(处理过程)

  3. 显示计算结果(输出)


来看一个简单的代码例子:

# 定义一个简单的计算器函数def calculator(num1, num2, operation):    if operation == "+":        return num1 + num2    elif operation == "-":        return num1 - num2    elif operation == "*":        return num1 * num2    elif operation == "/":        return num1 / num2
# 使用这个计算器函数result1 = calculator(10, 5, "+") print(f"10 + 5 = {result1}") # 输出:10 + 5 = 15
result2 = calculator(10, 2, "*") print(f"10 * 2 = {result2}") # 输出:10 * 2 = 20

函数的主要作用:


  1. 代码复用:把经常要用到的代码打包成函数,避免重复写同样的代码

  2. 模块化:把复杂的问题拆分成小函数,让代码更容易理解和维护

  3. 封装细节:使用函数的人不需要知道内部具体是怎么实现的,只需要知道怎么用


在实际开发中,一个程序往往会包含很多个函数,每个函数负责处理特定的任务。


就像你的办公桌上可能除了计算器,还有打印机、扫描仪等不同的工具,每个工具都专注于完成特定的工作。


记住:理解函数并不需要你立刻就能写出完美的函数。


关键是要明白函数的基本概念 - 它就是一个能重复使用的功能模块,给定输入,经过处理后,产生特定的输出。


编程的思维模型


当学完了变量、数据类型、控制流程和函数这些基础概念后,让我们来聊聊编程的核心思维模型。


输入-处理-输出框架


在编程中有一个朴实但非常实用的框架:输入、处理和输出


这个框架跟传统编程还是AI编程都没有关系,它是一个共性的东西。


理解了这个框架,你会发现阅读代码还挺简单的


我们用做菜来举个例子:


  1. 输入:准备的食材

  2. 处理:具体的烹饪步骤

  3. 输出:最终的菜品


用代码来表达这个过程:


def cook_dish(ingredients): # 输入:食材  # 处理:烹饪步骤  if not check_ingredients(ingredients): # 检查食材是否齐全    return "食材不足"
prepared = prepare_ingredients(ingredients) # 处理食材 cooked = cooking_process(prepared) # 烹饪过程
return cooked # 输出:完成的菜品


这个框架为什么重要,因为到后面你会发现你在用AI帮你代码的时候,你要清晰的定义好输入和输出,而AI着重帮你搞定的则是处理的逻辑。


模块化拆分


你可能会问:"一个像豆包这样复杂的软件,也遵循这个框架吗?"


是的,一个有经验的程序员,会将复杂的功能拆解成多个模块。


而每个模块都遵循着输入-处理-输出的框架。


假设我们写一篇公众号,虽然流程有些复杂,但是可以拆分成如下几个模块

  1. 选题模块

    1. 输入:当下相关领域的热点新闻

    2. 处理:根据某种规则进行处理

    3. 输出:本次的选题


  1. 大纲确定模块

    1. 输入:选题

    2. 处理:AI

    3. 输出:文章大纲


  1. 内容生成模块

    1. 输入:文章大纲和选题

    2. 处理:AI

    3. 输出:每一章的内容


  1. 摘要生成模块

    1. 输入:文章内容

    2. 处理:AI

    3. 输出:文章摘要


  1. 封面生成模块

    1. 输入:文章摘要 & 选题

    2. 处理:AI

    3. 输出:封面图片


流水线组装


当确定了每个模块(函数)之后,我们就可以像流水线一样将这些模块串起来组成一个功能


什么是流水线:


  1. 第一个工作台(函数A)处理原材料,完成后把半成品放在周转箱(变量)里


  1. 下一个工作台(函数B)拿到周转箱里的半成品,根据产品类型(if条件)选择不同的加工方式,有时需要重复加工几次(循环)


  1. 就这样一个工作台接着一个工作台,最终制造出成品


我们用AI写公众号文章的例子来理解这个流程:


def generate_article(hotNews):      # 第一个函数:选题    topic = generate_topic(hotNews)  # 输入热点新闻,输出选题        # 第二个函数:生成大纲    outline = generate_outline(topic)  # 输入topic,输出outline        # 第三个函数:根据大纲生成内容    content = generate_content(outline)  # 输入outline,输出content        # 第四个函数:生成摘要    summary = generate_summary(content)  # 输入content,输出summary        # 第五个函数:生成封面    post = generate_post(summary)  # 输入summary,输出post        # 最终的文章包含这些部分    article = {        "topic": topic,        "outline": outline,        "content": content,        "summary": summary,        "post": post    }        return article


模块复用


当你理解了上面的概念,就会明白为什么程序员总是强调"模块复用"。


乐高积木就是典型的模块复用思想,通过一个个基础的小模块不同的组合,可以搭建出各式各样的作品。


Coze中的插件也是模块复用的一种体现


github上的一些开源库也是模块复用的体现


理解了这些思维模型,你再看那些复杂的代码,就会发现它们无非是这些基本概念的组合。


这时候,阅读代码就不再显得那么复杂和可怕了。


这些思维模型不仅适用于编程,在我们解决日常问题时也很有用。因为它们本质上是一种解决问题的方法论。


编程的进阶概念


了解了编程的基础概念和思维模型之后,我们就掌握了阅读代码的基础。


接下来我们需要了解三个跟代码不直接相关,但是在编程侧很重要的3个概念


跟外部程序交互:API接口


在AI编程中,有一个非常重要的场景,就是获取外部的数据。例如:


  • 需要实时获取当前的天气

  • 想在代码中引入豆包大模型的能力

  • .....


这时候我们就需要学习一个叫做API的概念,


API全称:应用程序接口


我们先来理解下什么是接口,我换个方式来说:接口人


当你因为工作需要和一个人谈业务的时候,但是对方不想直接跟你见面,所以对方指定一个接口人来传递消息


然后你所有信息的传达都是通过这个接口人来完成的



接口人是用来进行人和人之间传递信息的


那么API(应用程序接口)就是用来和应用程序进行传递信息的


那么应用程序又是什么呢?

  • 豆包就是个应用程序

  • 你用的各种软件都是应用程序


谁会和应用程序进行通信呢?

  • 人可以和应用程序通信

  • 其他应用程序也可以和应用程序通信


什么情况下需要和应用通信通信呢?


当你需要从某个应用程序获取数据的时候,我举个例子:


你搭建了一个网站,你想要实时显示当前的天气,那这个天气信息是不是得从气象局来。


于是你发现气象局对外提供了一个API,你每次调用都可以获取当前最新的天气信息。


只要你的网站接入了这个API,你就可以随心所欲的给你的用户展示天气信息了。


为什么在编程领域,API是一个非常重要的概念呢?


我们应该知道ChatGPT刚火的时候,国内也出现了好多的平台号称可以付费使用和ChatGPT的能力,这个就是我们说的套壳软件,

这些平台肯定没有自己的大模型,他们只是接入了ChatGPT的API接口而已,甚至接入的都不一定是ChatGPT的能力


还有各种你在微信上见到的各种小程序,大多数的底层都是接入了一些开源或者付费的API,然后进行简单的前端页面包装就成了一个新产品了


所以如果你对API有一定的认知和了解,理论上来说你就可以通过像搭积木一样配合各种API组装出你的产品。现在好多的创业公司也是这么做的


深入学习API的概念,请参考:10|程序中的API是什么


数据存储


在一个正式运行的程序中,基本都离不开数据的存储


例如用户的账号密码、个人信息等都是需要进行数据存储的


这个时候,你需要了解一个叫做数据库的概念。


数据库就像是一个电子化的档案室,你可以:


  • 安全地保管数据(比如用户密码会被加密存储)

  • 方便地查找数据(像在Excel里快速找到某个信息)

  • 随时更新数据(比如修改个人资料)

  • 保证数据的可靠性(不会轻易丢失或损坏)


PS:新人接触数据库的时候就可以类比Excel,或者飞书的多维表格


学习数据库请参考:14|数据库


应用部署


我们写代码的目的基本都是为了构建一个具有某个特定功能的程序,可能是APP,也可能是一个网站。


而将你的代码变成可以运行的应用程序,这个环节就叫做部署


当我们在电脑上写完代码后,这些代码目前只能在你自己的电脑上运行。


如果想让其他人也能使用你开发的程序,你需要把代码部署到服务器上。


服务器,简单来说就是一台24小时运行的计算机。


最常见的就是云服务器,比如阿里云、腾讯云提供的服务器。它们就像是租用的一台远程电脑,你可以把你的代码放到上面运行。


比如:一直很火的微信自动回复机器人,就是将代码部署在一台云服务器上,然后24小时提供服务。


部署的一般流程:


  1. 选择一个云服务器

  2. 在服务器上安装需要的环境(比如Python)

  3. 把代码上传到服务器

  4. 让代码在服务器上运行起来


PS:对于非程序员来讲,部署最好有手把手的教程,否则你会很痛苦....


深入了解云服务器:16|云服务器是什么?


拥抱AI编程


上面我们花费大篇幅讲解了编程的基础概念,目的是帮助大家快速入门。


接下来我们终于进入到AI编程,我们首先必须对AI的特点有一个认知


  • 它很强大,但需要清晰的指令

  • 它很聪明,但需要正确的引导

  • 它能写代码,但需要你说清楚要做什么


从执行者到方案设计


在AI编程时代,我们的角色发生了转变:


  • 过去:我们是代码的"执行者",专注于如何实现功能

  • 现在:我们是方案的"设计师",专注于想要实现什么功能


就像建筑师和建筑工人的区别:


  • 建筑工人关注如何砌墙、怎么打地基

  • 建筑师关注建筑的整体设计、功能分区、美观程度


我们不再需要掌握所有的编程细节,一些诸如语法之类的,随用随学即可。


但是我们要专注于:


  • 理解编程的基本概念

  • 明白代码实现的可能性

  • 学会如何描述和拆解需求


AI编程的核心技能


AI编程时代,最重要的技能不再是写代码,而是结构化思维 & 清晰的描述需求


结构化思考让你可以自顶向下思考,而清晰的描述需求则可以更好的指导AI干活。


两者缺一不可


结构化思维


还是以搭建积木为例:


  • 不会一开始就漫无目的地拼

  • 而是先看图纸,了解整体结构

  • 然后按部件一步步组装


编程也是如此:


  • 先设计整体架构

  • 然后拆解成模块

  • 最后逐个实现


清晰的需求描述


记住一个原则:AI不是你肚子里的蛔虫,它需要具体的指示


❌ 错误的需求描述:


"我要做一个类似淘宝的购物网站"


✅ 正确的需求描述:我想要做如下一个功能


1. 首页功能:
- 商品展示区:
* 每个商品卡片显示:主图、标题、价格、销量
* 支持按价格、销量、好评度排序
* 提供分类筛选功能

- 搜索功能:
* 支持按商品名称搜索
* 支持按店铺名称搜索
* 提供搜索历史记录

2. 商品详情页:
- 图文展示区:
* 支持多图片轮播
* 显示商品详细描述
* 展示规格参数表

- 交互功能:
* 加入购物车按钮
* 立即购买按钮
* 收藏功能


与AI协作的正确姿势


记住这个公式:好的输入 = 好的输出


  1. 先整体,后细节

  • 先描述整个项目的目标

  • 然后列出主要功能模块

  • 最后深入每个模块的细节


  1. 多用具体例子

  • 告诉AI具体的使用场景

  • 提供实际的数据样例

  • 说明预期的展示效果


  1. 善用反馈迭代

  • AI的第一个方案可能不完美

  • 及时提供具体的修改意见

  • 通过多轮对话优化结果


AI编程工具


编程的目的不是为了写代码,而是为了能够创造出解决问题的应用。


写代码只是为了解决问题的一个手段而已。


这就像我们开车,目的是为了到达目的地,开车只是一个交通手段。


AI编程工具大致可以分为两类:


狭义的AI编程工具


这类工具主要面向程序员,专注于提升写代码的效率:


  • Marscode、Cursor这样的AI编程IDE,就像是给程序员配备了一个AI助手

  • 它们可以:

    • 帮你生成代码

    • 解释代码含义

    • 优化代码结构

    • 查找代码错误

    • 回答编程相关问题

  • 这些工具让写代码变得更轻松


广义的AI编程工具


这类工具更进一步,它们让没有编程基础的人也能创造应用


  • 像Coze、Dify这样的智能体搭建平台

  • 它们提供了:

    • 可视化的界面搭建

    • 预设的功能模块

    • 简单的逻辑配置

    • 一键式部署功能

  • 这些平台就像是提供了"积木",让你通过组合这些积木就能搭建出实用的应用程序

  • 它们极大地降低了创造应用的门槛


无论是哪种AI编程工具,它们都在服务同一个目标:让创造应用变得更简单。


想要创造一个简单的对话机器人,也许Coze就够用了。

需要开发一个复杂的企业应用?那你需要借助Marscode这样的专业工具。


核心始终是:专注于你要解决的问题,而不是沉迷于工具本身。


用Marscode写代码


安装Marscode


创建示例项目


修改语言为中文


按住键盘上的"Ctrl+Shift+P"组合键,打开命令面板。

  • 在命令面板中输入"Configure Display Language"。

  • 点击"Configure Display Language"选项。

  • 在弹出的语言选择列表中,选择"zh-cn",代表简体中文。

重启VSCode:点击"Restart"按钮,重启VSCode软件。重启后,VSCode的界面将变成中文


安装Python扩展


创建一个示例项目


我用AI帮我创建了这个示例项目


我在准备一个关于Marscode编程工具的讲解,面向的对象是编程新手。


所以我需要准备一个非常简单的案例来给观众讲清楚Marscode的功能。


我需要讲解的Marscode的能力如下:


  • 代码解释

  • 注释生成

  • 代码生成

  • 代码补全

  • 智能问答

  • 单元测试生成


我需要你帮我设计一个非常简单的代码案例(使用Python语言)


这个案例要足够简单易懂,但同时也能够覆盖上面Marscode所有能力的讲解


代码解释


无论对于新手同学还是资深的开发工程师,阅读别人的代码是最基础的能力。


而Marscode的代码解释就是为了方便大家阅读代码


对于新手同学:Marscode的代码解释能力能让你在实战中快速学习语法知识


对于开发者来讲:快速阅读别人的代码,了解其核心作用可以让我们更加聚焦于自己的逻辑


注释生成


注释就是在核心的代码逻辑上写上文字说明,让代码更容易阅读和理解。


想象一下,你好不容易将一段复杂的代码理解清楚了,


但是如果你不做任何笔记,过了一段时间再看这段代码的时候又会两眼一抹黑。


注释一般有两个作用:


  1. 开发代码的同学添加良好的注释可以提高自己代码的可读性,

无论是对于团队合作还是后期自己的维护都有着重要的作用


  1. 对于阅读代码的同学来讲,可以通过添加注释防止重复的理解的代码


代码生成


代码生成这个就很干脆了,就是你描述一段功能,然后让大模型帮你生成一段代码。


对于新手同学而言,代码生成要小而精的用,就像我们前面讲到的:输入,处理和输出的框架。


代码补全


代码补全是针对开发者的福音,对于专业开发者而言,日常是会经常性的写一些重复代码的。


如果我们可以擅用代码补全,是可以大大提高我们的编写效率的


单元测试


代码开发完成后,测试环节是确保软件质量的关键步骤,也是产品上线前的最后一道防线。


在软件开发领域,专门设有测试工程师这一岗位,他们主要负责系统的流程和功能性测试。


然而,在将代码交付给测试工程师之前,每个专业的程序员都应该进行充分的自测。


自测的核心就是单元测试,即针对代码的各个功能模块进行独立的测试验证。


单元测试的核心理念是构建完整的测试用例集,


通过验证各种输入场景下的输出结果是否符合预期,来保证代码的正确性和健壮性。


只有当代码能够正确处理所有可能的输入情况,并产生符合预期的输出时,这段代码才能被认定为合格。


然而,单元测试一直是专业开发者面临的两大挑战:

  1. 如何设计完整的测试用例,确保覆盖所有可能的场景而不遗漏

  2. 编写测试用例本身是一项耗时耗力的工作


而这两部分工作都可以交给AI来做,他非常的擅长


智能问答


智能问答就相当于你在写代码的时候,


旁边多了一个可以随时问答的AI助手,而Marscode的点在于这个大模型是专门针对代码进行优化过的


附录


产研团队的构成


在学习AI编程之前,先了解一个产品研发团队是怎么工作的,会对你的学习特别有帮助。


这就像你想拍一部短视频,了解编剧、导演、摄影、剪辑各自负责什么,能帮你更好地掌握整个创作过程


我用大家熟悉的美团外卖APP为例,聊聊研发团队的几个关键角色:


  1. 老板说,我们要做一个外卖点餐APP,于是产品经理就开始规划


🍞

产品经理就像总设计师,规划整个产品的功能,他们把用户的需求变成具体的功能清单。

  • 用户能看什么餐厅、怎么筛选、

  • 配送费怎么算

  • 订单状态怎么展示。


  1. 产品经理在设计出整体的产品框架之后,交互设计师就会登场

交互设计师专注让产品好用:

  • 点餐时菜品怎么展示最清晰

  • 下单时哪些信息要重点显示

  • 付款时优惠券放在哪里最显眼又不会误触


  1. 当产品和交互就绪之后,流程就进入到开发手中,也就是我们常说的程序员

常见的开发角色有两个:前端和后端开发


前端开发负责用户能看到的界面,就像餐厅的前厅:

  • 让界面好看又好用

  • 点餐界面要流畅不卡顿

  • 优惠券要显眼但不突兀


后端开发处理看不见的核心功能,就像餐厅的厨房:

  • 处理订单数据

  • 计算配送费和优惠

  • 保存用户信息


  1. 当前后端开发完成后,流程流转到测试工程师手中

🌟

测试工程师则像品控师,确保每个功能都正常运作

  • 订单金额计算准确

  • 支付流程不出错


如果你是产品经理,建议先了解后端:

  • AI能帮我们生成界面设计,但产品的核心逻辑和数据架构更需要人来思考

  • 比如美团外卖,AI可以设计界面,但"如何计算配送费"、"怎么匹配骑手"这些核心逻辑,需要你理解后端原理

  • 了解后端还能帮你评估功能的开发难度,知道什么是真正可行的


如果你是交互设计师,建议先学前端:

  • AI确实能生成界面,但好的交互体验需要理解前端实现原理

  • 了解前端能让你设计出既美观又容易实现的方案

  • 知道动画效果怎么实现,就能设计出流畅不卡顿的交互


如果是新人同学,没有特别喜好的情况下,建议从后端入手,先找找感觉


想了解学习更多AI编程的知识,立即扫描下方的学习小助手二维码报名吧!


字节跳动技术团队
字节跳动的技术实践分享
 最新文章