一个外行想基于兴趣学一下编程,总感觉力不从心是怎么回事呢?

2022-09-28 20:12:01 +08:00
 ghmum

我个人非计算机行业从业者,只是很感兴趣,所以想自己学会写一些简单的程序。

故事是这这样的....

最近需要基于当下的日期实时生成一个简单动画,刚开始用视频剪辑软件剪了,但是每天都要去更改视频中的文字(日期),ipad 上的剪辑视频软件好像没有变量这个概念。

感觉每天改特别麻烦,就想能不能自己写一个软件然后装到手机上,就不用天天改日期了。跑去 Android studio 看了一会儿,大致了解了一下。因为功能简单,不需要联网,甚至不需要储存数据,就只是处理几个简单的动画,甚至是 gif 图片都行,感觉好像也不是很难,因为了解一部分 Python 的语法,所以就看了一下 Android studio 上推荐的教程。

其中提到比较新的编程语言 kotlin ,就打开它推荐的 kotlin 视频教程看了一下,因为是 Google 的员工录的视频,所以音频和字幕都是英文。看英文字幕的话勉强能够看得懂,但是视频全英文音频,完全就听不出来词语(听力水平可能也就是个初中生,甚至还不如现在的初中生),只能全程看字幕。看字幕也有问题,视频里的两个老师讲得还是挺生动的,感觉比之前看过的很多国内的中文教程要有效得多。但他俩讲话飞快,看字幕跟上不速度,就只能不停 pause/resume 着看,很心累。

心累了,然后跑到 kotlin 的官网看了一下文档,也是英文的,看了一部分 Basics ,因为英文水平烂,看这种文档也有好些词不认识。但是自己很清楚的感觉得到,在看这个英文文档的过程中,大部分的脑子都用在翻译这一堆的英文词句了,只有很少部分的脑子在对内容进行理解、记忆。如果不是因为有一些从 Python 里面学到的概念,估计我也是只能翻译这些英文句子,理解不了相关内容。

最后,就感觉到了非常累,那种力不从心的累。想到以前学 Python 的经历,那会儿学 Python 是因为对爬虫感兴趣,网上查完之后都说 Python 写爬虫效率高,所以就跑去找了很多 Python 的视频来看。我也不知道是我自己傻,还是我的直觉就是实际情况。现在回想以前看过的 Python 中文视频教程,不说全部,至少是绝大部分,就连我都觉得讲得很糟糕,给我的感觉就和以前读书时,老师消极念 ppt 差不多,很干很生硬。

最关键的是讲得散,听完之后对于编程并没有什么深入的认识,就是懂了一堆语法。编程概念也没讲清楚,很多框架的机制也没讲清楚。那会儿看过的爬虫教程,也看过不少,印象中就只有一部稍微有点用,其他的基本可以说是垃圾。上来就讲语法,讲完语法就那几样工具、scrapy 框架(好像很多教程都讲这个)的语法。也不详细讲客户端和服务器的通信知识,甚至连抓包都不讲,就讲了一堆语法和几个非常简单的例子,结果看完视频,除了那种不做反爬或者反爬非常非常弱的网站,其他的都爬不了。总结起来就是,只讲工具,不讲知识,毫无意义嘛!!!

学完 Python 之后,并没有感觉到它有什么用,真正想用的造一个什么自己想用的工具,发现啥也干不了。因为 Python 的各种模块都不熟悉,也不知道有哪些模块能干事情。

到底是我蠢呢,还是我傻呢?总感觉学起来力不从心

现在回想起来,到目前为止看过可能最有用的书就是“鸟哥私房菜”了,虽然也讲得很浅,但是这书至少是大致讲了一些 Linux 的“结构、机制”。

最后就有了上面的问题,因为兴趣想学编程,基本上都是自己在网络上找的教程,英文的看不懂,中文的教程又不系统。计算机的相关原理不清楚,最后想造一个什么工具的时候,就力不从心,感觉自己学了,但好像又啥都没学

7855 次点击
所在节点    程序员
81 条回复
wu67
2022-09-28 20:46:22 +08:00
业余自己玩着爽, 首推 javascript, 因为浏览器即解释器, 你可以随便找个网站自己玩, 加个按钮整点一键操作, 或者取 cookie 玩签到什么的, 比较有成就感. python 我没有玩过, 不做评价.

另一个是 shell 脚本, 能辅助日常操作, 可能有时候你用鼠标键盘点点点老半天的活, 下次写个脚本加验证半小时, 跑几分钟就完事了.

编译型语言像 Java go 这些就没那么友好了, 计算机专业的在校生一天到晚做什么图书管理系统、排课表就是个例子...比较难有成就感(指所见即所得), 上手费劲
Yourshell
2022-09-28 21:02:52 +08:00
学下编译原理,“一切皆字符串”
p1956
2022-09-28 21:17:01 +08:00
我也是业余的。推荐 php ,这个够简单的。我从来不看教程,直接看别人写好的轮子,简单的开始,用 echo 看输出,有问题就谷歌搜索错误信息,慢慢就懂了。python 也差不多这样。我一直觉得看教程是毫无用途的,是先动手遇到问题再看一些基础知识,这样是最高效的。
seers
2022-09-28 21:18:11 +08:00
你需要补一下计算机基础了,推荐读一下 CSAPP ,如果没时间或者读不下去,我再推荐你用用按键精灵类脚本例如 AHK ,也可以满足你的需求。
ioiioi
2022-09-28 21:20:23 +08:00
学习是需要静下心的,我也在自学 python ,挺有意思。因为我对网络感兴趣,所以学 python 就相得益彰。
我个人的经验是:
先立一个小目标,自己实现小目标,再看看别人是怎么写的,找出差距,再立一个小目标,如此重复...
好处是,你真的学到东西,而且学以致用
坏处是,好慢。
cmdOptionKana
2022-09-28 21:26:08 +08:00
Python 和 Java 都有丰富的中文资料,建议看几本经典的书,比如《 Python 学习手册》(老鼠封面)、《 Python 编程》(蟒蛇封面)、《流畅的 Python 》等等,挑一本从头到尾耐心看一遍。
Puteulanus
2022-09-28 21:29:31 +08:00
很多教程质量确实很差,像是直接把鱼塞给你而不是授之以渔
你既然有过这个经历,应该比较容易快速判断出一个教程的质量了,可以多花一点时间找质量好的教程看,磨刀不误砍柴工

