当前位置: 首页 > news >正文

要是早看到这篇文章,你起码少走3年弯路,20年老程序员的忠告

文章目录

    • 前言
    • 一、程序员的薪资是怎么样的?
    • 二、我现在的情况适合做程序员吗?
    • 三、大学期间到底应该学些什么?
    • 四、工作还是考研?
    • 五、总结


前言

我是龙叔,一名工作了20多年的退休老程序员。

如果你在工作之前看到这篇文章,并真的把其中要点做到了,你起码能少走3年弯路。

在这里插入图片描述


一、程序员的薪资是怎么样的?

这是大学生非常关心的点,作为应届生出来之后,程序员的薪资是怎么样的?根据我这些年的经验和见闻,程序员的薪资可以分为3类,并且都跟所在城市级别有关:

1.一线城市一线大厂超过1.5万/月。
作为应届生,能进入华为、京东、阿里这样的国内顶尖企业,就职薪资一般会在1.5万/月,但不同于其他公司的是这些公司会是16薪、18薪和20薪的形式,一般的公司是12薪,每个月都发差不多的工资,那么在16薪的公司工作,也就是说在年终或者某个月,你可以拿到多4个月的薪资。

像我没退休之前的公司,14薪的标准,跟一线大厂有一定差距,但比同行业来讲,在程序员的待遇上算还可以的。

在这里插入图片描述

2.一线城市一般公司1~1.5万/月。
应届生的能力有限,一线大厂不是谁都能进的,但还是有很多毕业生会选择待在一线城市,因为那里的薪资也不错,一般的毕业生薪资会在1~1.5万/月。

毕业了去一线打拼是大多数程序员的选择,如果能在一线城市扎稳脚跟,那么你就能在起跑线上超过了很多小伙伴,一线城市的机遇也很多,若是赶上风口那飞起来一点也不夸张;你也可以选择工作三五年之后积累了较为可观的资本后退出一线城市,去节奏慢一点的地方发展。

所以我的建议是,毕业想当程序员的小友,尽量不要回家,先去一线去打拼一波是最有益的。
在这里插入图片描述
3.二~~五线城市平均4000~8000/月。
二线城市的薪资相对于一线城市是少了很多,不过生活成本也相对低很多,生活节奏也会慢很多,应届生的平均工资在4~8K。

我这里指的是平均工资,其实2千工资的程序员我也听过,不过你为什么拿两千,你去对比一下那些拿正常薪资的人你就知道差距了。


二、我现在的情况适合做程序员吗?

这是一个比较常见的问题了,很多人甚至是学计算机的人,他们都会问我说“我到底适不适合做程序员”,那么对于这个问题,基本上接触了编程1年左右的时间就能判断出来,主要通过以下几种:

1.喜欢用代码决胜千里之外的人,适合做程序员

不管你是不是科班出生,如果你喜欢敲代码的感觉,喜欢用代码构建世界,喜欢通过代码决胜千里之外的成就感,那么我觉得你很适合当程序员,而且只要不断努力,你必定能在互联网行业有所建树。

2.抵触写代码的人,不适合做程序员

如果你看到代码或者想到写代码就很抵触、反感,甚至看到代码就想吐,那么你是不适合当程序员的。

讲个我身边的例子。

我依然记得大学刚出来的时候,跟我室友一起去同一家当实习生,在实习期间要学的东西很多,每天都是跟代码、算法打交道,我室友就特别反感写代码,那时候我们俩能在网吧玩传奇玩一整个通宵,但是他在座子上坐不到1个小时就得出去抽烟。
.
他不是烟瘾很重的人,他就是出去待着,他说看到代码就头晕和反感,结果最后他没待到1个月就辞职了去其他公司做运营岗位了。

如果说你也是这么害怕和反感写代码,你觉得你趁早去学你感兴趣的东西、做你喜欢的行业。
在这里插入图片描述

3.对代码不抵触但也谈不上喜欢的人,可试试“日久生情”

这种情况是最常见的,自己对写代码这个事情并没有很反感,多多少少有一些念想或者小成就在支撑,但也谈不上很喜欢,因为写代码讲究思维、烧脑子,又或者是因为技术之路感觉长路漫漫,那么这种情况,我建议是你坚持学下去。

