过早退出是一切失败的根源

1. 设计你自己的进度条

进度条的设计是一个很多人都知道的故事:同样的耗时,如果不给任何进度提示,只是在完成之后才弹出一个完成消息,中间没有任何动态变化,那么整个过 程就会让人等得非常焦急,导致一些人干脆把程序关了了事。如果有进度不断更新,那么对整个过程耗时的心理感受就会远低于实际值,用户也不会郁闷到把程序关 了。(你有多少次在银行处理手续的时候,看着工作人员把一堆材料不停地倒腾来去,心里多希望他们可以在柜台小窗口上投影一个进度条?)

这里的原因在于,没有进度提示的话,我们无法判断这个等待什么时候才是个尽头。如果有不断增长的进度条,那么我们对于什么时候会达到100%就会有一个粗略的估计,这个估计是一剂定心丸,让我们知道这事情总会并且会在不久的将来完成。

做事情也是同样的道理,善于规划的人,会将目标分割成一个个的里程碑,再将里程碑分割成TODO列表。前阵子流行的GTD方法学,核心的理念就在 于,如果你把任务分割了,你就有了进度条,你就知道,事情在不断的进展,你总会完成任务或到达你的目标,你会有一个时间估计。反之如果没有这个分割,整个 的任务或目标对你来说就只有两种状态——“完成”和“未完成”,如果不幸是一个比较漫长的目标,那么你会发现你的进度条总是“未完成”,一次又一次的等待 未果会耗尽你的耐心,让你下意识的产生“这事什么时候才能完呢?”的疑惑,没有分而治之,你就不知道未来还需要付出多少努力才能达到目的,这就会让你心生 怯意,不敢进一步投入时间,免得血本无归。在这样的心理下,不少人就会选择保守策略——退出,以免到头来花了时间还一事无成。

而所谓的规划其实就是针对这种心理弱点的做事方法。如果你对整个目标的几个重大步骤有清晰的界定,能够对每个步骤的耗时作出靠谱的上界估计,你就不会被不确定的未来,不确定的时间投入感到恐惧,就不会被这种不确定感压迫到过早退出。

2. 不要过早退出循环

我们在尝试新的事物的时候,总是会遇到各种各样的困难,不同的人会在碰壁不同的次数之后退出。用程序员喜欢的话来说就是,我们都在for循环,区别 在于你是什么情况下break;的。有的人退出阈值高,这是能坚持的一类人,有的人退出阈值低,这类人很可能遇到一些障碍就退出了。

过早退出的原因往往在于对于未来的不确定性,对于投资时间最终无法收到回报的恐惧,感受到的困难越大,这种恐惧越大,因为越大的困难往往暗示着这个 任务需要投资的时间越大。所以其实我们都是直觉经济学家,当我们说“畏难”的时候,其实我们畏惧的不是困难本身,而是困难所暗示的时间经济学意义。

然而,我们的情绪大脑毕竟比较原始,仅根据碰壁的次数或硬度来判断事情的难易并不一定靠谱,如果你遇到困难,不妨用一用互联网,用一用群体的智慧, 看看别人当时是怎么想怎么办的,绝大多数情况下你并不孤单,你遇到的问题早就有人遇到过,你踩过的坑里面尽是前人的脚印,不要仅仅因为一时摸不着头绪,找 不着出路就退出,这不是informed decision,问一问自己作出退出的决策是否基于足够的信息,我是否进行了足够的调查,至少,是否去简单用了用搜索引擎。

模仿高德纳先生的名言:过早退出是一切失败的根源

3. 兴趣遍地都是,专注和持之以恒才是真正稀缺的。

很多人看了书中的故事之后得出这样的结论:兴趣最重要。然而,我觉得区别他们和其他人的,并不是他们拥有超过常人的兴趣,而是他们拥有超过常人的毅力。

其实人天生就对新事物怀有好奇心,难以找出谁没有对任何事物或领域产生过兴趣,然而不同的是,有些人的兴趣只能持续几天,当遇到第一个困难,第一道坎的时候,他们就熄灭了,然而另一些人的兴趣火花会变成火苗,火苗会变成火种,一直稳定的燃烧很多年。区别他们的并不是兴趣的有无,而是他们的性格里面有没有维持兴趣的火种一直燃烧下去的燃料

一个人有专注和持之以恒的性格,即便在一个没有多大兴趣的领域也能成为专家(更何况,兴趣的很大一类来源就是“我擅长做这件事情”);反之就算有兴趣也很快会被一些冷水泼灭。

4. 生活中的选择远比我们想象得要多,细微的选择差异造就了不同的人生

