Hard模式学编程
靖难:
我一直推崇一种学习编程的方法,就是learn programming the hard way,我把它翻译为Hard模式学编程 。
我觉得他有以下几个要领:
1. 一开始学习的时候,要尽量去化简为繁.化简为繁的目的是去探索变化,不断的尝试以理解。比如为了理解某个循环逻辑,你应当试着去尝试改变循环变量的自增方式,打印出中间的每个临时结果,然后用纸去推导这个过程,想清楚为什么会有这样的结果。
多去练习一些“无用”但是很繁琐的问题,比如矩阵加减乘除运算、字符串的各种变换。
2. 当你对基本语法的理解和运用已经没有太多障碍时,试着去学习数据结构和算法,并实现他们。也许你会认为这些都是轮子,以后工作根本不会去实现他们,但是写轮子其实是最锻炼人的能力的。其次,经典数据结构和算法的思想,会对你的实际工作有很大帮助。
3. 依赖一定的平台,去写一些有意思的东西,继续造轮子并开始造工具。写一个简单的正则表达式解析器,写一个编译器,写一个图片压缩程序,写一个简单的web server,写一个CGI程序,写一个内存分配器,你有太多的东西可以去尝试去实现,这些也可以成为你未来的竞争力,哪怕你写得很烂。
4.学一门动态语言吧,推荐python。自从接触python后,几乎我私下所有的程序都是用python完成的,包括我自己写的一些网站、新浪微博应用、校园网论文下载代理等,都是用python完成。即使我写不出很pythonic的代码,但我依然热爱python。
5.保持对互联网的敏感和新技术的兴趣,如果碰到热爱的,就深度就钻研下去吧。
6.关注开源,试着去读去修改一些轻量级的开源项目。甚至可以尝试去提交代码参与进去。
7. 开通你的github帐号,开始储备你的代码吧。同时记得记录下你的思考,写博客吧。
Hard模式学编程的更多相关文章
- 【雕爷学编程】Arduino动手做(16)---数字触摸传感器
37款传感器和模块的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是不止37种的.鉴于本人手头积累了一些传感器与模块,依照实践出真知(动手试试)的理念,以学习和交流为目的,这里准备 ...
- Java匹马行天下之学编程的起点——高级语言大锅烩
学编程的起点——高级语言大锅烩 前言: 学知识前总想说点鸡汤,想喝的朋友就看看,不想喝的就直接看干货吧,就当鸡汤是给我自己喝的. 前段时间在网上看了一句话感觉挺触动我的,我做个分享: 如果你觉得你的祖 ...
- 在线学编程!十大IT在线教育网站推荐
在线学编程!十大IT在线教育网站推荐 1.CSDN学院(http://edu.csdn.net/) CSDN学院是CSDN推出的一个面向中国软件开发者和IT专业人员的技术教育服务平台.主要提供IT领域 ...
- 立足GitHub学编程:13个不容错过的Java项目
立足GitHub学编程:13个不容错过的Java项目 今天我们将整理一大波干货满满的Java示例代码与能力展示素材. GitHub可谓一座程序开发的大宝库,有些素材值得fork,有些则能帮助我们改进自 ...
- 「雕爷学编程」Arduino动手做(13)——触摸开关模块
37款传感器和模块的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是不止37种的.鉴于本人手头积累了一些传感器与模块,依照实践出真知(动手试试)的理念,以学习和交流为目的,这里准备 ...
- 我教女朋友学编程html系列(7)—Html无序列表、自定义列表、有序列表及常用例子
昨天写的那篇文章<我教女朋友学编程Html系列(6)—Html常用表单控件>,基本上有1000人左右看了,那边文章是我站在前人的肩膀上修改来的,添加了截图和说明,合并了例子,使之更容易被初 ...
- [Python] 文科生零基础学编程系列二——数据类型、变量、常量的基础概念
上一篇:[Python] 文科生零基础学编程系列--对象.集合.属性.方法的基本定义 下一篇: (仍先以最简单的Excel的VBA为例,语法与Python不同,但概念和逻辑需要理解透彻) p.p1 { ...
- [Python] 文科生零基础学编程系列三——数据运算符的基本类别
上一篇:[Python] 文科生零基础学编程系列二--数据类型.变量.常量的基础概念 下一篇: ※ 程序的执行过程,就是对数据进行运算的过程. 不同的数据类型,可以进行不同的运算, 按照数据运算类型的 ...
- 《陪孩子像搭积木一样学编程》,一起来玩Scratch(1)使用Scratch编程的基本流程
编程是一件很有趣的事情.初次接触编程,你可能不知所措,别担心,这并不复杂.首先,为了让读者对编程有大概的了解,可以把编写Scratch程序的过程分成7个步骤(如图1.8).注意,这是理想状态.在实际的 ...
随机推荐
- VMware12.0下安装CentOS-6.9-x86_64-bin-DVD.iso
使用的是vmware workstation 12 pro 创建虚拟机 注意上面的 安装程序光盘镜象文件(iso)(M): 是我之前配置,现在可以不做任何处理 此处使用的是centos的64位 在创建 ...
- es number_of_shards和number_of_replicas
number_of_replicas 是数据备份数,如果只有一台机器,设置为0 number_of_shards 是数据分片数,默认为5,有时候设置为3 可以在线改所有配置的参数,number_of ...
- TIME_WAIT状态及存在原因
1. 客户端与服务器端建立TCP/IP连接后关闭SOCKET后,服务器端连接的端口状态为TIME_WAIT: 2. 主动关闭的Socket端会进入TIME_WAIT状态,并且持续2MSL时间长度,MS ...
- MVC 实现表格数据导出Excel(NPOI方式)
前端View(@ViewBag为查询条件): <span id="exprobtn" class="btn_blue" style="dispa ...
- 蓝桥杯 如何计算 X^X = 10 来求X呢?
题目中有说道:X的取值范围大于2小于3 高数书上中方程的近似解有讲到到:(同济第六版180页) ln(x^x)- ln(10)=0; x*ln(x) -ln(10)=0; 假设:F(x) = X*l ...
- c++ 请抛弃匈牙利命名法 - 变量命名代码风格的建议。
我只针对c++码农们讲,其他语言不了解不过应该大同小异.曾几何时翻开21天学通c++系列等脑残入门书,都以匈牙利命名法示人(DWORD dwXXX, int nXXX, string strXXX). ...
- Kafka学习(一)kafka指南(about云翻译)
kafka 权威指南中文版 问题导读 1. 为什么数据管道是数据驱动企业的一个关键组成部分? 2. 发布/订阅消息的概念及其重要性是什么? 第一章 初识 kafka 企业是由数据驱动的.我们获取信息, ...
- RTT常用数据类型
RTT常用数据类型定义在rtdef.h中 /* RT-Thread basic data type definitions */ typedef signed char rt_int8_t; /**& ...
- MAC信息摘要
MAC(Message Authentication Code ,消息认证码算法)是含有密钥散列函数算法,兼容MD和SHA算法的特性,并在此基础上加入了密钥.因此,MAC也称为HMAC. ...
- 2015 Spark 将走向哪里?
在刚刚过去的spark submit上,Matei Zahara简单回顾了下2014年spark的发展,可用一个词来概括那就是"Amazing"!!! 那么2015年,spark ...