一个程序员的现状

2023-11-18

前一阵子读了《Java夜未眠》,有一个系列是说台湾程序员的的生活现状的,看后还真是有够感慨的。于是就想把自己的现状整理一下,再结合自己的工作经历,看看是否能反映出我们这一批程序员的普遍的生存状态。
一、从专业说起
论程序员的出身专业,那无非就两种情况啦,一种是计算机相关专业的,另一种就非计算机专业的喽。而非计算机专业的,常见的是数学、电子、自动化相关的,在我上学的时候,大家说的最多是,计算机、电子和自动化是一家。因为学的基础课程很像,造成了这三个专业的人才可以互通。那么,除了上述的专业的童鞋想要做程序员,不是没有,只是需要付出更多的辛苦。
论程序员的出身学历,也分两种情况,一种是专科,另一种是本科及以上。为什么要这么分呢?业内是这样看的,专科学的是技能,本科学的是理论。可以这么说,专科出来的实践能力都很强,要比本科强,这是有目共睹的。那么理论呢,如果本科生在校期间是真的学习了,那么毕竟是有理论基础的,如果是混下来的,那么可以负责任的说,他的理论可能还不如专科生呢。
在就业大军中还有一支力量,那就是各种培训学校(或机构)出来的童鞋。我共事过一些,感觉他们是揠苗助长的一批人。在培训阶段如同做很急的项目一样,有些人被吓住了,有些人挺过来了。
英雄不论出处。只要对一个行业一个领域充满了热情,那么,终究会做出一番成绩来的!我坚信这一点。
我呢,恰好是非计算机专业出身的,在毕设时,题目是软件相关的,从此才和软件这个行业打上交道。
在我毕业的半年,并没有从事编程工作,那么为什么又改行做软件了呢?下面会有叙述。
二、从编程语言说起
不知道这样说会不会被拍砖:我们学习的第一种编程语言是C语言。
大部分学校都会开设这门经典课吧,我也不例外。但,我学的并不好。当时只是为了通过这门课,平时是经常翘课的。而C语言课程设计也是得过且过,回想起来,那时是做折半查找。
后来呢?学微机原理的时候,要求汇编语言,这个就更混了,简直没有什么印象了。
毕设的时候,要用VB6.0开发一个客户端,这样,我的大学生涯算是学了三种计算机语言了。
所有这些,都为我转换程序员打下了小小的基础。
三、从就业与公司说起
毕业了,面临着就业问题。
我和同学一起去了油田,这是与我们的本专业有着一点点关系的工作,电控。工作了半年,大部分时间是去荒郊野岭的油田,跟着井队打井。这段经历,回忆起来是美好的,但当时是痛苦的。我突然想过正常的生活,东北人那种老婆孩子热抗头的生活。每个人都有追求自己生活的权利,我选择了离开。追随我心,乔帮主曾经这样教导我们。
我失业了,再次面临着就业问题。在学生时代我就已经给自己定位了,先走技术路线吧。我非常崇拜那些技术牛人,想让自己也变成那种人,也许,机会要来了。
既然选择要走技术路线,那么就分析下要从何走起呢?
先找一家干着吧,在实践中做调整。人啊,不能闲太长时间,荒废久了,就真的完了。我很庆幸当时做了先工作的决定。
这是一家做嵌入式的科技公司,规模很小。研发团队是老板加一个前辈,现在加上我,一共三人。我是新人,刚毕业半年的新人。
在这里我学到了画板子、布线和嵌入式编程(C51)。其实对我的影响还是很大的,我成长也很快。但当时小公司风风雨雨的,很有危机感,我真不知道以后会怎么样。
现在回想起来,如果我一直干下去,也是不乐观的。半年后,我毅然选择了离开。
那时候,我毕业一年,一事无成。前途迷茫,职崖黯淡。我一个人在租来的小屋里找工作,那段时间是我人生最灰暗的一段时光,刻骨铭心,还好,女朋友的工作还不错,她一直在鼓励我,并让我找自己喜欢的工作。期间,我的一个姐夫从事软件行业,我与他通了电话。对话中对我影响最大的是这么一句。我问,Java通过自学可以么(当时我还没有进入软件圈子,门外汉)?答曰:当然可以!当然的我,用现在的一个词是,懂了。因为我知道,那些语言和技能,都是可以通过自学而得来的。那时是2008年6月。
就这样,我找了一家软件公司工作。读者童鞋可能会问了,我那时一点软件工作经验没有,怎么能这么轻松就去软件公司呢?
原因是,毕设的VB项目,上一家公司的几个VB小项目。这些经验,足可以作为新人的敲门砖了。我的程序员生涯就此开始!
无论是小公司也好,大公司也好,软件企业绝大多数是私企和民营性质的。
有些公司是做自己的产品的,有些是做外包的,有些是两者皆有。
我从事的第一家软件公司是有自己的产品。这样的公司呢,招人主要用来维护既有产品,偶尔有新的产品要开发。我的体会是,不累,但技术被束缚在一个领域中了,而且多数情况下是做升级打补丁改bug。有时是很无聊很不利于新人成长的。如果产品盈利,那么活的还算有滋有味,不然会很难过。
做外包的呢?有项目时,累的要死,无项目时,闲的要命。盈利状况完全取决于项目。如果项目中使用技术的跨度不是很大,那么就很适合新人。经历几个项目后,对于软件开发会积累一些心得和经验。这是一笔宝贵的财富,谁也抢不走。多总结才会有积累,并持之以恒,成功就指日可待了。
四、谈谈正题---每天都在做什么
把目光转移到现在吧,我在一家外包企业。
每天的工作还是很忙的。
早会。这个早会是站立会议,15分钟左右的那种。汇报一下昨天的工作情况与今天的计划。
编码。程序员大部分时间的工作。
会议。会议分很多种,有项目初期的需求分析会议,有架构会议,有需求确认会议,有头脑风暴会议...有些会议,不留情面的说,浪费时间多一些。
代码Review。让别人知道你都干了些什么!
加班。任务完不成,项目吃紧等情况,作为项目组的一员,我们义无反顾要冲杀在最前面。
五、谈谈未来会怎样---职业规划
未来会怎样,谁也说不好。但你要有个方向,并为此做些准备。
我们做技术的,未来无非两条路。继续做技术和不做技术。这不是废话,这是现实。
大公司是可以养老技术人员的,大可不必担心你的年岁已高会被公司一脚踢开,谁的有老的一天,不是吗?架构师、资深工程师(设计师)都是我们的归宿。
做项目经理、做销售、做售前等等,很多条路可以选择。
无论哪一条,做自己喜欢的,并为之做好准备。不论你相信与否,人生是有机遇一说的,可遇不可求,但要做好准备。
希望大家一起来讨论下现状,分享自己的工作经验与心得,给新人一些启迪,给老人一些回忆。