唐雅薇同学的故事中,有这么一个细节吸引了我的注意:当时她正在找工作阶段,对女生在IT行业的发展很迷茫,恰逢微软的郭蓓菁女士到他们学校演讲,演讲完了之后她立即就奔上讲台拦住郭女士询问女生与IT的问题。

这是一个细节,但我相信不是所有人都有勇气上去拦住名人问普通问题的,我们会给自己找很多很多的理由和接口,我想最常见的应该是两个原因:1. 如果被批评了自尊心会受到打击。2.认为问了也问不出特别的信息。然而事实却是相反:1. 自尊心受到打击算不上实质性的损失。2. 你想不出能问出什么特别的信息并不代表就真的问不到重要的信息。别把不知道当成没有

一个小小的思维差异,可能导致很多人在遇到困惑的时候原地打转,冲突不出,而另一些人则取经得到宝贵的经验,站在别人的肩膀上越过了障碍。唐雅薇从 郭女士那儿得到了最宝贵的信息:女生在IT行业也能有很好的发展。信心,是这样一种奇怪的东西,就算你没有确切的证明未来会更好,你也会坚持下去,你不会 过早退出循环;而来源于过来人的信息则是信心最靠谱的保障。

你是不是意识到,在平常的生活中,你所作出的选择比你想象的要多得多呢?有没有想过有一些看似细小的选择可能会产生巨大的影响?

想想看,试一下,是不是真的没什么损失,还有可能得到巨大的回报呢?

5. 靠专业技能的成功是最具可复制性的

它需要的只是你在一个领域坚持不懈地专注下去,只需要选择一个不算太不靠谱的方向,然后专心致志的专下去,最后必然能成为高手或者绝顶高手。世上有很多成功带有偶然因素和运气成分或出身环境,但至少这一样,被无数人复制了无数遍,否则就不会存在学校和教育了。

6. 反思是让人得以改进自己的最重要的思维品质

很多人在成年之后甚至未及成年,性格就难以再发生大的变化。性格是这样一种自我实现和强化的陷阱:如果你是不容易专注的人,你会发现生活中处处都是 分散你注意力的东西,你的思维难以在一个事情上停留半小时,于是你的时间变得琐碎,你很难在一个领域有长久的积累和深入的思考,这样的现实可能会让你感到 沮丧,后者让你更加无法专心,这样的现实可能会让你感到焦虑,为了避开焦虑你又会去寻求其他的刺激,结果是恶性循环。

反思是改变自己的第一步,我们常常容易发现别人的问题,别人的错误,却难以发现自己思维中的问题,因为我们很少会把自己的思维当成目标去思考。

作为程序员,相信没有人不知道能修改自身的程序,而能修改自身的程序的前提就是,首先这个程序必须有法子能够指向自身。

7. 饿死在干草堆之间的驴子

有很多在迷茫期的同学,迷茫都是相似的:面前有两条路,到底选哪一条?“转行还是不转行?”“学C++还是学Java。?“做管理还是做程序员?” 有些问题其实不是问题:比如“学C++还是学Java。”答案是都学而且还不仅学两个。有些问题不是一个泛泛的答案能够适合的,比如转行还是不转行,需要 考虑很多自身因素。

但更重要的是,有人会因为无法作出决定就推迟决定,然而实际上推迟决定是最差的决定,在推迟决定期间,时间悄悄流逝,你却没有任何一条路上的积累,白白浪费了时间。

如果你有一些钱不知道花在A还是B上,你先不作决定,没问题,因为钱还是你的,但如果你有一些时间,不知道花在A上还是B上,不行,因为过了这段时间,这段时间就不是你的了。

所以,不管有多纠结,也不要从纠结中逃离,试图推延决定,既然终究是个痛苦的决定,就痛一回,好好思考和调查之后作出一个决定并坚持下去,只要不是太不靠谱的行业(相信也没谁会在纠结了之后却选了一个不靠谱的行业的),经过你的积累总会成为高手。

8. 一生的知识积累,自学的起码占90%

你会在这本书当中看到的一个重复出现的现象就是自学,大规模的自学,逃课自学,上网找书自学,程序员行业是最适合自学的行业,网络是程序员的天堂, 需要的资源、工具,比课堂上的多出何止百倍,如果说还有一个学科,并不需要传统的教育就可以成才,估计非程序员莫属了。作为程序员如果没有查过 wikipedia,没有看过几本原版电子书,没有在国内外主要邮件列表里面提过问题吵过架,没有用技术博客记录学习的独特体会,没有订阅技术牛人们的博 客,怎么好意思说身在这个行业呢?

最后,看完了书还是说“说起来容易做起来难”的,怪自己,不怪书

