如何把代码写的更优雅,你需要这一份代码精进书单!

程序员技能树构建指南:从新手到架构师的系统化成长路径 在软件开发领域,系统化学习与知识体系构建是开发者持续成长的核心挑战。技能树作为一种可视化学习路径模型,借鉴了游戏设计中的依赖关系与进度追踪理念,将零散的技术点组织成有层级、有依赖关系的知识图谱。其技术价值在于帮助开发者明确学习顺序、避免知识碎片化,并通过依赖关系揭示技术栈的内在逻辑。在工程实践中,技能树可应用于个人能力规划、团队知识图谱建设及技术招聘评估等场景。本文以code-sorcerer-skill项目为例,深入解析如何结合容器编排、微服务架构等热点技术领域,构建符合个人职业发展的定制化技能成长体系。 阅读详情

点击蓝色“程序员书单”关注我哟

加个“星标”,每天带你读好书!

 

黄小斜写了一年多的代码,渐渐地代码量也上来了,但是,代码写的多就是好吗,简单的数量堆积似乎并不能起到太好的效果,毕竟我们CRUD写多了,也不怎么需要架构设计,甚至连个设计模式都不怎么需要用到。如何开始代码精进之路,其实有很多的过来人早就已经给出了答案,今天就给大家推荐几本帮你精进代码的优质书籍,走过路过可不要错过哦~

 

代码精进系列书单

 

代码精进之路:从码农到工匠

 

这是一本为专业程序员而写的书,写好代码、追求卓越和工匠精神是每个程序员都应该具备的优秀品质。


本书共有13章内容,主要分为技艺部分、思想部分和实践部分。技艺部分详细介绍了编程技巧和方法论,并配以详尽的代码案例,有助于读者提高编写代码的能力,优化代码质量。思想部分主要包括抽象能力、分治思想,以及程序员应该具备的素养等内容。实践部分主要介绍了常见的应用架构模式,以及COLA架构的设计原理。

 

作者简介

张建飞,阿里巴巴集团高级技术专家,Java全球管理组织(JCP)执行委员会正式会员(Full Member)。2007年计算机工程硕士毕业后,先后在软件公司InfoSys与互联网公司eBay担任高级研发和技术专家的职务。2014年加入阿里巴巴,先后在1688、ICBU和零售通担任技术主管。


作者精通面向对象技术,有丰富的一线编码实战和架构经验。特别是在应用架构、领域建模和复杂度治理领域,自研了COLA框架。COLA自开源以来,已经被多个技术团队使用,解决了DDD落地和应用扩展问题,受到了普遍关注和一致好评。


作者提倡“工匠精神”,对于如何打造一个追求卓越、独具匠心的技术团队,如何量化考核工程师的技术贡献,都有着非常深入的思考和实践,并探索出一套切实可行的方法论。基于该方法论打造的“工匠平台”,在阿里巴巴内部被广泛使用,“工匠平台”丰富了对技术人员考察的维度,是除业务结果之外的从技术视角给技术人员“照镜子”的有效工具。

 

代码整洁之道

软件质量,不但依赖架构及项目管理,而且与代码质量紧密相关。这一点,无论是敏捷开发流派还是传统开发流派,都不得不承认。


本书提出一种观点:代码质量与其整洁度成正比。干净的代码,既在质量上较为可靠,也为后期维护、升级奠定了良好基础。作为编程领域的佼佼者,本书作者给出了一系列行之有效的整洁代码操作实践。这些实践在本书中体现为一条条规则(或称“启示”),并辅以来自实际项目的正、反两面的范例。只要遵循这些规则,就能编写出干净的代码,从而有效提升代码质量。

 

本书阅读对象为一切有志于改善代码质量的程序员及技术经理。书中介绍的规则均来自作者多年的实践经验,涵盖从命名到重构的多个编程方面,虽为一“家”之言,然诚有可资借鉴的价值。

 

作者简介

Robert C. Martin,软件开发大师,设计模式和敏捷开发先驱,敏捷联盟首任主席,C   Report前主编,被后辈程序员尊称为“Bob大叔”。

 

20世纪70年代初成为职业程序员,后创办Object Mentor公司并任总裁。Martin还是一名多产的作家,至今已发表数百篇文章、论文和博客文章。

 

