程序员,您到底应该做什么?肺腑之言

2023-11-04 04:10

本文主要是介绍程序员,您到底应该做什么?肺腑之言,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

程序员,您到底应该做什么?肺腑之言

 

      时不时,我遇到我业界的圈子里,码农朋友们在抱怨:

      开发App好麻烦哟,我要在五个不同的平台上,聘请五类不同的技术人员,分别开发基于MSWindows、MacOS、iOS、Android、Linux的App应用程序,用不同的IDE开发工具,VS、xCode和Swift、Android Studio、Geany,他们分别得熟练不同的编程语言,

C++、Object C、java、C和汇编语言,虽然都能满足原生开发的效果,技术管理好复杂、成本好高......

      俺们用的emb的RAD Delphi、RAD C++Builder,虽然能跨平台一次编码,5个平台分别分发,效率高,但不停的升级操作系统的SDK好折腾,原生的执行效率和用户体验要差些......

      H5的web应用开发,天天伴随我左右,写出来的代码,只要有浏览器的地方,倒是随处可用,但怎么运营方就经常抱怨,说用户抱怨越用月卡呢......

      用户说,你们做的小程序,我在微信里,一开始吧还行,后来,感觉越来越不流畅,是不是我的手机又该重装咯?!还有它只能在微信中用,离开了它,什么浏览器都不起作用,唉......

      ......不一而足。

      别说,这些抱怨和现象,还很少静下心来,认真思考。

      有一天,听群里一朋友说,码农真辛苦,写的代码,还不如“卖水果”赚的钱多......

      听得这话,好辛酸。索性,好好研究了一下本质,同时把它分享给我的同事:程序员,到底做的,是什么?

      这得从几个层次来看:

      计算机的操作系统、操作系统的用户表达方式、计算机软件行业的专业分工、人们如何从互联网获取信息、浏览器及引擎之争、浏览器的渲染(浏览器的排版引擎)、应用级别的SDK引入、应用开发级别的API的公布、IDE对工具链和API的集成与语言翻译、码农们手上的源代码、最终用户看到的用到的UE用户体验、怎么样赚更多的钞票......

第一篇  计算机的操作系统

      多的细节,都不聊了,大家可以参阅百度百科:

            https://baike.baidu.com/item/%E6%93%8D%E4%BD%9C%E7%B3%BB%E7%BB%9F/192

            https://baike.baidu.com/item/%E6%93%8D%E7%BA%B5%E7%B3%BB%E7%BB%9F/12651822

      这里只想谈谈我的理解,操作系统,总体上分4类:

      1.1、嵌入式操作系统

           1.1.1、各类手持终端操作系统(Palm、PDA等)

           1.1.2、iOS闭源手机操作系统

           1.1.3、Android开源手机操作系统

           1.1.4、工业嵌入式操作系统

      1.2、类Unix操作系统(含大型商用操作系统,它们共同遵循POSIX协议)

           Unix是什么:Unamed Operation System,未统一命名的操作系统的简称。类Unix,即Unix的变体。

           1.2.1、Unix大型操作系统(适用于[超]大型机)

                 略......

           1.2.2、Unix中型操作系统(适用于中型机)

                 比如IBM的IBM-AIX、HP的HP-UX等。

           1.2.3、Unix小型操作系统(适用于小型机)

                 比如IBM的IBM-OS 400等。

           1.2.4、Linux阵营(Unix的变体)

                 详见:Linux家族的进化史 https://blog.csdn.net/pulledup/article/details/113267337

                 1.2.4.1、商用机型级别略......

                 1.2.4.2、Linux微型PC级别操作系统(适用于微机)

      1.3、中小企业级别商用PC操作系统(适用于微机)

           1.3.1、MSWindows

           1.3.2、MacOS(商用化的类Unix,因其通过了Unix认证,因此命名有争议,但均转遵循POSIX协议)

           1.3.3、Google Chrome OS轻量级网络计算机操作系统计划

      云服务器的本质

           在分布式集群架构下,上述物理计算机操作系统,利用“容器技术”(超越传统虚拟机的新的拓展),让不同操作系统的运行环境的封包,能够在其下彼此兼容运行。

           好啦,计算机怎么通过操作系统,把它的功能展示给非专业人士呢?这就是下面的,关于计算机操作系统的表达方式:

