关于技术学习的一些感悟
学习的时候追根究底很重要,多问为什么,多思考可不可以不这样,多思考不同实现方式的不同点,多关注思路思想而不是具体实现。
经历过才懂得
如果说最初的notepad写代码是石器时代,那么现在的开发至少已经进入了工业时代,现在的开发人员有好用的写代码工具,好用的项目构建工具,好用的发布工具。极大的简化了之前的手动操作。这样的结果就是,很多初学编程者,上来就开始使用这些现成的工具,用得太理所当然,以至于离开了这些工具什么都干不了。
我想说的是,现在现成的工具能够很好的提高开发效率,我们应该去用,但是很多时候我们学习者也需要知道这些工具出现的原因,即为了解决什么问题而产生,同时也需要了解一下这些工具的原理。也就是说,现在技术发展的很快,很多新的工具或者很牛的框架出现,但是如果我们一开始就用这些工具或者框架,我们就无法体会到这些工具给我们带来的便利,因为我们不知道没有这些框架时候是什么样子。
比如Hadoop,Spark,Kafka等这些框架,如果我们在它们出现之前用过其他大数据处理框架或者分布式消息系统,那么我们遇到这些新的框架的时候我们才能很好的体会到这些新框架的特点,但是如果一到了某家公司就开始用这些,可能你都来不及考虑一下为什么要用这些而不是其他的。
所以我的结论之一就是:很多事情,你必须亲自经历过,才能体会到某种新技术或者框架出现的初衷,也能更清楚的明白这些框架之间的不同,区别,真正做到按需索取。
但现在存在的很大问题就是,很多初学者如果弄懂这些,需要学的东西很多很杂,如何定位如何取舍就决定了你的提高速度。所以在这方面,有一个大神带飞一下,真的很关键!
要走在技术的前沿
这条结论来自第一条,我们要想经历过才懂得,那么我们就必须在某项技术产生之时就跟进,只有这样才能一步步了解该技术的发展,才能对于技术的整体方向有个很好的把握。
对于我们大部分开发人来说,保持这种意识也很关键,技术本来就是不断进步的,我们也需要能够及时了解技术发展动态,只有这样才能跟着技术发展的大潮一起进步,向前!
要有自己的知识体系
在我遇到过的技术人员中,我认为可以分为两大类,一类就是知识面很广,基本上从前端到后台,所有的技术都懂;另一类就是知识面比较窄,你跟他聊天的时候说的一些东西他可能没听说过,但是他的知识很扎实,只要他研究过的,就研究的很深入。
我不觉得这两种有什么不好,我觉得这是两种截然不同的知识体系的表现,一种就是很有广度,一种就是很有深度。广度和深度其实都很重要,但是对于不同阶段的开发人员来说,可能应该关注的度是不同的。
我觉得,随着开发时间的增长,技术水平的提高,我们需要不断提升自己的广度,扩宽知识面,但是在此之前应该是先提高深度,即把自己当前用的技术掌握扎实,理解透彻。
很多开发人员都觉得在哪家公司学不到任何东西,其实不是这样的,我想很多公司都会用到各种框架,哪怕是烂大街的大家都知道的,但是是不是这些烂大街的技术你就掌握的很好呢?你深入了解过原理吗?
但是现在的新技术这么多,对于java来说,体系更是庞大,那么应该学哪些呢?其实解决这个问题的根本就是要构建自己的知识体系,将自己已经掌握的知识系统整理,挖掘知识之间的联系和区别,然后在此基础之上适当补充。就好比一棵树,如果各个枝节都长满也绿叶那是最好的,但是如果我们发现某个枝节叶子本是很好,那么我们可能就需要在这个方面努力一下。
制定学习计划和目标
按照计划按部就班开展,而不是跟风,不然会被别人带到沟里的!
不要安于现状
学问越大,越谦虚。越懂得的多,越能发现自己的不足。
学习方法论
对于新框架,由整体到细节
对于一个全新的框架来说,我们要从下面几个方面入手:
- 解决什么问题?
- 与现有框架相比,优点在哪里,缺点呢?
- 实现原理是什么?
- 如何使用?
- 如何用好?要想用好就必须深入实现细节,需要大量阅读文档和源码
原文地址:http://blog.onlycatch.com/post/关于技术学习
作者:Medusar
写在最后
资源分享
精选互联网架构师视频、十多套精选实战项目视频、黑马内部视频、黑马大数据工程师视频、5套精选Java面试指南视频等等。
关注微信公众号“Java面试通关手册”回复关键字“1"即可免费领取!
开源文档推荐
Java-Guide: Java面试通关手册(Java学习指南)Java Interview Customs Manual (Java Study Guide)。star:1.9k。
Github地址:https://github.com/Snailclimb/Java-Guide
文档定位:一个专门为Java后端工程师准备的开源文档,相信不论你是Java新手还是已经成为一名Java工程师都能从这份文档中收获到一些东西。
你若盛开,清风自来。 欢迎关注我的微信公众号:“Java面试通关手册”,一个有温度的微信公众号。公众号有大量资料,回复关键字“1”你可能看到想要的东西哦!
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
Python网络编程(weekly summary1)
网络的目的是什么? 用于信息传输、接受 能把各个点、面、体的信息链接到一起 实现资源的共享 OSI模型: 应用层:提供程序服务 表示层:数据加密、优化、压缩 会话层:建立链接、传输服务 传输层:提供数据传输服务 网络层:路由选择 网路互联 连表层:链接交换 物理层:硬件、接口、网卡规定等 特点: 将功能分开来达到高内聚低耦合 让开发更为清晰 什么是网络协议? 是为了完成计算机网络通讯而制定的规则、约定、标准 各模型使用的协议: 应用层:TFTP(文件传输)、HTTP(超文本传输协议)、DNS(域名解析)、SMTP(邮件传输) 传输层:TCP(面向有链接的可靠的传输服务)、UDP(面向无连接的不可的传输靠服务) 网络层:IP(IP地址)常用IPV4:点分十进制 取值0~256之间(32位) IPV6::128位 物理层:IEEE 特殊IP: 127.0.0.1 本机IP 0.0.0.0 自动使用本地可用网卡IP 192.168.1.0 代表网段 192.168.1.1 通常为网关地址 192....
- 下一篇
求职简历-机器学习工程师
1.基本信息 求职岗位:机器学习工程师(偏应用) 期望薪资:20000以上 姓名:雷坤 手机号码:18150382334 邮箱:474933858@qq.com 毕业院校:厦门大学软件学院 2.掌握技能 1.机器学习十大经典算法的初步理解(非应聘算法岗位) 2.Python匿名函数、列表推导式、装饰器的熟练使用 3.Python科学计算库numpy、scipy和数据分析库pandas的熟练使用 4.Python中scikit-learn机器学习库的熟练使用 5.TensorFlow_gpu环境的部署和使用 6.熟悉Linux日常工作环境,熟练掌握常用命令和调优监控手段 7.团队协作开发工具git的熟练使用 8.熟练使用shell命令和开发脚本 3. 项目经验 1.基于Selenium的12306自动刷票软件 2.基于Scrapy爬取伯乐在线网站存入mysql数据库 3.基于GradientBoosting模型的厦门市房价预测系统 4.基于TensorFlow+CNN的ImageNet数据集图像分类 5.kaggle平台波士顿房价预测比赛第5名 4.个人特质 1.思维清晰,优化代码,解决...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- Docker安装Oracle12C,快速搭建Oracle学习环境
- Red5直播服务器,属于Java语言的直播服务器
- CentOS7,CentOS8安装Elasticsearch6.8.6
- CentOS8编译安装MySQL8.0.19
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- CentOS6,CentOS7官方镜像安装Oracle11G
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装
- SpringBoot2更换Tomcat为Jetty,小型站点的福音
- CentOS8安装Docker,最新的服务器搭配容器使用