程序过程中的写代码之思考

程序员的三种状态:写代码、删代码、改回去 在软件开发的世界里,程序员的工作往往被简单地概括为“写代码”,似乎编写功能、实现需求就是他们的全部任务。但深入观察和体会后会发现,程序员的工作状态远比“写代码”复杂得多,实则包含了三种核心状态:写代码、删代码、改回去。这三种状态不仅勾勒出程序员工作内容的全貌,也折射出软件开发的本质与挑战,揭示了软件工程中“变革与稳定”的永恒博弈。 本文将围绕这三种状态,深入分析其背后的原因、特征与意义,帮助读者全面理解程序员的工作智慧与技术哲学,进而启发对软件开发的深刻思考。 阅读详情

<!-- /* Font Definitions */ @font-face {font-family:宋体; panose-1:2 1 6 0 3 1 1 1 1 1; mso-font-alt:SimSun; mso-font-charset:134; mso-generic-font-family:auto; mso-font-pitch:variable; mso-font-signature:3 135135232 16 0 262145 0;} @font-face {font-family:"/@宋体"; panose-1:2 1 6 0 3 1 1 1 1 1; mso-font-charset:134; mso-generic-font-family:auto; mso-font-pitch:variable; mso-font-signature:3 135135232 16 0 262145 0;} /* Style Definitions */ p.MsoNormal, li.MsoNormal, div.MsoNormal {mso-style-parent:""; margin:0cm; margin-bottom:.0001pt; text-align:justify; text-justify:inter-ideograph; mso-pagination:none; font-size:10.5pt; mso-bidi-font-size:12.0pt; font-family:"Times New Roman"; mso-fareast-font-family:宋体; mso-font-kerning:1.0pt;} /* Page Definitions */ @page {mso-page-border-surround-header:no; mso-page-border-surround-footer:no;} @page Section1 {size:612.0pt 792.0pt; margin:72.0pt 90.0pt 72.0pt 90.0pt; mso-header-margin:36.0pt; mso-footer-margin:36.0pt; mso-paper-source:0;} div.Section1 {page:Section1;} -->

说实话,在公司已经快一年了吧,刚开始,觉得写代码,写程序还是一个比较重要的活!可是现在越来越觉得,出了写代码,还有更加重要的思想在里面。

 

软件工程的设计和实施过程,说实话,写代码到现在,就是任务发下来的那几天或者十来天是比较忙的,后来越来越觉得没有事情做了,可是真的没有事情做吗?软件交上去,肯定不合格,但是先前的这么长的时间为什么没有查出来?原因我想可能是多方面的,自身的,公司的,都有吧。。。

 

从软件的刚开始设计,到程序编码的基本结束,时间不是太长,可是后来的时间为什么会拖得这么长?没有彻底的检查,没有彻底的去理清楚这个软件的的所有模块的意义和实际操作的用途。当然会遇到很多的问题,所以后期的时间拖得相当的长。

 

我想自己应该理一份软件的过程规划出来,不然的话就会出现相当的问题在里面,主要是长此以往,就根本不是一个软件生产过程,就是在那里乱编一通,只是到最后能够使用罢了,可能不会出现任何问题,不过,一种规范的东西少了,总让人觉得不放心。编码的自信是应该有的,不过自信之后呢?任何人对你的软件过程都需要审查。所以还是需要软件过程理论去指导其如何生产。

 

 

第一点我想我接触不了了,也就是所有的设计以及以上的内容,比如先定需求,文档设计,总体规划,数据库字段设计,总体(底层和页面)配合接口。等等一系列的东西。