第二篇  操作系统的用户表达方式

      2.1、CLI

      命令行界面(英语:command-line interface,缩写:CLI)。我们在Windows下的DOS和PowerShell就是很典型的。

      但因其使用命令行工具以文本方式表达,所以无论应用编程的码农们,还是最终用户,都难以普遍胜任和接受。所以,就出现了图形化的界面:

      2.2、图形用户界面(GUI)

      图形用户界面(Graphical User Interface,简称 GUI,又称图形用户接口),是指采用图形方式显示的供用户操作的计算机界面。

      于是,产生了计算机软件领域的一次革命性的分工,有些人和组织,专门来做GUI。

      从本质上来讲,真正的应用级别的编程高手,都是熟悉各个操作系统的“脾气”和“指令”的,即熟悉它们各自的CLI的指令代码,无论你用什么编程语言,也无论你用什么IDE开发工具,都可以用各自的语系代码去调用它们。

第三篇  计算机软件行业的专业分工

      3.1、其它分工(略)

      3.2、图形用户接口(GUI)分工

      3.2.1、Qt(4)阵营

      K Desktop Environment(简称KDE)。https://baike.baidu.com/item/KDE

      全面支持iOS、Android、WP,它提供给应用程序开发者建立艺术级的图形用户界面所需的所有功能。基本上,Qt同X Window上的Motif、Openwin、GTK 等图形界面库和Windows 平台上的 MFCOWLVCL(emb的Delphi和C++Builder上的可视化组件库)、ATL、跨平台的FMX是同类型的东西。

      3.2.2、GNome阵营

      GNU Network Object Model Environment(简称GNome)。https://baike.baidu.com/item/Gnome/5105879

      比如,我们的ubuntu Linux上,就默认集成了它。

      以上这两类API接口,对应用开发级别,并不透明(即做了封装,不开放源码)。

      因而,在这个层面上,应用软件开发人员,本质上,都在用他们的技术成果,赚取钞票。

      知道,为什么,当年,微软要打压Linux操作系统、java语言及开发工具了吧(它们都要开源呀,要全部透明呀)。

      你也就知道,为何,那个年代(上世纪末~2007年前),MFC、OWL、VCL为何如此牛逼,VCL为何如此骄傲,出众得让微软必须让它死!

      那么。透明的(开源阵营一直坚持要做的),又是什么呢:

第四篇  人们如何从互联网获取信息

      由于伟大的互联网的兴起,成立了W3(www)组织,指定了很多标准,让大家共同遵守,其中HTTP标准,就流行至今。

      超文本传输协议(Hypertext Transfer Protocol,HTTP)是一个简单的请求-响应协议,它通常运行在TCP之上。它指定了客户端可能发送给服务器什么样的消息以及得到什么样的响应。请求和响应消息的头以ASCII形式给出;而消息内容则具有一个类似MIME的格式。这个简单模型是早期Web成功的有功之臣,因为它使开发和部署非常地直截了当。

      有了标准,大家来遵守,那么,最终,怎样提供给最终用户呢?!利益,开始分化......这,就是浏览器及其相关的领域。

第五篇  浏览器及引擎四大阵营之争

      浏览器,不仅可以浏览操作系统上GUI形式体现的大部分CLI的内容,还可以浏览互联网上的绝大部分的资源。

      5.1、最早是Netscape早死

      网景->美国在线->时代华纳->微软,他们几大爷的好戏,我们出道不久的那个年代(上世纪末1993~1998)的产物,现在除了商标,消失了,只剩下大家熟知的Firefox网络浏览器、Gecko排版引擎和Mozilla基金会,详见:

            https://baike.baidu.com/item/%E7%BD%91%E6%99%AF/70176?fromtitle=netscape&fromid=2778944

            https://baike.baidu.com/item/Mozilla%E5%9F%BA%E9%87%91%E4%BC%9A/10167516?fromtitle=mozilla&fromid=7148071

      直到今天,永不停息的浏览器大战,几大阵营:

      5.2、微软IE>>>Edge Browser仍然是老大(遵循其Trident[又称MSHTML]和EdgeHTML)

      5.3、所有其它追随遵循Gecko的跨平台阵营(比如Firefox、Mozilla基金会的等等阵营)

      5.4、苹果Safari Browser及谷歌Google Chrome(追随遵循KHTML)

      5.5、谷歌Google Chromium(谷歌从webkit的分叉Blink)

      为啥?因为,谁抢占了浏览器市场,谁,就掌握了最终用户,谁就终端为王!这,是真正的底层的入口之争!

      现在我们编程,无论你用什么语言,用什么IDE开发工具,视觉可见的和非视觉可见的本质上,就是在围绕浏览器打转转。