只要通过你自己的不断学习,那些你觉得陌生的东西,慢慢就会熟悉了,不管你是冲着月薪上万,还是想做一个酷酷的技术高手,你只要试着跟它相处久了,你会逐渐跟它“日久生情”,最后找到喜欢的感觉。


三、大学期间到底应该学些什么?

在工作之后除了自己招聘和接触的很多后生,再加上对企业的技术要求不断明晰,其实我很早就想给在校生一些忠告了。

1.文化课

千万不要小瞧文化课,比如我们的英语、高数、统计学和概率学等等,一定要打好基础,程序员的很多项目资料、技术文献都是用英语写的,很多算法是需要高数等知识。

举个例子:

很多小伙伴因为英语基础不好,所以在安装开发环境的时候喜欢用破译的中文版软件,我是不建议这么做的。我都建议大家用英文版的,千万别汉化。
.
就好比学车学自动挡还是手动挡,学了手动挡的人,你去开自动挡是没有什么问题的,但学自动挡的人去开手动挡就不行,软件也是一样,用惯了破译的中文版软件,你对英文原版的软件将会束手无策。

还有,千万别挂科。大学首要任务就是学习,如果最重要的事情都搞不好,企业很难把你招进来做事情。

在这里插入图片描述

2.选1门语言精通

不管是Java、Python、还是PHP,又或者是GO语言还是其他的什么语言,都是可以的,你只要选择1门语言深入学习,直到你掌握了90%以上,你就精通了,千万不要什么都会一点但又不精通,这样你不仅没有优势,而且没有趁手的工具(语言),你很难干成什么事情。

3.掌握好数据结构和算法

在你掌握了1门语言之后,这2个是你最应该去掌握的东西。在程序员界有一句流传的话“好程序=数据结构+算法”,就算你精通语言的API,但那都是表层东西,数据结构和算法才是里层东西,如果你的里层(除开硬件不讲)很垃圾,你表层再厉害你也挡不住1亿的并发。

这个东西在大学的时候要好好掌握,你出来之后想学不一定会有,市面上那些培训机构很少有把数据结构和算法讲得很透彻的,还是大学的时候去学习是最稳妥的,大学的学习资源是很丰富的,要好生利用。
在这里插入图片描述

4.掌握数据库

无论是SQL数据库还是NoSQL数据库,建议你都精通1个,就算是人工智能和大数据方面,数据库都是必不可少的,都需要数据库来进行数据存储,而在一个公司里面,跟数据打交道的程序员薪资都比较高,就好比做前端的薪资没有DBA高。

如果你精力和时间允许的情况下,建议你选择一个热门数据库去学习并精通,比如MySQL。

5.学好网络原理

虽然说这只是原理,并且在最开始工作的时候你可能用得不多,但并不代表它可有可无,而是你技术层面还没达到,当你的技术层面达到了,你会发现这玩意儿它真的很重要,而1个优秀的程序员或者说1个技术高手,对网络原理是很熟悉的。

网络原理涉及的知识有很多,比如七层结构,比如LP规划、HTTP、DNS等等理论知识,掌握好了之后才能让软件具备较高的性能,比如说做出来的直播软件没有卡顿。如果你不懂得网络原理或者一知半解,那么你写出来的程序员并不会很好用。
在这里插入图片描述

6.做1个可持续维护的项目

与其说这里找1个速成的项目做或者那里找1个源码看看效果,倒不如你自己认真地去做1个可持续维护的项目,这样你才能持续地巩固知识、见证自己的成长,并且能自信地拿得出来。

比如说你去做1个类似CSDN的博客网站,在一开始你学习前后端的时候掌握的技术不是很多,你做出来的web网址很low,但没有关系,你继续学习,学到了之后自己去给它添加更多模块,比如说给它添加视频模块,比如说给它添加24小时热度排行榜的功能等等。

记住,这个项目不要去找开源的,那对你来说没什么意义,你要自己去写代码,不断地完善和维护这个网站,最后你会因为这个成果感到有成就感,到最后我相信,你一定会比一般的毕业生优秀很多。
在这里插入图片描述


