当前位置: 首页 > news >正文

程序员如何高效学习技术?

我们相信努力学习一定会有收获,但是方法不当,既让人身心疲惫,也没有切实的回报。

  不少朋友每天都阅读技术文章,但是第二天就忘干净了。工作中领导和同事都认可你的沟通和技术能力,但是跳槽面试却屡屡碰壁。面试官问技术方案,明明心里清楚,用嘴说出来却前言不搭后语。面试官再问底层算法,你说看过但是忘记了。他不在乎你看没看过,答不上就是零分。正如男女相亲,男方谈吐潇洒才能吸引姑娘。可是男方紧张了,平时挺能说,关键时候却支支吾吾,姑娘必然认为他不行。人生充满了许多考试,有形的和无形的,每次考试的机会只有一次。

  工作五年十年后,别人成了架构师,自己还在基层打滚,原因是什么?职场上无法成功升迁的原因有很多,没有持续学习、学习效果不好、无法通过心仪公司的的面试,一定是很重要的原因。

  把自己当成一台计算机,既有输入,也要有输出,用输出倒逼输入。

微信截图_20231221160416.png

  近些年诞生了许多新技术,比如最时髦的AI(目前还在智障阶段),数学基础是初中就接触过的概率统计。万丈高楼从地起,不要被新工具或者中间件迷住双眼,一味地追新求快。基础知识是所有技术的基石,在未来很长的时间都不会变化,应该花费足够的时间巩固基础。

  以数据结构和算法为例,大家阅读一下Java的BitSet的源码,里面有大量的移位操作,移位运算掌握的好,看这份源码就没问题。Java同步工具类AQS用到了双向链表,链表知识不过关,肯定搞不懂它的原理。互联网大厂都喜欢考算法,为了通过面试也要精通算法。

  以Java工程师应该掌握的知识为例,按重要程度排出六个梯度:

第一梯度:计算机组成原理、数据结构和算法、网络通信原理、操作系统原理;

第二梯度:Java基础、JVM内存模型和GC算法、JVM性能调优、JDK工具、设计模式;

第三梯度:Spring系列、Mybatis、Dubbo等主流框架的运用和原理;

第四梯度:MySQL(含SQL编程)、Redis、RabbitMQ/RocketMQ/Kafka、ZooKeeper等数据库或者中间件的运用和原理;

第五梯度:CAP理论、BASE理论、Paxos和Raft算法等其他分布式理论;

第六梯度:容器化、大数据、AI、区块链等等前沿技术理论;

有同学认为第五梯度应该在移到第一梯度。其实很多小公司的日活犹如古天乐一样平平无奇,离大型分布式架构还远得很。学习框架和中间件的时候,顺手掌握分布式理论,效果更好。

u=1977720097,2879993675&fm=253&fmt=auto&app=138&f=PNG.png

  许多公司的招聘JD没有设定技术人员年龄门槛,但是会加上一句“具备与年龄相当的知识的广度与深度”。多广才算广,多深才算深?这是很主观的话题,这里不展开讨论。

  如何变得更广更深呢?突破收入上升的瓶颈,发掘自己真正的兴趣。

  大多数人只是公司的普通职员,收入上升的瓶颈就是升职加薪。许多IT公司会对技术人员有个评级,如果你的评级不高,那就依照晋级章程努力升级。如果你在一个小公司,收入一般,发展前景不明,准备大厂的面试就是最好的学习过程。在这些过程中,你必然学习更多知识,变得更广更深。

  个人兴趣是前进的动力之一,许多知名开源项目都源于作者的兴趣。个人兴趣并不局限技术领域,可以是其他学科。我有个朋友喜欢玩山地自行车,还给一些做自行车话题的自媒体投稿。久而久之,居然能够写一手好文章了,我相信他也能写好技术文档。

体系化的知识比零散的更容易记忆和理解,这正如一部好的电视剧,剧情环环相扣才能吸引观众。建议大家使用思维导图罗列知识点,构建体系结构,如下图所示:

坚持写技术博客,别在意你写的东西在网上已经重复千百遍。当自己动手的时候,才会意识到眼高手低。让文章读起来流畅清晰,需要呕心沥血的删改。写作是对大脑的长期考验,想不到肯定写不出,想不清楚肯定写不清楚。

造个轮子

我们经常说不要重复造轮子。为了开发效率,可以不造轮子,但是必须具备造轮子的能力。优秀开源项目的作者通常具备极高的工程能力,从工程的实际需求出发,用代码实现一个通用的解决方案。造轮子的目的,首先是巩固编程知识,其次是锤炼工程能力。