第六篇  浏览器渲染引擎到底为何物

      6.1、浏览器呈现内容给用户的基本技术过程

      获取网页的源码(本质上就html、javascript、css这些代码) ->解析代码(即分析和整理代码)  ->重新用css进行排版 -> 将排版后的内容呈现给客户。

      6.2、渲染引擎又称排版引擎

      即上述过程中的:重新用css进行排版的引擎代码部分。

      同样的网页源码,在不同的排版引擎下,呈现给最终用户的视觉体验和操作体验,会有所差异,这就是我们编程中,常说的浏览器的兼容性,它是用User-Agent头部定义,来识别和区分的。

      6.3、浏览器采用和支持的四大渲染引擎

      6.3.1、微软Trident[又称MSHTML]和EdgeHTML

      6.3.2、所有其它追随遵循Gecko的跨平台阵营

      6.3.3、苹果及谷歌的浏览器为首的KHTML

      6.3.3、谷歌从webkit的分叉Blink(Google Chromium计划)

      细节不再赘述,详见: https://baike.baidu.com/item/%E6%8E%92%E7%89%88%E5%BC%95%E6%93%8E 

            https://www.cnblogs.com/qcloud1001/p/10305293.html

第七篇  应用级别的IDE对SDK引入与API的语言翻译和公布

      由此可见,无论是GUI还是浏览器排版引擎,主宰它们的,都是背后的设备制造商和操作系统研发者和投资者。

      主宰者,他们,将所有的代码,以SDK(软件开发包)的形式,封装和发布出来,以闭源或开源的形式供应给全球的IDE(软件集成开发环境)供应商。

      IDE(软件集成开发环境)供应商,再将SDK引入其开发工具,翻译成自己的语系所能被工具链编译的语言代码,提供给码农们使用。

      因而,为了充分应用硬件级别的技术升级,各操作系统级别在不停的升级和优化,其SDK再不停的升级和发布,IDE的供应商们在不停地跟进、引入、翻译成API、优化和主导扩展自己的语系能力。

      而今,无论你是哪个语系,无论你是哪个IDE阵营,您都得熟练掌握H5+JS+CSS的基础。客户端的Vue.js也好,服务端的Node.js,都是开源阵营对它们的扩展而已,怕的,就是你基础不牢靠,不会应用它们。

第八篇  码农们请思考:如何提升UE用户体验、从技术角度讲怎么样赚更多的钞票?!

      如上分析,您是否和我一起认识到,编程语系并不是最主要的?!IDE开发工具也非影响我们产品的客户认同的主要因素?!

      因而,从今天起,放下本文一开始讲述的抱怨、放下对自己语系功能还欠缺点什么的不满、放下对自己所用IDE的太多的要求。

      放下吧,多研究操作系统,多学习操作系统指令。放下吧,牢靠H5+JS+CSS的基础,多研究浏览器的“脾气”和特性。放下吧,在牢靠的基础之上,充分运用开源阵营的代码。

      放下吧,多看点IDE及其框架提供给你的源代码,比什么都强......

      放下啦,就很容易释怀!放下啦,就轻松啦!轻松啦,上阵就信心十足!信心十足、努力突破自我,就一定能获取最终的成功!

 

喜欢的话,就在下面点个赞、收藏就好了,方便看下次的分享:

 

 

 

 

 

 

 

 

 

 

 

这篇关于程序员,您到底应该做什么?肺腑之言的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/343131

相关文章

购买磨轮平衡机时应该注意什么问题和技巧

在购买磨轮平衡机时,您应该注意以下几个关键点: 平衡精度 平衡精度是衡量平衡机性能的核心指标,直接影响到不平衡量的检测与校准的准确性,从而决定磨轮的振动和噪声水平。高精度的平衡机能显著减少振动和噪声,提高磨削加工的精度。 转速范围 宽广的转速范围意味着平衡机能够处理更多种类的磨轮,适应不同的工作条件和规格要求。 振动监测能力 振动监测能力是评估平衡机性能的重要因素。通过传感器实时监

cross-plateform 跨平台应用程序-03-如果只选择一个框架,应该选择哪一个?

