开发没有直径,但也要避免走弯路

2024-05-15 14:58

本文主要是介绍开发没有直径,但也要避免走弯路,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

        接触开发,从大学开始算,已经整整5年了。从最开始的c,到数据结构,到java,到数据库,到javascript,html,css,到android。作为一个开发者,大家都知道一句名言,那就是唯一不变的就是变化。需求变,技术变,公司变,各种变。这里面,我们开发更加关心的是技术的变化,以及如何去掌握新技术。

    从事java后台开发的,很多程序员对于javascript,css,html不熟悉,写着半吊子的javascript,只要能完成工作,基本都不深究javascript的相关技术。最近参与面试,面试了好几个工作1-3年的程序员,但是却对相关技术非常陌生,给人感觉就是:工作N年,为什么这么基本的知识都不明白呢,深深感到惋惜。所以最近这个问题也困扰着我,为什么工作了这么久,却还是如同一个刚接触开发的新手呢?在这里,一方面是希望给自己的学习历程一个总结,同事也希望给读者一些帮助,少走一些弯路。

在别人的框架下写代码

    进入一个公司,想必都会遇到一个框架,比如java中常见的Spring+hibernate,Spring+mybatis等,然后每个公司的架构师,也都会对这些开源技术进行集成与封装。于是每个开发者,加入一个新公司,基本流程都是:熟悉框架,写demo,进入项目组。由于项目中本身已经有相关的代码可以参考了,所以该流程一般都不会有什么问题。但是很多开发者,有个非常大的误区,就是能在框架下写代码,就以为自己掌握了该框架的相关技术了。比如面试时,面试者一般都会说,我会spring,我会hibernate,我会mybatis,但是只要稍稍询问相关知识,却答不出所以然来。其实每一个成熟的架构,都是经过多个人,费了很大的一段心血才整出来的一套完整体系的代码。虽然可能有些使用的技术不是那么的新潮,可能有些技术已经被淘汰,但是里面的一些设计思想却不会过时。
    甚至有些开发者,更会产生一种不耐烦的情绪,感觉自己每天的工作都是在copy代码。在面试时,不乏面试者说:“我在上一家公司中学习不到技术,框架怎么怎么了,用的技术怎么怎么了”。每个开发者都非常渴望学习新技术,掌握新技能,但是工作中,哪有那么多新技术供你学习,公司也不可能让你在工作时间内,花大量时间在学习技术上。
    对于在别人的框架下开发,本人从来不反对,也不反感,甚至每次接触到新框架时,都兴奋不已。因为每次接触一个新框架,都是一个极好的学习机会。最开始可能只是简单的搭建一个demo,但是只要把demo的原理摸透,那么就可以给自己的架构能力以及视野提供一个新的视觉,为自己的技术选型能力提供更多的参考。比如熟悉ssh的开发者,熟悉下ssm,才能对比出hibernate与mybatis的差异。熟悉struts的程序员,熟悉下spring mvc,才会明白spring mvc的优雅以及struts的优缺点。所以关键点就是要抱着一颗学习的心去学习,去工作,而不是仅仅局限于“可以在别人的框架下写代码,就以为自己掌握了该技术”。

忽略文档的重要性

    面试时,发现不少开发者对于一些常用的api都不熟悉,甚至离开eclipse都不能工作的情况。熟话说,工若善其事,必先利其器。这些文档,就像是我们的基本工作,我们应该熟读于心,需要使用时,快速选择,做到游刃有余。
    比如对java集合框架没有一个整体的把握,对java io没有整体把握,甚至连java lang常用的类都不清楚。实际上这些常用的api,以及相关文档,对我们开发者而言都是极其重要的。比如集合框架中,我们什么时候用LinkedList,什么时候用ArrayList,很多开发者都不知道,每次都是用同一个,问其原因,也回答不出来。比如要对集合进行一个排序,都足以让他们头疼。这类现象,就是对文档不熟悉。所以这里面,笔者强烈建议平时要多翻翻文档,多看看相关的源码。在查看文档时,推荐看英文原版。

