博客起步
在今年之前,偶尔在简书上写一点博客,阅读量也很少,断断续续的写了一点。后面看了一篇文章说。
其实工作的时候你是做过,但是很难讲出来,所以得经常整理思路,而写作就是很好的思路整理
就开始写技术博客之路了,开始就写一些自己工作中遇到的一些问题和难点总结。
其实很多人看到别人写的文章,很多会觉得也是很一般,或者自己早就知道,只是没有写而已。
但是对于知道和做到之间是一个很长的距离,所以这里给我的第一个提示是:知道了一定要去做,而不是仅仅觉得写得很一般,就不行动,只有行动了,才可能有更高的难度。就像走阶梯一样,你只有走了第一步才能走第二步,一步一个脚印的往上走,很少有一下子就跳上去的。
开始写了几篇自己工作遇到的一些问题总结,以及一些比较基本的问题。比如缓存和数据库不一致解决方案、Mac远程上传文件到Liunx、使用二分查找获取非递减数组的下标......。很多都是平时工作中遇到的问题,博客也是一种记录和总结,下次再次遇到同样的问题也更快的解决。
求解非递减数组范围下标
解决数据库和缓存数据不一致情况:延迟双删
Mac 远程上传文件到 Linux
后面有一篇有意思的文章,在数据库添加百万数据,当时是为了测试数据库加和不加索引,查询数据的差别。最开始是使用 Java 代码循环添加,这种估计得搞一天。后面直接使用了储存过程,几分钟就解决。这篇文章的点击率也很大,给了我一些写作的动力。
Mysql使用存储过程快速添加百万数据
后续写的也是一些基础的知识,我的基础知识是比较薄弱的,基础薄弱这可能是很多程序员的通病,平时工作70% 是写业务代码,其中大部分都是 CURD,对于原理的问题,会处于一知半解的状态,如果有个在面试中经常问的 == 和 equals 的区别,常用在数值比较和对象比较,如果不去看源码,很容易会犯错,比如,Integer a = 1,Byte b = 1, 判断两者的数值使用 equals 是不会相等的,因为源码先判断是否是同一个类型,如果不是直接返回 false。日常开发多去记录,下次遇到同样问题会有更多的解题思路。
Java == 和 equals的区别
在开发中分析源码,比如集合源码,比较常见的 ArrayList 和 LinkedList 源码,以及查看 Redis 源码,都需要看到实现思路,后续更好的排查问题。
LinkedList 添加元素源码解析
HashSet 如何保证元素不重复——hash码
深入理解Redis 数据结构—简单动态字符串sds
深入理解Redis 数据结构—双链表
阅读数
平台 | 阅读数 |
---|---|
cnblog | 8751 |
csdn | 5629 |
掘金 | 5791 |
头条 | 9400 |
segmentfault | 2300 |
半年的时间,有这些阅读也是一个好的起步,博客园只要推荐到首页,阅读都是几百的。而掘金需要阅读上去之后才会推荐到首页,流量又不太稳定。csdn 也是有时候阅读量大,有时候会很小。
leetcode
刷算法题开始是没有目的,按照题目,从头开始刷,从简单的开始刷,一年的累计也刷了快两百题。刷题也是一个很考验人耐心的过程,开始都是很难想到思路,刷多了,都是那几个套路,比如二分查找、数组、字符串、回溯、双指针,后面根据这些解法做了一个总结。地址:https://github.com/jeremylai7/leetcode
总结
- 无论是哪个平台,都需要多写,写的好不好,都是需要多写,现在便捷的网络可以低成本的写作。多写,多总结,最好在工作有实践,有反馈。
- 多了解原理,底层源码,开始别人问原理,我觉得比较疑惑,需要了解这么多原理?其实只是需要怎么用只是基础,要知道如何实现,在工作可以借鉴解题思路。
- 很多原理学多了发现原理是相同,比如用数组存储的数据,为了避免每次扩容。都使用动态扩容的方法,每次增加原来长度1.5倍,不用频繁的申请分配内存。redis 的简单动态字符串 和ArrayList 都用了这个特性。