除本书外,还著有《代码整洁之道:程序员的职业素养》《敏捷软件开发:原则、模式和实践》《UML:Java程序员指南》等。

译者简介
韩磊,互联网产品与社区运营专家,技术书籍著译者。曾任优快云及《程序员》杂志副总经理、总编辑,广东二十一世纪传媒新媒体事业部总经理等职。现任AR初创企业亮风台广州公司总经理。除本书外,还译有《梦断代码》《C#编程风格》等书。与刘韧合著《网络媒体教程》,与戴飞合译《Beginning C# Objects中文版:概念到代码》。

 

代码整洁之道:程序员的职业素养

本书是编程大师“Bob 大叔”40余年编程生涯的心得体会的总结,讲解要成为真正专业的程序员需要具备什么样的态度,需要遵循什么样的原则,需要采取什么样的行动。作者以自己以及身边的同事走过的弯路、犯过的错误为例,意在为后来者引路,助其职业生涯迈上更高台阶。

作者简介

作者介绍
Robert C. Martin,软件开发大师,设计模式和敏捷开发先驱,敏捷联盟首任主席,C   Report前主编,被后辈程序员尊称为“Bob大叔”。20世纪7 0年代初成为职业程序员,后创办Object Mentor公司并任总裁。Martin还是一名多产的作家,至今已发表数百篇文章、论文和博客文章。除本书外,还著有《代码整洁之道》《敏捷软件开发:原则、模式和实践》《UML:Java程序员指南》等。他创办了cleancoders.com网站,专为软件开发人员提供教育视频。

译者介绍
余晟,混迹软件开发和互联网行业多年,目前在沪江网负责研发和架构管理工作。业余喜爱阅读、思考,关注工程师的全面发展,探索更聪明的技术方案,乐于帮助外界更多理解IT行业的约束、规律和习惯。


章显洲,蚂蚁金服高级项目专家,业余以技术翻译作为个人修炼与回馈软件开发社区的途径。自2009年来,翻译和与人合译多本技术管理书籍,偶尔也会出现在技术社区聚会上作一些分享。近年来主要致力于蚂蚁金服基础设施和架构升级方面的项目。

墙裂推荐:GitHub 上这个开源项目可以让你在短短几分钟之内了解一门技术

 

spark、storm还是flink?推荐一份海量数据处理技术的书单

 

哈工大、哈工程被禁用「工科神器」MATLAB,美国「实体名单」影响深入校园

 

2025年C++学习路线图:从语法基础到系统构建的实战指南 C++作为一门支持多范式编程的系统级语言,其核心价值在于对内存和硬件的精细控制能力。理解其内存模型、对象模型及编译原理,是掌握高性能编程和系统软件开发的基础。通过分层递进的学习路径,开发者可以逐步构建从语法基础、标准库使用到并发编程和设计模式的完整知识体系。现代C++引入的智能指针、右值引用等特性,结合RAII等设计思想,能有效提升代码的安全性与效率。这些技术在高频交易、游戏引擎、嵌入式系统等对性能和资源控制有严苛要求的场景中至关重要。本文基于C++核心特性和工程实践,提供了一条清晰的学习路线,帮助开发者避 阅读详情

相关推荐

618精选编程书单:提升你的代码力

在这个快速发展的技术时代,不断学习和提升自己的编程技能是每位程序员的必修课。今天,我为大家精心挑选了一系列编程技术书籍,它们将是你技术成长道路上的宝贵财富。这些书籍不仅能够丰富你的知识库,更能够提升你的编程思维和实践能力。无论你是编程新手还是资深开发者,都能在这些书籍中找到适合自己的学习资源。👀 想要进一步提升自己的技术实力吗?那就从这些书籍开始吧!

私聊前往站内信:https://i.youkuaiyun.com/#/msg/chat/weixin_44976692 2万+

代码精进之路 码农到工匠pdf_更快,提高VBA代码选取更快的单元格操作方法

题记:春节期间,情况特殊,希望大家尽可能待在家里,静下心,多学习有用的知识,多提高自己的水平和能力,这才是正道。适当节制自我的各种欲望,谁都逃不过时间的历练,谁都是命运的行者,谁都是在人生的道路上一步一趋,把生活与工作打理好,不负年华。今日内容是和大家分享VBA编程中常用的 “积木”过程代码,这些内容大多是取至我编写的“VBA代码解决方案”教程中内容。今日分享的是NO.204-NO.204,内容是...