不过第二点以后就有我的份了,第二就是下发任务到我的上头,页面的具体内容是哪些,页面的整体模块有多少?―――我想这个应该首要考虑清楚,至少是要先定一个大致的离目标模块差不多的定位。写框架,这个虽然很重要,因为,整体的东西都是在这上面实施的,到目前为止,都是他们写好了,然后下发给我们。我们就在这个基础上(也就是模板),然后依葫芦画瓢,当然也有一些页面内容代表的东西可以让我们自己去理解,然后解决问题,不过实质上的编码过程所需要的东西比这个少多了。所以需要控制,(打个比方,也许一个框架的搭建需要半个月,然后下发到我们手里,模块差不多就是那些,也定好了,然后分任务,每个人是多少内容,好――开始干活,规定差不多15天完成这些基本内容,不过真正的实际操作上,也许10天,就算是独立思考,吃透程序,超过15天――当然也就是超过最多一两天,――可以原谅。不过其中的就是自己做出来的原型而已,经自己测试的过程当中,可能改了不少地方,这15天到之前,自己还是比较满意自己做的这个模块, ―――一个小插曲,自己写代码和测试页面效果的过程当中,可能有一些小地方,或者是自己不经意之间的地方,自己觉得没有什么,因为功能首先是实现了,然后就是由于这样做,也没有什么不妥的地方,所以就放下了,让它这样也行。不过这里需要注意的是,可以解决这样的问题?为什么没有去解决?为什么没有想到更好的方法去替代这样的不规范?一:没有遵照软件设计过程。二:没有一个严格的产品设计观念在自己的思想当中。三:从软件的开始编写到最后的产出,就根本没有一个统一或者是中期讨论统一的思路在里面。当然了,不是说每个人都有自己的一套,可能大家都想兼顾大家的思想,让所有的都做到一致规范,不过终究不是一个人写出来的,所以,很多地方根本就不一样。虽然看上去差不多。。。 所以还是需要软件设计过程,也许当初没有考虑到很多问题,可能中后期觉得以前的不好看。比如消息提示框,输入提示,页面排版。等等,没有关系,只要有一个版本设计在里面,就算后期来修改,也是相当的容易的。因为大家都有了一种遵照标准,都愿意去实施的话,心里自然不会有抵触情绪在里面,还有沟通交流也是。自然而然的,以后的软件开发也会相当的简单了――刚才跟比我早一点来的人说了一下,呵呵,好像实施有点难度,为什么?因人而异,因为模板已经有了,所以,做出了的东西都八九不离十了,所以,这个觉得也没有必要了。真是这样吗?这个真不好说。)

 

我是十分的想要一个软件过程的标准出来,不是什么(我没有见过大公司的那些标准,只是听一些朋友说是死编码,都是一套规范好的东西)需要一步一步的去规范好做什么,不过不管怎么说,总需要一定的规矩吧,现在在这里,都是有什么事情的时候,去问问,不管是有没有模板,总会有不同的地方,所以很多的地方有程序员之间的摩擦。说实话,我是一个相当的随和和(自己形容自己就是叫做无所谓――很多人可能会觉得我这叫做没有什么态度,或者是根本就不能算个有点严格或者个性――不管怎么说了,也许是个人的性格不同吧)能够忍受的人,所以很多时候,都不去计较太多的东西,但是,仍然希望有一套比较好的规范放出来。

 

在这个公司做过的项目(实际上线的)也有三四个了(有一个正在做,就是现在的,所以想说说心里话),加上没有上线的,也有十来个了吧,可是总看到一些很小的问题改了好几天,总看到一些功能实现之后,又花了好几天去从新定义和修改,可能是这段时间我闲的吧,说了这么多的废话,不过不管怎么说。我总是在不断的总结自己和自己所做的事情,可是不尽人意的地方终究有很多,不管那些,就说从自己的提升角度来说,也需要不断的去思考,程序的事情解决完了,终归需要思考一些思想上的东西。虽然以前没有好好学习,不过总还是有些皮毛在脑海里面打转。哎,希望再做一两个项目之后,我就会给公司做一套标准出来。让大家心平气和的去共同制定这个标准吧。这样就不会出现程序员之间的心理矛盾,还有就是可以共同进步和建立友谊。

 

好了,就这么多了吧。哎,乱发了一通乱气。呵呵,哈哈。。。。

 

  写代码仍得继续,至少自己还算喜欢这样,我跟普通的程序员没什么区别,仍然是工作在这样繁杂但是自己觉得还可以的生活当中.