今天给大家介绍一款强大的前端工具啊,JNPF,前后端分离架构,丰富的在线设计体验,强大的代码生成器,让前后端代码一键生成,实现低代码开发,让开发更多关注业务,节省研发成本。

它拥有灵活的配置功能,可以让用户轻松的生成行和列,并且通过简单的拖放就可以实现对它的布局的调整,相信这可以大大提高我们的工作效率。

同时这个编辑器还提供了多种组件,包括编辑器、预览器和配置模板,既可以根据实际需求单独使用,也可以满足不同场景下的需求。同时它还有跨平台适配多软硬件的一个支持功能,让用户可以方便的应对不同的系统环境。此外,它还有一个非常非常实用的实时预览功能,在表单编辑的页面可以随时查看表单的渲染效果,这样我们就可以方便对表单进行调整和优化。如果你想提高工作效率,建议可以来试试这个强大的工具。

项目源码:https://www.jnpfsoft.com/?csdn

微信截图_20231122151444.png

建议造一个简单的MQ,会用到通信协议、设计模式、队列等许多知识。在造轮子的过程中,又要翻阅大量的技术资料或者博客,这就是用输出倒逼输入。

相关文章:

  • 算法设计与分析 | 矩阵连乘
  • 清除conda和pip缓存的方法
  • STM32 基础知识(探索者开发板)--103讲 通用定时器
  • MACBOOK 通过iterm2连接堡垒机跳转服务器
  • 【用unity实现100个游戏之19】制作一个3D传送门游戏,实现类似鬼打墙,迷宫,镜子,任意门效果
  • json转换(json与对象互转、json与list互转、JSONObject与Map互转)
  • SketchUp各版本安装指南
  • HackTheBox - Medium - Linux - Jupiter
  • Plantuml之对象图语法介绍(十九)
  • LeetCode 268. 丢失的数字
  • 二分查找——OJ题(一)
  • 计算机网络概述(下)——“计算机网络”
  • python之Selenium WebDriver安装与使用
  • vue实现H5拖拽可视化编辑器
  • 香橙派5plus从ssd启动Ubuntu
  • .pyc 想到的一些问题
  • Apache的基本使用
  • avalon2.2的VM生成过程
  • C学习-枚举(九)
  • Java多态
  • js ES6 求数组的交集,并集,还有差集
  • Meteor的表单提交:Form
  • node-sass 安装卡在 node scripts/install.js 解决办法
  • SSH 免密登录
  • 构建二叉树进行数值数组的去重及优化
  • 关于字符编码你应该知道的事情
  • 坑!为什么View.startAnimation不起作用?
  • 前端存储 - localStorage
  • 腾讯优测优分享 | Android碎片化问题小结——关于闪光灯的那些事儿
  • 跳前端坑前,先看看这个!!
  • 推荐一款sublime text 3 支持JSX和es201x 代码格式化的插件
  • 学习笔记DL002:AI、机器学习、表示学习、深度学习,第一次大衰退
  • JavaScript 新语法详解:Class 的私有属性与私有方法 ...
  • ​MPV,汽车产品里一个特殊品类的进化过程
  • ​MySQL主从复制一致性检测
  • #微信小程序(布局、渲染层基础知识)
  • (附源码)springboot工单管理系统 毕业设计 964158
  • (附源码)ssm教师工作量核算统计系统 毕业设计 162307
  • (简单) HDU 2612 Find a way,BFS。
  • (每日持续更新)信息系统项目管理(第四版)(高级项目管理)考试重点整理第3章 信息系统治理(一)
  • (数据结构)顺序表的定义
  • (一)u-boot-nand.bin的下载
  • (转)负载均衡,回话保持,cookie
  • *++p:p先自+,然后*p,最终为3 ++*p:先*p,即arr[0]=1,然后再++,最终为2 *p++:值为arr[0],即1,该语句执行完毕后,p指向arr[1]
  • .NET 解决重复提交问题
  • .NET 事件模型教程(二)
  • .NET:自动将请求参数绑定到ASPX、ASHX和MVC(菜鸟必看)
  • :=
  • @我的前任是个极品 微博分析
  • [ vulhub漏洞复现篇 ] Hadoop-yarn-RPC 未授权访问漏洞复现
  • [2021ICPC济南 L] Strange Series (Bell 数 多项式exp)
  • [ARM]ldr 和 adr 伪指令的区别
  • [ASP.NET MVC]如何定制Numeric属性/字段验证消息
  • [C++]模板与STL简介
  • [Codeforces] number theory (R1600) Part.11