第二周读书笔记——《构建之法》

【对一些实例的看法】

  •  “我写了二叉树的遍历算法实现,在这里,二叉树是数据结构,遍历的实现细节是算法。C程序就是结果。但是这个程序有什么实际用处呢?在Java和其他一些语言中,似乎没有指针,那我可以不必了解二叉树么?”——数据结构是组织数据的方式,虽然不同的语言在实现这些方式时有所差异,但是核心的理论却不会变。这也启示我们:CS的知识多而复杂,而且更新速度快,想要高效的迭代自己的知识体系就要学会比较众多知识之间的区别与联系。比如在C和Java里面,单引号表示字符,双引号表示字符串,但是在Python里,单引号和双引号都表示字符串,因为在Python里将字符看成是长度为1的字符串,换言之,Python中没有字符这种数据类型,而是统一用字符串来表示。
  •  “我成了一名职业程序员,但是我发现所有的算法别人都已经实现了,我只要调用就可以。似乎我们公司的软件与数据结构、算法的关系都不大。那我当初辛辛苦苦学习的数据结构和算法有用么?如何区分一个好的程序员和不好的程序员呢?”——人们常说不要造重复的轮子,软件工程其实也有着类似的道理,具体来讲,身为程序员,会使用他人造的轮子算是基本功,比如他们已经将基本功能写好封装成中高层API,那么我们直接调用这些API进行编程可以大大提高我们的研发速度(比如Tensorflow的LinearRegression类,可以很方便的实现对大数据的线性拟合),但是,光会用轮子还不够,还需要能够读懂轮子,只有这样,才能够在前人的基础上进行优化。而读懂轮子的这个流程中就需要你掌握数据结构等知识了。所以一个好的程序员不仅会使用他人造的轮子,更能够理解和再创造轮子。
  • “我上班后,发现以前同事写的程序真是垃圾,根本看不懂,无法维护。我要推翻重写!后来一个老员工笑嘻嘻地告诉我,我们现在看到的程序,就是去年的新员工愤怒地推翻重写之后的结果,大家反映还没有以前的版本好用呢。”——这个实例说的是代码的可读性问题。在进行团队合作的时候,我们经常需要进行代码交流,那么如何让他人快速读懂你的程序呢?这个时候,注释就显得尤为重要了。除了注释,版本控制也非常重要,因为更改后的程序不一定比原来的程序性能更优或者功能更加完善,那么进行版本控制的话有利于防止系统功能回退的情况。

【软件的特殊性】

  • 软件具有复杂性,不可见性,易变性,服从性,非连续性。因此软件不像硬件那样,以大致每两年提高一倍的速度发展。

【对“中文编程”是解决中国程序员编程效率的银弹的看法】

  

  • 银弹被比喻为具有极端有效性的解决方法,作为杀手锏 、最强杀招、王牌等的代称。但是目前而言,中文编程还有许多的难题没有解决,比如中文编程无法做到与英文编程同等,或比之更快的识别速度;中文编程中,对于非常用字体,古文字体,繁体字等应该如何将其显示都还有问题;中文编程发展时间和速度远不如英文编程那么普遍,所以在实现程序交互,融合的过程中,很有可能出现问题;中文编程与英文编程相比,并没有出现什么特别的优势和特点,不像java语言,在发展过程中的不断衍变,成为主流

转载于:https://www.cnblogs.com/ustctp/p/8620144.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/367636.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

java springmvc 数据库事务_事务的简单回顾_JavaEE框架(Maven+SpringMvc+Spring+MyBatis)全程实战教程_Java视频-51CTO学院...

SpringMVCSpring MVC属于SpringFrameWork的后续产品,已经融合在Spring Web Flow里面。Spring MVC 分离了控制器、模型对象、分派器以及处理程序对象的角色,这种分离让它们更容易进行定制。SpringSpring是一个开源框架,Spring是于2003 年兴起的…

异步重试模式

当您有一段经常失败且必须重试的代码时,此Java 7/8库提供了丰富且不引人注目的API,并提供了针对此问题的快速且可扩展的解决方案: ScheduledExecutorService scheduler Executors.newSingleThreadScheduledExecutor(); RetryExecutor execu…

前端 ---jQuery的补充

15-jQuery补充 jquery内容补充 jquery除了咱们上面讲解的常用知识点之外,还有jquery 插件、jqueryUI知识点 jqueryUI 官网: https://jqueryui.com/ jqueryUI 中文网: http://www.jqueryui.org.cn/ jquery插件内容包含 官网demo: h…

[软件工程]自我介绍----一个小菜鸡的自我介绍(C++版 手动偷笑~)

#include “iostream” using namespace std; class Lee : protected MyMother,protected MyFather { private:string ChineseName("李怡龙");string EnglishName("Lee");int age 20;string university("青海大学计算机系");string level("…

用Java编写Hadoop MapReduce任务

尽管Hadoop框架本身是使用Java创建的,但MapReduce作业可以用许多不同的语言编写。 在本文中,我将展示如何像其他Java项目一样,基于Maven项目在Java中创建MapReduce作业。 准备示例输入 让我们从一个虚构的商业案例开始。 在这种情况下&#…

java 大二学期总结报告_大二学生自我总结「」