SwissADME:一款在线预测小分子药动学性质的工具 是一个免费的在线工具,由瑞士生物信息学研究所(SIB)开发,用于预测和分析小分子的药物相似性、理化性质、药代动力学特性以及合成可行性等。它是药物设计和开发中常用的工具之一,帮助研究人员快速评估化合物的成药潜力。 阅读详情

相关推荐

SAP FI模块实操:用F-28和F-32搞定客户回款与手动清账,别再让未清项报表一团糟

本文详细解析了SAP FI模块中F-28和F-32事务代码在客户回款与手动清账中的实操应用,帮助财务人员高效管理未清项报表。通过标准清账六步法和手动清账实战技巧,解决因操作不规范导致的账务混乱问题,提升应收账款管理效率。

weixin_30292843的博客 453

【总结】最近写代码的思考与总结

写代码总结 最近开始做实验室的项目,所以自己也有一些心得,也踩了一些坑,自己记录一下。 1.首先,整个项目架构要清楚,这样才知道从哪里来到哪里去,需要达到什么效果。然后要用什么技术,要知道技术原理。 2.如果要参考开源代码,浏览一下说明,可以的话就拉下来跑一下,前提是自己要跑通,因为要确保这个代码没问题。可以多找几个,看看哪个更适合。 3.然后自己写代码,首先项目架构确定清楚,建哪些包,包里面对应写设计的哪部分代码(那些写得好的项目一看目录就很清楚每部分干什么,哪里是程序入口,看着就很舒服,自己再看的时候

Kaimar的博客 6922

开源LocalAI本地人工智能安装教程

LocalAI是一款能在本地运行的人工智能应用,它兼容了OpenAI API规范,它可以在普通的电脑运行,不需要GPU,也不需要联网,音频转录

2301_78652552的博客 3614

写代码的方法与思考

写代码的方法与思考 我们看各种各样的书籍,有讲原理的,也有讲实例的,你会发现里面讲的逻辑非常清晰,有时候你可能会困惑,他们怎么会想到用这个方法呢。其实这就是一个人的思考过程了。 (1)如何制作一个单击鼠标菜单隐现的特效 首先在准备制作一个特效前,你脑子里就得思考整个特效的全过程(工作过程:鼠标点击某个菜单,这个菜单如果是显现状态就变成隐藏,如果是隐藏的就变成显现)。 知道了工作流程,下面就得解决每...

weixin_30316097的博客 270

Starlink地面终端天线对星(一)对星流程,星历下载,信标信号

starlink卫星终端对星采用机械伺服+相控阵电子扫描的混合模式,兼顾快速盲扫和高精度跟踪;对星流程分三步:冷启动与盲捕获 → 建立初始链路并下载星历 → 进入正常通信模式;

chen2jiang3的博客 2725

奇迹MU单机版开服全流程:从零搭建到分辨率调整(附GM工具使用技巧)

本文详细介绍了奇迹MU单机版从零搭建到分辨率调整的完整流程,包括环境配置、服务端启动、GM工具使用技巧等关键步骤。特别针对现代高分辨率显示器提供了优化方案,帮助玩家轻松搭建个性化游戏环境,重温经典MMORPG的独特魅力。

b3n4m5q6w7的博客 681

代码编写行为准则,编码是一个认真思考的过程,如何有效提高代码的可读性?

编写代码,实质是在梳理逻辑,为了完善整个逻辑流程,我们借用编程语言的变量、函数、流程控制、循环、注释、方法等串接起来,完善一套系统的逻辑。 为了完善这套逻辑,我们借助了许多工具:设计方法、架构设计、项目组织等。 意识到没有,代码的好坏一定程度上可以从逻辑层面评判。 符合逻辑,不一定是最优的代码 不符合逻辑,一定不是好的代码 从这层面来看,梳理逻辑极为重要,逻辑通了,剩下的就是实现了。 逻辑的串接靠的是编程语言的变量、函数、流程控制、循环、注释等。 本文从这些层面讲述,如何编写可读代码。 ...

miaozenn的博客 571

AGV路径规划实战:如何用Python+ROS实现激光SLAM导航(附避障代码)

本文提供了一份基于Python和ROS实现AGV激光SLAM导航的实战指南。内容涵盖从Docker环境搭建、激光雷达数据处理、Gmapping建图,到Move_Base全局/局部路径规划与TEB局部规划器配置的全流程。重点解析了如何通过参数调优实现稳定导航,并附带了紧急避障代码,帮助开发者快速构建具备自主路径规划与实时避障能力的AGV系统。

pepsi的博客 1235

关于写代码之前的思考

作为一个自学做游戏的人,我在自己尝试制作游戏的过程中有一些思考。。 在我为我游戏的功能编写代码之前,我形成了这样的一个习惯。这也是我常用来分析问题、抽象问题的习惯。 这张图就是每次我分析一个功能的时候的流程图。 比如说,我要实现一个UI系统,那么我会列举出很多UI交互的例子,然后尽量去将这些例子所拥有的特性描述出来。根据我的描述进行分析,提取UI系统的功能,有哪些组成。最后就是进行抽象。...

qq_14812585的博客 545

Quartus II设计程序计数器PC、由PC产生ROM的地址(含仿真)

设计程序计数器PC,正常工作模式下,系统启动,设置PC的初始值,之后每来一个clk,PC的输出值应该增加1;当程序发生跳转时,PC的值应该发生改变,级将跳转的地址值赋进行输出。PC后端连接一个ROM,由PC来产生ROM的地址,仿真进行验证。

m0_73700621的博客 1816

在 SAP HANA 与 HANA Cloud 中,用 SQL DDL 创建数据库视图:从设计时工件到运行时对象的全链路实践

本文介绍了在SAP HANA中通过HDI容器使用DDL定义视图的方法。主要内容包括:1)采用.hdbview设计时工件存储视图定义,构建时自动转换为运行时视图,实现版本控制和权限隔离;2)开发前需准备HDI容器、MTA项目及配置.hdiconfig文件;3)详细说明.hdbview语法结构,重点讲解WITH READ ONLY和WITH STRUCTURED PRIVILEGE CHECK的使用场景;4)提供了从创建文件到构建验证的完整流程示例;5)强调跨容器访问时需通过.hdbgrants为#OO用户授予

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 275

