侵权投诉

java程序员必须要学习哪些东西

工程师人生 2019-06-25 17:12 次阅读

最近室友闲聊的时候告诉我,他在网上收集了做为一个java程序员必须要会的东西,他觉得自己要有个方向,否则一定会在平平凡凡的工作中,不思进取,最终浑浑噩噩。真是让我猛然惊醒啊,做为一个底层的程序员,如何才能拼得过出来的大学精英和社会老手?学习一定必不可少。虽然自己有点懒,我先把这些记下,待日后尽量弄懂。

java程序员必须要学习哪些东西

Web/WinForm/通吃,包括ASP.NET,WebService,Remoting,Thread,Serializable,ADO.NET等命名空间

精通UML

精通DesignPatterns 23+N种模式:默写各个模式UML图,熟记代码实现方式,范例,以及.NET相关接口

精通CLR

VB.NET/C#通吃

精通OOP理念

精通DB设计与T-SQL,SQL2005就可以了

熟悉AJAX全套技术

通吃WPF/WCF/WF/LINQ

WEB 2.0理念,理解Blog/Wiki/RSS架构,SOA理念

精通数据结构/操作系统/安全加密

精通.NET设计规范

研究5套以上经典源码,例如:SharpDevelop,PetShop,DotNetNuke,SmartClient,NUnit,FotoVision,CSLA等等

熟悉DirectX编程模式

翻译过1-2本技术书籍

软件开发是一个跨度很大的技术工作,在语言方面,有C++、C++、Java、Ruby等等等等;在环境方面,又分嵌入式、桌面系统、企业级、WEB、基础系统,或是科学研究。但是,不管是什么的情况,总是有一些通用的基本职业技能。

这些最基本的职业技能通常决定了一个程序员的级别,能否用好这些技能,直接关系到了程序员的职业生涯。很多程序新手也是因为缺少、达不到或是不熟悉在这些基本技能,所以,他们需要有老手带,需要努力补齐这些技能。而高级程序员应该非常熟悉这些基本技能,而且有能力胜任并带领其他经验不足的程序员。

下面这些基本职业技术可以用来做为对一个程序员的评估,很明显,下面的这些技能都可以用来做面试。虽然,还有很多非技术的因素,但对于评估一个程序员的技术能力来说,其应该是足够的了。

下面是程序员所应该具备的基本职业技能:

阅读代码 - 这个技能需要程序员能够具备读懂已经存在的代码的能力,这样的能力可以让程序员分析程序的行为,了解程序,这样才能和开发团队一起工作,继承维护或是改进现有的程序。(相关阅读:《阅读优秀代码是提高开发人员修为的一种捷径》)

编写程序 - 编写程序并不包括程序设计。不要以为编程是一件很简单的事情,很多程序员都认为编程只需要懂得程序语言的语法,并把设计实现就可以了。但是这离编写程序还远远不够,使用什么样的编码风格成为编写程序员最需要具备的基本技能。能否使用非常良好的编程风格直接决写了程序员的级别。

软件设计 - 这一能力直接决定了需要吏用什么样的代码技术达到怎么样的功能,而系统架构设计直接决定了软件的质量、性能和可维护性。并不是所有的程序在这一方面都非常优秀,但每个程序员都需要或多或少的明白和掌握这一基本技能。

熟悉软件工程 - 每个程序员都应该明白软件工程是什么东西,都应该知道,需求分析、设计、编码、测试、Release和维护这几个阶段。当然,几乎所有的人都知道这些东西,但并不是每个人都很清楚这些东西。现在很多高级程序员都会混淆“需求规格说明书FS”和“概要设计HLD”。另外,程序员还需要知道一些软件开发的方法/论,比如:敏捷开发或瀑布模型。

使用程序库或框架 - 一个程序员需要学会使用已有的代码,无论是标论的程序库,或是第三方的,还是自己公司内部的,都需要学会做。比如:C++中,需要学会使用STL、MFC、ATL、BOOST、AC、CPPUNIT等等。使用这些东西,可以让你的工作事半功倍。

程序调试 - 程序调试是分析BUG和解决问题最直接的能力。没有人能够保证程序写出来不用调试就可以运行正常,也没有人可以保证程序永远不会出BUG。所以,熟练使用调试器是一个程序员需要具备的基本技能。

