台式电脑

怎么样去学电脑编程好(提升编程水平的6个秘诀,新手必看)

练习,练习,再练习!从第一门编程语言开始专注学习,利用搜索引擎探索不懂的问题,阅读和学习优秀的源码,下面具体来说下。

提升编程水平的6个秘诀,新手必看

一、学会专注学习

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

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

二、学编程,学什么?

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

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

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

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

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

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

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

如何正确提问?

怎么样去学电脑编程好(提升编程水平的6个秘诀,新手必看)

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

几点可操作的建议:

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

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

一些例子:

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

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

“对接口编程,而不是对实现编程。”——四人帮(RichardHelm、RalphJohnson和JohnVlissides),《设计模式》

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

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

“你并不需要它(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》编译原理:《程序员的自我修养》

相关新闻

返回顶部