赠百科 手机版
当前位置: 首页 > 常识 >

编程怎么自学入门教程(提升编程水平的6个秘诀)


一、学会专注学习

刚开始想快速学习某种新知识,就不能把注意力分散到其他方面,而是将注意力要聚焦在最必要的地方,一开始只选择一种编程语言,一本书,一个课程等,学会专注于一件事,直到你完全掌握。

学习编程最好的方法就是编程。如果你正在阅读一本书或一篇博客文章,并且遇到了一个代码示例,请在代码编辑器把这些代码输入进去,并尝试让它们工作。你还可以进一步摆弄这些代码,比如尝试改变其中的一部分,或者试试其他方法来应用等等。

二、学编程,学什么?

《计算机程序的构造和解释》的作者曾经表达这样的观点:在学习一门新的编程语言时,应该关注这门语言的基本表达形式(Primitive Elements)、组合的方法(Means of Combination)及抽象的方法(Means of Abstraction)这三个特性。

如果展开以上三个特性的话,就几乎包含了学习一门编程语言所需要关注的所有重要知识。

  • 基础知识:基本语法、关键字、变量与常量、数据类型、运算符、流程控制、异常处理、文件处理、编程思想(面向对象、面向过程、函数式编程)、多线程支持等;
  • 应用知识:网络请求、数据处理、内置函数、对日志和调试的支持、对单元测试的支持、序列化与反序列化等;
  • 高级知识:开源类库、开源框架、底层原理等;

选择想学习的编程语言,开始你的学习:

  • Python——一种很好的入门语言,用于web应用程序、游戏领域、人工智能和大数据
  • Java——用于无数种程序中,从游戏到web应用程序再到ATM软件
  • HTML——任何web开发人员的基本起点
  • C语言——是一种较古老的语言,C仍然是一个强大的工具,是C++、Objtovi-C的基础

三、用好搜索引擎

编程小白在学习路上会遇到很多问题,想要快速解决这些问题可以学会使用搜索引擎。编程界有个说法:超级程序员=普通程序员+Google。用好搜索引擎,Google+GitHub也许可以解决你大部分的问题。

  • Newest ‘python’ Questions—一个与程序相关的IT技术问答网站
  • 3.10.4 Documentation—Python各个版本的官方文档

如何正确提问?

首先提问之前要自己先去主动找解决方法,不做伸手党,其实直接问问题就好,千万别一上来就——在吗?你是做Python开发的吗?......这是查户口吗?

几点可操作的建议:

  • 把背景说清楚,你要尝试解决什么问题。比如你在学习某一网课,照着教程码代码,但是教程里代码是正常运行,到了你码代码却出了bug,提问前附上该课程的网址;
  • 交代清楚你为了解决这个bug,已经做了哪些尝试却依旧未解决。交代是缩小bug的范围,节约大家的时间。所以这一小步骤,尽自己所能详细的交代清楚;
  • 说明你想要的结果是什么样子的,问题被解决后应该是怎样的;

四、重视设计原则

框架和 API 都是变化很快的事物。但软件设计的基本原则却是经久不衰的。所以应该去学习那些跨越编程语言栅栏的编程原则。

一些例子:

“一个需求上的小变化应该只会引发代码实现上的一个小变化。”(引自 《软件开发实用手册(A Practical Handbook for Software Development)》)

只做一件事情 (DOT)——从 Doug McIlroy 的“一次只做一件事情,把这件事情做好(DOTADIW)”中简化而来——一个函数应该只执行一个任务。因此,一个函数不应该既获取数据又处理数据,并绘制到屏幕。这个函数应该只获取数据,或者只处理数据,或者只绘制到屏幕。(所以,是时候把你的 React 组件拆分成更小的部分了!)

“对接口编程,而不是对实现编程。” ——四人帮(Richard Helm、Ralph Johnson 和 John Vlissides),《设计模式》

“优先选择对象组合而不是类继承。”——四人帮,《设计模式》

“过早发生的优化是万恶之源。”——Donald Knuth

“你并不需要它(YAGNI)”——请不要为实际上还不需要的东西去编写代码。

五、阅读优秀源码

用拼图、搭积木的心态来学习源码,如果你想了解它们是怎么组装在一起的,那你就需要把它分解成每一小块,再去弄清楚每一个模块是如何实现的,整体架构是怎样的。

