【第一篇技术博客】-- 《CodeLife》文章观后感

我的第一篇技术博客

今年刚毕业,是平安旗下的一家支付公司的一名普通程序员,为什么想写博客?因为我发现技术的学习过程真的挺痛苦的,每天在上班的路上强迫着自己学习各种知识,还给自己定下一个目标,说要300天进阶到java高级,发现时间过了三个月了,自己很多东西都还没有学会,或者是很多东西学了就忘,自己每天感觉特别的骄躁,突然有一天晚上留守发版的时候,晚上10点钟在运维那里看到一个很厉害的大佬坐在那里看书,特别的认真,真的就觉得学习这个东西还是得从书本上来,从书本学习了基本知识和框架之后,带着疑问去网上找资料或者研究源码解决,而且最重要的是你必须不断的记录这些零碎的知识点,不然过了一段时间你真的又忘记了,所以我决定通过写博客这样的一种方式去系统的记录自己看书或者学习过程的知识点或者疑问点,来和大家分享,同时也能不断的鞭策自己每天学习技术,能够持续的输出,希望300天进阶java高级能够实现。

第一篇改变我想法的文章分享

今天是开始写博客的第一天,我很想给很多像我这样一直在写业务代码的程序员分享这篇文章,基本上大部分程序员就是每天在写业务代码,每天做着增删改查的工作,时间长了,很多人就会很厌倦或者开始混日子,但是这篇文章告诉我们如何在写业务代码中成长。
文章主要从以下几个方面介绍

如何快速成为技术大牛

业务代码一样可以很牛逼

很多人抱怨写业务代码没有什么技术含量,但是如果你连业务代码都写不好,那么何谈后面更加高级的东西呢?写业务代码一样可以锻炼自己

  • 使用封装和抽象使得业务代码更具有扩展性
  • 和产品多沟通可以更好的熟悉业务,准确沟通和熟悉业务是一件每个写业务代码的程序员必须要学会的事
  • 日志记录可以更好的定位到问题,养成打印重点日志的习惯,这样可以马上定位到产线问题
上班太忙没有时间学习

很多人都有这样的一个误区,一就是认为上班做的都是重复工作,想要提升必须自己额外的学习,二就是认为学习需要大段的连续时间。实际上真正的做法正与此相反,我们需要在工作中学习和提升,因为学以致用或者有实例来参考,这样的学习效果是最好的;其次就是工作后学习不需要打断时间,而是要挤出时间,利用碎片化的时间进行学习

正确的做法
  • Do More

    • 做的更多,做的比主管安排给你的任务更多
      主动熟悉这个模块关联的功能,了解这个版本整套的业务逻辑,主动承担版本负责人的角色
    • 熟悉更多代码
      1.需求分析的时候才能更加准确
      2.问题处理的时候才能更加快速
      3.方案设计的时候能够考虑的更加周全
    • 熟悉端到端
      比如你负责的是web后台开发,实际上用户发起一个http请求时,中间要经过很多步骤才能到你的服务器(浏览器缓存、DNS、nginx等等),服务器又会经过很多处理才能到你写的那块代码(路由、权限等),需要熟悉整个过程用到的技术
    • 自学
      机会是留给有准备的人的,需要提前了解很多技术,大部分的业务代码就是if-else加上数据库操作,但是我们可以多了解下java其他的知识,比如垃圾回收、调优、网络编程等
  • Do Better

    • 你负责的系统和业务总有不合理的地方和可以改进的地方
      1.重复代码太多,是否可以引入设计模式?
      2.系统性能一般,可否进行优化?
      3.目前是单机,是否可以做成双机?
      4.版本开发质量不高,是否引入高效的单元测试和集成测试方案?
      5.目前系统太过庞大,是否可以通过重构和解耦改成3个系统?
  • Do Exercise

    • learning
      这个是第一阶段,看书、google、看视频、看别人的博客都可以,但要注意一是“系统化”,特别是一些基础性的东西,例如 JVM 原理、Java 编程、网络编程,HTTP 协议等等,这些基础技术不能只通过 google 或者博客学习,我的做法一般是先完整的看完一本书全面的了解,然后再通过 google、视频、博客去有针对性的查找一些有疑问的地方
    • trying
      形象来说就是“自己动
      手丰衣足食”,也就是自己去尝试搭建一些模拟环境,自己写一些测试程序。例如:
      ● Jvm 垃圾回收:可以自己写一个简单的测试程序,分配内存不释放,然后调整各种 jvm 启动参数,再运行的过程中使用 jstack、jstat 等命令查看 jvm 的堆内存分布和垃圾回收情况。这样的程序写起来很简单,简单一点的就几行,复杂一点的也就几十行。
      ● Reactor 原理:自己真正去尝试写一个 Reactor 模式的 Demo,不要以为这个很难,最简单的 Reactor 模式代码量(包括注释)不超过 200 行。自己写完后,再去看看 netty 怎么做,一对比理解就更加深刻了。
      ● MySQL:既然有线上的配置可以参考,那可以直接让 DBA 将线上配置发给我们(注意去掉敏感信息),直接学习;然后自己搭建一个 MySQL 环境,用线上的配置启动;要知道很多同学用了很多年 MySQL,但是连个简单的 MySQL环境都搭不起来。
      ● 框架封装了 DAL 层:可以自己用 JDBC 尝试去写一个分库分表的简单实现,然后与框架的实现进行对比,看看差异在哪里。
      ● 用浏览器的工具查看 HTTP 缓存实现,看看不同种类的网站,不同类型的资源,具体是如何控制缓存的;也可以自己用 Python 写一个简单的 HTTP 服务器,模拟返回各种 HTTP Headers 来观察浏览器的反应
    • teaching
      一般来说如果能将自己学习到的知识能够讲的别人也能够完全清楚,那么真的算是完全掌握了,因为给他人讲的时候,需要将一个知识点系统化,这对讲解者的知识储备要求很高。
  • 后记
    成为技术大牛相信是很多程序员的梦想,但是需要付出很多,不管是Do More、Do Better还是Do Exercise,都需要我们花费时间和精力,真正期决定作用其实还是我们对技术的热情和兴趣

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值