发布信息

ASP.NETCore的出现,大批Forms程序员的失落

作者:软荐小编      2023-10-22 01:05:34     187

作者是一位老程序员。 他于 2002 年进入 .NET 开发领域,从未放弃。 在此期间,我经历了管理软件公司、互联网公司、内资公司和外资公司,深深地意识到其中的差异。 我写了一篇文章分析两者之间的联系和区别,供读者参考。

技术

1 管理软件公司使用的技术一般都是老的、稳定的、成熟的技术。 例如.NET Remoting、Windows Forms、Web Forms,互联网公司普遍追求新技术,如Redis、微服务、Hadoop等。管理软件公司会使用SQL Server Analysis Services作为OLAP分析工具公司上网限制软件,而新的互联网公司会使用SQL Server Analysis Services作为OLAP分析工具。利用Spark、Hadoop等大数据技术进行实施。 在喜欢从事技术创新的管理软件公司工作,往往过得苦不堪言。 例如,Linq to SQL问世后不久,Entity framework出现,Silverlight、WPF逐渐从公众视野中消失。 随着ASP.NET MVC的出现,大量Web Forms程序员找工作变得困难。 现在ASP.NET Core的出现,不知道会不会造成ASP.NET MVC程序员的流失。

2 管理软件公司注重业务实现,而互联网公司注重高并发、高可用性、用户体验等,管理软件的用户一般是工厂各部门的文职人员。 一个大公司只有100人左右同时在线。 对业务实施有比较高的要求。 这样可以节省人力和成本,而不是增加成本。 有些管理软件提供了大量的审批功能。 确认的每个流程和每个步骤(下订单、交付、发票生成、收款)都必须得到批准。 我个人认为这样的管理软件增加了用户成本。 ,降低效率。 将工厂视为合作实体。 销售部门负责下订单,生产部门负责在规定时间内完成订单生产,采购部门负责及时采购所需的生产材料。 这是一个密不可分的一体化运作,任何一个环节卡住都会导致信息流动不顺畅,甚至导致生产停滞。 很多年前,我们在网上注册了一个账户,输入用户名、密码等信息。 提交时,系统提示我们输入电子邮件地址。 这时我们输入的密码也会被清除。 重视用户体验的互联网公司会考虑到这一点。 在这种情况下,请帮助我们记住之前输入的密码。 这时候我们只需要输入邮箱再次提交即可。 再比如公司上网限制软件,当我们出去打车时,遇到很长的路或者小路,出租车司机可以拒绝接我们。 这是一种非常不友好的用户体验。 我们是客户,出租车司机是应用程序提供商。 唯一得罪顾客的就是钱。 新兴互联网公司(滴滴、Uber)改善用户体验,不仅比原来的打车价格便宜,而且还提供随叫随到的服务。 想象一下,一个女孩背着沉重的行李箱,在大城市里到处找车,那是一种多么糟糕的用户体验。 互联网公司将会改善这种体验。 你只需要站在原地,司机就会来找你,你会充分体验到打车是一种服务。 我个人认为,即使滴滴和Uber减少补贴,甚至停止补贴,在同样的价格下,滴滴和Uber仍然有生存的空间,因为他们改善了网约车服务体验,即用户体验。

3、管理软件公司的技术升级往往来自于程序员,而互联网公司的技术变革更多来自于业务需求。 所谓成也萧何,败也萧何。 软件行业顶端的软件公司创造技术来解决问题并提供开发工具来维持企业利润,而中小企业则应用技术来解决业务问题。 软件行业频繁的技术更新导致大量有经验的程序员失业,进一步增加了软件公司的生存成本。 Delphi 程序员几乎是不可能找到的,或者在市场上很少找到他们。 还有一些我们没有听说过的技术(它们确实存在于现实公司中)。 Delphi的程序员要么失业,要么转型。 对于软件公司来说,用Delphi开发的大量优秀的Delphi程序仍然需要维护人员。 软件公司面临两个选择:要么用新技术重写,要么聘请一些老技术程序员来做维护。 软件公司的老板都是聪明人,公司的未来不可能由一两个程序员掌控,所以他们沿用以前的解决方案,用新技术重写。 这样做的目的主要是为了更容易招人,老程序员都辞职了。 招募新的程序员并尝试将公司的命运掌握在自己手中。 我们公司的C/S(Windows Forms)程序员经常为以后找不到工作而发愁。 作为他们的老板,我经常需要了解他们的压力。 从技术上来说,我们需要给他们一些常见的、重要的技术方案,让他们树立信心,同时也给他们安排一些流行技术的培训。 作为管理者,我们也需要对他们的未来负责,并给予他们一定水平的绩效。 相对高质量的评估。 互联网公司的技术变革,比如大数据的需求,数据来源和格式的多样化,是原有的数据挖掘解决方案无法解决的。 迫切需要进行技术变革来适应这种变化。 因此,对Hadoop、Spark等大数据技术产生了需求。 更有实力的互联网企业甚至重建了大数据平台,以确保自己在行业中的领先地位。