学一个东西的时候因为关注的东西以外的事情(语言、其他的知识、网络故障)影响进度很容易让人沮丧,所以你英语做不到流畅阅读的话,还是优先找中文的优质教程比较好,不要试图技术和英语一起学
0o0O0o0O0o
2022-09-28 21:41:47 +08:00
我觉得,兴趣使然应该尽量保持学习过程让自己快乐,我赞同 #1 的大部分观点,你更应该玩起来,让自己快乐起来。

还有就是与人交流,假如你在这个故事的一开始询问了我,我会劝说你不要想着去做成 APP ,而是结合你已经掌握的技能来给你建议,尽可能降低学习成本。

诚然系统性地学习在到达一定高度方面绝对是最短路径,但是要考虑到自己到底是不是那类能忍受这般学习的痛苦的有毅力者或者对这般学习的过程甘之如饴的有天赋者。
zmal
2022-09-28 21:42:47 +08:00
你只是想要一个扳手,但市面上的教程是让你了解一个工具箱。

但是对于外行新手来说知道自己想要的是扳手已经是一件比较困难的事了。
TimePPT
2022-09-28 21:46:05 +08:00
如果仅仅是动画视频改日期。很多视频编辑工具是支持自定义宏操作的。那个上手快
wizardyhnr
2022-09-28 21:46:24 +08:00
你看的那些 scrapy 教程确实早就过时了。技术更新太快了,有的时候书写好了,讲得东西也过时了。

想学的话逼着自己看英文比较好,最新的动态还是英文圈的多。至少 python 官方文档是有中文的。

Fluent Python ;
Python Cookbook ;
https://realpython.com
https://docs.python.org/3/;

会搜索问题和实践的能力对自学很重要,指望上学那种填鸭式的学习那还就是浪费自己时间。

Python 的强点是生态,各种乱七八糟的库都有。你掌握基本语法,大部分的编程工作就是调用库了。
terence4444
2022-09-28 21:50:39 +08:00
你需要一个低一点的起点,明明是新手刚学就想造火箭是不现实的。
p1956
2022-09-28 22:14:02 +08:00
补充一下,如果你的目的只是完成一些很简单的要求(比如你说的自动更改日期,爬虫等等),是没有必要去学习编程,这样绝对在浪费时间,就是看看别人写好的轮子,copy 别人的代码,在自己机子上跑, 看看输出,报错什么的。比如你想爬虫,找爬虫的轮子,从简单的开始,自己跑跑,最重要的看变量输出,一行行看( php 是 echo ,python 是 print )。
我就是这样学的,效率最高,不用花太多时间,慢慢就能理解编程,了解了一门编程语言,其它编程语言也就不难了。我说的这些前提是你的要求不高,只解决简单问题
kkeep
2022-09-28 22:20:47 +08:00
我也是,没有目标很难
ration
2022-09-28 22:36:50 +08:00
要求不高,用到什么学什么好了。原理啥的要是都弄懂,几本书都不够看。
hxy100
2022-09-28 23:28:49 +08:00
先尝试用编程简单解决一些使用计算机过程中遇到的问题(比如自动化执行需要重复 N 次的工作,解放双手),不限语言(哪怕 Python 也好,AutoHotKey 也罢),不限方式,边写边搜(精准的搜索能力对于写代码很重要),照葫芦画瓢,刚开始不求代码精简优雅,只求实现功能即可,这样比较利于培养成就感。

上手之后再一点点深入,去研究函数,类 /包,设计模式之类的比较抽象的东西,学会了一两样语言,多写多练,堆点代码量,慢慢就能融会贯通了,再学什么都能很快上手。
YangWaleed
2022-09-28 23:44:15 +08:00
看完楼主的描述,原因不是楼主傻学不会,而是选错了目标。
“写一个软件然后装到手机上” 和 “造一个什么自己想用的工具” 对我这个编程多年的人来说,也不是一件 “简单” 的事情,不太适合纯新手入门编程。
这个“简单”指的不是用户层面看起来“功能简单”,指的是要做到这个目标,需要做的事情少而“简单”。

对于一般学习编程的新手,比较合适的练习都是很简单的:简单计算器、猜字游戏、井字游戏啥的。可以看看正规的教材里的习题,那些才是真正适合新手的练习题。
这是单纯想学习编程的建议。


如果是想要自己造工具,想要做一些东西方便日常生活,编程只是手段。那不如看看一些快速脚本、快捷指令啥的,能更快看到效果
placeholder
2022-09-28 23:47:47 +08:00
学了半天,也没看你新建过 android 的工程项目啊。。。
LZSZ
2022-09-28 23:50:36 +08:00
自己写来玩可以学 c#、python 、js 这三样基本能涵盖到大部分需求。
aguesuka
2022-09-29 01:43:01 +08:00
没看你写一行代码. 先下个 IDE 写千行的 dome 再来发帖

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

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

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

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

© 2021 V2EX