weixin_39914825的博客 361

从零开始学华为设备:手把手教你用ENSP搭建OSPF实验环境(附拓扑文件)

本文详细介绍了如何使用华为ENSP模拟器从零开始搭建OSPF多区域网络实验环境,包括拓扑规划、设备配置、OSPF参数优化及故障排查技巧。通过实战案例和配置示例,帮助网络工程师快速掌握华为设备的OSPF协议配置,提升企业网络环境中的实战能力。

weixin_29305313的博客 286

《代码精进之路:从码农到工匠》

我有一个梦想,我写的代码,可以像诗一样优美。 我有一个梦想,我做的设计,能恰到好处,既不过度,也无不足。 这种带有一点洁癖的完美主义就像一把达摩克利斯之剑,时刻提醒我不能将就、不能妥协。 完美主义的代价是在很长时间里持续的迷茫和焦虑。甚至一度,我对软件行业是失望的,怀疑在软件的世界里,到底还有没有优雅的代码和整洁的架构。如果有的话,为什么所有的业务代码都像一座座“屎山”,既不优雅也不整洁,既晦涩又...

我的新书《代码精进之路:从码农到工匠》 1万+

一个中科大差生的8年程序员工作总结

今年终于从大菊花厂离职了,离职前收入大概60w不到吧,在某乎属于比较差的,今天终于有空写一下自己的职场故事,也算是给自己近8年的程序员工作做个总结复盘。近8年有些事情做对了,也有更多事情做错了,在这里记录一下,希望能够给后人一些帮助吧,也欢迎私信交流。文笔不好,见谅,有些细节记不清了,如果有出入,就当是我编的这个故事吧。 PS:有几个问题先在这里解释一下,评论就不一一回复了 1、关于差生,我本人在科大时确实成绩偏下,差生主要讲这一点,没其他意思。 2、因为买房是我人生中的大事,我认为需要记录和总结一下

陈小房的自我修炼 5万+

论文翻译:2024 High-Confidence Computing A survey on large language model (LLM) security and privacy: The

大型语言模型(LLMs),如ChatGPT和Bard,已经彻底改变了自然语言理解和生成。它们具有深度语言理解能力、类似人类的文本生成能力、上下文意识和强大的问题解决技能,使它们在各个领域(例如搜索引擎、客户支持、翻译)中变得不可或缺。同时,LLMs也在安全领域获得了关注,揭示了安全漏洞并展示了它们在安全相关任务中的潜力。本文探讨了LLMs与安全性和隐私的交集。具体来说,我们研究了LLMs如何积极影响安全性和隐私,与它们使用相关的潜在风险和威胁,以及LLMs内部的固有漏洞。

CSPhD-winston的博客 1722

代码精进之路 码农到工匠pdf_VBA代码解决方案第065讲试看内容

下面是我根据自己20多年的VBA实际利用经验,编写的四部教程,这些是较大块的"积木",可以独立的完成某些或者某类系统的过程,欢迎有需要的朋友联络(WeChat:NZ9668)分享。利用这些可以提高自己的编程效率。第一套:《VBA代码解决方案》是PDF教程,是VBA中各个知识点的讲解,覆盖了绝大多数的知识点。是初学及中级以下人员必备的资料。第二套:《VBA数据库解决方案》是PDF教程。数据库是数据处...

weixin_39844942的博客 473

RAG 提示词工程最佳实践

虽然目前网络上关于提示工程的相关资料已经多如牛毛,然而 RAG (检索增强生成) 任务中提示工程如何进行的资料相对而言却较少。不少朋友之前也热烈的讨论过 RAG 场景下提示词的运用,因此 Zen 禅与计算机程序设计艺术 特别推出 RAG 任务下的提示词实践经验系列分享。RAG 是检索增强生成(Retrieval Augmented Generation)的简称,是当前最火热的企业级LLM应用方案。

AI天才研究院 2012

代码精进之路 码农到工匠pdf_专访张建飞:阿里技术也提倡,优雅代码和整洁架构...