四、工作还是考研?

“能考研肯定是要去考研的。”这一点我从来都是这么坚定地回答。

互联网行业现在不像十几年前,没学历有技术也不愁工作,现在如果你是高中或者中专学历,你基本没戏,学历是互联网行业的敲门砖,不管是顶尖大厂还是普通公司,给高学历人才开的薪资普遍比低学历高。

但我得提醒大家一句:有了学历不代表长久高薪,程序员更看重的是动手能力。

所以考上研之后你更要好好学习。


五、总结

别说互联网卷了,也别说chatGPT过几年又会替代谁谁谁了,归根到底,能被淘汰的都是活在“食物链”底端的人,各行各业都一样。

所以加油吧,风浪越大,鱼越贵。

感谢你们的阅读和喜欢,我收藏了很多技术干货,可以共享给喜欢我文章的朋友们,如果你肯花时间沉下心去学习,它们一定能帮到你,干货内容包括:

在这里插入图片描述

点击文末的名片可以抱走
在这里插入图片描述

相关文章:

要是早看到这篇文章,你起码少走3年弯路,20年老程序员的忠告

文章目录前言一、程序员的薪资是怎么样的?二、我现在的情况适合做程序员吗?三、大学期间到底应该学些什么?四、工作还是考研?五、总结前言 我是龙叔,一名工作了20多年的退休老程序员。 如果你在工作之前看到这篇文章…...

IP地址的分类