团队及企业文化

1 管理软件公司的同事思想比较僵化,而互联网公司的同事比较灵活。 他们存在的理由是创新。 管理软件作为管理思想的软件实现,应该是管理模式、方法和思想的固化,不允许有或少量的变动。 试想一下,如果不运行规定的流程,不对数据进行处理,自然不会有理想的结果。 例如,大多数ERP软件约定的流程是:客户下订单,料控部门运行MRP计划,生成物料采购需求和半成品加工需求,最后成品入库、发货到客户、财务结算等。这是制造业ERP的基本流程。 然而,贸易公司的ERP不需要这样运行。 您可以直接向供应商下订单,然后将其运送给客户。 你甚至不需要租用仓库,就可以直接提供从供应商到用户的端到端服务。 码头(直航业务)经营模式。 这些思路决定了管理软件不需要创新,按照既定的流程或者老板指定的流程来完成即可。 如果经常在这种思维下工作,人就会失去创新的血液。 管理软件的员工通常受到产品设计师想法的指导,创新有其自身的后果。 互联网企业充满创新。 正如马云所说,银行不努力,支付宝就成功;银行不努力,支付宝就成功;银行不努力,支付宝就成功;银行不努力,支付宝就成功。 邮局不努力,顺丰就成功; 沟通不努力,微信就成功。 后者甚至产生颠覆性的力量。 原本为大学生准备的热门卡包动感地带,10元含300条短信,被微信彻底颠覆。

2(中小企业模式)管理软件公司是人才培养的摇篮,是高级工程师的产生地。 互联网公司由于业务变化频繁、技术更新快,不适合纯技术人员生存。 技术人员往往负责管理和转售。 管理软件企业有明确的人才培养计划。 一个老程序员会带领几个年轻程序员,就像老母鸡带着小鸡一样,一步步教他们如何实现这个,如何设计那个,效率会更高,直到新人成为老手。 初级程序员成为中级工程师。 比如我们在管理软件公司学到的是缓存可以提高效率和性能,反射技术可以用来做插件系统,动态语言可以让系统具有可扩展性。 这些技术随着程序员年龄的增长而发展。 随着成长,慢慢学习,灵活应用。 互联网公司因为技术而改变得更快,Web 2.0、云计算、互联网+、大数据,技术更新非常频繁。 只有达到垄断程度的企业才能生存。 我们都是凡人,想要进入各个领域的垄断级公司是非常困难的。 即使进入,项目迭代周期短,KPI压力大。 (我这里说的是适合中小型公司,大公司不适合在本节中描述。​​)

3 管理软件公司适合纯技术人员生存,而互联网公司相对注重运维+技术。 比如我上一节提到的缓存技术,已经被互联网公司发扬光大,并提供了一整套循序渐进的解决方案(Redis、MongoDB)。 程序员不仅需要能够调用API,还需要部署服务器并了解其运行机制。 在一家管理软件公司,为了增加产品的高可用性,我们提供了集群、镜像、数据库复制、数据库日志记录等技术,保证系统24/7运行。 互联网公司对此要求较高,也要求高并发。 我们知道数据存在于磁盘上。 读取数据或者保存数据都是非常合理的操作。 管理软件就是这样进行增、删、查、改的。 然而,互联网企业并不满足于此。 由于多人并发存在,数据需要保存在内存中才能满足高并发要求。 还有很高的可扩展性。 为了升级管理软件,停止服务器程序或者重启机器是我们很常见的操作。 然而互联网公司对此却是零容忍。 当他们要求系统更新时,服务无法停止,或者停止服务的时间很短(秒)。 后者要求系统可热插拔,这与USB接口可热插拔并成为行业标准是同一趋势。 我们知道,Oracle在升级补丁包时,并不需要停止数据引擎服务。 这个功能对于互联网公司来说非常重要。 重要(SQL Server也可以使用镜像技术达到这个目的)。 一般来说,管理软件公司只需要做好技术,而互联网公司除了技术之外还需要运维方面的知识。

员工发展

1管理软件公司的员工大多前途光明,互联网公司适合明星员工创业。 在互联网公司工作的员工往往对技术非常专业,是技术在商业模式下的实现。 因为互联网公司需要用户、流量、变现,所以创业压力很大。 对于传统的管理软件公司来说,他们已经建立了良好的客户关系,拿到了一些订单,购买了几台电脑,聘请了两名程序员并开始工作。 这是个人创业的快捷途径。 一般的管理软件可以实现客户所需要的文档、流程和报表,相当于一个数据库的增删改查程序。 更好的管理软件集成了一些管理理念,增加了一些行业需要的功能。 一个软件+概念(思想)载体。 更好的管理软件已经成为行业的标杆,几乎成为行业的代名词(模仿互联网公司,比如团购的美团、大众点评,看电影的猫眼)。 例如,当我们谈论ERP时,大家都会想到SAP、Oracle、Sage、Epicor、Dynamics等,这些管理软件已经成为其他软件厂商复制和模仿的典范,促进了一大批小中型企业的诞生。中型企业。 我们知道,互联网公司只会让竞争对手失败或者最终被收购,而管理软件公司不仅不会吞并小公司,还会为小公司的发展指明技术方向。

2(大公司模式)互联网公司技术比较完善,分工明确。 程序员可以成为一个领域或多个领域的专家。 由于管理软件公司已经达到了行业的顶尖水平,技术人员往往需要先转入销售,然后再转入二次开发。 处于食物链顶端的软件公司,如云计算(Azure、AWS)、数据库(SQL Server、Oracle、MySQL)、ERP(SAP、Oracle、Epicor、Dynamics),往往将研发中心控制在自己国家,而且很少有国外团队或分支机构根本不会参与核心技术的开发。 这导致我们经常把它们做成二次开发工具。 成为某个行业的专家有时会让人感到不知所措,这也意味着在其他领域的选择越来越少。 精通一项技术并成为公司运营的一部分只有在特定的环境(大公司)中才有用。 就像浓缩铀只能用来制造核武器一样,飞利浦的白炽灯可以用于千家万户。

市场营销与销售

1 互联网公司相对容易产生新概念、新术语来吸引公众注意力,创造概念经济。 管理软件公司陷入了困境。 比如,笔者在2006年就体验过Web 2.0,当时满大街都是这样的宣传材料,没过多久这个概念就变得过时了。 就像现在的全民创业、云计算、互联网+、大数据等等,相信它们很快就会从我们大众的视野中消失,取而代之的是一大批互联网公司的消亡。 对于管理软件公司来说,这种情况很少见。 MRP和ERP仍然是20世纪90年代的概念,仍然适合企业管理软件的设计思路。 虽然ERP II的概念是在ERP之后出现的,但当时并不是很流行。 管理软件公司比较务实,能够顺利运行物料需求计划(MRP)。 基本上,公司的信息化水平已经达到了一个很大的水平,他们就不会再追求管理创新了。 金融也是一个不适合创新的领域。 我记得一位经济学家说过,我们应该将所有经济学家从社会中清除,因为金融改革扰乱了社会秩序。 国际金融投机家索罗斯的名言也表明,我们的目的就是制造一个假象,然后在人们意识到真相之前就早早退出游戏。

2管理软件公司人员缺乏销售理念。 互联网公司员工会更加关注商业机会,往往会考虑将技术转化为价值。 我们不在这里讨论阿里巴巴员工抢月饼的是非。 从市场角度来说,我真的很佩服这些程序员。 他们应用所学并将技术转化为自己的利益。 管理软件公司员工缺乏市场情绪。 他们也在研究新版开发工具的产品特性,期待软件厂商能够以拖拽的方式设计工作流程。 如果我们能把几年的工作成果抽象出来,形成一些公共开发库,方便以后的发展,这也算是一个小小的进步了。 此外,还可以归纳管理软件中相同的操作界面和模式,制作一些比较通用的界面和控件,如数据录入Entry、数据查询Inquiry、数据列表、报表、数据查找Lookup、自定义查询等。 Query等,初步形成了开发框架。 更进一步,我们用自己精细化的开发框架以及我们参与和理解的技术理念来创建一套产品。 这也是一个小小的改进。 技术进步的每一个阶段都可以为您的职业发展带来无尽的好处。 熟练的程序员再也不用担心找不到没人想要的工作了。 成为某个领域的高级开发人员可以为您赢得技术主管或经理的职位。 如果你在某个领域或行业做了一个产品,并在合适的时间遇到​​了一个懂得如何推销它的销售人员,那么创业是很有可能的。 马云说,人要有梦想,只有梦想才能实现。

相关内容 查看全部