跨平台系列 cross-plateform 跨平台应用程序-01-概览 cross-plateform 跨平台应用程序-02-有哪些主流技术栈? cross-plateform 跨平台应用程序-03-如果只选择一个框架,应该选择哪一个? cross-plateform 跨平台应用程序-04-React Native 介绍 cross-plateform 跨平台应用程序-05-Flutte

编程应该用 Mac 还是 PC ?

『有人的地方,就有江湖』—徐克。笑傲江湖。     序     一个竞争的市场,就会有对立的产生,这世界存在著很多不同的领域,领域好比是个江湖的缩影,因此就有许多门派的纷争,例如说浏览器领域有著最大宗的IE派,门派成长速度飞快,武功版号跳的跟台湾物价指数一样快的Chrome门,不断被模仿,一直被超越的Opera派;韧性极强,一直对抗几大势力的Firefox派等等,程序语言也有自己的领域

LabVIEW程序员是怎样成长为大佬

成为一名LabVIEW编程领域的“大佬”需要时间、实践、学习和解决复杂问题的经验。尽管LabVIEW作为一种图形化编程语言在初期可能相对容易上手,但要真正成为精通者,需要在多个层面上深入理解。以下是LabVIEW程序员如何逐步成长为“大佬”的路径: 1. 打好基础 LabVIEW的大佬们通常在初期会打下非常坚实的基础,理解LabVIEW编程的核心概念,包括: 数据流编程模型:Lab

【H2O2|全栈】Markdown | Md 笔记到底如何使用?【前端 · HTML前置知识】

Markdown的一些杂谈 目录 Markdown的一些杂谈 前言 准备工作 认识.Md文件 为什么使用Md? 怎么使用Md? ​编辑 怎么看别人给我的Md文件? Md文件命令 切换模式 粗体、倾斜、下划线、删除线和荧光标记 分级标题 水平线 引用 无序和有序列表 ​编辑 任务清单 插入链接和图片 内嵌代码和代码块 表格 公式 其他 源代码 预

程序员必备心理学——心流

心理学之心流 前言一、“心流”是什么?二、心流的好处二、如何进入心流心流状态的四个阶段第一个阶段:挣扎第二个阶段:放松第三个阶段:心流第四个阶段:巩固 进入心流的技巧 总结题外话 前言 你是否常常感觉自己明明学习了一整天,但是就是感觉没有太多的收获。这个时候除了你的学习方向等问题之外,也可能是你的学习方法太低效了。作者本人就经常有这种情况,好在偶然间在b站刷到一个大佬的这个心

虚拟主机应该如何设置

假设我们在一个独立的环境下,现在我的根目录在D盘下的wamp下的www下!现在先来配置虚拟主机: 假设我们在一个独立的环境下,现在我的根目录在D盘下的wamp下的www下!现在先来配置虚拟主机: 1.先打开apache的配置文件httpd.conf,并去掉#Include 0conf/extra/httpd-vhosts.conf前面的#号。 2.打开apache的apach

程序员都在使用的画图工具

大家好,我是袁庭新。 程序员都在使用的画图工具,你一定没用过这款画图工具吧!我教程中的架构图都是用它来画的。 比如我编写的RDB工作原理图就是用draw.io绘制的,如下图所示: 再例如Redis集群故障恢复原理图我也是通过draw.io工具绘制的,如下图所示: 是不是觉得draw.io绘制的图形特别简洁、美观。它的官网是: https://www.drawio.com dra

为什么你应该从现在开始就写博客---刘未鹏

(一)为什么你应该(从现在开始就)写博客 用一句话来说就是,写一个博客有很多好处,却没有任何明显的坏处。(阿灵顿的情况属于例外,而非常态,就像不能拿抽烟活到一百岁的英国老太太的个例来反驳抽烟对健康的极大损伤一样) 让我说得更明确一点:用博客的形式来记录下你有价值的思考,会带来很多好处,却没有任何明显的坏处。Note:碎碎念不算思考、心情琐记不算思考、唠唠叨叨也不算思考、没话找话也不算思考

GitHub:代码是程序员沟通最直接的手段

如果不是 Andreessen horowitz 的投资,估计 GitHub 很难被福布斯、CNN、纽约时报等传统媒体注意到。普通大众之前不了解这个工具,是因为它距离记者的世界太远了——GitHub 是一个程序员所使用的托管项目的服务。 但在一些程序员眼里,它不仅是托管项目的地方,还是“开源”项目的大本营,而且是提高程序员“技术水平”和“技术品味”的地方,更是一个程序员社交的地方。