1. 前言 最初设计互联网络时,为了便于寻址以及层次化构造网络,每个IP地址包括两个标识码(ID),即网络ID和主机ID。 同一个物理网络上的所有主机都使用同一个网络ID,网络上的一个主机(包括网络上工…...

win10下使用docker运行部署nginx,mysql

一、docker的步骤:1.进入docker官网下载安装包2.打开控制面板 - 程序和功能 - 启用或关闭Windows功能,勾选Hyper-V,然后点击确定即可,如图:3.重新启动电脑4.启动Docker在桌面找到Docker for Windows快捷方式&#xff0…...

sprinboot车辆充电桩

sprinboot车辆充电桩演示录像2022开发语言:Java 框架:springboot JDK版本:JDK1.8 服务器:tomcat7 数据库:mysql 5.7(一定要5.7版本) 数据库工具:Navicat11 开发软件:ecli…...

仿京东放大镜效果的实现

仿京东放大镜 (1) 整个案例可以分为三个功能模块 (2) 鼠标经过小图片盒子, 黄色的遮挡层 和 大图片盒子显示,离开隐藏2个盒子功能 (3)黄色的遮挡层跟随鼠标功能。 (4&…...

ESP32设备驱动-LM35温度传感器驱动

LM35温度传感器驱动 文章目录 LM35温度传感器驱动1、LM35介绍2、硬件准备3、软件准备4、驱动实现1、LM35介绍 LM35 系列是精密集成电路温度传感器,其输出电压与摄氏(摄氏度)温度成线性比例。 因此,LM35 优于以开尔文校准的线性温度传感器,因为用户无需从其输出中减去较大…...

基于深度学习的犬种识别软件(YOLOv5清新界面版,Python代码)

摘要:基于深度学习的犬种识别软件用于识别常见多个犬品种,基于YOLOv5算法检测犬种,并通过界面显示记录和管理,智能辅助人们辨别犬种。本文详细介绍博主自主开发的犬种检测系统,在介绍算法原理的同时,给出Py…...

【IDEA插件开发】环境搭建

基础信息 GRADLE 7.5.1 IDEA IntelliJ IDEA 2020.1.1 (Ultimate Edition) Build #IU-201.7223.91, built on April 30, 2020 Licensed to https://zhile.io You have a perpetual fallback license for this version Subscription is active until July 8, 2089 Runtime ve…...

【蓝桥杯专题】 DP(C++ | 洛谷 | acwing | 蓝桥)

菜狗现在才开始备战蓝桥杯QAQ 文章目录【蓝桥杯专题】 DP(C | 洛谷 | acwing | 蓝桥)AcWing 1205. 买不到的数目Acwing 1216. 饮料换购【模拟】01背包271. 杨老师的照相排列最长公共上升子序列PPPPPPPP总结【蓝桥杯专题】 DP(C | 洛谷 | acwi…...

咪咕MGV3201_ZG_GK国科6323_UWE5621DS_免拆卡刷固件包

咪咕MGV3201_ZG_GK国科6323_UWE5621DS_免拆卡刷固件包 特点: 1、适用于对应型号的电视盒子刷机; 2、开放原厂固件屏蔽的市场安装和u盘安装apk; 3、修改dns,三网通用; 4、大量精简内置的没用的软件,运行…...

重构数据-Change Value to Reference将实值对象改为引用对象三

重构数据-Change Value to Reference将实值对象改为引用对象三 1.将实值对象改为引用对象 1.1.实值对象和引用对象区别 下面通过客户Customer和订单Order两个对象介绍下它们的区别 值对象:当一个客户Customer下了多个订单Order后,每个订单类都将创建一…...

计算机网络——通信专业面试问题学习笔记

文章目录1、计算机网络这门课学了什么?目录里有多少章?2、Internet的概念与发展史3、什么是交换?三种交换方式4、OSI的七层协议, TCP/IP的四层协议, 五层协议5、WAN 、LAN 、MAN、PAN这些能分的清楚吗?全称分别都是什么&#xff1…...

代码随想录算法训练营第三十天 | 332.重新安排行程 51. N皇后 37. 解数独 总结

打卡第30天,回溯算法第二刷。 今日任务 332.重新安排行程51.N皇后37.解数独总结 332.重新安排行程 给你一份航线列表 tickets ,其中 tickets[i] [fromi, toi] 表示飞机出发和降落的机场地点。请你对该行程进行重新规划排序。 所有这些机票都属于一个从…...

Windows权限提升—MySQL数据库提权

Windows权限提升—MySQL数据库提权1. 前言2. 数据库提权介绍2.1. 常见数据库端口2.2. MySQL数据库提权条件2.3. MySQL数据库提权类型3. MySQL中UDF提权3.1. UDF提权介绍3.2. UDF提权思路3.3. UDF提权步骤3.3.1. 获取外连数据库3.3.1.1. 外连数据库3.3.1.2. 连接数据库3.3.1.3. …...

使用旧电脑玩Linux

今天给大家讲讲使用旧电脑玩Linux,大家应该都知道旧电脑的硬件一般比较落后,特别是一些非常老的电脑,目前还在使用的是机械硬盘,如是要跑windows可想而知,但是Linux系统对硬件性能的要求可比windows低的多了&#xff0…...

Linux安装EMQX(简洁版)

安装目录 mkdir /opt/emqx && cd /opt/emqx 安装包下载 yum -y install wget && wget https://www.emqx.com/zh/downloads/broker/5.0.20/emqx-5.0.20-el7-amd64.tar.gz 注意:https://www.emqx.com/zh/downloads/broker获取下载链接并替换(后缀&…...

基于STM32 + FPGA 的软体机器人的 CAN总线运动控制器的设计

针对在软体机器人控制时,多电机协同控制过程中难度大、通用性差、协同性差等缺点,设计了基于 ARM和 FPGA的软体机器人的控制器局域网络 ( controller area network,CAN) 总线运动控制器,采用 ARMCortex-M4 …...

ROC曲线和AUC值

ROC曲线(Receiver Operating Characteristic,受试者工作特征)评价分类模型的可视化工具,是一条横纵坐标都限制在0-1范围内的曲线横坐标是假正率FPR,错误地判断为正例的概率纵坐标是真正率TPR,正确地判断为正…...

【vue.js】在网页中实现一个金属抛光质感的按钮

文章目录前言效果电脑效果手机效果说明完整代码index.html前言 诶?这有一个按钮(~ ̄▽ ̄)~,这是一个在html中实现的具有金属质感并且能镜面反射的按钮~ 效果 电脑效果 手机效果 说明 主要思路是使用 navig…...

android实现评论区功能

效果 activity_detail.xml <?xml version"1.0" encoding"utf-8"?> <LinearLayout xmlns:android"http://schemas.android.com/apk/res/android"xmlns:app"http://schemas.android.com/apk/res-auto"xmlns:tools"http…...

深入浅出Asp.Net Core MVC应用开发系列-AspNetCore中的日志记录

ASP.NET Core 是一个跨平台的开源框架&#xff0c;用于在 Windows、macOS 或 Linux 上生成基于云的新式 Web 应用。 ASP.NET Core 中的日志记录 .NET 通过 ILogger API 支持高性能结构化日志记录&#xff0c;以帮助监视应用程序行为和诊断问题。 可以通过配置不同的记录提供程…...

【杂谈】-递归进化:人工智能的自我改进与监管挑战

递归进化&#xff1a;人工智能的自我改进与监管挑战 文章目录 递归进化&#xff1a;人工智能的自我改进与监管挑战1、自我改进型人工智能的崛起2、人工智能如何挑战人类监管&#xff1f;3、确保人工智能受控的策略4、人类在人工智能发展中的角色5、平衡自主性与控制力6、总结与…...

R语言AI模型部署方案:精准离线运行详解

R语言AI模型部署方案:精准离线运行详解 一、项目概述 本文将构建一个完整的R语言AI部署解决方案,实现鸢尾花分类模型的训练、保存、离线部署和预测功能。核心特点: 100%离线运行能力自包含环境依赖生产级错误处理跨平台兼容性模型版本管理# 文件结构说明 Iris_AI_Deployme…...

JDK 17 新特性

#JDK 17 新特性 /**************** 文本块 *****************/ python/scala中早就支持&#xff0c;不稀奇 String json “”" { “name”: “Java”, “version”: 17 } “”"; /**************** Switch 语句 -> 表达式 *****************/ 挺好的&#xff…...

3-11单元格区域边界定位(End属性)学习笔记

返回一个Range 对象&#xff0c;只读。该对象代表包含源区域的区域上端下端左端右端的最后一个单元格。等同于按键 End 向上键(End(xlUp))、End向下键(End(xlDown))、End向左键(End(xlToLeft)End向右键(End(xlToRight)) 注意&#xff1a;它移动的位置必须是相连的有内容的单元格…...

项目部署到Linux上时遇到的错误(Redis,MySQL,无法正确连接,地址占用问题)

Redis无法正确连接 在运行jar包时出现了这样的错误 查询得知问题核心在于Redis连接失败&#xff0c;具体原因是客户端发送了密码认证请求&#xff0c;但Redis服务器未设置密码 1.为Redis设置密码&#xff08;匹配客户端配置&#xff09; 步骤&#xff1a; 1&#xff09;.修…...

初学 pytest 记录

安装 pip install pytest用例可以是函数也可以是类中的方法 def test_func():print()class TestAdd: # def __init__(self): 在 pytest 中不可以使用__init__方法 # self.cc 12345 pytest.mark.api def test_str(self):res add(1, 2)assert res 12def test_int(self):r…...

人机融合智能 | “人智交互”跨学科新领域

本文系统地提出基于“以人为中心AI(HCAI)”理念的人-人工智能交互(人智交互)这一跨学科新领域及框架,定义人智交互领域的理念、基本理论和关键问题、方法、开发流程和参与团队等,阐述提出人智交互新领域的意义。然后,提出人智交互研究的三种新范式取向以及它们的意义。最后,总结…...

GruntJS-前端自动化任务运行器从入门到实战

Grunt 完全指南&#xff1a;从入门到实战 一、Grunt 是什么&#xff1f; Grunt是一个基于 Node.js 的前端自动化任务运行器&#xff0c;主要用于自动化执行项目开发中重复性高的任务&#xff0c;例如文件压缩、代码编译、语法检查、单元测试、文件合并等。通过配置简洁的任务…...

腾讯云V3签名

想要接入腾讯云的Api&#xff0c;必然先按其文档计算出所要求的签名。 之前也调用过腾讯云的接口&#xff0c;但总是卡在签名这一步&#xff0c;最后放弃选择SDK&#xff0c;这次终于自己代码实现。 可能腾讯云翻新了接口文档&#xff0c;现在阅读起来&#xff0c;清晰了很多&…...