软件开发教会了我什么?

GROMACS自由能景观图绘制全流程:从PCA分析到Origin 3D可视化(附避坑指南) 本文详细解析了使用GROMACS绘制自由能景观图的全流程,涵盖从PCA分析、数据预处理、自由能计算到最终在Origin中进行3D可视化的完整步骤。文章重点分享了数据处理与格式转换中的常见“避坑”指南,帮助研究者从分子动力学轨迹中有效提取并解读构象自由能信息,深化对生物大分子动力学过程的理解。 阅读详情

软件开发中的很多思维模式是可以用来指导生活的,接触软件开发也有些年了。有两个思想对我的影响是比较大的,或者说这两个思想,在生活中思考的比较多。一个是分而治之,一个是迭代。谈谈这两个思想教会了我什么!

分而治之简单来说就是将一个复杂的大问题分解为多个小问题,然后将小问题一一解决,最后再将小问题的结果组合起来,大的问题自然就解决了。这种思想我们每天都在用,模块化设计就是典型的分而治之的具体实现。梦想就需要分而治之,我见过很多人很喜欢谈梦想——关于文学、关于爱情、关于理想、关于穿越世界的旅行。而当我问到那你下个月关于梦想有什么具体安排的时候,大多数人都搪塞一下,讲不出具体可行的计划,时间久了这梦想自己都忘记了。

生活中,大学学位就是一个分而治之的例子,如果把大学四年的课本放在一起,总结回顾,会发现层次和条理是很清楚的,每一年都有侧重点,获得一个学历是需要很多知识的,而将这些知识具体分解为一本本偏理论或者偏实践的书籍,然后合理的安排在四年的时间里,顺着时间轴,逐一击破,最后在毕业论文的时候再把所有的东西串联起来,学位就拿到了。

但现实是你会发现,一个学生在一个专业上至少花了三年时间,最后写毕业论文的时候还是有困难,我觉的我们的教育多少有些问题!学校应该在学生上的第一堂课就将毕业论文题目公布出来,告诉他们经过三年一系列的课程之后,你们应该写出这些论文,或者能够做出这些设计。这样学生在每上一门课就知道这门课的作用了,要不然那些散乱的知识点并不会引起注意。

上面有些跑题,生活中刚好相反,我们大多数人都有目标,却不懂得分解目标,而上学是学校将目标分解的很完美,大多数人却蒙在鼓里不知道目标是什么。生活中几乎所有的事情都是可以分解的。比如说读书,目标一年要读50本书。开始分解目标,很多人觉得这很好分啊,一年也是50来个周,刚好一周一本,这计划多半要泡汤,为啥呢?如果第一本书是《红楼梦》,一个多月还没读完,自信心受到打击,开始自我怀疑,是不是目标定的有些高,该砍去20本。

首先你要有三四十本书是确定的想读的,留十来本机会给这一年新发现想读的书,要不然这一年你突然有些更想读的书,那总量就超过50本了,超过负荷了,最后很难完成。然后将每本书需要的时间根据厚度和难易程度大概估算出来,分为不同等级。有些小说可能一个周末就读完了,有些专业大块头可能需要两三个月,这两者可以并行。然后将一年分为四个季度,将各个等级的书籍平均分配到各个季度里。这一年里按照计划,逐一击破,在这个过程中各个季度可以调换阅读的先后顺序,但必须是同等级或者一本厚的换两本薄的。这个计划并不是无懈可击的,得给留够余地。比如有个季度正好特别忙,阅读量只有计划的一半该如何处理?有人想到将本季度没读的书平均匀剩下的三个季度里,可万一这是最后一个季度呢?所以不能平均分配,一定是前边多,后边少,在计划的时候考虑到意外。