来源 | 异步 | 文末赠书异步导读我曾很多次被人问到,在软件的世界里到底有没有优雅的代码和整洁的架构?是不是所有想实现DDD和想要写好业务代码的职场新人都只能凌乱的摸索和反复尝试?答案是有捷径。对于大多数初出茅庐的程序员们而言,张建飞的《代码精进之路:从码农到工匠》一书就是一条捷径。通过多年的学习和工作积累,张建飞研发了COLA(全称是Clean Object—Oriented Lay...

weixin_39612220的博客 968

【linux】解决报错:Network error: Connection refused

【linux】解决报错:Network error: Connection refused

weixin_44502754的博客 4936

GEE 案例:基于陆地卫星8号(大气层顶反射率数据)LANDSAT/LC08/C02/T1_TOA的生态遥感指数RSEI计算、可视化和下载

摘要:基于GEE的遥感生态指数(RSEI)计算方法 本文介绍了利用Google Earth Engine(GEE)平台计算遥感生态指数(RSEI)的全流程方法。主要内容包括:研究区域定义、Landsat8数据获取与去云预处理、关键生态指标计算(地表温度LST、植被指数NDVI、湿度指数WET和建筑指数NDBSI)、主成分分析(PCA)降维处理,以及结果可视化与数据导出。通过结合多源遥感指标并采用归一化处理,构建了综合反映区域生态环境质量的RSEI指数。该方法为生态环境监测提供了高效的技术方案,所有计算过程均

此星光明博客 450

企业应用架构实践(复杂性应对之道)

前言 从业这么多年,接触过银行的应用,Apple的应用,eBay的应用和现在阿里的应用,虽然分属于不同的公司,使用了不同的架构,但有一个共同点就是都很复杂。导致复杂性的原因有很多,如果从架构的层面看,主要有两点,一个是架构设计过于复杂,层次太多能把人绕晕。另一个是根本就没架构,ServiceImpl作为上帝类包揽一切,一杆捅到DAO(就简单场景而言,这种...

weixin_34161029的博客 1058

ENVI无法打开Landsat8的头文件问题和解决

再次将txt文件拖入ENVI中,就会得到7个波段组合后的真彩色图像,而且辐射定标所需的参数信息都已经定义好了。按住CTRL+F,查找GROUP = LEVEL1_PROCESSING_RECORD。第一行GROUP = LANDSAT_METADATA_FILE。会查到两个包含的句子,把这两个中间的部分全部删掉。双击打开该xxx_MTL.txt的头文件。删除空行后,应该为如下图的样子。把LANDSAT改为L1。

所有专家都曾始于新手 9699

程序员技术进阶之路书单

汇总一份程序员进阶之路书单。

人邮异步社区 1225

14、方法论 - 自顶向下与自底向上的结合

本文探讨了如何将自顶向下的规范驱动方法与自底向上的组件构建方法相结合,以形成更加全面的编程理论。通过引入代数法则,简化逻辑关系、提高代码可读性并支持形式化验证,结合实际案例(如智能家居控制系统)展示了如何在设计和实现阶段确保系统的正确性和可靠性。文章还讨论了工具支持的重要性,并提出了未来发展的方向。

lstm7chronicler的博客 174

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

书单 | 7月畅销新书情报,看谁是最大黑马

阴雨绵绵的七月,适合宅家看书! 7月的畅销新书榜,有哪些书突出重围?谁又是最大的黑马呢? 让我们一起来看一下本月Top10畅销新书是哪几本吧!图片 01 ▊《时间记录:数据反映行为,行为改变数据》 剑飞 著 时间管理图书,助力万千读者精进成长的时间统计法 “番茄钟工作法”进阶版,刻意练习、放弃无效努力 学会职场断舍离,用对方法,你也可以成为一个很厉害的人 时间对每个人都是公平的,如何高效利用每天24小时,以创造出属于自己的独一无二的成果,是这本书要介绍的主要内容。 本书详尽地介绍了每个步骤的具体操作方法,

博文视点(北京)官方博客 1050

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

Awesome-software-craftsmanship终极指南:如何从新手成长为软件工匠大师

想要成为一名真正的软件工匠吗?awesome-software-craftsmanship项目为您提供了从新手成长为软件工匠大师的完整路径!软件工匠精神不仅仅是一种编程方式,更是一种职业态度和专业精神。在这个快速变化的科技时代,掌握软件工匠的核心技能和理念,能让你在职业生涯中脱颖而出,成为备受尊敬的专业人士。 ## 🎯 什么是软件工匠精神? 软件工匠精神是一种追求卓越的职业态度,它强调通过持

gitblog_00745的博客 422

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

深度学习工具包 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")

Python 之父推荐,近 10 万读者喜爱,你还没读过?

基于 ChatGPT 的大模型技术快速发展之后,AI 的发展进入新时代。入门 Python 简单,精通 Python 难,在这一波大模型技术背景下,精通 Python 已经势在必行。相信不少朋友都是这种情况——掌握了基础语法,写过一些小项目,甚至可能做过几个数据分析脚本……但你可能已经意识到,距离熟练地使用Python还很远,确实,要想成为真正的 Python 高手,你要做到的远不止上面这些——理...

图灵教育 348

太强了!1024程序员节

又是一年的1024程序员节!向可爱的程序员们致敬!出行、娱乐、学习......都越来越便捷高效,这些都离不开程序员的贡献!话不多说把福利送上!READING1024程序员节当当网计算机图书...

idol24的博客 632

编程语言实战指南从基础语法到高效开发的终极技巧

性能热点定位:CPU/内存/IO瓶颈分析工具(Valgrind/Py-Spy/Chrome Performance Tab)- 实战导向:每个知识点搭配可复现的代码仓库(GitHub/GitLab公开),读者可直接代码复现。- IDE配置:ESLint(JavaScript)、clang-format(C/C++)- 语言“惯用表达式”(如Python的列表推导式、C++的范围for)的高效写法。- 算法选择:遍历(O(n))、哈希表(O(1))、二分查找(O(log n))

hnzxs的博客 289

C++校招学习路线:从零基础到项目实战的五阶段通关指南

C++作为一门核心的系统级编程语言,其学习路径常因知识体系庞大而令初学者感到迷茫。理解编程语言的核心在于掌握其语法、内存模型及标准库,这构成了构建可靠软件的基础。从原理层面,C++通过RAII、模板和STL等机制,在性能与控制力之间取得了平衡,其技术价值体现在高性能计算、游戏引擎、基础设施等对效率要求苛刻的领域。对于校招求职者而言,系统性地构建知识体系尤为关键,需要将语言学习与**计算机基础**(如操作系统、网络)相结合,并通过**项目实战**(例如实现一个Web服务器)来串联和验证所学,从而形成扎实的工程

weixin_34342207的博客 506

嵌入式开发实战指南:从环境搭建到AI部署的进阶路线与资源

嵌入式系统作为连接物理世界与数字世界的核心技术,其核心在于对硬件资源的直接控制与实时响应。其工作原理基于微处理器或微控制器,通过编写底层驱动和应用程序,实现对传感器、执行器等外设的精准管理。掌握嵌入式开发,对于实现物联网、智能硬件和边缘计算等现代技术至关重要,广泛应用于工业自动化、消费电子和汽车电子等领域。本文聚焦于嵌入式开发中的关键实践,特别是针对STM32和嵌入式Linux的环境配置,以及AI模型在边缘设备(如Jetson Nano)的部署流程,提供了从工具链选择到项目实战的清晰路径,旨在帮助开发者高效

weixin_33853827的博客 421

一份书单

多阅读,常反思。阅读技术大牛的博客,汲取他人的知识才能持续提高。从刘未鹏先生的博客中摘出如下书单,多学习: 面试微软前必须要读的十本书: Code: The Hidden Language of Computer Hardware and Software (《编码的奥秘》) Computer System: A Programmer’s Perspective (《深入理解计算机系统》...

weixin_34088598的博客 176

《代码精进之路,从码农到工匠》读书笔记

最好的工程师枕边读物,ddd的启蒙书

eck_燃的博客 1062

栈、队列、链表

栈 特性: LIFO public class StackApp { public static void main(String[] args) { Stack stack = new Stack(10); stack.push(10); stack.push(20); stack.push(40); stack.push(80); stack.push

我的新书《代码精进之路:从码农到工匠》 999
上一篇: 这年头不会Python看来是不行了,推荐一份Python书单!
下一篇: 618买什么也别忘了买书!精选100+本技术好书和思维导图,建议收藏!!!
程序员书单
博客等级 码龄7年 43粉丝 67原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值