使用IDE - 学会使用IDE工具也会让你的工作事半功倍。比如,VC++、Emacs、Eclipse等等,并要知道这些IDE的长处和短处。

使用版本控制 - 一定要学会使用版本控制工具,什么叫mainline/trunk,什么叫tag,什么叫branch,怎么做patch,怎么merge代码,怎么reverse,怎么利用版本控制工具维护不同版本的软件。这是程序员需要明的的软件配置管理中最重要的一块。

单元测试 - 单元测试是每个程序都需要做的。很多单元测试也是需要编码的。一定要学会在xUnit框架下进行单元测试。比如JUnit, NUnit, CppUnit等等。

重构代码 - 每个程序员都需要有最基本的能力去重构目前已有的代码,使代码达到最优但却不能影响任何的已有的功能。有一本书叫《软件的重构》,每个程序员都应该读一下。

自动化编译 - 程序员需要使用一个脚本,其能自动化编程所有的工程和代码,这样,整个开发团队可以不停地集成代码,自动化测试,自动化部署,以及使用一些工具进行静态代码分析或是自动化测试。

当然,还有很多的基本技术也是非常重要的,比如,与人的沟通能力,语言的表达能力,写作能力,团队协作能力,适应变化的能力,时间管理能力,多任务处理能力,自我学习能力,故障处理能力,等等。这里只是列举了和技术相关的能力,这些是程序最最最基本的能力,只要是程序员就必需要有的能力。

收藏 人收藏
分享:

评论

相关推荐

学习大数据,Java工程师需要掌握哪些技术点?

题目是一名叫“截然不同”的同学私信我的一个问题,原话是,“搞大数据,java 需要掌握哪些技术点?”....
的头像 如意 发表于 08-08 08:41 737次 阅读
学习大数据,Java工程师需要掌握哪些技术点?

Python这个超炫的黑科技,可全网爬取各种资源!

以前找房子费时又耗力,还要谨防被黑中介或二手房东坑一把!现在键盘敲敲几下,就能用Python找到房子....
的头像 玩转单片机 发表于 08-05 10:05 1355次 阅读
Python这个超炫的黑科技,可全网爬取各种资源!

如何利用Java代码实现UDP和TCP通信

UDP是一种面向无连接的协议,因此传输过程中不能保证数据的完整性。jdk提供了网络通信包,在java....
发表于 08-04 10:03 49次 阅读
如何利用Java代码实现UDP和TCP通信

解析Java通信:Sentinel中的冷启动限流算法实现

令牌桶算法的原理是:按一定的速率往令牌桶中放入令牌,当接收到请求时,从令牌桶申请令牌,只有拿到令牌的....
发表于 08-04 09:59 45次 阅读
解析Java通信:Sentinel中的冷启动限流算法实现

石油化工企业门禁管理系统的方案设计与应用

v
发表于 08-03 12:09 71次 阅读
石油化工企业门禁管理系统的方案设计与应用

请问适用于树莓派的JAVA IDE工具有哪些啊??

树莓派带的JAVA IDE工具不会用,还有别的树莓派可用的,比较方便的JAVA IDE工具吗...
发表于 07-29 22:57 0次 阅读
请问适用于树莓派的JAVA IDE工具有哪些啊??

Java代码加密支持Android App Bundle动态化框架

传统App加壳技术无法应用在App Bundle模式生成的数据包之上。然而,几维安全推出的Java2....
的头像 几维安全 发表于 07-29 16:13 367次 阅读
Java代码加密支持Android App Bundle动态化框架

请问为什么有人会以程序员高薪为由转行写代码?

why?现在程序员初级简直水深火热啊?做什么不比这赚钱?         ...
发表于 07-28 02:58 0次 阅读
请问为什么有人会以程序员高薪为由转行写代码?

分享一些JAVA开发笔记

分享一些JAVA笔记
发表于 07-27 22:37 0次 阅读
分享一些JAVA开发笔记

内存受限系统之软件开发PDF电子书免费下载

