程序员该如何学习技术

这篇具有很好参考价值的文章主要介绍了程序员该如何学习技术。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

程序员该如何学习技术

前言

  学习是第一生产力,我从来都是这么认为的,人只有只有不断地学习才能意识到自己的缺点和不足,身为程序员,我更认为人们应当抱着终身学习的想法实践下去,这是我所一直践行且相信的。

程序员该如何学习技术

  高处不胜寒,只有站在更高的地方,才能欣赏更多的风景,当年老时再回味这一切,你会发现这都是值得的。

 

 

「查阅文档」

程序员该如何学习技术

  这是我认为是最快也最好的学习方法。对于自己工作中常用到的技术,抽时间把官方文档通读一遍(其实篇幅都不大),绝对收获满满,因为官方文档内藏很多细节,真的值得一读。没事的时候多翻翻自己使用的框架/系统/平台的API,看看有哪些自己不知道或者没用过的功能,想想这个功能可以用来做什么,能不能解决现存的问题,或者优化当下的解决方案。

读过 Spring Boot/Spring 的官方源码之后我才知道:

  1. 如果你想使用基于XML的配置,SpringBoot 也完全支持,只要先使用 @Configuration 加载核心配置,然后通过 @ImportResource 注解就可以使用 XML 配置文件啦。

    程序员该如何学习技术

     

  2. 总所周知,Spring Boot的自动配置是出了名的,如果你想了解当前应用的都配置了哪些自动配置,那么可以打开 --debug 开关,这样做可以启用核心日志器进行日志调试并且将具体情况输出到控制台。

    程序员该如何学习技术

     

  3. 什么依赖注入方式最好?看过Spring的官方文档就会知道,Spring 官方通常提倡使用构造器注入,因为它能够实现应用程序的组件作为不可变对象并且会确保所需依赖不为 null。此外,构造器注入组件总是在返回客户端(调用)代码中处于完全初始化状态。但作为旁注,大量的构造器参数是一种糟糕的代码,这意味着类或许有太多的职责,应该重构代码以更好解决适当的关注点分离问题。

    程序员该如何学习技术

 

  如果你是前端工程师,通读 HTTP 协议和 ECMAScript 标准,就能秒杀 95% 的同行,不开玩笑。不过如果实在没时间,我们也可以把官方文档当成工具书,有问题的时候翻一翻,我相信大部分的问题都能通过官方文档找到很好的解决方案

 

「阅读源码」

程序员该如何学习技术

  都说细节决定成败,所以此方法是深入学习开源技术的唯一途径。程序员只有理解了某个功能在底层是如何实现的,我们才能真正把握这段代码或这个方法又或者是工具类更适合用来做什么,不能用来做什么。

  举几个例子,Java 语言中最常用的 String 类,如果你没看过 String 的源码那你不会知道 String类 toString 方法底层实现就是返回了字符串本身;

	/**
     * 此对象(这已经是一个字符串了) 返回自身
     *
     * @return  字符串本身
     */
    public String toString() {
        return this;
    }

  Collections 工具类的 sort 方法底层其实调用了 Arrays.sort() 方法进行排序,我第一次看的时候觉得很不可思议,JDK官方在代码复用这点上确实很厉害!

 	default void sort(Comparator<? super E> c) {
        Object[] a = this.toArray();
     	 // 这里调用了Arrays.sort()方法对数组进行排序
        Arrays.sort(a, (Comparator) c);
        // 然后使用迭代器重新设置元素
        ListIterator<E> i = this.listIterator();
        for (Object e : a) {
            i.next();
            i.set((E) e);
        }
    }

  此外,HashSet 的底层实现你没看过的话,绝对出乎你的意料,其空参构造仅仅就是 new 了一个 HashMap 而已,也就是说 HashSet 近乎就等于 HashMap。高情商: HashSet 青出于蓝而胜于蓝;低情商: HashSet 就是套皮了的 HashMap

  	/**
     * 构造一个新的,空的set集合,其底层的HashMap实例默认初始化容量(16)、加载因子(0.75)
     */
    public HashSet() {
        map = new HashMap<>();
    }

  有兴趣的话,大家还可以看看 LinkedHashSetTreeSet 的底层实现和上面的是近乎一般无二的。

  正如就算不明白怎么造汽车,我们也能把车开好。而如果多少知道一点底层的东西,开起来就会更得心应手。当车出现问题时,也不至于完全束手无策,只能蹲在路边等待救援。你Spring框架用了多少年了,却连一行源码都没读过?如果它是你女朋友,估计早该分手了。

 

「勇于尝试」

程序员该如何学习技术

  每个人都有机会,但不是每个人都有勇气,只要你勇敢地踏出这一步我认为你就成功了一半。这世界上有很多牛逼的程序员不一定是因为学的很多然后学历很高就非常厉害,反而是因为踩到的坑多了,遇到的bug多了,经历了这么多的事物,慢慢地可以应对所有的情况,最终成长为了一个牛逼的大佬 (PS:可能头发也会掉光)

  鲁迅曾说过一句话:这世上本没有路,走的人多了,也便有了路。

  我认为勇于尝试是学习任何技术的必经之路。在有保护的环境下进行大量的试错,是最高效的学习方法。现在虚拟机技术已经那么成熟,云服务器也很便宜,为什么不能分分钟搭建一个自己的服务器,然后在上面花式作死呢?我相信很多新手都听说过无数次 rm -rf / 的事故,但是你尝试过这个命令么?你知道这个命令输出之后是什么样子吗?你不知道,公司为我们提供的最有价值的东西,其实就是实战的机会。 我们所学习的技术,最终还是需要通过工作来变现,成为我们的经验。通过公司我们可以接触到真实的数据,了解真实的用户,观察真实的系统是怎样运转的,积累真正的经验…… ,给自己投资比什么都划算, 但是所谓的机会,只属于提前准备好的人,而大部分人只会随波逐流, 不要等到工作都安排到你身上了再去尝试。公司不是你的试验田,你也不该拿用户当小白鼠。若是公司没有给你机会,那只能说明你还没有准备好。文章来源地址https://www.toymoban.com/news/detail-428962.html

