非计算机专业如何转行成为程序员?我用亲身经历教你用这三种方法

news/2024/4/24 20:55:47/

哈喽大家好啊!我想分享一下,非计算机专业的学生如何转行成为程序员。首先,我先介绍一下我的情况。我是18年毕业的,大学学的专业是土木工程,与计算机一点关系都没有。但是在大学时,我对程序员比较感兴趣。本来一开始是想通过考研的方式去转行,但大三时开始考研,结果没考上。没考上之后,我就直接自学,然后找工作,现在已经工作2年了。中间也踩过很多坑,想把自己的经历分享一下。如果你不是计算机专业的学生,如何转行成为程序员呢?以下是三种方法:

  1. 通过考研跨考到计算机相关专业。这是最好的方法,因为你不仅可以换专业,还可以提升学历。到时候你也可以成为校招应届生,很容易地进入这个行业,并找到比较好的工作。效率是最高的,不需要踩太多的坑。
  2. 自学编程。通过利用网络资源或书籍,自学编程,然后去找工作。后面再详细说明如何去做。
  3. 通过培训班学习。我不是很推荐这种方法,因为学费比较贵,而且学到的东西也比较简单。我认为完全可以自学。

如果你想通过自学找到工作,首先,你需要选择一个方向。程序员也是分很多岗位的,有前端、后端、测试、运维、算法等等。每一个岗位都不同,要掌握不同的技术。你可以先了解一下哪个岗位你比较感兴趣,然后根据这个岗位的要求一步步去学。学得差不多了就可以投简历了。

最重要的是,你要先找到一份工作。最快的方法是一边做一边学,多动手编程,利用搜索引擎,不要太抠细节。不要把所有的基础都掌握之后才去找工作,应该先完成一个项目或者完成一个目标,然后把这个目标拆分成几个小目标,一步步去完成。

如果你想自学编程,那么你需要一些学习资源。有很多学习编程的网站,比如Codecademy、FreeCodeCamp、Khan Academy、Coursera、Udacity等等。可以教你学习各种编程语言,包括Python、Java、C++等等。Github上有很多开源的项目可以供你学习,你可以学习其他人的代码,了解编程的实际应用场景。

当然,这些资源只是帮助你入门,更重要的是你要有一个学习计划和学习方法。在学习编程的过程中,你需要掌握一些基本的编程概念和技术,比如算法、数据结构、面向对象编程等等。你可以选择一些经典的编程书籍来学习这些概念和技术,比如《算法导论》、《数据结构与算法分析》、《Java编程思想》等等。

除了这些书籍,你还可以通过参加一些编程社区或者技术交流会来学习编程。在这些社区或者会议上,你可以认识一些同样喜欢编程的人,了解最新的编程技术和趋势。

Java工程师需要掌握的核心技术包括:

  • Java基础知识:包括数据类型、运算符、流程控制语句、数组、面向对象等等。
  • Java集合框架:掌握Java中集合的概念、常用集合类的使用方法、集合的遍历和排序等等。
  • Java IO/NIO:了解Java IO/NIO编程模型、流的概念和使用、文件的读写、网络编程等等。
  • Java并发编程:了解Java并发编程的基础知识、线程的生命周期和状态、同步机制、线程池、JUC包等等。
  • Spring框架:掌握Spring框架的核心思想、IoC和AOP的原理和使用、SpringMVC的使用、SpringBoot的使用等等。
  • 数据库:了解数据库的基础知识、SQL语句的编写、数据库设计和优化、JDBC的使用等等。
  • Web开发技术:掌握常见的Web开发技术,如HTML/CSS/JavaScript、Ajax、jQuery、Bootstrap、Vue.js等等。

除了以上技术,Java工程师还需要了解一些常用的开发工具,如Eclipse、IntelliJ IDEA、Git、Maven等等。同时,不断学习新技术和关注行业发展也是非常重要的。

