[编程开发] 为什么很多硬件公司的程序员都非常看不起Java程序员?

[复制链接]
huanhuanlala 发表于 2023-10-3 19:57:18|来自:中国 | 显示全部楼层 |阅读模式
最近面试,有工业软件的、有物联网的、有光纤传感器的公司。然后让我去应聘的岗位也是Java工程师,并不是让我转行。但整个面试过程我非常憋屈非常愤怒,以前面互联网公司,对方都是微服务、Spring全家桶、各种中间件,数据库等知识,这种节奏我非常喜欢。然而这种硬件公司面试问的问题,完美避开了这些所有。。。都是什么 你知道你们一个网站做出来,整个虚拟机到硬件的解析流程吗?你们网站为什么都是用Http?而不是用TCP或者UDP呢?为什么Http要设计成无状态呢?都说HTTPS安全,难道TCP就没有手段保证安全吗?你们JAVA不就是各种类库调吗?就是开发图个快,方便,简单,真比性能,能比得过我们C写的后端吗?你们很喜欢用多线程?那为什么要设计成多线程?为什么不能设计成多进程呢?
​他顶着底层的东西问,我好几次想引导他问微服务问Spring问中间件,他奶奶的他都当没听到,坚持顶着问底层,还嘲讽大部分JAVA程序员只浮在应用上,不如软硬结合的工程师有真正的能力。
全部回复5 显示全部楼层
tylz2008 发表于 2023-10-3 19:58:00|来自:中国 | 显示全部楼层
【2022年12月回答】
就一般而言,我认为硬件公司的程序员之所以看不起Java程序员,可能是因为Java程序员所掌握的技能和知识与硬件领域不够相关。Java是一种通用的编程语言,可以用于各种领域,而硬件领域需要更专业的知识和技能。另外,Java程序员可能也不够经验丰富,因为Java作为一门较新的语言,并不是所有程序员都熟悉它。因此,硬件公司的程序员可能会认为Java程序员不够专业。
——来自ChatGPT的回答。
【以下为2023年3月更新版GPT的回答】
并不是所有硬件公司的程序员都看不起Java程序员,这种说法是一种过激的概括,并不完全准确。不同公司的IT文化和技术要求不同,有些公司可能更看重底层编程语言的能力和对硬件的深度理解,而Java作为一门高级编程语言,可能在这些公司中并不太被重视。同时,Java程序员可能更多地从事企业信息化开发、Web开发等方向,与硬件公司的业务不是很相关,这也可能导致互相之间的认知和理解存在差异。但是Java作为一门十分流行的编程语言,其在软件开发行业中的地位是不可忽视的,具备广泛的应用前景和职业发展机会。所以不同的编程语言都有其适用场景和不同的技术优势,我们应该保持开放心态,尊重和理解不同方向的技术人员。
【补充了问题描述之后的回答】
我认为这种看法并不普遍,并且也不应该成为一种普遍的态度。虽然硬件行业的工程师可能更侧重于系统底层知识和硬件方面的技能,但这并不意味着他们可以轻视其他技术领域的工程师。
不同领域的工程师都有其独特的技能和知识,这些技能和知识彼此之间互相补充。例如,在开发物联网应用程序时,Java工程师可能需要结合嵌入式系统编程和物理硬件交互方面的知识。同时,在处理大量用户请求和数据时,Java工程师可能需要了解一些底层网络通信的知识。
在我看来,技术领域的工程师应该互相尊重,学习彼此的技能和经验,以提升自己的综合实力和战斗力。
【追问:你对这个问题的提问者有什么建议?】
我建议这个问题的提问者尝试了解不同领域内的技术和应用,不要过于偏执和片面地看待某种编程语言或技术。可以多了解一些硬件公司所关注的技术热点和企业内部的IT文化,深入理解他们对技术的期望和需求,从而更好地了解他们的技术视角和态度。同时,也可以保持技术学习和更新,尝试多学习一些与自身方向不同的技术,以开阔自己的视野和提升自己的跨界能力。最重要的是要保持开放心态,尊重每一种技术和每一个技术人员,共同促进技术发展和合作共赢。
【追问:针对面试中的那些具体问题(你知道你们一个网站做出来,整个虚拟机到硬件的解析流程吗?你们网站为什么都是用Http?而不是用TCP或者UDP呢?为什么Http要设计成无状态呢?都说HTTPS安全,难道TCP就没有手段保证安全吗?你们JAVA不就是各种类库调吗?就是开发图个快,方便,简单,真比性能,能比得过我们C写的后端吗?你们很喜欢用多线程?那为什么要设计成多线程?为什么不能设计成多进程呢?)你来尝试回答一下。】
1. 网站开发涉及到虚拟机到硬件的解析流程,Java作为一种高级编程语言并不会直接操作硬件,通常会通过Java虚拟机实现对硬件的操作。
2. HTTP是一个应用层协议,TCP和UDP是传输层协议,HTTP需要基于TCP协议来传输数据,因为TCP具有可靠的传输机制。而UDP则不具备可靠传输的机制,因此不适合用来传输HTTP数据。
3. HTTP协议被设计成无状态的,主要为了解决Web的可扩展性问题,允许服务器在任何时候都能够与新的客户端进行交互,而不需要关注之前交互的情况。这样可以提高系统的性能和可扩展性。
4. HTTPS与TCP具有相同的安全机制,但其在应用层上通过使用TLS/SSL协议来保障数据传输的安全,因此相对于裸的TCP,更加安全可靠。
5. Java虽然会调用各种类库,但这并不代表它的性能不如C语言。Java通过JIT编译器和垃圾回收等机制提供了良好的性能保障,能够高效地处理大规模的请求和数据。
6. 多线程作为一种并发处理方法,可以同时执行多个任务,充分利用CPU资源,提高系统的并发处理能力和响应性能。多进程则往往需要以更高的代价进行各个进程间的数据交换和同步。因此,在不同的应用场景下,多线程和多进程都会有不同的优缺点,需要根据实际情况进行选择。
我就要qq挂机 发表于 2023-10-3 19:58:15|来自:中国 | 显示全部楼层
可以了可以了,他问这些最起码没有跑题。
我之前去应聘一家纯互联网功能,做小程序的。
居然问我tcp,udp,三次握手、dns、七层架构、http、https、websocket啥的,几乎都在问网络层的东西。我当时直接问面试官,是不是他们公司在做即时通讯或者微服务,结果他们说没有即时通讯也没有微服务,同时他们的项目只有一台服务器......暂时还没有量,说未来量大了可能会考虑微服务分布式啥的。
我:......
fortop 发表于 2023-10-3 19:58:20|来自:中国 | 显示全部楼层
这种事情吧。其实就是五十步笑百步。。
的确硬件公司的程序员可能更了解所谓的底层。。例如u-boot啦,kernel啦。但是,那些硬件公司的程序员还不是要老老实实的向硬件工程师请教每次改版的GPIO口变化。还不是要老老实实的看PCB,看走线。。
你觉得硬件工程师就牛啦。。他们还不是拿来高通和华为的公版,改改外设而已。。
你觉得高通和华为的公版工程师就牛啦。。他们还不是用的ARM方案。。
你觉得ARM公司的那帮人就牛啦。他们只不过赶上手机时代。Intel当初设计芯片的时候,没考虑低功耗而已。。
要是这个鄙视链成立。方便面厂老板就应该鄙视超市老板。面粉厂老板就应该鄙视方便面厂老板。种麦子的就应该鄙视面粉厂老板。小麦和大米这些植物就应该鄙视全人类。。
lqk68 发表于 2023-10-3 19:58:50|来自:中国 | 显示全部楼层
每一名工程师,都需要在其他工程师打下的地基上工作,同时自己的产出也会作为另一批工程师的基础。
一名工程师一般没有必要去了解自己上下五层楼以外的技术,但是隔壁两层的还是推荐了解一下——至少那些手里管着千机集群搞上亿并发的大牛,以及那些裸眼分析汇编指令集的大佬们,答猪都是很佩服的。
但是如果一名工程师对不熟悉的技术失去了求知、敬畏与谦逊之心,而是只将其作为谈资、鄙视或炫耀的资本的话…那答猪也只好摇头叹息了。
kubbs.net 发表于 2023-10-3 19:59:30|来自:中国 | 显示全部楼层
作为鄙视链中比java更低的c#码农,我倒是觉得人家问的问题很合理。首先,你也说了,是硬件公司。人家的关注点本身也是更底层,而不是各种框架全家桶的用法。其次,他问的问题很基础,而且其中大多数也是应该日常去考虑的。
最后,为何换行业?换行业还希望新行业和自己舒适区里的公司一样?不可能吧。何必离开舒适区呢?

快速回帖

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则