魔方还原指南:三阶魔方层先法七步全攻略,新手也能轻松掌握

魔方是一款风靡全球的益智玩具,看似复杂,实则遵循着严格的几何和逻辑规律。还原魔方的核心原理在于“逐层复原”,即以中心块为参照,按层处理棱块和角块,而不是杂乱地拼凑单个面。这种系统工程思维不仅在魔方中适用,在算法设计和流程优化中也具有启发意义。掌握层先法(CFOP的入门基础)后,玩家能显著提升空间观察力、动手能力与问题拆解能力,应用于日常解压、智力训练甚至速拧竞技。许多新手常因盲目背诵长公式而放弃,其实正确的学习路径是先理解魔方基本概念与转动记号,再配合少而精的核心公式,从底面十字、角块归位到顶面统一逐步完成

weixin_33922672的博客 515

APP签名验证全栈破解:Frida Hook绕过+算法逆向+Python一键调用(附可运行脚本)

做过APP逆向和爬虫的同学,肯定都被签名验证折磨过:改了一行代码重新打包,APP直接闪退;抓包看到接口有个sign参数,翻遍JS找不到加密逻辑;好不容易找到加密函数,一调用就崩溃。客户端APK签名校验服务端接口签名验证。前者防止你篡改APP,后者防止你伪造请求。很多人卡在第一步,改完APK就闪退,根本没机会碰接口。本文基于真实项目实战,分享一套通用的签名验证破解方案。从客户端APK签名校验的Frida Hook绕过,到服务端sign算法的逆向还原,最后用Python实现一键调用。

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 964