熟悉常用的技术

    DRY原则告诉我们,不要造重复的轮子。世界上那么多的开发者,肯定有着非常多各种各种的轮子,我们要学习借助别人的轮子,让自己走的更快。
    比如大名鼎鼎的apache commons项目,比如spring,比如mybatis等,都是我们应该熟悉的轮子。笔者也并没有使用过apache commons中的所有项目,但是apache commons提供了哪些组件,还是比较熟悉的。所以在平时的工作中,都会偶尔浏览下一些常用的社区,看看每个技术的一些特性,查看时,主要关注:该组件能做什么,适合做什么,相关文档是否完善等。具体到api细节,一般都是需要使用时,才会深入学习。

阅读开源代码

    想要提高自己的编码水平,有多种途径。查阅优秀的开源代码,是一种非常好的学习方式。程序是外国人开发的,所以他们的母语非常适合开发,命名起来也更是手到擒来。我们在阅读的过程中,可以学习他人如何命名变量,如何设计类,如何设计方法等。
    当然,有时候,看开源代码也是一种挑战,因为一般开源项目涉及的类非常多,有时候会让我们无从下手。特别是一些开发经验略少的开发者,看到一大堆的类,甚是恐惧。我在大学期间,也尝试阅读spring的代码,压根看不懂!但是不要放弃,后面经过多番尝试,才算是能勉强一读。下面是我阅读代码的一些小技巧,希望对大家有所帮助。
        1.去该技术的官方,查看相关技术介绍,一般会介绍:能做什么,适合做什么,以及一些example
        2.使用构建工具,将源码下载下来,并且将该项目的example跑一跑(推荐使用maven)
        3.从example入手,配合着debug,看看那些类是核心,然后沿着这些类发散出去
        4.查看整个项目的源码包结构,猜测下每个包的作用,然后再猜测每个类的作用
        5.google该技术的源码分析,一般都会找到一些相关的源码分析文章
    经过这些步骤的折腾,基本上就足以掌握如何使用一门技术了。

阅读基础书籍

    基础的重要性不言而喻。比如我们搞java的,如果没有掌握java基础知识,想要学习spring等框架,自然是事倍功半,费力不讨好。当然,这里面的基础书籍,并不仅仅是某一门语言的基础语法。还包括:数据库理论知识,操作系统理论知识,数据结构理论知识,网络协议理论知识等。以前上大学时,这些课程学的枯燥无味,因为没有实际代码作为支持,纯理论的东西让人消化。后面随着代码的累计,以及阅读一些相关书籍,慢慢的发现,原来大学设立的课程,是非常有远见的,只是在执行力度上,有所欠缺。所以这里面,建议大家业务时间,可以看看操作系统、数据库原理、网络协议等相关知识,提高自己的内功。

总结

    1.善于利用下班时间,学习新技术
    2.挖掘能接触到的每一个架构的技术
    3.多阅读开源社区的相关技术文档
    4.多看看基础书籍,将编程知识体系化
    5.多些代码,多看代码,多重构自己的代码
    6.坚持阅读英文文档

这篇关于开发没有直径,但也要避免走弯路的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/992139

相关文章

这15个Vue指令,让你的项目开发爽到爆

1. V-Hotkey 仓库地址: github.com/Dafrok/v-ho… Demo: 戳这里 https://dafrok.github.io/v-hotkey 安装: npm install --save v-hotkey 这个指令可以给组件绑定一个或多个快捷键。你想要通过按下 Escape 键后隐藏某个组件,按住 Control 和回车键再显示它吗?小菜一碟: <template

豆包 MarsCode 不允许你还没有女朋友

在这个喧嚣的世界里,爱意需要被温柔地唤醒。为心爱的她制作每日一句小工具,就像是一场永不落幕的浪漫仪式,每天都在她的心田播撒爱的种子,让她的每一天都充满甜蜜与期待。 背景 在这个瞬息万变的时代,我们都在寻找那些能让我们慢下来,感受生活美好的瞬间。为了让这份浪漫持久而深刻,我们决定为女朋友定制一个每日一句小工具。这个工具会在她意想不到的时刻,为她呈现一句充满爱意的话语,让她的每一天都充满惊喜和感动

