<commit_before>---
layout: post
title: Talk about programming design
---

我曾经一直在寻找一个答案，那就是：如何去设计？怎样才能使我的设计更好？或者说更完善。我有什么规则需要遵守？还有就是面对一个实际的问题，我该怎么去设计一个结构去解决他。当然，这里所说的仅限于软件设计方面。其实站在更高的角度，设计应该包括任何事物的设计。 

我认为学习程序的过程当中有一个问题应该会很自然而然的产生出来。那就是，面对一个实实在在程序或者说一个系统，我应该如何设计，如何写出高效的代码，如何写出一个可维护的代码。而不仅仅是为了完成某一效果。这应该是更深层次的考虑。我读过很多计算机相关的书籍，刚开始学习各式各样的语言C/C++、JAVA、C#，但是这些教授计算机语言的书虽然很多程度上以《某某程序设计XXX》为书名，或者《XX入门到精通》为书名。但是我认为，他们很大程度上教会我的不是去“写代码”（写优质的代码，可以将代码组织成系统的方法），这些书仅仅是告诉我这些语言应该怎么去使用，有什么使用条件等等。这不仅让我联想到我们的英语教育问题。我们花了这么多功夫去学习英语的语法。但是为什么到头来连一篇好的文章却写不好，即使我们对每个语法了如指掌。 

我曾在一段很长的时间里认为我写的代码不够好，不光是算法方面的问题，而且还包括整个体系结构上面的问题。这算是我在程序领域上的一个困惑时期吧。但是我并没有放弃我对答案的寻找。我Google了很多地方，我也查看了下计算机专业人的所学课程。发现除了语言之外一个重要的问题就是数据结构与算法了。于是我便去自学数据结构与算法。 

我去图书馆里借了一本《数据结构与算法JAVA版》，是本国外的著作。这本书写的还是挺好的，我花了一个暑假的时间将里面的思想和算法上机亲自抄了一遍，在敲代码的过程中体会里面的思想。确实非常博大精深，而且我很佩服里面那种和独特的思想。有些算法确实非常晦涩难懂。但是，学习过数据结构与算法确实给我的程序设计上面带来了不小的提高。之后我也没再看其他的数据结构与算法的书了（或许以后有需要，我还会再去看看，里面的知识确实能给你带来提高）。 
<commit_msg>add category<commit_after>---
layout: post
category: life
title: Talk about programming design
---

我曾经一直在寻找一个答案，那就是：如何去设计？怎样才能使我的设计更好？或者说更完善。我有什么规则需要遵守？还有就是面对一个实际的问题，我该怎么去设计一个结构去解决他。当然，这里所说的仅限于软件设计方面。其实站在更高的角度，设计应该包括任何事物的设计。 

我认为学习程序的过程当中有一个问题应该会很自然而然的产生出来。那就是，面对一个实实在在程序或者说一个系统，我应该如何设计，如何写出高效的代码，如何写出一个可维护的代码。而不仅仅是为了完成某一效果。这应该是更深层次的考虑。我读过很多计算机相关的书籍，刚开始学习各式各样的语言C/C++、JAVA、C#，但是这些教授计算机语言的书虽然很多程度上以《某某程序设计XXX》为书名，或者《XX入门到精通》为书名。但是我认为，他们很大程度上教会我的不是去“写代码”（写优质的代码，可以将代码组织成系统的方法），这些书仅仅是告诉我这些语言应该怎么去使用，有什么使用条件等等。这不仅让我联想到我们的英语教育问题。我们花了这么多功夫去学习英语的语法。但是为什么到头来连一篇好的文章却写不好，即使我们对每个语法了如指掌。 

我曾在一段很长的时间里认为我写的代码不够好，不光是算法方面的问题，而且还包括整个体系结构上面的问题。这算是我在程序领域上的一个困惑时期吧。但是我并没有放弃我对答案的寻找。我Google了很多地方，我也查看了下计算机专业人的所学课程。发现除了语言之外一个重要的问题就是数据结构与算法了。于是我便去自学数据结构与算法。 

我去图书馆里借了一本《数据结构与算法JAVA版》，是本国外的著作。这本书写的还是挺好的，我花了一个暑假的时间将里面的思想和算法上机亲自抄了一遍，在敲代码的过程中体会里面的思想。确实非常博大精深，而且我很佩服里面那种和独特的思想。有些算法确实非常晦涩难懂。但是，学习过数据结构与算法确实给我的程序设计上面带来了不小的提高。之后我也没再看其他的数据结构与算法的书了（或许以后有需要，我还会再去看看，里面的知识确实能给你带来提高）。 

{'fraction_non_alphanumeric': 0.08904109589041095, 'fraction_numerical': 0.0, 'mean_word_length': 30.65, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '2006864', 'n_tokens_mistral': 1776, 'n_tokens_neox': 2100, 'n_words': 27}