PDA软件市场不但巨大,而且持续成长。五年之内,全世界将有大量人口使用精明时髦,可上网的移动电话。每....
发表于 07-27 08:00 17次 阅读
内存受限系统之软件开发PDF电子书免费下载

强大的Python完全用Python工作使用说明

作为一个业余物理工作者以及入门计算机使用者, 选择一门称手的编程语言是非常重要的事。 从计算能带, ....
发表于 07-24 16:51 49次 阅读
强大的Python完全用Python工作使用说明

Effective C++改善程序与设计的55个具体做法第三版电子书

《Effective C++:改善程序与设计的55个具体做法》(中文版)(第3版)一共组织55个准则....
发表于 07-24 08:00 34次 阅读
Effective C++改善程序与设计的55个具体做法第三版电子书

机器人编程语言的类型有哪些?

机器人编程语言最早于20世纪70年代初期问世,到目前为止已有多种编程语言出现,在众多机器人编程语言中....
发表于 07-23 16:08 195次 阅读
机器人编程语言的类型有哪些?

新手学习编程,0基础该注意什么

首先呢,先不要觉得程序猿的工资就一定高,因为任何一个职业都会有收入高的低的,毕竟在这个世界上有无数的职业,程序猿也并不多...
发表于 07-19 11:33 101次 阅读
新手学习编程,0基础该注意什么

从程序员到领导者的微妙之处

秘密:从程序员到领导者的微妙之处
发表于 07-18 12:33 0次 阅读
从程序员到领导者的微妙之处

TC275学习笔记第一篇之开发环境配置---Hightec+JAVA+UDE安装教程

【TC275学习笔记第一篇】开发环境配置---Hightec+JAVA+UDE安装教程...
发表于 07-17 11:29 0次 阅读
TC275学习笔记第一篇之开发环境配置---Hightec+JAVA+UDE安装教程

Java开发工具包JDK1.8D安装说明书

本文档的主要内容介绍的是Java开发工具包JDK1.8D安装说明书资料免费下载。
发表于 07-16 08:00 23次 阅读
Java开发工具包JDK1.8D安装说明书

Python语言程序设计实例解析

Python语言采用严格的“缩进”来表明程序的格式框架。缩进指每一行代码开始前的空白区域,用来表示代....
发表于 07-15 16:12 41次 阅读
Python语言程序设计实例解析

Java版开源工作流Jflow如何从表数据数据源导入设置

Java版开源工作流Jflow从表数据数据源导入设置
发表于 07-15 06:36 2次 阅读
Java版开源工作流Jflow如何从表数据数据源导入设置

java接口作用和使用规范

这样做的目的一方面是为了给开发人员一个清晰的指示,告诉他们哪些业务需要实现;同时也能防止由于开发人员....
发表于 07-10 09:36 98次 阅读
java接口作用和使用规范

基于MySQL的超市管理信息系统的设计方案

超市管理系统工作流程为:系统启动并进入登录界面,系统管理员输入正确的用户名及密码后,登陆系统主操作界....
发表于 07-09 09:09 38次 阅读
基于MySQL的超市管理信息系统的设计方案

程序员之我们都该学会正确的失败

程序员毒鸡汤我们都该学会正确的失败
发表于 07-08 16:53 28次 阅读
程序员之我们都该学会正确的失败

Java高级编程之异常处理

对于我们所开发的程序而言,错误是无法避免的。本文阐述了如何运用java的异常处理机制为我们控制和处理....
发表于 07-08 16:14 25次 阅读
Java高级编程之异常处理

概述Java的性能和执行效率

Java在九十年代中期出现以后,在赢得赞叹的同时,也引来了一些批评。赢得的赞叹主要是Java的跨平台....
发表于 07-08 16:04 160次 阅读
概述Java的性能和执行效率

讲解Java数组

讲解Java数组
发表于 07-08 15:41 24次 阅读
讲解Java数组

Java实验:类和对象的扩展

Java实验:类和对象的扩展
发表于 07-08 15:36 40次 阅读
Java实验:类和对象的扩展

Java反射的工作原理和源码分析

Java反射的工作原理和源码分析
发表于 07-08 15:11 37次 阅读
Java反射的工作原理和源码分析

Java异常的习题和代码分析

