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

2023-02-25 13:48:32 +08:00
 proxytoworld

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

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

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

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

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

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

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

纸上得来终觉浅,绝知此事要躬行
whileFalse
2023-02-25 15:54:03 +08:00
1. 下载一个简单项目,确保能跑起来
2. 开改

甚至都不需要提前学习语法。
daimubai
2023-02-25 15:55:37 +08:00
@sulaimanpro #2 答不对题,好为人师
panlatent
2023-02-25 16:06:53 +08:00
我觉得你没进行下去,没遇到一个让你感兴趣的项目,或者逼着你前进的项目。

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

改一遍,后续偶尔看教程或看别人的源码,肯定会看到别人的代码结构,由于你原本写过改过,印象就很深刻,可以马上参考起来。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/919109

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX