程序员开发软件的意义在哪?

2023-11-16

有一篇热文《写了8年的代码,做过的项目都下线了,程序员的意义在哪里!》,作者8年工作和业余时间开发几十个项目,几乎都关闭了。

想当初,很用心的去开发每一个项目;如今,这些项目只能一个个关闭。

这真的使我很悲观: 我花了那么多的时间精力,去做的事情,竟然如此的毫无意义。

我相信这也是所有程序员到一定人生阶段时必定会思考的一个哲学问题:程序员开发软件的意义在哪?

是为了养家糊口,是为了追寻技术,是为了创业,还是为了改变世界?

在软件咨询业摸爬滚打十余年后,我在整理简历时遇到一个难题,就是工作经验那一块,做过的项目太多了,要写好几页,这与当前硅谷的人力资源强调简历必须简洁的原则严重不符,因为招聘专员在你的简历上的目光扫描只有短短的15至30秒。德国传统的简历标准允许稍微冗长,毕竟不少公司废除纸质简历投递是这几年才执行的。但德国有历来向美国看齐的传统,所以大型公司或者新兴科技IT公司的人力资源,今后逐步采用硅谷的标准会是趋势。

我的首要业务,是把原本三四页的几十个项目简介缩短到两页以内。于是我开始一条条回顾,从业至今,做过的那些项目。

那些年,做过的C项目

第1个C项目

工作第一个项目,是为斯图加特地铁公司做的一个轨道内部管理移动系统,前端后端,数据库,后台数据接口全部一个人完成。

技术

  • 后端:J2EE Servlet,数据接口Hibernate,通过SOAP和SAP的接口与地铁公司数据交互。
  • 移动端:JavaME,开发界面和业务逻辑,数据采录,显示轨道的静态地图图片。那时Google Map刚起步,也没有适合地铁公司数据格式的开源地图服务器,花了很大力气,架设了一个商用地图服务器,搞定了地图这一块。
  • 前端:GWT,Google的一个Web Rich Client框架

项目现状:卒

原因

  • JavaME已经死了,Nokia那么庞大的帝国已轰然倒下。
  • 臃肿的SOAP接口被RPC或Rest取代。
  • Hibernate,半死不活。SSM大行其道。
  • 静态无交互地图显示随着Google Map和其它优秀开源地图服务器的普及也淡出历史。
  • GWT早已被各类前端框架替代

留在简历:留。

毕竟面试时,德国HR喜欢问的,常常是你做的第一个项目,哪怕你工作了多年。和其它刚入行的新人一样,我从这个项目中,海绵一般地吸收新知识,学了非常多的技术,包括移动端的设计和构架,后端数据接口的交互,以及数据库的设计与应用,这些技术习惯我一直沿用至今。

 

第2个C项目

德国本土一个娱乐信息互动平台的移动端。

技术:后端开发J2EE Servlet, 移动端JavaME

项目现状:卒

原因:平台已倒闭

留在简历:否

 

第3个C项目

给法兰克福政府机构做的Mobile城市景点热点导航。

技术:后端开发J2EE Servlet, 前端JSP+JS做HTML5

项目现状:卒

原因:Google map一出,谁与争锋

留在简历:否

 

第4个C项目

德国拜仁州铁路购票系统。

技术

  • 后端:J2EE Spring,MySQL。德国除了德铁是一半国有外,各个州和城市的铁路系统都是私营企业经营。各个企业都是独立的票务系统,但它们一般都使用德国的两家铁路票务系统平台。这两家系统的标准和接口是完全不同的。我的工作,是开发一套通用的API,通过SOAP和Rest接口与两大系统平台接口兼容对接,实现德铁与拜仁铁路票务系统的数据整合。
  • 移动端:JavaME,车次查询,票务系统

项目现状:半卒

原因

  • JavaME已死
  • 后端服务API可能还在继续运行,用在后来新的Android或iOS移动端上。

留在简历:是

从这个项目我学到了,如何开发一套完善的合乎标准的API。

这时我已经把一个叫J2ME Polish的框架用的炉火纯青,它可以在Nokia等手机和Blackberry上做出比系统原生界面炫得多的界面。当时国内相当多的团队也在用,我甚至想写本中文的技术书。这个想法后来被智能手机系统iOS和Android的诞生掐灭了。

第5、6、7、9个C项目

  • 手机多媒体云备份系统,类似dropbox
  • 本土移动
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

程序员开发软件的意义在哪? 的相关文章

  • 域格模组的模拟语音、PCM、I2S

    域格模组的模拟语音 PCM I2S 文章目录 域格模组的模拟语音 PCM I2S 一 域格模块里的音频功能 二 常见音频 传输 接口 1 介绍 2 一目了然的协议时序 I2S协议时序 PCM协议 二 模块中使用音频功能 一 域格模块里的音频
  • 基于MATLAB的车牌识别

    目录 车牌识别系统的介绍与展示 车牌定位 1 灰度处理 2 边缘检测 车牌分割 1 图像腐蚀 2 图像平滑 3 移除对象 4 图像切割 车牌识别 1 灰度处理 2 直方图均衡化 3 二值化 4 中值滤波 5 字符识别 车牌识别系统的介绍与展
  • 如何启动单节点zookeeper以及注意事项

    1 安装jdk 因为zookeeper是基于java进行开发的 2 将zookeeper解压之后 再zookeeper目录下conf目录下有一个zoo sample cfg 将它改名成zoo cfg 因为zookeeper启动时自动加载的是

