程序员编程,你的练习是不是有效的?
对于我来说,提升技能的项目会有四种:
纯兴趣驱动的项目。即我的Idea列表上的一个个酷炫的项目,先满足自己再说。
理论驱动的项目。这一类的项目会比较少,因为我们需要牵强地驱动出这样的项目,然后以理论的方式驱动它。
兴趣结合理论型。有一个长长的Idea列表,难免有些时间会和将要学习的理论有很大的交集。这种的练习效果是最好的。
整合成文章、电子书。这一步主要是为了分享、巩固知识点、讨论。
简单地来说,就是:
刻意的理论练习
兴趣实践
两种不同的走向,上面的第三点和第四点,算是获得一些更好的效果。开始之前,让我们再次讨论一下情绪周期的问题。
编程与情绪周期
如果你每天都有很多可支配的自由时间时,你也会观察出情绪周期这件事。
所谓“情绪周期”,是指一个人的情绪高潮和低潮的交替过程所经历的时间。
这种周期看上去就好像是一图所示,但是总体上好像会长一点。
这一点在我的GitHub上看起来就有点明显了,至少它是一年的一个周期:
对于我来说,我会交替写代码和写博客、电子书。因为它以一定的规律在迭代着:
适合写大量代码的日子
适合学习理论的日子
适合玩游戏《文明》、看电影、睡觉的日子。一般来说,这种事件的出现天数比较少。
主要还是集中在前两点上,代码练习与理论学习。
练习与计划
持续性
对于练习来说,需要保持相当高的持续性。很明显的一点是,参考我的GitHub的连击。对于我的连击来说,主要有下面的两个意图
装逼
驱使不断自己练习
如果有一个很好的动机来驱动自己去练习编程,那么GitHub的连击就是一个很好的入口。当然,GitHub已经不再显示连击多少天了。
在我们达到所谓的10000小时之前,我们还需要这么久:
这只算上了工作上的时间,如果我们还有一半的时间也在练习上面,那么就会缩短为2.4年?
答案是:不可能!
怀孕需要10 个月,但是显然即使10 个人同时努力,也不能在一个月内生下孩子。
为了保证更好的练习效果,我们需要在每次短暂的时候之后,休息一段时间。为了实现这个我们可以用两种方式:
多喝水。无论是学习还是工作,喝水总是有利于大脑思考,还有利于你多上厕所。多走动,可以防止你有各种职业病。
采用所谓的番茄工作法——可以找个借口让自己休息。
不断地休息,才能让下一个练习走得更往,这样才能保证好的练习效果。
练习之前,你需要知道三件事
1. 练习要有计划才会有效果的!
2. 练习要有计划才会有效果的!
3. 练习要有计划才会有效果的!
对于不同的类型来说,你需要不同的练习计划。
编程:使用新技术、新思想
在练习编码的过程中,使用一些新的技术和新的编程思想可以帮助我们走出舒适区。当然如果你要在项目上用上新技术的时候,你也会采取相似的练习来做这样的事。而这也是大部分人尝试新技术的开始,如在每个新的编程语言的入门手册上,他们都会来一个经典的:
然后我们就会做一些类似的项目来快速上手这个语言,如以前我们用Java实现了一个Blog系统,我们就可以用Node.js实现一个Blog系统。同样的,我们也很容易将其应用到不同的语言环境中。
假定,你在A项目上使用了Java语言,而你们的新项目使用了是类似于A的业务,那么你就可以采用新技术或者思想来实现。
理论:练习和总结
理论本身有可能很难理解,从而很难应用。因此,在学习理论的最好方式还是应用,而要构建一个好的场景并不是一件容易的事。
我们需要不断地探索过别人实践过的一些例子,模仿一些相似的用法,然后创建自己的类似的项目。同样的,我们还是可以基于我们以前实践过的项目,在那之上做一些改进来学习理论知识。
理论还有一点比较麻烦的是,记住它。在我们练习了很多之后,我们可能很快地就忘记它了。因此,你需要笔记来做这样的事。
如有不同意见,欢迎留言评论。
欢迎加入Java高级架构学习交流群:468947140
本群提供免费的学习指导 架构资料 以及免费的解答
进群修改群备注:开发年限-地区-经验
点击链接加入群聊【Java-BATJ企业级资深架构】:https://jq.qq.com/?_wv=1027&k=52j2FVO
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
使用python解密SecureCRT上保存的密码
一、系统环境 系统:CentOS Linux release 7.5.1804 (Core) 系统本身自带:python-2.7.5-69.el7_5.x86_64 另外安装:python2-crypto-2.6.1-15.el7.x86_64 yum install pycrypto 二、用法: python Decrypt.py [filename...] 1、使用vi编辑器创建Decrypt.py文件,写入源代码。 2、其中[filename...]指的是ini文件,位于%APPDATA%\VanDyke\Config\Sessions\sessionname.ini 3、执行命令,即可查看到主机IP、账户、密码信息。 源代码: from Crypto.Cipher import Blowfish import argparse import re def decrypt(password) : c1 = Blowfish.new('5F B0 45 A2 94 17 D9 16 C6 C6 A2 FF 06 41 82 B7'.replace(' ','').decode('h...
- 下一篇
Python 传值还是传引用
在实现二叉树的代码时,使用递归调用,当给空叶子节点赋值的时候,发现只修改了局部变量。 因此研究了一下Python中传值和传引用的问题。 实验 实验一 a = None print(id(a)) b = None print(id(b)) 4321685368 4321685368 结论: 结果指向同一块区域 实验二 def test(x): x = x+2; a = 2 print(a) 2 结论: 没有改变原变量 实验三 def test(x): x = [1,2,3] a = [1,2] print(a) print(id(a)) test(a) print(a) print(id(a)) [1, 2] 4370314760 [1, 2] 4370314760 结论: 没有改变原变量地址 实验四 def arrayadd(x): x.append(1) a = [1,2] print(a) print(id(a)) arrayadd(a) print(a) print(id(a)) [1, 2] 4370399624 [1, 2, 1] 4370399624 结论:变量地址不变,值...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
-
Docker使用Oracle官方镜像安装(12C,18C,19C)
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- CentOS8编译安装MySQL8.0.19
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- SpringBoot2配置默认Tomcat设置,开启更多高级功能
- MySQL8.0.19开启GTID主从同步CentOS8
- CentOS7,8上快速安装Gitea,搭建Git服务器
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
推荐阅读
最新文章
- 设置Eclipse缩进为4个空格,增强代码规范
- Mario游戏-低调大师作品
- MySQL8.0.19开启GTID主从同步CentOS8
- Windows10,CentOS7,CentOS8安装MongoDB4.0.16
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
- CentOS8编译安装MySQL8.0.19
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- SpringBoot2整合Redis,开启缓存,提高访问速度
- CentOS关闭SELinux安全模块