到了这里,关于程序员该如何学习技术的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 读程序员的README笔记01_学习如何学习

    6.3.2.1. 错误是不可避免的。成为一名软件工程师的路途艰辛,我们有时会失败 6.5.4.1. 代码从不说谎。注释有时却会。 6.5.4.1.1. Code never lies. Comments sometimes do 6.5.4.1.2. 去读源代码,因为它并不总是与设计文档相吻合 6.5.4.1.3. 不要只读你自己的代码库,还要去阅读高质量的开

    2024年02月05日
    浏览(54)
  • 如何让java程序员生涯更顺利?我聊聊提升技术水平的五个方面

    第一点,很多程序员在毕业前几年趁年轻的时候在互联网公司多干几年。存够了首付以后,就去二线城市,选择去国企、银行或者考公务员,离开一线互联网公司。这是绝大多数人的选择,也是一个很普遍的选择,因为大多数人都是普通人,不是每个人都能成为很牛逼的架构

    2024年02月03日
    浏览(55)
  • 程序员技能与成长:如何学习新的编程语言和代码规范与单元测试

    一名软件工程师的最大挑战就是使自己的技术栈跟得上技术的发展,而在这个技术飞速发展的时代,保证自己不被淘汰的唯一方法就是不断学习。 那么,程序员需要掌握多门编程语言吗?很多初学者都被这个问题所困扰。Google研究总监 Peter Norvig曾就这个问题给出自己的观点

    2024年04月10日
    浏览(47)
  • 程序员的职场,光有技术是不行的,送给每个即将工作的程序员

    又是一年五月份,大批量学计算机的学生又要涌入职场了,牛皮的已经早早找到了工作, 但不管你技术再牛,在程序员的职场,光有技术是不行的,你还要懂得一些职场的雷坑和上升技巧。 我做了二十多年程序员,踩过不少雷,今天就把我的经验分享给大家,希望你们能在

    2024年02月04日
    浏览(63)
  • 程序员业务,微信全文搜索技术优化

    一、iOS微信全文搜索技术的现状 全文搜索是使用倒排索引进行搜索的一种搜索方式。倒排索引也称为反向索引,是指对输入的内容中的每个 Token 建立一个索引,索引中保存了这个 Token 在内容中的具体位置。全文搜索技术主要应用在对大量文本内容进行搜索的场景。 微信终端

    2023年04月11日
    浏览(47)
  • 程序员裁员潮:技术变革下的职业危机

    一对来自中国的工程师夫妻在美身亡,疑因谷歌裁员致悲剧发生。在技术变革下,裁员对于程序员的影响到底有多大? 背景 不知道到底凶杀的真相,他们也貌似不是辞退的,而我们可以从以下比较客观的内容,得到一些关于职业的启示 方向一:内推 提示:无论是国内外,一

    2024年01月23日
    浏览(60)
  • “程序员求职攻略:IT技术岗面试的必备技巧“

    人活一世,不在乎朋友多少,不问财富几车,关键看在你最困难的时候,是否有一个伸出援手的人,一颗暖遍全身的心。 在现代社会,IT技术在各行各业的应用越来越广泛,因此IT技术人才也备受重视。作为一名程序员,在求职过程中,面试是我们必须面对和应对的一项重要

    2024年02月14日
    浏览(65)
  • 读程序员的README笔记13_技术设计流程(上)

    3.4.1.1. 外界干扰是深度工作的“杀手” 3.4.1.2. 避免所有的交流方式 3.4.1.2.1. 关闭聊天 3.4.1.2.2. 关闭电子邮件 3.4.1.2.3. 禁用电话通知 3.4.1.2.4. 换个地方坐 3.4.2.1. 有形产出是一份设计文档 4.2.3.1. 如果有一个以上的问题,询问哪些问题是最优先的 4.3.7.1. 注意与外人交流时不

    2024年02月04日
    浏览(70)
  • 读程序员的README笔记14_技术设计流程(下)

    1.4.2.1. 该项目将需要至少一个月的工程时间 1.4.2.2. 变更将对软件的扩展和维护产生长期的影响 1.4.2.3. 变更将显著影响其他团队 1.5.2.1. 设计文档是一种工具,可以帮助你思考、获得反馈、让你的团队了解情况、培养新的工程师,并推动项目规划 1.5.5.1. 阅读大量的设计文档

    2024年02月04日
    浏览(44)
  • 【程序员日记】——从业务编排到低代码 | 京东云技术团队

    之前总聊微服务,今天换一个话题—低代码。 低代码这个词也是最近这几年很火的概念,尤其是遇到大环境下行,很多大厂和互联网那个公司也在慢慢在低代码方向发力,当然,对于传统项目交付型的软件公司,低代码也具有相当大的吸引力。 用一个通俗易懂的说法,就是

    2024年02月05日
    浏览(39)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包