Java异常的习题和代码分析
发表于 07-08 14:54 26次 阅读
Java异常的习题和代码分析

详析Java线程进程的并发问题

并发问题发生的前提条件一定是资源共享,这里的资源一般指的是数据,共享指的是多线程之间共享。
的头像 如意 发表于 07-07 11:44 348次 阅读
详析Java线程进程的并发问题

使用Java实现扫雷游戏的代码免费下载

本文档的主要内容详细介绍的是使用Java实现扫雷游戏的代码免费下载。
发表于 07-07 08:00 34次 阅读
使用Java实现扫雷游戏的代码免费下载

从神话到落地——AI工程化浅谈

在神话的鼓舞下,我这样的老程序员,每天都在学习新的算法新的技能,不断转换赛道开疆拓土。更有无数的年轻....
的头像 LiveVideoStack 发表于 07-05 11:05 692次 阅读
从神话到落地——AI工程化浅谈

亚马逊发布无代码开发工具,程序员是否会失业?

亚马逊Honeycode近日发布了beta版,这是一款全新的、全流程管理的低代码/无代码开发工具,旨....
的头像 如意 发表于 07-05 10:35 282次 阅读
亚马逊发布无代码开发工具,程序员是否会失业?

浅谈2020年六大主流编程语言

目前,计算机语言的总数总计达9000种。但是,其中只有50种编程语言是较为流行的。今天,小编就给大家....
的头像 如意 发表于 07-03 11:36 687次 阅读
浅谈2020年六大主流编程语言

学大数据前需要学习Java吗?

大数据的工作薪水和发展前景吸引了许多人参加培训,以寻找就业机会,纵观各种培训机构的课程,不难发现,无....
的头像 如意 发表于 07-02 17:50 558次 阅读
学大数据前需要学习Java吗?

40道经典JAVA算法题和解答

本文档的主要内容详细介绍的是40道经典JAVA算法题和解答。
发表于 07-02 08:00 56次 阅读
40道经典JAVA算法题和解答

Java的23种设计模式及详细讲解

Java是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指....
发表于 07-02 08:00 64次 阅读
Java的23种设计模式及详细讲解

写Java,eclipse还是IDEA?教你怎么选编译器

作为一名学生党,在学习Java的路上,换过许多编辑器。从最开始的文本文档、到后来大学老师推荐的net....
的头像 如意 发表于 07-01 15:36 497次 阅读
写Java,eclipse还是IDEA?教你怎么选编译器

Java虚拟机发展史:深入理解Java虚拟机

从1996年初sun公司发布的jdk1.0中所包含的sun Classic VM到今天,曾经涌现或消....
的头像 如意 发表于 07-01 11:57 287次 阅读
Java虚拟机发展史:深入理解Java虚拟机

Java:Redis分布式锁的原理和案例

要介绍分布式锁,首先要提到与分布式锁相对应的是线程锁、进程锁。
的头像 如意 发表于 07-01 11:49 312次 阅读
Java:Redis分布式锁的原理和案例

Java:JVM虚拟机的入门知识

Java开发现在面试越来越难了,进大厂必备的JVM、多线程高并发这都是最基础的知识了,今天我们一起来....
的头像 如意 发表于 07-01 11:43 299次 阅读
Java:JVM虚拟机的入门知识

Java泛型的工作原理和案例

泛型是Java语言一个非常重要的概念,在Java集合类框架中被广泛应用。在介绍泛型之前先看一个例子。
的头像 如意 发表于 07-01 10:14 267次 阅读
Java泛型的工作原理和案例

详解String对象的内存分配

详解String对象的内存分配
的头像 如意 发表于 07-01 10:09 197次 阅读
详解String对象的内存分配

Java编程:发送HTTP请求到服务器

当Java程序需要向服务器发送请求或读取服务器数据时,使用URLConnection类是比较好的选择....
的头像 如意 发表于 07-01 09:59 595次 阅读
Java编程:发送HTTP请求到服务器

Java理论:快速理解多态特性与具体实现

众所周知,Java的三大特性:封装,继承与多态。本文方便读者朋友们快速理解Java语言中的多态性,以....
的头像 如意 发表于 06-30 17:34 412次 阅读
Java理论:快速理解多态特性与具体实现

