笔者是2019年校招进京东集团的软件开发工程师,即所谓的程序员,来回答这个问题再适合不过了。看了回答的各种必须是计算机专业、参加培训机构等惨不忍睹的答案,觉得有必要来回答
什么是程序员这个问题可大可小,从大了说是0和1的数字世界中的研究者和科技改变生活的创造者,是代码和现实的联接者。往小了说是码农?一个职业,一个谋生的工作。但不论怎么定义,即便你只是想成为一名初级的程序员,相关的专业知识也是不可缺少的,这其中至少至少要掌握以下三大块内容中每块内容的一部分,你才有可能参与到真正的程序开发项目中去。
一、常用语言及开发工具
开发工具就不在这里赘述,因为一旦你选择了使用哪语言,都会有对应的相关开发工具需要去学习,不同语言自己习惯的、适用的开发工具了有不同。下面介绍几种目前常用的语言供大家参考:
1.C语言。执行效率高底层驱动,结构式代码及数据分割化,指针面向过程可移植性好,适合于多种操作系统,但可重用性差数据封装不好会导致安全性差,数据结构改变时,所有相关的处理过程都要进行相应的修改
2.C++。面向对象开发,可扩展性好,效率高指针+对象,可重用性(继承和多态性)多用于操作系统软件的开发、嵌入式开发、Android APP的NDK开发、游戏开发
3.c#。c#是.net的代表语言支持分布式:处理过程分布在客户机和服务器上多线程,面向对象
4.Java。面向对象,没有指针,多线程,跨平台,分布式语言虚拟机方式,效率低,但自动管理内存和自动垃圾回收编译后成为一种IL(中间语言),运行时,再把IL编译为平台专用代码多用于Android APP开发,Hadoop开发,TensorFlow开发
5.PHP。面向对象的开源脚本语言变量在页面执行完毕后被清空多用于中小型web应用开发(Linux+Apache+MySQL+PHP)
6.Python。既支持面向过程又支持面向对象,具有良好的移植和扩展性开源性好,但速度不是非常快多用于物联网平台开发,web开发,图形处理
7.其它除了这些主要语言来说,想成为一个合格的程序员,还必须了解常用的语言知识,通常包括:Javascript,node.js,JSON,XML,HTML,Ajax等二、常用数据库
简单来说,数据库是按照数据结构来组织、存储和管理数据的仓库,学习数据库知识时除了要学习数据库本身以外,我们还需要学习和数据库息息相关的SQL语言,这是程序员操作数据库数据的基石。
1.Oracle。Oracle 公司产品支持最广泛的操作系统平台。目前Oracle 关系数据库市场占有率有率名列前茅。ORACLE 是最早提出基于标准SQL 数据库语言的关系数据库产品之一,1979 年问世,近二十年来融汇了数据库的各种先进技术,在小型机及微型机的关系数据库系统领域,占有举足轻重的地位。自第五版起,支持客户/服务器和协同服务器,目前最新版本是1998 年推出的ORACLE8.0 。具有兼容性, 可移植性, 可联结性,高生产率。还具有以下特点:(1)名符其实的大型数据库: ORACLE 建立的数据库,最大数据量可达几百GB;(2)共享SQL 和多线索服务器体系结构:这两个特性的结合,减少ORACLE 的资源占用,增强处理能力,能支持成百甚至上千个用户。(3)跨平台能力: ORACLE 数据库管理系统可以运行在100 多个硬件和软件平台上,这一点为其它PC 平台上的数据库产品所不及。(4)分布式数据库:可以使物理分布不同的多个数据库上的数据,被看成是一个完整的逻辑数据库, 尽管数据操纵的单个事务可能要运行于多处地点, 但这对应用程序却是透明的,应用程序开发人员的感觉就好象所有的数据都是物理地存储在本地数据库中。(5)卓越的安全机制:包括对数据库的存取控制,决定可以执行的命令,限制单一进程可用的资源数量以及定义数据库中数据的访问级别等。(6)支持客户机/服务器方式,支持多种网络协议。
2.SQL Server。Microsoft 公司推出的SQL Server 数据库管理系统,具有使用方便可伸缩性好与相关软件集成程度高等优点, SQL Server 2是一个全面的数据库平台,使用集成的商业智能(BI) 工具提供了企业级的数据管理。SQL Server数据库引擎为关系型数据和结构化数据提供了更安全可靠的存储功能, 使您可以构建和管理用于业务的高可用和高性能的数据应用程序。SQL Server数据引擎是企业数据管理解决方案的核心。此外SQL Server 200结合了分析、报表、集成和通知功能。这使您的企业可以构建和部署经济有效的BI 解决方案,帮助您的团队通过记分卡、Dashboard、Web services 和移动设备将数据应用推向业务的各个领域。
3.MySQL。由于其体积小、速度快、总体拥有成本低, 尤其是开放源码这一特点,许多中小型网站为了降低网站总体拥有成本而选择了MySQL 作为网站数据库。MySQL 是一个多用户、多线程的关系型数据库管理系统。工作模式是基于客户机/服务器结构。目前它可以支持几乎所有的操作系统, 包括:Win95 、Win98 和NT 以及Unix 等操作系统。MySQL已经成为当前网络中使用最多的数据库之一,特别是在Web 应用上,它占据了中小型应用的绝对优势。这一切都源于它的小巧易用、安全有效、开放式许可和多平台, 更主要的是它与PHP 的完美结合。MySql 是一个开放的、快速的、多线程的、多用户的SQL 数据库服务器。具有六大特点:(1)开放性(2)多线程(3)支持多种API(4)跨数据库连接(5)国际化(6)数据库容量大
三、开发框架
简单来说开发框架是一个可复用的设计组件,它规定了应用的体系结构、依赖关系、控制流程和协作,为开发复用提供了良好的基础。使用开发框架后开发的效率、程序的健壮性和性能都会提高。但开发框架种类繁多,而且开发框架和所使用的开发语言密切相关,所以无法在这里一一说明,以下只例举几禁WEB开发中常用的开发框架供初学者参考。
1、Spring 。 Spring是于2003 年兴起的一个轻量级的Java 开发框架,是一个开放源代码的设计层面框架,他解决的是业务逻辑层和其他各层的松耦合问题,因此它将面向接口的编程思想贯穿整个系统应用。简单来说,Spring是一个分层的JavaSE/EE full-stack(一站式) 轻量级开源框架。
2、SpringBoot 。 Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。简单来说,就是spring boot其实不是什么新的框架,而是Spring的一个升级版,它默认配置了很多框架的使用方式,使得开发变得更加简单。
3、Mybatis。MyBatis 是一款优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。MyBatis 可以使用简单的 XML 或注解来配置和映射原生信息,将接口和 Java 的 POJOs(Plain Old Java Objects,普通的 Java对象)映射成数据库中的记录。
4、Hybernate。Hibernate是一个开放源代码的对象关系映射框架(Object_Relative DateBase-Mapping 简称ORM),它对JDBC进行了非常轻量级的对象封装,它将POJO与数据库表建立映射关系,是一个全自动的orm框架,hibernate可以自动生成SQL语句,自动执行,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库。 Hibernate可以应用在任何使用JDBC的场合,既可以在Java的客户端程序使用,也可以在Servlet/JSP的Web应用中使用,最具革命意义的是,Hibernate可以在应用EJB的JaveEE架构中取代CMP,完成数据持久化。要做一个合格的高水平的程序员,
以上所提及的专业内容是远远不够的,而且相关内容的知识更新也是日新月异,所以想在程序员这个行业中立足,需要不断的更新自己的知识,不断的学习,同时经过大量的实践才能立于不败之地。看了上面的内容,现在大家是不是有点明白程序的收入不敢说有多高,但确实还行了吧!