关于源码阅读的三层境界:

初级:记流水账——初期的源码阅读文章基本上是记流水账,例如对源码一行行加注释,只关注底层实现细节,但并未形成更高层次认知,对其设计理念没有提炼与深度领悟。
中级:能提问、思考、提炼——要求我们在阅读源码的时候多思考,并反问自己如果自己实现的话该如何着手,如何设计,带着疑问去研究源码。通过对比,思考,会对其背后的理念有了更深刻的理解。
高级:思考、质疑、验证——不管是什么代码,都会存在BUG或者实现并不合理的地方,如果大家在阅读源码的时候能够深入思考, 合理质疑,并能通过验证证明自己的观点,说明我们的能力、思考得到了极大的提升。

六、自我提升书单

  • 编程语言(c/c++):《c语言程序设计》->《c++ primer》-> C++ efftive 系列 -> 《C++ STL 源码剖析》->《深入理解C++对象模型》
  • 数据结构与算法:《大话数据结构》->《算法图解》->《数据结构与算法之美》 -> 《剑指offer》 -> LeetCode刷题(至少刷到200多道)操作系统:《操作系统导论》->《现代操作系统》
  • 计算机网络:《图解HTTP》->《图解TCP/IP》->《网络是怎么连接的》 ->《计算机网络自顶向下》->《TCP/IP协议详解卷1》
  • 计算机组成:《程序是怎么跑来的》->《计算机组成原理:软件/接口与设计》->《深入理解计算机系统》数据库:《SQL必知必会》->《从根儿上理解mysql》->《mysql技术内幕》->《高性能mysql》
  • 编译原理:《程序员的自我修养》

相关文章

  • picture

    家用电热水器一会热一会冷怎么解决?

    现在电热水器几乎每个家庭都会安装使用,但由于各种原因,会导致家用电热水器出现一些问题。例如,有很多用户发现他们的电热水器使用过程中出现一会热一会冷的情况,这是什么原因呢?不少用户可能马上会考虑是不是家用电热水器出现问题了。有经验的维修师傅告诉小编说,一般这种情况不是热水器的问题,要先考虑的是自己家里

  • picture

    西门子冰箱冷藏室结冰怎么办?

    解决方法一:检查温度设置首先,我们需要检查一下冰箱的温度设置。如果温度设置得过低,就会导致冷藏室结冰。我们可以调高冰箱的温度,一般来说,将温度调整到2-5度之间是比较合适的。这样可以减少冷空气流动,从而避免结冰现象的发生。解决方法二:清理冷藏室其次,我们需要对冷藏室进行彻底的清理。首先,将食品暂时移

  • picture

    瓷砖翻新时使用腻子粉刮墙面可以吗?

    步骤一:1. 保护好地面和周围的家具,可以使用塑料薄膜进行覆盖,避免腻子粉弄脏或损坏。2. 清理瓷砖表面,确保没有灰尘、油污等杂质,可以使用清洁剂和刷子进行清洁。3. 需要使用的工具和材料准备齐全,如腻子粉、刮刀、拖把、海绵、水桶等。步骤二:选择合适的腻子粉1. 根据瓷砖的材质和需要修补的程度选择合

  • picture

    家里墙面脏了如何自己进行翻新?

    步骤一:准备工作在进行墙面翻新之前,我们需要做一些准备工作:确保墙面表面干燥、平整,并且没有明显的裂缝。清理墙面上的灰尘、污渍和油脂,可以使用湿布或者清洁剂进行清洁。移除墙面上的装饰物品、电源插座和开关面板,确保墙面表面整洁。准备涂料、刷子、滚筒或喷枪等维修所需的工具和材料。步骤二:修补墙面如果墙面

  • picture

    地下室防潮防水施工如何做

    许多独立建筑现在都有自己的地下室用于存储或娱乐。大多数业主都知道地下室防潮和防水的重要性,他们最担心的就是地下室反复潮湿,地下室防潮怎么做?介绍地下室的防水防潮工程设计(供大家交流参考)一、施工前,准备图纸进行审查,了解地下室施工图中的防水结构和技术要求,并制定地下室防水施工方案或技术措施。使用的防

热门文章

最新文章