一文详谈Spring JPA

大家好,今天我和大家聊一下关于Spring JPA 的相关知识,我们先来了解下什么是 JPA ?
的头像 如意 发表于 06-30 17:29 470次 阅读
一文详谈Spring JPA

三个方法确定自己是否掌握扎实的Java基础

进入信息时代之后,信息技术给人类的生产和生活方式带来了深刻的变化。信息产业已成为推动国民经济发展的主....
的头像 如意 发表于 06-30 17:17 259次 阅读
三个方法确定自己是否掌握扎实的Java基础

掌握越多编程越好吗?

在学习编程语言的过程中,很多人首先学习一种编程语言,但是很多人都会有一个疑问,掌握越多编程语言越好吗....
的头像 如意 发表于 06-30 17:10 364次 阅读
掌握越多编程越好吗?

最受程序员欢迎的十大编程语言

Java应用程序开发人员、Web后台开发人员、EJB开发人员、接口测试和自动化测试的测试人员等。
发表于 06-29 11:23 450次 阅读
最受程序员欢迎的十大编程语言

JavaSE的基础教程讲解

Java确实是从C语言和C++语言继承了许多成份,甚至可以将Java看成是类C语言发展和衍生的产物。....
发表于 06-29 08:00 24次 阅读
JavaSE的基础教程讲解

Java设计模式PDF电子书免费下载

一段时间以来,软件工程师在开发各种软件程序时都面临着一个共同的问题。没有标准来指导他们如何设计和进行....
发表于 06-29 08:00 69次 阅读
Java设计模式PDF电子书免费下载

学好java能干什么

  学好java能干什么   1、学习Java可以做网站   Java可以用来编写网站,现在很多大型网站都用Jsp写的,JSP全名Ja...
发表于 06-28 11:45 94次 阅读
学好java能干什么

从技术学习和实际运用的角度来看C/C++和Java的区别

关于C语言和C++的学习路线终于梳理完了。当然我也只能从我曾经近3年的通信公司后台开发经历和目之所及....
发表于 06-24 16:16 81次 阅读
从技术学习和实际运用的角度来看C/C++和Java的区别

虚拟机:Ubuntu安装oracle Java的方法

ubuntu提供的openjdk经常会发生莫名奇妙的错误,比如IDE会突然崩掉之类的.正好java最....
的头像 如意 发表于 06-22 17:45 387次 阅读
虚拟机:Ubuntu安装oracle Java的方法

Java:调用window的matlab遇到的问题和解决方案

Java:调用window的matlab遇到的问题和解决方案
的头像 如意 发表于 06-20 09:32 574次 阅读
Java:调用window的matlab遇到的问题和解决方案

案例参考:一个Java高并发异步应用

在日常运营中,公众号会通过给用户下发营销或者科普类的消息来通知客户。 根据经验,微信消息下发后10分....
的头像 如意 发表于 06-20 09:16 461次 阅读
案例参考:一个Java高并发异步应用

SOFAJRaft v1.3.2 发布,蚂蚁金服生产级高性能 Java 实现

SOFAJRaft 是一个基于 RAFT 一致性算法的生产级高性能 Java 实现,支持 MULTI....
的头像 如意 发表于 06-19 16:13 1158次 阅读
SOFAJRaft v1.3.2 发布,蚂蚁金服生产级高性能 Java 实现

如何学习Java

学习Java,我建议这样做
发表于 06-18 12:01 33次 阅读
如何学习Java

Python快速实例教程免费下载

本文适合有经验的程序员尽快进入Python2.x世界。特别地,如果你掌握Java和Javascrip....
发表于 06-16 16:37 63次 阅读
Python快速实例教程免费下载

如何理解程序、进程、线程的关系

在Java 中,这些短小的代码段一般会被放入一个class,然后保存到一个扩展名为 .java 的文....
发表于 06-13 11:29 142次 阅读
如何理解程序、进程、线程的关系

Java编程思想第四版PDF电子书免费下载

我最初把Java当作“只是另一种编程语言”,从很多意义上讲,它就是这样。但随着时间的推移,我对它进行....
发表于 06-09 08:00 117次 阅读
Java编程思想第四版PDF电子书免费下载