还可以结合一下逆向工程的思路,如果你想成为XXX那样的人,那么倒着往回推移,看看他都在做什么,在这个过程中你会发现你和他们的距离没有那么遥远。然后顺着这个路走下去。但不是一定会成功,如果你说你要成为李彦宏那样的人,要创办一家伟大的公司,那多半要泡汤,这需要机遇,人与人之间是有差距的。但是你说你要成为李彦宏那样的人,要成为一个厉害的工程师,那是有希望的,当你成为一个厉害的工程师,也许就有机会想一想创办一家伟大的公司的事情了。

如果你还不明白,那简单的说,你要想有个儿子,那前提你得有个老婆,怎么才能有老婆,那你得结婚,如何才能结婚,你得有个对象,如何才能有个对象?

new Object()

迭代的思想是很重要的,既然要迭代,就先得有代,别做完美主义。先弄个东西跑起来,慢慢完善,如果你想面面俱到的全部考虑进去,最后这事多半得泡汤,苹果手机也是第四代才真正变得完美成熟的。我曾写过一个只有一个输入框,一个按钮,一个列表,一条get请求的“项目”。一个妹子有个excel表,几千条数据,经常要根据名字查几个简单的信息。在数据库里建了张表,将excel导入进去,后端java写个服务,前端ajax一调,前后端上传服务器,这个项目就跑起来了,也就一顿饭的时间。把访问路径给妹子,几天以后妹子说:能不能在这输入,因为这个excel表还在新增数据。还有名字有的一样的只能查出第一个人的信息。能加登陆(权限)还是加个登陆吧,要不然别人也能查,虽说无所,但也不太好,巴拉巴拉说了好多,然后照着改了一下,又是一顿饭的时间,慢慢这个项目就有点眉目了。只要有人不断给你发需求、不断听取反馈,一次次迭代,这个过程中个人和项目都在进步。

这当然是个比较极端的例子,我要说的是:Just do it.《java编程思想》里有这样一句话:如果将项目视作是一种有机的、进化的生命体而去培养,而不是打算像盖摩天大楼一样快速见效,就会获得更多的成功和更迅速的回馈。

分而治之是要对一件事情有整体的把控,然后能分解到具体的行动上,而迭代是要我们能够不断的行动,不断地修正问题,从而更好的完成这件事情。

对计算机专业来说学历真的重要吗? 我本科学校是渣渣二本,研究生学校是985,现在毕业五年,校招笔试、面试,社招面试参加了两年了,就我个人的经历来说下这个问题。 这篇文章很长,但绝对是精华,相信我,读完以后,你会知道学历不好的解决方案,记得帮我点赞哦。 先说结论,无论赞不赞同,它本质就是这样:对于技术类工作而言,学历五年以内非常重要,但有办法弥补。五年以后,不重要。 目录: 张雪峰讲述的事实 我看到的事实 为什么会这样 ... 阅读详情

相关推荐

AIOps智能运维:从数据治理到故障自愈的实践指南

AIOps(智能运维)通过融合人工智能与运维管理,构建了感知-决策-执行的闭环体系。其核心技术包括多维度数据采集、机器学习算法和自动化执行,显著提升了告警治理、故障定位和容量预测的效率。在数据层,全量性、实时性的数据采集是基础,而算法层的异常检测和根因分析则依赖统计方法、孤立森林和LSTM等模型。AIOps尤其适用于处理告警风暴和复杂系统故障,如在电商大促中通过K-Means聚类减少92%的告警量。随着云原生和边缘计算的普及,AIOps正逐步实现与Service Mesh、Serverless等技术的深度集

weixin_30175731的博客 288

软件工程方法论对我们软件开发有多让用处?谈谈你的看法。

软件工程方法论对我们经软件开发有多大用处?谈谈你的看法。 众所周知,软件工程方法论是指我们在开发软件的过程中必须遵守的普遍行为和规则。它包括三要素:方法、工具和过程。 软件开发方法是一种使用定义好的技术集及符号表示组织软件开发的过程,它的目标是在规定的时间和成本内,开发出符合用回顾需求的高质量的软件。 软件开发工具对软件工程中的过程和方法提供自动或半自动的支持。 软件工程的过程即软件的诞生和生命周期,是为了开发出软件产品或为了完成软件工程和项目而需要完成的有关软件工程的活动。 通过学习软件工程方法论,学习系