为什么程序员应该少写代码

软件开发的一个最基本的事实是写代码,但是最大的误区之一就是把写代码当做工作。当我作为一个程序员第一次参加工作的时候,就犯了这样的错误。老实说,写代码真的是一件特有意思的事,它的强大功能,它的多种作用等等都让我有一种挥斥方遒的豪情壮志,倍有满足感。但是经过这么多年在这个行业沉浸,我才终于发现了这个真理:软件开发人员应该尽可能地少写代码。 不过,可别误解我的意思,我可不是说我们应该死命地压缩代码,像“代码高尔夫”竞赛那样,步步为营,搞得最后自己写出来的代码自己都不理解了。我的意思是,我们现在大多数的时间都

qq_28248897的博客 453

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

程序员壁纸推荐

1、三思后再写代码!!! 2、从世界上搜索喜欢你的人!!! 其他分辨率下载: 1920x1080 1920x1200 2560x1440 2560x1600 3、代码没写完,哪里有脸睡觉!!! 其他分辨率及 PSD 文件下载:http://static.runoob.com/download/mlcf.zip 4、程序员的 Home 键!!! 5、编程是一门艺术!!! 6、云 ~~...

Jollyzhe的博客 3014

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

从今天开始写技术博客

自从参加公司组织Hunger Games后,白天写代码,晚上当产品,思考一些产品问题,为比赛做准备。作为一个技术人员参加产品人员的比赛,和一群产品PK,产品上确实有不少进步,对以后创业应该是有很多好处。但是这段时间技术进步不大,可能是因为精力投入太多,自己总是不自觉地在想一些产品问题。 之前一直有转产品的想法,参加了hunger games 后,这种想法变淡了,一些产品的想法,没有对技术的深入了

千里之行始于足下 1204

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

别以为程序员的工作就是写代码

大家好,我是鱼皮,今天给大家分享一个开发小经验。 很多没有实际工作过的同学,可能都会认为程序员的工作只有写代码 + 和产品经理 “拉扯”,也会习惯性地用代码量来评价一个程序员的工作强度和等级,以为码字如飞、每月能写个几万行代码的程序员就是大佬。 我以前也是这么认为的,直到我正式进入企业工作,才发现真的不是这么一回事儿!高端的同学总是用最简短精妙的代码来解决问题。包括我认识的很多高职级大佬(被外界称为 “架构师”),他们的平均代码量都很少、甚至有些已经完全不写代码了。 那他们的工作都是干啥呢? 其中最常见的

努力做最接地气的编程干货分享,感谢关注 1万+

代码写得好,绩效却不高?程序员的沟通和思考有多重要?

????导读编程达人们在代码的舒适区里沉浸久了,会以为除了代码其他都不重要,事实上代码之外的事情,占据我们很大一部分时间,却又容易被忽略,因而高效的沟通协作、独立的思考精神也变得难能可贵。本文是《如何成为一名靠谱的程序员》的下篇,看完之后,你可能会对怎么开会沟通、怎么辩论 PK、怎么“置身事内”地参与项目规划等等有一些新的灵感。????目录1沟通协作1.1 收到请回复1.2 外部依赖的处理...

QcloudCommunity的博客 1138

在阿里,程序员除了写代码,还要做什么

“写代码才是最爽的,开会什么的太浪费时间了”,“我是程序员,我只想安安静静地写写代码”,类似这样的话其实在我们身边经常可以听到,之前我一度也是认为想的。但是来了阿里之后,面对庞大的系统交互、错综复杂的业务形态、海量的用户群体,慢慢发现只是会写代码是远远不够的。接下来谈谈个人的几点体会,抛砖引玉,说说程序员在代码之外还应该做些什么,以便更好的提升自我。 1.闭环思维 闭环思维源于“PDC...

技术进阶之路 1453

