V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
proxytoworld
V2EX  ›  问与答

大家如何实现编程能力的进阶,从学习完语法到能够写项目

  •  
  •   proxytoworld · 102 天前 · 2408 次点击
    这是一个创建于 102 天前的主题,其中的信息可能已经有所发展或是发生改变。

    也学过不少语言了,rust 、go 、python ,总是学完语法,不能完成一个项目,看开源项目,感觉也很难看进去,没办法达成编程能力的进阶。

    有啥好办法能够突破初学这一层呢

    31 条回复    2023-02-26 14:02:57 +08:00
    CalebWayne
        1
    CalebWayne  
       102 天前
    我是通过看机构视频
    sulaimanpro
        2
    sulaimanpro  
       102 天前   ❤️ 2
    其实混的好不好,还是多方面的。技术只是基础,业务理解能力也很重要,只有业务理解了,才能从各个层面抽解代码,让代码看起来简洁高效。
    上一层讲,能完成编码业务,只是个打公仔,你还得学会驭人,把你的想法交给手下人去干好。
    再上一层讲,从概率上讲,一个医生能实现财务自由的途径,绝对不是精进医术。一个程序员想实现财务自由,决定不是精进技术。钥匙从来不在锁上,你得去别的地方找找。
    zapper
        3
    zapper  
       102 天前
    软件工程,你得拿做工程的思维去看,学语言只是实现工程的一种主要手段
    hsfzxjy
        4
    hsfzxjy  
       102 天前 via Android
    你得先有一个想做的项目的基本设计,然后直接上手就好了
    cmdOptionKana
        5
    cmdOptionKana  
       102 天前   ❤️ 1
    循序渐进啊,先做小项目!

    小项目你不可能做不出来,比如一个 TODO 工具。

    做出来之后,可以在 todo 的基础上加上传图片的功能、加基础的 markdown 功能、加单用户登录,再加多用户登录…… 这样玩一下,基本上感觉就慢慢有了。

    然后再找稍大点的项目,比如论坛,或者多用户的博客平台等等,看你自己兴趣。

    或者你最终想做一个怎样的项目,说出来,让大家帮你拆解一下,拆成一个个可以轻松完成的小任务。
    yangzhezjgs
        6
    yangzhezjgs  
       102 天前   ❤️ 2
    首先,你要理解所谓编程的本质是什么?
    是建模,简单说就是首先将现实中的人或物映射为数据表,然后把他们的互动过程转化为对数据的操作( CRUD )。
    所以项目关键不是编程语言,而是实现整个建模过程的设计思想——面向对象建模和实现工具——数据库和 web 服务框架。
    第二,最基本的建模思路就是针对功能需求用软件工程里的用例图,对象图(静态),时序图(动态)等分析建模,然后实现阶段,首先模块化分解,然后每个模块按照 MVC ,设计数据表和对应的操作函数。
    第三,就是进阶部分,你要开始学习非功能需求,包括性能(响应时间,吞吐量),高可用等,这些就要回到更本质的层面,包括学习多线程,网络编程,分布式等等。
    ugpu
        7
    ugpu  
       102 天前
    不是你学了语言学到了就是会些代码了,
    我们学习编程的目的是 通过学习他 学会了一项技能 我们用这个技能能去做点什么
    摆脱应试教育的思维. 我们学习是认知 认知后去做点什么. 不是他能给我们做点什么 习惯 我们用他做点什么
    gant
        8
    gant  
       102 天前 via iPhone
    just do it
    Skifary
        9
    Skifary  
       102 天前
    只有真正做,遇到问题和解决问题以后才会有收获的感觉。

    纸上得来终觉浅,绝知此事要躬行
    whileFalse
        10
    whileFalse  
       102 天前 via iPhone
    1. 下载一个简单项目,确保能跑起来
    2. 开改

    甚至都不需要提前学习语法。
    daimubai
        11
    daimubai  
       102 天前
    @sulaimanpro #2 答不对题,好为人师
    panlatent
        12
    panlatent  
       102 天前 via iPhone
    我觉得你没进行下去,没遇到一个让你感兴趣的项目,或者逼着你前进的项目。

    兴趣是最好的老师,找一个感兴趣的东西开始吧
    proxytoworld
        13
    proxytoworld  
    OP
       101 天前
    @zapper 不是专业开发,对于项目中开发之间合作的流程还不太清楚
    proxytoworld
        14
    proxytoworld  
    OP
       101 天前
    @cmdOptionKana 你做小工具会构思代码结构吗
    proxytoworld
        15
    proxytoworld  
    OP
       101 天前
    @yangzhezjgs 感觉你讲的,醍醐灌顶,太强了
    sulaimanpro
        16
    sulaimanpro  
       101 天前
    @daimubai 你说的对,听你的
    renmu
        17
    renmu  
       101 天前 via Android
    说明你没有学精过一个语言,不然你会发现学新语言做个小东西是个手到擒来的活,很多东西都是与语言本身无关的
    ychost
        18
    ychost  
       101 天前
    万变不离其中,如果搞 WEB 基本看下对应语言的热门框架就行了,两三天就能上手,最多五天熟练使用,但是如果是搞游戏、搞桌面之类的就需要花大力气了
    opengps
        19
    opengps  
       101 天前   ❤️ 1
    完成项目的出发点不是技能多么高,而是需求足够强,你想做成的事你会主动排除困难找到对应的资源(比如技术,比如代码)
    cmdOptionKana
        20
    cmdOptionKana  
       101 天前
    @proxytoworld 代码结构先别管,先写,一堆堆代码胡乱地堆在一起也无所谓,先把功能实现了,然后回头再改。

    改一遍,后续偶尔看教程或看别人的源码,肯定会看到别人的代码结构,由于你原本写过改过,印象就很深刻,可以马上参考起来。
    techstay
        21
    techstay  
       101 天前
    代码这个工具是用来完成任务的,只要你有一些点子,就可以想着用新学的工具去实现一下,哪怕是十几行的脚本也没关系,能力就是在这个实践的过程中逐渐培养出来的。
    lzgshsj
        22
    lzgshsj  
       101 天前
    看看软件工程相关的吧,从需求分析开始
    alne
        23
    alne  
       101 天前
    @proxytoworld 不用构思,想到哪做到哪儿。
    等改不下去了就知道该重构了
    daimubai
        24
    daimubai  
       101 天前
    @sulaimanpro 我不是你 dad ,别听我的
    richangfan
        25
    richangfan  
       101 天前
    我是从想做个网站开始,根据他所需要的技术来学习的。这样就不会出现学了技术却找不到项目的情况。
    ClericPy
        26
    ClericPy  
       101 天前   ❤️ 1
    以前也挺迷茫的, 后来发现自然而然就达到了... 过程中很难总结什么必经之路, 简单说几个有印象的点

    1. 计算机基础真的是润物无声地帮到我, 好多需求从未接触过, 但却能很快就上手解决
    2. 代码量似乎似乎真的是个笨方法却又极端有效, 万行 /十万 /百万行的自己回头望, 真的一层层鄙视过去的自己
    3. 软件工程的很多东西提前学了很难用到编码里面, 但是如果代码量上来了, 很多瓶颈和 bug 其实都可以在那些范式 /开发原则里面找到标准答案, 算是一种弯路超车的感觉
    4. 项目有时候到一定规模, 会遇到开发或设计瓶颈, 那些架构师的书里的解决方案真的省了不少脑细胞
    janus77
        27
    janus77  
       101 天前 via iPhone
    多看别人的项目代码,不要只关心自己做的一两个模块,多从整体出发思考问题,看问题的角度不一样 你就能知道为什么这个地方要这样设计
    KIRAYOMATO
        28
    KIRAYOMATO  
       101 天前
    多写,项目都是一点一点写起来的,一边写一边学
    andy20160606
        29
    andy20160606  
       101 天前 via iPhone
    计算机语言是触类旁通的,只是语法特性略有不同,先熟练掌握一门语言即可。

    之后继续夯实基础,数据结构玩明白,做需求时,能提高效率,leetcode 上面的练习就不错

    最后找个公司实习,有个半年时间,独立开发模块就没什么问题了
    timelessg
        30
    timelessg  
       101 天前 via Android
    想办法进中大厂,被需求推着很快就 ok 了
    Thecosy
        31
    Thecosy  
       101 天前
    功能的实现过程其实跟语言无关,做下去就对了
    关于   ·   帮助文档   ·   博客   ·   nftychat   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   4877 人在线   最高记录 5634   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 503ms · UTC 09:15 · PVG 17:15 · LAX 02:15 · JFK 05:15
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.