本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

一个程序员的现状 的相关文章

  • 【React】路由(详解)

    目录 单页应用程序 SPA 路由 前端路由 后端路由 路由的基本使用 使用步骤 常用组件说明 BrowserRouter和HashRouter的区别 路由的执行过程 默认路由 精确匹配 Switch的使用 重定向路由 嵌套路由 向路由组件传

随机推荐

  • 计算机网络体系结构 - 运输层

    一 运输层协议概述 运输层为应用进程之间提供端到端的逻辑通信 二 运输层的端口 端口 port 也称为协议端口号 protocol port number 对上层的应用进程进行标识 端口用一个16位端口号进行标志 端口号只具有本地意义 端口
  • 剑指offer-输出字符串所有种类的排列组合

    常规题 先校验长度 不符合则直接输出 符合则判断是否为最后一个字符 是则直接new对象输出 不是则交换begin和i位置的数字 再用递归输出 public class Test28 先校验 public static void permut
  • 笔试

    文章目录 前言 40 复位电路设计 1 recovery time和removal time 2 同步复位和异步复位 3 异步复位同步释放 本文参考 往期精彩 前言 嗨 今天来学习复位电路设计相关问题 微信关注 FPGA学习者 获取更多精彩
  • cec2017(python):红狐优化算法(Red fox optimization,RFO)求解cec2017

    一 红狐优化算法 红狐优化算法 Red fox optimization RFO 由Dawid Po ap和 Marcin Wo niak于2021年提出 该算法模拟了红狐的狩猎行为 具有收敛速度快 寻优精度高等优势 参考文献 Poap D
  • easyexcel读取excel将数据存到mysql【一个简单的例子】

    读取excel 1 xml里面增加maven
  • 使用Java程序向手机发送短信

    JAVA发送手机短信 有几种方法 1 使用webservice接口发送手机短信 这个可以使用sina提供的webservice进行发送 需要进行注册 2 使用短信mao的方式进行短信的发送 这种方式应该是比较的常用 前提是需要购买硬件设备
  • 变分推断

    一 概述 对于概率模型来说 如果从频率派角度来看就会是一个优化问题 从贝叶斯角度来看就会是一个积分问题 从贝叶斯角度来看 如果已有数据 x x x 对于新的样本 x hat x
  • 转债打新监听

    不炒股 只打新捡点小钱 package com github niefy modules job run import cn hutool core convert Convert import cn hutool core util Nu
  • 软件测试基础知识个人笔记

    一 为什么要测试 软件系统越来越成为生活中不可或缺的一部分 缺陷不可避免 软件不正确执行可能会导致很多问题 二 软件测试的定义 软件测试 描述一种用来促进鉴定软件的正确性 完整性 安全性和质量的过程 维基百科 公司主流观点 测试是一个包含计
  • eclipse注释模板

    eclipse注释模板 一 配置步骤 Eclipse中 gt Window gt Preferences gt Java gt Code Style gt Code Templates 二 模板示例 Files 文件 Title file
  • java 多线程执行时间测试,TestNG中实现多线程并行,提速用例的执行时间

    TestNG是一个开源自动化测试工具 TestNG源于Junit 最初用来做单元测试 可支持异常测试 忽略测试 超时测试 参数化测试和依赖测试 除了单元测试 TestNG的强大功能让他在接口和UI自动化中也占有一席之地 以Java为例 目前
  • Spring源码之Bean的生命周期

    Spring已经成为了目前最流行的第三方开源框架之一 我们在充分享受Spring IOC容器带来的便捷时 也应该考虑一下Spring这个大工厂是如何将一个个的Bean生产出来的 我们一起来讨论一下Spring中Bean的生命周期 Sprin
  • 内容提供者ContentProvider和内容解析者ContentResolver

    简介 ContentProvider 在android中的作用是对外共享数据 也就是说你可以通过ContentProvider把应用中的数据共享给其他应用访问 其他应用可以通过ContentProvider 对你应用中的数据进行添删改查 关
  • 微信小程序第三篇:获取页面节点信息

    文章目录 获取节点信息 createSelectorQuery selectViewport boundingClientRect fields 获取节点信息 createSelectorQuery wx createSelectorQue
  • MySQL数据库基础学习小终结:连接查询、表结构的修改、约束条件、MySQL与python交互

    目录 一 连接查询 1 内连接 2 外连接 二 表结构的修改 alter 1 修改表名 2 修改字段名 3 修改字段类型 modify 4 添加字段 1 添加日期字段 datetime 2 enum字段 5 删除字段 三 约束条件 1 默认
  • <artifactId>mysql-connector-java</artifactId>

    加载MySQL驱动程序 Class forName com mysql cj jdbc Driver 建立连接 String url jdbc mysql localhost database name String username us
  • CAS乐观锁使用AtomicStampedReference版本号控制手动实现原子计数

    原子计数可以直接使用AtomicInteger 下面采用AtomicStampedReference的版本号控制原子操作解决ABA问题 最终结果一定最大的是200000 1A gt 2B gt 3A public class AtomicR
  • Nginx+uWSGI+Supervisor配置

    目录 一 Nginx 1 Nginx是什么 Nginx的特点 Nginx的事件处理机制 Nginx的内部 进程 模型 Nginx是如何处理一个请求 2 部署nginx 安装nginx nginx操作 测试nginx是否能用 配置nginx
  • Android bpf简单上手教程

    背景 业界对Android的性能监控 hook 系统分析 抓包 逆向等领域的关注和投入在不断提升 作为Linux Kernel中新兴的优美的一套技术框架 bpf逐渐在Android中被用于监控 分析 优化和逆向 产出了众多的工具 此外 Go
  • 一个程序员的现状

    前一阵子读了 Java夜未眠 有一个系列是说台湾程序员的的生活现状的 看后还真是有够感慨的 于是就想把自己的现状整理一下 再结合自己的工作经历 看看是否能反映出我们这一批程序员的普遍的生存状态 一 从专业说起 论程序员的出身专业 那无非就两