Hadoop企业开发案例调优场景

需求 (1)需求:从1G数据中,统计每个单词出现次数。服务器3台,每台配置4G内存,4核CPU,4线程。 (2)需求分析: 1G / 128m = 8个MapTask;1个ReduceTask;1个mrAppMaster 平均每个节点运行10个 / 3台 ≈ 3个任务(4    3    3) HDFS参数调优 (1)修改:hadoop-env.sh export HDFS_NAMENOD

嵌入式QT开发:构建高效智能的嵌入式系统

摘要: 本文深入探讨了嵌入式 QT 相关的各个方面。从 QT 框架的基础架构和核心概念出发,详细阐述了其在嵌入式环境中的优势与特点。文中分析了嵌入式 QT 的开发环境搭建过程,包括交叉编译工具链的配置等关键步骤。进一步探讨了嵌入式 QT 的界面设计与开发,涵盖了从基本控件的使用到复杂界面布局的构建。同时也深入研究了信号与槽机制在嵌入式系统中的应用,以及嵌入式 QT 与硬件设备的交互,包括输入输出设

OpenHarmony鸿蒙开发( Beta5.0)无感配网详解

1、简介 无感配网是指在设备联网过程中无需输入热点相关账号信息,即可快速实现设备配网,是一种兼顾高效性、可靠性和安全性的配网方式。 2、配网原理 2.1 通信原理 手机和智能设备之间的信息传递,利用特有的NAN协议实现。利用手机和智能设备之间的WiFi 感知订阅、发布能力,实现了数字管家应用和设备之间的发现。在完成设备间的认证和响应后,即可发送相关配网数据。同时还支持与常规Sof

zoj3820(树的直径的应用)

题意:在一颗树上找两个点,使得所有点到选择与其更近的一个点的距离的最大值最小。 思路:如果是选择一个点的话,那么点就是直径的中点。现在考虑两个点的情况,先求树的直径,再把直径最中间的边去掉,再求剩下的两个子树中直径的中点。 代码如下: #include <stdio.h>#include <string.h>#include <algorithm>#include <map>#

活用c4d官方开发文档查询代码

当你问AI助手比如豆包,如何用python禁止掉xpresso标签时候,它会提示到 这时候要用到两个东西。https://developers.maxon.net/论坛搜索和开发文档 比如这里我就在官方找到正确的id描述 然后我就把参数标签换过来

Linux_kernel驱动开发11

一、改回nfs方式挂载根文件系统         在产品将要上线之前,需要制作不同类型格式的根文件系统         在产品研发阶段,我们还是需要使用nfs的方式挂载根文件系统         优点:可以直接在上位机中修改文件系统内容,延长EMMC的寿命         【1】重启上位机nfs服务         sudo service nfs-kernel-server resta

【区块链 + 人才服务】区块链集成开发平台 | FISCO BCOS应用案例

随着区块链技术的快速发展,越来越多的企业开始将其应用于实际业务中。然而,区块链技术的专业性使得其集成开发成为一项挑战。针对此,广东中创智慧科技有限公司基于国产开源联盟链 FISCO BCOS 推出了区块链集成开发平台。该平台基于区块链技术,提供一套全面的区块链开发工具和开发环境,支持开发者快速开发和部署区块链应用。此外,该平台还可以提供一套全面的区块链开发教程和文档,帮助开发者快速上手区块链开发。

Vue3项目开发——新闻发布管理系统(六)

文章目录 八、首页设计开发1、页面设计2、登录访问拦截实现3、用户基本信息显示①封装用户基本信息获取接口②用户基本信息存储③用户基本信息调用④用户基本信息动态渲染 4、退出功能实现①注册点击事件②添加退出功能③数据清理 5、代码下载 八、首页设计开发 登录成功后,系统就进入了首页。接下来,也就进行首页的开发了。 1、页面设计 系统页面主要分为三部分,左侧为系统的菜单栏,右侧