大二学生导师工作总结转眼间,我们的大二学年就这样结束了,在迎接新的一学期前我们来写一份自我总结吧。下面是小编搜集整理的大二学生自我总结,欢迎阅读。更多资讯尽在自我总结栏目!大二学生自我总结回顾大学二年,通过良师的教导和自身的刻苦…

windows下揪出java程序占用cpu很高的线程

背景 天天搞java,这些监控也都知道,用过,但也没往细里追究。因为也没碰见这种问题,这次还是静下来走一遍流程吧。与网上基本一致,不过我区分了下linux和windows的不一样。我感觉基本是程序写成死循环了或者大对象分配多…

jquery -input事件

input输入框的change事件,要在input失去焦点的时候才会触发 $(input[namemyInput]).change(function() { ... }); 在输入框内容变化的时候不会触发change,当鼠标在其他地方点一下才会触发用下面的方法会生效,input [html] view plain copy$(&…

Bootstrap中的下拉列表

下拉列表&#xff08;select&#xff09;注意&#xff0c;很多原生选择菜单单 - 即在 Safari 和 Chrome 中 - 的圆角是无法通过修改 border-radius 属性来改变的。复制<select class"form-control"><option>1</option><option>2</option&…

Spring集成:轻量级集成方法

当今的应用程序希望能够访问企业环境中的所有业务&#xff0c;而无需考虑与绝望的系统无缝集成的应用程序技术。 可以通过使用中间件技术对各种系统进行布线来实现这种集成。 集成平台使应用程序可以相互共享信息的环境&#xff0c;从而使体系结构具有高度的互操作性。 Spring…

动态REM

什么是rem&#xff1f; rem是相对于根元素html字体大小来计算的&#xff0c;即( 1rem html字体大小 ) rem和em区别&#xff1f; rem:&#xff08;root em&#xff0c;根em&#xff09;根元素的fort-size的大小计算em&#xff1a;相对长度单位&#xff0c;相对于当前对象内文本…

java教学楼的属性_java设计一个父类建筑物building,由它派生出教学楼类classroom,然后采用一些数据进行测试....

public class Building {public String bname;//建筑物名称public int floors;//代表总层数public double area;//代表总面积public Building(){}public Building(String bname, int floors, double area) {this.bname bname;this.floors floors;this.area area;}}public cl…

Bootstrap中的列表的使用

列表无序列表排列顺序无关紧要的一列元素。Lorem ipsum dolor sit ametConsectetur adipiscing elitInteger molestie lorem at massaFacilisis in pretium nisl aliquetNulla volutpat aliquam velitPhasellus iaculis nequePurus sodales ultriciesVestibulum laoreet portti…

Vue项目中使用HighChart

记&#xff1a;初次在Vue项目中使用 HighChart 的时候要走的坑 感谢这位哥们的思路 传送门 Vue-cli项目使用 npm install highcharts --save 让我们看看 highcharts 的使用方法&#xff0c;传送门 Highcharts.chart(targetTag, option) 重启项目&#xff0c;建立chart.vue文件 …

form字体和颜色java安卓开发_Android 修改App中默认TextView的字体和颜色

一、别人怎么做来源http://stackoverflow.com/questions/3078081/setting-global-styles-for-views-in-androidActually, you can set a default style for TextViews (and most other built-in widgets) without needing to do a custom java class or setting the style indi…

使用Dozer框架进行Bean操作

介绍 如您所知&#xff0c;您可以在任何操作系统中将文件或文件夹从源位置复制到目标位置。 您是否考虑过复制基本上是POJO的java对象&#xff1f; 在许多情况下&#xff0c;您需要将源bean的内容复制到目标bean。 我不关心对象的拷贝构造函数&#xff0c;浅拷贝或深拷贝或克隆…

js如何把ajax获取的值返回到上层函数里?

我现在有个系统在用户点击浏览时&#xff0c;系统会以ajax的方式从后台获取查看的链接&#xff0c;并以window.open的方式打开&#xff0c;但因为现在多数的浏览器都会拦截window.open打开的地址&#xff0c;而window.location.href的方式又无法在浏览器新窗口打开&#xff0c;…

接口IDisposable的用法

C#的每一个类型都代表一种资源&#xff0c;而资源又分为两类&#xff1a; 托管资源 由CLR管理分配和释放的资源&#xff0c;即从CLR里new出来的对象。非托管资源 不受CLR管理的对象&#xff0c;如Windows内核对象&#xff0c;或者文件、数据库连接、套接字、COM对象等。如果类…

图形处理:betweeness中心性– neo4j的密码与graphstream

上周&#xff0c; 我写了关于中间性中心性算法以及使用graphstream 理解它的尝试 &#xff0c;在阅读源代码时&#xff0c;我意识到我可以使用neo4j的所有最短路径算法将某些东西放在一起。 概括地说&#xff0c;中间性中心度算法用于确定图中节点的负载和重要性。 在与Jen讨…

java tongpaiyu danliantiao_java版的汉字转拼音程序

[文件] ChiToLetter.javaimport java.io.UnsupportedEncodingException;import java.util.HashSet;import java.util.Iterator;import java.util.Set;import java.util.Vector;//实现汉字向拼音的转化//-----------------------------------------------------设计人:牛文平// …