来源:刘未鹏 | Mind Hacks——不是书评 :《我是一只IT小小鸟》

### 文件上传失败的原因 文件上传过程中可能出现多种原因导致失败。当使用`rz`命令上传大文件时,可能会因为 rz 默认配置误判上传流中的特殊控制字符而导致提前退出[^1]。另外,在 Web 应用程序中上传大文件时,服务器端的 PHP 配置可能限制了允许的最大文件尺寸以及请求的时间长度,这会阻止较大文件的成功传输[^4]。 对于基于浏览器的应用场景下,前端框架如 Vue.js 处理大文件上传时遇到瓶颈,则可能是由于缺乏有效的分片机制和断点续传支持所致[^2]。而在特定软件环境内操作,比如 FinalShell 进行文件传送受阻的情况,往往涉及客户端与目标主机之间的兼容性和权限设定等问题[^3]。 针对 MinIO 对象存储系统的对象写入异常状况,除了确认网络连通性外,还需验证 API 方法调用是否正确无误,并确保所指定的目标桶存在且具有适当访问权限[^5]。 ### 解决方案概述 #### 使用 `rz` 命令上传大文件 为了防止因特殊字符引起的过早终止问题,建议采用带有合适选项参数的形式来启动 rz 工具,从而增强其稳定性并提高成功率。例如: ```bash rz --buffer-size=1024k --binary-mode=yes ``` 此命令通过增加缓冲区大小 (`--buffer-size`) 和启用二进制模式 (`--binary-mode`) 来改善性能表现。 #### 调整 PHP 设置以适应更大文件 修改 php.ini 中的相关指令可以帮助克服由语言层面强加给 HTTP POST 请求的数据量约束。具体调整如下所示: ```ini memory_limit = 256M ; 提高脚本可用内存限额至256MB post_max_size = 50M ; 扩展POST提交内容总容量可达50MB upload_max_filesize = 50M ; 单个上载项最大体积设为50MB max_execution_time = 300 ; 加长PHP进程运行时限到五分钟 max_input_time = 300 ; 同样延长输入解析过程所需时间 ``` 完成编辑后记得重启Web服务使更改生效。 #### 实现高效的前端大文件管理策略 引入现代 JavaScript 技术栈能够显著提升用户体验质量。利用 HTML5 File API 结合 WebSocket 或者 RESTful 接口设计,可以构建具备自动分割、并发发送片段特性的同时还提供进度反馈的服务接口。以下是简化版的大文件切割逻辑示意代码(适用于Vue项目): ```javascript async function sliceAndUpload(file){ const chunkSize = Math.pow(1024, 2)*5; // 定义每一片段大约等于5MB let chunks = []; for(let i=0;i<file.size;i+=chunkSize){ chunks.push(file.slice(i,i+chunkSize)); } await Promise.all(chunks.map(async (part,index)=>{ try{ await axios.post('/api/upload', part,{ headers:{'Content-Type': 'application/octet-stream'}, params:{index} }); }catch(error){console.error(`Part ${index} failed`,error);} })); } document.querySelector('input[type="file"]').addEventListener('change',(e)=>sliceAndUpload(e.target.files[0])); ``` 上述函数实现了将选定文件按固定字节数拆分成多个部分依次递交的功能,有效规避单一超大型资源一次性加载带来的风险。 #### 确认FinalShell及其他SSH工具的工作状态 如果是在图形界面下的 SFTP/SCP 类型应用里碰到了障碍,那么首先要排查的是本地机器防火墙规则、远程服务器安全组配置等方面是否存在阻碍正常通信的因素;其次检查 SSH 密钥认证链路畅通与否也很重要;最后不要忘记查看日志记录获取更多线索以便进一步诊断潜在错误根源所在。 #### 正确运用MinIO SDK进行稳定存取 确保应用程序遵循官方文档指导编写交互代码至关重要。特别是涉及到多线程异步编程情景时更需谨慎对待同步锁竞争条件引发的一致性破坏隐患。下面给出了一种较为稳妥的对象放置方式作为参考实例: ```java public class ObjectUploader { private final MinioClient minioClient; public void putObject(String bucketName, String objectName, Path filePath) throws Exception { PutObjectArgs args = PutObjectArgs.builder() .bucket(bucketName) .object(objectName) .stream(new FileInputStream(filePath.toFile()), Files.size(filePath), -1L) .contentType("application/octet-stream") .build(); this.minioClient.putObject(args); } } ``` 这段 Java 片段展示了如何创建一个简单的类用于封装向 MinIO 存储空间添加新条目的流程,其中包含了必要的元数据声明以辅助后续检索工作
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值