随机推荐

  • QT获取各种平台系统版本信息之QSysInfo

    一 头文件 include
  • 小程序授权第三方平台

  • 数据分析初步认识

    今天的任务是阅读数据分析的概述 老师的建议是带着问题去学习 今天的任务结束之后 我要能回答为什么学习数据分析 所以 为了更好地记录我今天的学习 我决定边学边写博客 那么 开始吧 一 数据分析的含义 作用和分类 数据分析就是一个基于一定目的
  • vue运用animate.css设置transition动画

    vue的transition动画 关于vue中animation动画问题 找到要用动画的元素 我是想要实现切换页面的动画效果 所以找到app vue中的router view 用transition将它包裹起来 用动画库animate cs
  • PCB Layout经验

    1 旁路电容尽量靠近IC脚 这样对整个电路的抗干扰能力有很大的帮助 2 布局的时候 可以把零件尽量对齐 可以增加板子美观 3 多层板的顶层IC底部 最好铺一下铜 有助于IC散热以及抗干扰 4 贴片IC的管脚不要做的太长 防止IC在SMT贴片
  • 移动端使用fastclick解决click延迟300毫秒

    做移动端商城使用click会出现大约300毫秒的延迟 为了能够立即响应用户的点击事件 会用到FastClick 一 安装 npm i fastclick save 二 使用 在main js中引入 import FastClick from
  • reGeorg的工具原理

    首先先创建一个socket去运行 去连接想要连接的端口 reGeorgSocksProxy客户端与服务端的通讯是基于session来区分的 并不支持在指定的session下进行 socket set nonblock 设置socket为非阻
  • 碳中和数据合集(含上市公司碳排放、碳减排、排污费、环境税等数据)1990-2022年

    数据简介 推动企业形成绿色生产方式和生活方式 支持有条件的地方和重点行业 重点企业率先达到碳排放峰值 可见 企业已成为应对气候变化 推动低碳转型 助力 双碳 目标实现的主力军 推动其绿色 低碳化转型已成为未来经济发展的必然趋势 此背景下 作
  • linux环境下运行flex,什么是flex?

    昨天装一个软件的时候 configure后遇到下面的问题 错误代码见最后 网上查到有什么 FLEX 2 01 全套下载 客户端 Flex Builder 2 with Charting 集成 Flex Builder 2 Flex 2 SD
  • LeetCode 232. 用栈实现队列

    题目链接 https leetcode cn problems implement queue using stacks 栈的特点是先进后出 而队列的特点是先进先出 我们用两个栈正好能把顺序反过来实现类似队列的操作 stackData 作为
  • navicat连接linux虚拟机上的mysql出现10060的错误解决

    https www cnblogs com mmzs p 9201558 html 我的是当时配置MySQL的时候在iptables文件里面添加了3306但是 我没有保存 所以没有监听到这个端口 弄了一中午 唉 最终通过上面的文章得以解决
  • numpy_diag函数

    diag的函数原型如下 numpy diag v k 0 如果v是一维数组 则函数返回以v为对角线的对角矩阵 如果v是二维数组 则函数返回v的对角线 import numpy as np a np arange 9 reshape 3 3
  • 如何进行技术选型

    在重大产品决策或者大规模应用开发前一般需要进行技术选型 特别是需要开发一个之前没有了解过的系统或者应用时 其目的是为了降低产品研发的技术风险 所以首先需要明确为什么需要技术选型 需要达到什么目的 整个过程需要有一套的组织流程来保证 一般可以
  • SpringBoot实现原理

    一 什么是SpringBoot SpringBoot是一个快速开发框架 快速的将一些常用的第三方依赖整合 原理 通过Maven子父工程的方式 简化XML配置 全部采用注解形式 内置Http服务器 Jetty和Tomcat 最终以java应用
  • 深入Redis命令的执行过程

    深入Redis命令的执行过程 Redis 服务器 Redis 服务器实现与多个客户端的连接 并处理这些客户端发送过来的请求 同时保存客户端执行命令所产生的数据到数据库中 Redis 服务器依靠资源管理器来维持自身的运转 其主要作用是管理 R
  • charles抓取https请求_Charles抓包

    欢迎关注公众号 学习资料不会少 Windows端设置抓取https请求 安装证书 打开Charles 选择 Help SSL Proxying Install Charles Root Certificate 信任证书 弹出安装证书对话框
  • springboot中logback日志配置

    springboot中logback日志配置 前言 默认配置 logback spring xml详细配置 前言 Spring Boot使用Apache的Commons Logging作为内部的日志框架 其仅仅是一个日志接口 在实际应用中需
  • 模拟实现memcpy()memcmp()memmove()

    核心 memcpy 函数memcpy从source的位置开始向后复制num个字节的数据到destination的内存位置 这个函数在遇到 0 的时候并不会停下来 如果source和destination有任何的重叠 复制的结果都是未定义的
  • crmeb 知识付费伪静态怎么设置?

    伪静态配置 可以通过URL重写隐藏应用的入口文件index php 下面是相关服务器的配置参考 Apache httpd conf配置文件中加载了mod rewrite so模块 AllowOverride None 将None改为 All
  • 程序员开发软件的意义在哪?

    有一篇热文 写了8年的代码 做过的项目都下线了 程序员的意义在哪里 作者8年工作和业余时间开发几十个项目 几乎都关闭了 想当初 很用心的去开发每一个项目 如今 这些项目只能一个个关闭 这真的使我很悲观 我花了那么多的时间精力 去做的事情 竟