最后要注意的是,心态比较重要。你不要在乎工资的多少,应该先入行,先找一份工作入行,慢慢会好起来的。如果你想入行算法,后面有机会我再仔细讲一下怎么去做。


http://www.ppmy.cn/news/47739.html

相关文章

(包教包会)最强分布式锁工具:Redisson

今天来聊聊分布式锁的最强实现:Redisson 从分布式锁到Redisson实现非常详细,适合慢慢咀嚼~ 一. Redisson概述 1.1 什么是Redisson? Redisson是一个在Redis的基础上实现的Java驻内存数据网格(In-Memory Data Grid)。…

八、vue-基础之列表渲染v-for、v-for中的key属性的作用

一、v-for列表渲染 在真实开发中,我们往往会从服务器拿到一组数据,并且需要对其进行渲染。 这个时候我们可以使用v-for来完成;v-for类似于JavaScript的for循环,可以用于遍历一组数据; 二、v-for基本使用 &#xff0…

4.17-4.18学习总结

MD5 MD5: 1、压缩性 2、容易计算 3、抗修改性 4、弱抗碰撞 5、强抗碰撞 为什么需要MD5? 存储一些敏感信息的时候,如果不进行加密会出现安全问题。 例如:系统登录的密码,如果数据库中的密码采用明文,一旦数据库泄…

面了十几家公司测试岗,我终于悟了,面试无非就是这些题

测试岗的面试其实都是大同小异的,这里我收集整理了185道高频面试题,希望对在找工作或者准备跳槽的各位小伙伴有所帮助! 一. 测试基础 1.如何制定测试计划 参考答案: 测试计划包括测试目标、测试范围、测试环境的说明、测试类型…

vue nextTick原理详解

vue nextTick Vue.nextTick() 是一个方法,用于在下次 DOM 更新循环结束之后执行延迟回调。它的实现原理是利用浏览器的异步任务队列机制,在 tick 时刻将回调函数放入队列中等待执行。在实现上,nextTick 方法会根据当前环境选择不同的底层实现…

DCQCN学习

主要思想 发送端的拥塞控制主要有两种形式,一种是基于发送窗口的,另一种是基于rate的 DCQCN是一种基于rate的CC,并主要由ECN机制实现 初始设置sending rate为max line rate 接下来CC主要分为三个部分 CP(Congestion Point) 交换机 出端…

MySQL数据库系统学习(从入门到精通)

MySQL数据库系统学习 一,了解数据库 1.什么是数据库 英文单词DataBase,简称DB。按照一定格式存储数据的一些文件的组合。 顾名思义:存储数据的仓库,实际上就是一堆文件。这些文件中存储了具有特定格式的数据。 2.什么是SQL S…

转义字符(\)对JavaScript中JSON.parse的影响概述

转义字符(\)对JavaScript中JSON.parse的影响 按照ECMA262第五版中的解释&#xff0c;JSON是一个提供了stringify和parse方法的内置对象&#xff0c;前者用于将js对象转化为符合json标准的字符串&#xff0c;后者将符合json标准的字符串转化为js对象。json标准参考<a href&q…

Java中的序列化与反序列化(一)

1、概述 大家好&#xff0c;我是欧阳方超。今天来看一下Java序列化与反序列化的问题。 2、序列化与反序列化 2.1、序列化与反序列化的概念 在Java中&#xff0c;序列化是将对象转换为可存储或传输的格式&#xff08;一般为字节流&#xff09;的过程&#xff0c;序列化后的字…

为什么网络安全缺口很大,招聘却很少?

2020年我国网络空间安全人才数量缺口超过了140万&#xff0c;就业人数却只有10多万&#xff0c;缺口高达了93%。这里就有人会问了&#xff1a; 1、网络安全行业为什么这么缺人&#xff1f; 2、明明人才那么稀缺&#xff0c;为什么招聘时招安全的人员却没有那么多呢&#xff1…

