只会“单文件编程”,应该如何提升能力?

2023-06-10 17:19:44 +08:00
 shinsekai

每次遇到一个课题,看看输入是啥,想要得到什么输出,然后开始新建一个文本文档用 python 或 matlab 开始编。函数和类基本都放在一个文件里,当然有些另找的函数就直接放在同一文件夹下也没什么问题。内容无非是各种矩阵运算,调用各种库,最后点击运行。期间加断点看中间变量的值是否正确,然后画图看结果。时间久了,很多库都熟练了,课题也解决了,但总感觉:

这样的编程脱离实际,没法挣钱,请问有什么好的方法和教程?

4068 次点击
所在节点    程序员
25 条回复
cmdOptionKana
2023-06-10 17:24:44 +08:00
学前端, 学运营.
imicksoft
2023-06-10 17:27:07 +08:00
1.模仿别人
2.做自己想要的
harrozze
2023-06-10 17:34:31 +08:00
@imicksoft #2 赞同。找一些开源代码库看看怎么组织代码的;如果遇到跨目录不好导入的,就 google 一下看看。跳出来具体问题的话,OP 用 matlab 编程……似乎不是软件专业的(我毕业的时候还没这东西,所以不确定)?想在程序方面发展一下的话,可以看看编程思想相关的,比如模块化编程,但是先别着急去看设计模式那些东西,距离太远,即使能跳的过去,中间也会缺失一些思考的过程,走不远。
DTCPSS
2023-06-10 17:39:54 +08:00
其实如果你要解决的问题本身就很比较单纯+面向过程的话,单文件也不是不可以
如果多个文件用到同一段逻辑,那就提取出来放在一个公共文件里
westoy
2023-06-10 17:44:54 +08:00
拆分项目都是工程领域的被项目毒打出来的实践经验

你搞数据、图形这种的又不太需要这方面能力, 一般能写出来就行了
RRRSSS
2023-06-10 18:00:02 +08:00
我觉得搞数据分析不就是一次性代码吗,你这样没什么问题吧
shyangs
2023-06-10 18:45:34 +08:00
用到 matlab ,是數學系?

數學系 code 寫的漂不漂亮不重要。因為你的課題和論文不會年復一年的維護。
shyangs
2023-06-10 18:48:48 +08:00
除非你要從學術界跳業界。業界有大規模合作的要求,要求每個人都寫出同樣風格的代碼,方便維護。
xuanbg
2023-06-10 18:55:28 +08:00
没有规模以上,代码随便。能运行,能达到目的就行。说不好听点,OP 的代码也就是自动化脚本而已,不需要什么如何组织。压根不存在这个需求啊。
zictos
2023-06-10 19:10:04 +08:00
项目太复杂的话你自然不会写成单文件了,因为会很晕,写的时候和后期维护都会一个头两个大。
代码不是特别多的话确实是单文件最简单和直接,非得弄很多文件反倒还复杂化了。
streamrx
2023-06-10 19:43:40 +08:00
你做的东西跟软件工程都不是一个东西
AyaseEri
2023-06-10 19:46:09 +08:00
大规模应用一般不止一个输入输出,所以自然而然就会拆出许多分类了。
而且啊,学会拆文件、拆文件夹,你已经是架构师了
YaakovZiv
2023-06-10 19:48:06 +08:00
我自己是先运行再优化。有些经验会成为个人习惯。
LykorisR
2023-06-10 19:59:20 +08:00
工程能力是需要训练的,跟着开源项目做学呗,感觉也没啥好的办法
RockShake
2023-06-10 21:29:53 +08:00
科研跟工程是两种不同的组织方式,工程项目组织更多考虑代码的可读性,可维护性,可复用性,你更偏重解决单一问题。当你的单一问题变成复杂的系统问题的时候,你的代码自然也会形成对应的组织形式。
Tanix2
2023-06-10 21:48:51 +08:00
能解决问题就行了
linearxian
2023-06-10 21:56:14 +08:00
用 python 科研,我是把反复会用的基础功能写成 function 然后整理在一起。具体到每次实验都是开新的 jupyter notebook 。最后跑通了如果计算量大或者处理的数据多会整合一个版本上传到服务器跑。
janus77
2023-06-10 23:03:07 +08:00
找个工程化做的比较好甚至比较偏激的语言去学习他的做法,比如 java
学会了以后找工作顺便还能多个亮点(狗头)
realpg
2023-06-11 02:12:12 +08:00
随便找个你会语言的比较大型的开源项目

然后自己随便编点需求,在他基础上加简单功能
功能不一定有用,自己瞎鸡儿创造需求就是了

加过几个功能,基本就知道它怎么组织的了
dayeye2006199
2023-06-11 07:03:34 +08:00
你不是说你用一些库好熟练么,这些库要是开源的,研究研究这些库怎么写的,不也是挺好的学习教材么

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

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

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

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

© 2021 V2EX