m0_52833844的博客 167

inferCNV包安装问题及解决办法

InferCNV是一个由broad研究所开发的,利用单细胞转录组数据分析肿瘤细胞拷贝数变异(CNV)的工具。基本思路是在整个基因组范围内,通过计算肿瘤细胞关于参考的“正常”细胞的相对表达,利用滑窗思想对邻近的基因相对表达,计算拷贝数。 先贴一个官方安装说明: 官方infercnv安装说明 安装infercnv包: if (!requireNamespace("BiocManager", quietly = TRUE)) install.packages("BiocManager") BiocManager:

m0_51042606的博客 6803

高级软件工程师教会我的那些事儿

【优快云编者按】以人为鉴,可明得失。对于新手程序员来说,面对复杂的开发需求很容易因为经验不足或技术不够娴熟等原因而踩坑。本文的作者表示:坐在高级软件工程师旁边工作或许可以事半功倍!长达一年的观察学习,他收获了包括编写代码、测试、设计、部署以及监控的一系列的长足进步。 声明:本文已获作者翻译授权,原文(https://neilkakkar.com/things-I-learnt-from-...

优快云资讯 5060

Mike 21如何制作随水深变化的糙率文件

MIKE 21如何制作随水深变化的糙率文件

zhuzhujiayoua的博客 2249

MATLAB打开.m文件乱码解决办法

Matlab打开.m文件出现中文乱码问题,是因为Matlab存在两种编码格式:GBK和UTF-8,而不同版本的Matlab编码格式可能不统一,因此在不同版本的Matlab打开文件,由于编码格式的改变,会导致注释乱码。 1.查看你的Matlab的文件编码方式,在Matlab的命令行窗口输入feature('locale') ,如下图,可以看到默认编码为GBK,那问题就变成了将Matlab的文件编码方式GBK修改成UTF-8; 2.找到你的Matlab安装目录bin文件夹下的lcdata_utf.

zhugby的博客 4万+

10年软件开发教会我最重要的10件事

       0. “面向对象”比你想象的要难得多   也许只有我有这种想法,不过我曾经以为计算机科学课上学过的“面向对象”是很简单的东西。我的意思是,创建一些类来模拟现实世界能有多难啊?其实,那还真是挺难的。   十年之后,我仍然在学习如何合理地建模。我后悔以前我没有花更多的时间来学习面向对象和设计模式。优秀的建模技术对于每一个开发团队都是非常有价值的。   1. 软件开发的难点在于沟通   这

小武的专栏 1078

WordPress MasterStudy LMS插件 SQL注入漏洞复现(CVE-2024-1512)

WordPress Plugin MasterStudy LMS 3.2.5 版本及之前版本存在安全漏洞,该漏洞源于对用户提供的参数转义不足,导致可以通过 /lms/stm-lms/order/items REST 路由的 user 参数进行基于联合的 SQL 注入。

0xSec 1437

[转]10年软件开发教会我最重要的10件事

0. “面向对象”比你想象的要难得多也许只有我有这种想法,不过我曾经以为计算机科学课上学过的“面向对象”是很简单的东西。我的意思是,创建一些类来模拟现实世界能有多难啊?其实,那还真是挺难的。十年之后,我仍然在学习如何合理地建模。我后悔以前我没有花更多的时间来学习面向对象和设计模式。优秀的建模技术对于每一个开发团队都是非常有价值的。1. 软件开发的难点在于沟通这里的沟通是指与人的沟通,而不是sock

leehark的专栏 1924

1、基于改进3D卷积神经网络的阿尔茨海默病分类

本文提出了一种基于改进3D卷积神经网络的阿尔茨海默病(AD)分类方法,利用3D CNN对预处理后的T1加权MRI数据进行空间特征提取,并在VGG网络结构中引入类似ResNet的跳跃连接以缓解模型退化和过拟合问题。实验基于ADNI数据集,包含AD、MCI和NC三类样本,结果表明改进后的3D VGG模型在AD/NC、MCI/NC及多分类任务中均取得了优异性能,尤其在AD/MCI/NC分类中准确率达到98.50%,优于现有典型3D深度学习方法。研究验证了3D CNN在脑部疾病诊断中的有效性,并为AD的早期识别提供

kk1234的博客 89

Allegro如何用自带的功能将线段变成铜皮操作指导

在做PCB设计的时候,有时根据设计需要将线段变成铜皮,可以借助辅助工具来实现这一操作,但是Allegro自身也自带这个功能,如下图。勾选Delete original objects。如何用自带的功能将线段变成铜皮操作指导。勾选Convert to shape,需要把这段走线变成铜皮。

weixin_54787054的博客 2946

论【软件工程是不是教会不怎么会写程序的人软件开发】

不怎么会写程序,也可以学好软件工程!软件工程是一门研究用工程化方法构建和维护有效的、实用的和高质量的软件的学科。 它涉及程序设计语言、数据库、软件开发工具、系统平台、标准、设计模式等方面。 在现代社会中,软件应用于多个方面。软件工程是教会我们如何编织软件,而不是如何写代码,软件工程会使你知道怎样去做需求分析以了解程序需要实现的功能,怎样去做系统设计以构建程序的框架,怎样测试以验证程序功能的正确等。你可以通过软件工程的指导去实现一个结构清晰、可维护和健壮的程序。软件工程会教给你如何从工程的角度...

qq_58269746的博客 7313

前端build工程的时候 出现 `build.rollupOptions.external 的解决方法

看到这个Bug,理性分析: 遇到 Rollup failed to resolve import “@vue/devtools-api” 错误可能是由于 Pinia 使用了 @vue/devtools-api 模块,而 Vite 的 Rollup 插件无法解析这个模块 ps:但是我前一秒还可以,加了个别代码,突然不行,我是不相信的 = - =

码农研究僧的博客 3055

【观点】10年软件开发教会我最重要的10件事

1.“面向对象”比你想象的要难得多也许只有我有这种想法,不过我曾经以为计算机科学课上学过的“面向对象”是很简单的东西。我的意思是,创建一些类来模拟现实世界能有多难啊?其实,那还真是挺难的。十年之后,我仍然在学习如何合理地建模。我后悔以前我没有花更多的时间来学习面向对象和设计模式。优秀的建模技术对于每一个开发团队都是非常有价值的。2.软件开发的难点在于沟通这里的沟通是指与人的沟通,而

咕唧咕唧shubo.lk的专栏 935

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

10年软件开发教会我最重要的10件事(转)

  0. “面向对象”比你想象的要难得多  也许只有我有这种想法,不过我曾经以为计算机科学课上学过的“面向对象”是很简单的东西。我的意思是,创建一些类来模拟现实世界能有多难啊?其实,那还真是挺难的。  十年之后,我仍然在学习如何合理地建模。我后悔以前我没有花更多的时间来学习面向对象和设计模式。优秀的建模技术对于每一个开发团队都是非常有价值的。  1. 软件开发的难点在于沟通  这里的沟通...

alwmyd1983的博客 109

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

10年软件开发教会我最重要的10件事[转]

1.“面向对象”比你想象的要难得多也许只有我有这种想法,不过我曾经以为计算机科学课上学过的“面向对象”是很简单的东西。我的意思是,创建一些类来模拟现实世界能有多难啊?其实,那还真是挺难的。十年之后,我仍然在学习如何合理地建模。我后悔以前我没有花更多的时间来学习面向对象和设计模式。优秀的建模技术对于每一个开发团队都是非常有价值的。2.软件开发的难点在于沟通这里的沟通是指与人的沟通,而

hu17889的专栏 458

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

上一篇: Eclipse使用中的常见问题笔记
下一篇: MyBatis入门及基本使用方法。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值