TensorFlow 2 和 Keras 高级深度学习:6~10

原文&#xff1a;Advanced Deep Learning with TensorFlow 2 and Keras 协议&#xff1a;CC BY-NC-SA 4.0 译者&#xff1a;飞龙 本文来自【ApacheCN 深度学习 译文集】&#xff0c;采用译后编辑&#xff08;MTPE&#xff09;流程来尽可能提升效率。 不要担心自己的形象&#x…

C# Lambda表达式

目录 Lambda表达式的语法如下&#xff1a; Lambda表达式的内联特性 Lambda表达式常用的方法 C# Lambda表达式简介 Lambda表达式是C#语言中一种函数式编程的特性&#xff0c;它的主要作用是简化代码和提高代码的可读性。在使用Lambda表达式时&#xff0c;可以通过其内联特性…

【C++STL精讲】stack与queue的基本使用及模拟实现

文章目录 &#x1f490;专栏导读&#x1f490;文章导读&#x1f337;stack是什么&#xff1f;&#x1f337;stack的基本使用&#x1f337;stack的模拟实现&#x1f337;queue是什么&#xff1f;&#x1f337;queue的基本使用&#x1f337;queue的模拟实现 &#x1f490;专栏导读…

SpringBoot起步依赖和自动配置

文章目录 1、起步依赖2、自动配置 1、起步依赖 概念 起步依赖本质上是一个Maven项目对象模型&#xff08;Project Object Model&#xff0c;POM&#xff09;&#xff0c;定义了对其他库的传递依赖&#xff0c;这些东西加在一起支持某一功能。 简单的说&#xff0c;起步依赖就…

iptables表、链、规则

netfilter/iptables&#xff08;也就是常说的iptables&#xff09;组成Linux平台下的包过滤防火墙&#xff0c;具有完成封包过滤、封包重定向和网络地址转换&#xff08;NAT&#xff09;等功能。 netfilter是Linux 核心中一个通用架构&#xff0c;它提供了一系列的"表&quo…

手敲Mybatis(九)-结果集处理器

1.前言-背景介绍 上节我们处理了参数处理器&#xff0c;本节我们处理结果集处理器&#xff0c;之前我们写了一个DefaultResultSetHandler&#xff0c;我们把返回结果获取对象&#xff0c;填充值什么的写到了一起&#xff0c;流程没有进行解耦&#xff0c;并且只接收了Object的…

信息系统项目管理师-项目范围管理

1.过程 1.1 规划范围管理 为了记录如何定义、确认和控制项目范围及产品范围&#xff0c;而创建范围管理计划的过程。 1.2 收集需求 为实现目标而确定、记录并管理项目干系人的需要和需求的过程。 1.3 定义范围 制定项目和产品详细描述的过程。 1.4 创建WBS&#xff08;工作分解…

数据库备份shell脚本

文章目录 数据库备份shell脚本变量定义FTP 变量定义函数定义主逻辑 数据库备份shell脚本 # var bak_cmd"--userbakup --password123456 --socket/tmp/mysql.sock --no-timestamp" full_dir"/db/full_date %F" incr_dir"/db/incr_date %F" info&…

Kotlin 1.6.0 的新特性

1、稳定版对于枚举、密封类与布尔值主语穷尽 when 语句 一个详尽的when语句包含了所有主题可能的类型或值的分支&#xff0c;或者对于一些类型包含一个else分支。它覆盖了所有可能的情况&#xff0c;使代码更加安全。 即将禁止非详尽的when语句&#xff0c;以使行为与when表达…

多模态之论文笔记ViLT

文章目录 ViLT: Vision-and-Language Transformer Without Convolution or Region Supervision一. 简介1.1 摘要1.2 文本编码器&#xff0c;图像编码器&#xff0c;特征交互复杂度分析1.2 特征交互方式分析1.3 图像特征提取分析 二. 方法 Vision-and-Language Transformer2.1.方…