写程序过程中的思考

  这段时间,一直在做一个WEB小项目,因为之前并没有什么经验,所以这次主要是一边摸索,一边学习,好多习惯和方法都比较原始,进度也不好控制,效率也不高。下面是我的一些思考:    1.项目设计工作。只有真正做起项目来,才发现项目设计工作是多么的重要。没有总体的设计过程,项目就没有主线,程序的思路和模块设计方法就不能统一,所以整个过程就好像在凑代码一样,毫无条理和逻辑,而且会产生很多不必要的麻烦

低调做人,高调做事 803

对写博客的一些思考

写博客到现在有一年多的时间了,今年年初的时候,还写过2020博客总结。随着写博客的次数增多,同时参加了优快云的一些活动,对写博客有了一些更深的理解,在这里和大家分享一下。以前我觉得写博客是深入思考的过程,这也是我最看重的一点,这一年多写博客的经历确实证明是有用的。而且在遇到问题时,能够更快的发现问题核心点,并做出很好的总结。不考虑其它好处,单凭这两点足够督促我继续写下去。写这篇文章主要是想说一下深度思考有多深的问题。下面是我的理解,未必正确,大家可以一起探讨一下。不管任何方向,博客有几种类型:读书笔记式这

445

怎么实现AI思考过程

unsetunset前言unsetunset在做多Agent系统时,因为整个系统可能会经过多次Agent处理,耗时会比较高,如果不给前端展示Agent处理的过程,那么用户的体验就会非常不好,在用户的视角,你的程序可能卡死了,但其实你的Agent在背后干活以求获得好的结果。解决方案也比较直观,就是将Agent的处理过程在前端返回出来,这也是很多产品的做法,即所谓的有一个thinking过程的展示。本...

weixin_30230009的博客 1120

代码质量的哲学思考:程序员的自我修行

代码的简洁性、模块化设计以及对边界情况的处理,都是程序员思维的一部分。对于程序员而言,代码质量背后隐含着一种哲学思考,这不仅仅是编写出符合规范的程序,更是在追求一种对复杂性、简洁性和优雅性的平衡。我们在追求的,或许不仅仅是代码的完美,而是如何在技术中找到一种理性与美感的平衡。每一段代码都是我们与世界的对话,是对秩序的追求和对复杂性的挑战。你可能也遇到过这种场景:当我们初次接触一个需求时,往往想到的解决方案是复杂的,但经过反复的思考和优化后,最终的代码却可能是出乎意料的简洁。

CDMYC的博客 635

关于关闭deepseek r1思考过程实践

在模型的tokenizer_config.json的chat_template 里面最尾加上以下代码。加上之后程序会认为已经思考了,从而不再输出思考过程。

weixin_45886938的博客 3623

写代码之前的思考

写代码之前的思考 在写代码之前,大家都会有思考,无论时间长、还是短,大家都要思考,如何修改或者如何写一个新的功能。 如果是修改代码,一定要对原流程和代码处理有深入和详细的了解,然后再写一些简单,但是毕竟详尽的修改方法。 否则,在修改完后,然后再详细的了解流程,会有很多感觉修

wht_lvlearn0的专栏 593

你真的思考过自己写的代码为啥这么垃圾吗?

不一致的代码会造成认知上的负担,在一个系统中,做类似的事情,却有不同的做法,或者起到类似作用的事物,却有不同的名字,让人困惑。 大部分程序员对于一致性本身的重要性是有认知的。但通常来说,大家理解的一致性都表现在比较大的方面,比如,数据库访问是叫 DAO还是叫 Mapper,Repository?在一个团队内,这是有统一标准的,但编码的层面上,要求往往就不是那么细致了。所以,我们才会看到在代码细节上呈现出了各种不一致。我们还是从一段具体的代码来分析问题。 命名中的不一致 有一次,我在代码评审中看到了这样一段代

JavaEdge全是干货的技术号 6319
上一篇: 关于中国的字符集编码问题--纯粹个人的观点--中文乱码问题
下一篇: 关于Flex的导出操作.--从数据库中读出内容导出
sebatinsky
博客等级 码龄20年 42粉丝 67原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值