关于.Net和Java的看法——我见过最牛的一个小实习生经历
1、背景
笔者(小方同学在学习)是一个专科院校的一名普通学生,目前就职于某三线城市的WEB方面.Net开发实习生,在找实习期间和就业期间的一些看法,发表此文,纯个人想法,欢迎讨论,指正!哈哈轻点喷~
在校学习技术方面也是.Net方面,所以实习就是.Net开发实习生。我也很喜欢这门优雅的语言!
在还未上专科院校的时候,我就开始了解编程,从启蒙的VB,到简单的排序算法。我曾经感叹:简单的几行代码,就可以完成这么多好玩的东西!跟风在网络上看到程序员的高薪,身为一个农村的孩子,也想通过编程赚取高一些的薪资和在办公室办公。
但当我开始在B站(VB也是通过视频学习)等渠道,搜索编程语言,教程的时候,十之八九的视频教程都是建议学习Java,无论是就业还是薪资方面,仿佛都告诉我:选择java就可以走上人生巅峰!迎娶白富美!
当进入学校,大一的课程是Html Css Java的时侯,我觉得这样子的路线,和网上说的是一样的!参加了社团之后,有学长和我说,我们的主要学习技术栈是.Net方面,我当时也是一脸问号?没听过这个,好像也不出名。会不会是个坑?
2、带着疑惑
之前在网上看的什么介绍视频都是java这种的,给了我一种,java是最好的语言的感觉,大环境都使用他。以至于我一开始是不太喜欢.Net的,现在回头想想,还是太天真了~ 从大一下学期开始,我们的课程变成了C#,WinForm 方面,我一看,这不是和VB有点相识吗,都是托拉拽,写事件的。在内心更不喜欢C#了,觉得有点低级 哈哈哈(WinForm 开发大佬别喷我),那也是再次加深了偏见,我和我们专业课老师也曾对话:
- 我:老师,我们为什么要学习这个语言,就业不会很困难吗?他好像不是这么流行?
- 老胡:不要纠结于语言,主要是编程思想和学习方法。
- 我:???,我觉得有点迷茫,不知道能做什么,我会了什么?
- 老胡:以前的学生也有过你这样的迷茫,大部分人都会有,我的建议是跟着一步一步走下来,还是想的太多做的太少,人才会迷茫。
在那时,我还是不理解为什么要选择这门语言,但我还是跟着老师一步学下来了,后来的的课程是Sql,.NetCoreMVC ,JavaScript,NodeJs,Vue,WebApi
3、生活中迷茫
在专科院校,我们学院算是管理比较严格的。辅导员和亲妈一样,一周查寝两三次,经常和你聊天,在课堂学习的时候,还会来抓人是否有玩手机,偷偷睡觉的。也是这种环境,让我没机会偷懒,很感谢我的两位辅导员(孙姐,琦姐)! 咳咳,跑题了
其实在宿舍我们也曾一起聊天这方面:
- 舍友:我觉得我们学的太杂了,一会学这个一会学那个,啥都是浅尝辄止,就怕到时候出去都没人要
- 我:我也是觉得啊,我自己找了java的学习路线,你要不要看看?
- 舍友:我瞅瞅
- 舍友:这也太长了吧,技术要点这么多吗?
- 我:对啊,我看到招聘软件上,就是写这么多技术要点?真的有大佬这么牛吗?
在这期间,我也自己在看javaSE的基础教程,发现和C#有点像啊这个语法?吃惊!
4、开始实训
时光飞快,我来到了大二的下学期,那时候刚学完WebApi和Vue,终于有点前后端的感觉了(第一次体验到前后端分离),在我们学院,大二的暑假是不放假的,在学校用两个月做实训,模拟企业开发,分组分工,大家一起做一个项目。
在分完组的时候,我就想:多分几个技术比较厉害的同学给我哈哈,我们做酷一点! 老师还是按平均水平给我们分好了,不好不坏。第一个项目是blog,一开始老师说是简单的完成功能就可以了,我心想:那不是很简单吗?
后来发现两周的时间,还是赶得半死才做出来!
从数据库建模,确认表关系、到前端页面的原型、页面的效果配色、后台的框架的搭建(.Net6 WebApi + EfCore + JWT +非常简单的借鉴DDD的分层概念)第一次感觉到团队的沟通协作和项目是如何从一堆报错到另外一堆报错的哈哈
两周的时间还是太短了,至少对于我这种第一次上路的新手司机,最后也是匆匆忙忙,直到验收会的前十分钟,还是修改部署到云服务器上。也是第一次感觉这么紧张且激动!
然后就是开始了第二个练手项目:教务系统,比第一个项目难度高了一个等级,就单纯表的确定,就讨论了两天,还是初步模型,后来改了N次 以及确定使用无显示外键这种关系。由于涉及到排课,我们还想着如果并发了,应该要加上锁的情况。还有如何更好的借鉴一下DDD这个思想。后端要用上什么新的技术,可以更好的性能。前端要小程序和网页版,区分教师和学生....
在第二个项目写的时候,就有一种感觉,都是CRUD,怎么有这么多花样,这么多玩法呢?
5、实习
很快到了八月底,我开始了投简历的时候,一共投了几十家,由于学历的问题也被拒绝了几次,给我整的有点灰心,也拿到了三个面试的机会
- 某苏州软件公司,人员在200人左右,主要使用WinForm -失败
- 目标城市软件开发公司,人员在50人左右,.Net6等比较新的技术 -通过
- 目标城市软件开发公司 人员在300人左右,主要使用WinForm -通过
在九月我就来到了目标城市准备入职啦,我记忆非常深刻的是:在和我同时入职的两个人,一个是软件测试主管,一个是八年的前端工程师。
- 我:大哥,你们都是入职什么岗位呀?
- 前端工程师:我做前端的。
- 前端工程师: 你是实习生吗?看起来挺小的。
- 我:对,我是.Net实习生。
- 前端工程师:现在还有在做.Net的实习呀,我都没听过几个了哈哈
- 我:.....
在入职之后,我才发现了,就我一个独苗.Net实习生,其他实习生都是做Java方向的。主要的维护以前的老项目。用的是WinForm 等技术。
6、再看Java
萌生了离职的想法,因为刚入职嘛,第三天就跑路了,主要是个人原因不是很能接受WinForm ,可能是我觉得他比较老旧了吧,和我想要的不一样哈哈(再次求轻点喷),后来入职了那家50人左右的公司,不卷不加班,大家人都很友好,技术方面也是比较前沿的,完美符合了我的要求!!
然后在工作的时候,就发现了,.Net太优雅了,对比Java,拥有太多语法糖,写起来很舒服。但也是因为微软帮我们做了太多的事情,反而让我们不知道底层原理,设计模式等。
我深知一门优秀的语言应该是易用易学,好上手的,这点上C#完胜!宇宙最强的IDE,一站式帮你配置好了!
反观Java,在环境变量配置,IDE的选择等等,就会劝退一些小白(我一开始也不知道怎么配置环境变量)。
但在我的想法中,也许底层原理,设计模式这些,作为一个程序员应该懂,然后再去使用这些语法糖,知其然又知其所以然!
我开始在博客园中大量的搜索关键词 .Net转java 发现了很多这样子的文章。也看到对立,引战的发生!这点让我写一篇文章十分害怕哈哈,再次声明,我只是分享我的一些经历!
我看到了自由飞大佬的文章,其实也发现了学校选技术的用意,java的竞争太过于激烈,而C#和Java相近,市场也有需求。先就业再择业,先入行再选择!
至此,我明白了当时老胡说的意思:不要纠结于语言,主要是编程思想和学习方法。
7、总结
现在我也仍然在学习.Net 和java。在工作上使用的是.Net ,回来看的视频教程是Java,我想通过java来更深入的了解一些底层一点的机制,学习更新的技术。也是因为java的教程确实比.Net更加丰富,生态会更好一点,不可否认!
但我依然喜爱这C#这门十分优雅的语言,喜欢它无处不在的语法糖!在工作上也仍然会继续深入研究它!
最后,也告诉自己:不要纠结于语言,主要是编程思想和学习方法。
8、补充
这是在文章发出之后的第三天,评论区各位大佬前辈给了我非常多的建议和思路,在此表示十分感谢!
此处特别感谢 @蛀牙 前辈,对我的启发非常大!在此分享给后来和我有同样困惑的同学!
-
蛀牙前辈:
不要纠结于语言,主要是编程思想和学习方法。这句话是有阶段性的适用的,不是说从学习编程开始一辈子都是适合使用这句话来做指导。
第一阶段:小白入门,这个时候啥都不懂,语法都看的有点懵逼的阶段,你说不纠结语言要纠结什么?
第二阶段:对语言的部分基础语法有一定的熟悉,能相对熟练的写一写算法,打印一些字符图案在控制台上等。这个时候就有一些编程思想的涉及,例如循环分支这些逻辑性的东西。它与语言关系不大,但是你不熟悉某个语言,让你直接上手,也不一定行,毕竟语法还是有一些差距的,这个时候也还没有到不要纠结于语言,主要是编程思想和学习方法。
第三个阶段:系统项目开发,这个阶段大部分人是根据某个模板,然后里面填一些简单的逻辑代码,并且大部分都是数据库查询的地方相对复杂。如果这个时候换个不熟悉的语言来做,因为存在差异性,大部分也没有办法快速上手,所以这个阶段也谈不上什么编程思想,主要也还是在纠结编程语言。
第四个阶段:已经熟练掌握各种设计方法论,例如面向对象设计与分析,设计模式等。可以非常好的分析各种需求,并把这些需求转换成各种模型,能写出漂亮的代码来实现这些模型。看别人好的代码的情况下,看到一些命名和写法就能知道别人的意图。也能非常快的掌握一门新语言。这个时候就真的是 语言无关。所以从学习和提升自己能力方面来讲
多学点语言,借鉴他们之间的相同处来理解一些编程思想,分析他们之间的不同处,来理解提升自己的设计能力。
多学点不同领域的技术,例如后端,前端,客户端的开发,同样要去学习相同和不同处。
人的精力虽然是有限的,但是把这个时间拉长的话,完全是有时间的。如果是要从赚钱的角度来讲的话
成为一个程序员去给别人打工,绝对不是赚钱最好的手段。一定要打工赚钱这个路的话,那么相近水平的岗位,工资差距也不会非常大。岗位多少也不是问题,问题是那个这个阶段,哪个阶段的工资岗位你能面试的上。看工资的同时也要看自己的时间成本。时间永远的最珍贵的。从找工作的角度来看
要找到高工资,必须精准定位行业和公司,它是需要运气+部分实力+会做人会表现。
如果是承认自己非常平庸只能海投简历让别人来选你的话,那想都不用想啊,肯定是选择岗位多的呀,并失业了也能快速找到工作。看众多评论的结论,大概Java非常合适吧 -
我:
首先,非常感谢大佬在百忙之中抽空回答我这个问题,且非常的详细!在此表示十分感谢!
我仔细的阅读了多遍,目前个人应该还只是处于第三个阶段:系统项目开发,所以确实因为语言而纠结!从而有部分的精神内耗。
从学习的角度来说,我认同您说的,多了解多学习的学习思想,并且我目前也是这样子做的,反之则需要时间线拉长,同时也会害怕,浅尝辄止导致自己过分自大。目前也是正在寻找一个平衡点。
从赚钱的角度:个人认为工作就是使用你的时间,技能,换取报酬以及社会成就感,至于其他的方面,无非是舒服和不舒服的感受。当然这是我目前的想法。
从找工作的角度:我十分认同需要运气+部分实力+会做人会表现。从我为数不多的同学和自己的求职经历来看,运气实力临场表现缺一不可。不甘承认自己平庸,但也不会自大,只是还在纠结选择,自认不是一个有天赋的人,所以想走一条较为稳妥的路,也在不断的摸索!如果您可以给我一点建议,我将十分感激!我极其希望站在巨人的肩膀上,少碰壁! -
蛀牙前辈:
如果要我建议的话,你不要去纠结选择编程语言,因为这不是目标,所以没有什么好的依据去指定你做决策。从职场上来看,你需要选择的是行业。你要确定这个行业是你未来5到10年想要深耕的。
例如你想做游戏、想做金融、想做物联网、想做汽车相关、或者就是只想做外包帮别人做项目等等
确定了行业后,你去看相关行业有哪些比较好的公司或者团队你想要进去,并且有一定的机会,然后去了解他们用的技术大概都是什么,用什么编程语言。
然后你再定个目标,你是想要1年或者2年时间来努力达到进去这种公司团队。这样目的就很明确不会有纠结了。
这个建议看着很像废话,但是实际上能做到的没有多少人的。关于赚钱这个事情,其实它也分很多层次的,出卖劳动力赚取报酬只是最低层的。具体不这里展开讨论,你可以自己去了解了解。
关于会不会过分自大,这个是有特征来识别的,
例如你同学或者同事啥的,会不会有一些地方不懂,你刚好懂了,你就容易起鄙视他们的心理。
例如你学一个东西,会不会懂个表面就感觉自己好像已经完全懂了、
例如你做一个软件,会不会只做了某个例子功能,就觉得自己已经完全做完了。
例如你会不会觉得自己好像挺厉害,但是运气特别差,怀才不遇。但是实际上你只是一个专科生。
例如你会不会整体想着我要学xxxx提升自己之类的,然后一周下来,发现娱乐消遣时间占用你一半以上,今天玩游戏,明天刷短视频之类的。然后该怎么学习却完全没有搞明白。最后,人生没有稳妥的路,想要稳妥只有不断的提升自己,让自己有能力去看到未来。人的成长是一个复利的过程,你每天让自己进步一点点就够了,但是不要间断。
建议就这样。
-
我:
感谢大佬非常棒的建议!
对于目标,确实我还没有想好,或者说之前没有这种思路,因自己确实也不明白不了解有多少行业,自己感兴趣哪个?可能是需要我深思。
对于赚钱,在您说之后,我查找了赚钱的五个层次,上一条评论确实是自己目光太过于短浅,知识不足。感谢提醒!
对于是否会过分自大,感谢提供自查方式,我认为我自我潜意识和做法已经有符合前面部分条件。
最后,人的成长是一个复利的过程,使我明白,只要与上一天的自己相比,我有所进步,就已经是胜利!
我将做出以下改变:- 夯实基础,先将数据结构、计算机网络、操作系统三门主要基础重点,沉下心,了解并尝试深入。
- 在工作方面,上班不划水,做对自己有提升的事。
- 对于语言方面,尽量不去纠结,而是努力的先学,无论是Java或.Net,都是需要继续学习下去的!
相关文章:

关于.Net和Java的看法——我见过最牛的一个小实习生经历
1、背景 笔者(小方同学在学习)是一个专科院校的一名普通学生,目前就职于某三线城市的WEB方面.Net开发实习生,在找实习期间和就业期间的一些看法,发表此文,纯个人想法,欢迎讨论,指正…...

基于springboot+vue的“智慧食堂”程序设计实现【毕业论文,源码】
系统登录界面系统架构开发语言:Java框架:springbootJDK版本:JDK1.8服务器:tomcat7数据库:mysql 5.7数据库工具:Navicat开发软件:eclipse/myeclipse/ideaMaven包:Maven浏览器…...
学计算机选择什么编程语言好一些?
工资水平的话,目前人工智能、大数据和云计算等领域的工资相对较高,但是要求也高,学历,学习能力什么的。然后是后端开发,Python、Java、C等编程语言的工资普遍较高。 不用开发语言的优势 Java:Java是一种…...

持续集成 在 Linux 上搭建 Jenkins,自动构建接口测试
本篇把从 0 开始搭建 Jenkins 的过程分享给大家,希望对小伙伴们有所帮助。 文章目录 在 Linux 上安装 Jenkins在 Linux 上安装 Git在 Linux 上安装 Python在 Linux 上安装 Allure配置 Jenkinsjenkins 赋能 - 使用邮箱发送测试报告jenkins 赋能 - 优化测试报告内容…...
MySQL学习笔记(总结)
1. 数据库服务器操作命令 启动数据库:net start mysql80 (注释:windows命令) 停止数据库:net stop mysql80 (注释:windows命令) 重启数据库:systemctl restart mysql;…...

Android开发 Layout布局 ScrollView
1.LinearLayout 属性 orientation:内部组件排列方式,可选vertical、horizontal,默认horizontal layout_weight: 与平级组件长宽比例,需要将layout_width、layout_height其中一个设置为0dp,表明长或宽与平级组件的长…...

手撕数据结构与算法——树(三指针描述一棵树)
🏆作者主页:king&南星 🎄专栏链接:数据结构 🏅文章目录🌱树一、🌲概念与定义二、🌳定义与预备三、🌴创建结点函数四、🍀查找五、🍁插入六、&a…...
字节跳动Java后端开发实习面经
最近在和同学一起找实习,投了b站、字节和miHoYo的后端开发。b站二月底就投了,但现在也还没回复;miHoYo也还没回复,估计是只面向24届了;感谢字节,给了我面试的机会。字节真的处理好快,不到一周官…...

STM32实战项目-触摸按键
前言: 通过触摸按键控制LED灯以及继电器,具体实现功能如下: 1、触摸按键1单击与长按,控制LED1; 2、触摸按键2单击与长按,控制LED2; 3、触摸按键3单击与长按,控制LED3; 4、触摸按键4单击与长…...
安全行业-术语(万字)
肉鸡 所谓“肉鸡”说一种很形象的比喻,比喻那些可以任意被我们控制的电脑,对方可以是Windows系统,也可以说UNIX/linux系统,可以说普通的个人电脑,也可以是大型的服务器,我们可以像操作自己的电脑那样来操控…...
P1113 杂务(拓扑排序 or 记忆回溯)
题目描述 John的农场在给奶牛挤奶前有很多杂务要完成,每一项杂务都需要一定的时间来完成它。比如:他们要将奶牛集合起来,将他们赶进牛棚,为奶牛清洗乳房以及一些其它工作。尽早将所有杂务完成是必要的,因为这样才有更…...

Web3中文|政策影响下的新加坡Web3步伐喜忧参半
如果说“亚洲四小龙”是新加坡曾经的荣耀,那么当时代进入21世纪的第二个十年,用新加坡经济协会(SEE)副主席、新加坡新跃社科大学教授李国权的话来说,新加坡现在的“荣耀”是全球金融的主要“节点”或区块链行业发展的关…...

Java数据库高阶面试题,好程序员学员分享百度Java面试流程
小源下面分享一位好程序员的学员去百度Java面试流程!百度技术一面(20分钟)1、自我介绍很流畅捡重点介绍2、数据结构算法好不好挺好的(其实心还是有点虚,不过最近刷了很多好程序员出的题感觉没问题!)3、找到单链表的三等分点,如果单…...
栈和队列习题精选(持续更新中)
第一题(括号匹配)给定一个只包括 (,),{,},[,] 的字符串 s ,判断字符串是否有效。有效字符串需满足:1.左括号必须用相同类型的右括号闭合。2.左括号必须以正确的顺序闭合。…...

大数据开发 - Java入门6
目录标题do-while循环练习1:从键盘输入单词,讲输入的单词输出到控制台,输入是exit时退出循环练习2:键盘输入密码和确认密码,两次密码一致就退出循环打印注册成功,两次密码不一致就循环输入两次密码死循环fo…...

开源超级终端工具——WindTerm
1、下载和安装(我的是win10,其他版本各位自选) Releases kingToolbox/WindTerm GitHub 安装的话,相信大家不用我赘述了。 初始界面是这样的: 2、WindTerm使用 2.1 本地会话(最下面那个框,发…...

【Linux】信号常见概念
文章目录信号入门生活中的信号技术应用角度的信号signal函数注意事项信号的概念信号的产生信号的记录(保存)信号处理常见方式概述信号入门 生活中的信号 你在网上买了很多件商品,在等待不同商品快递的到来 但即便快递还没有到来,你也知道快递到了的时候应该怎么处理快递,也就…...

15000 字的 SQL 语句大全 第一部分
一、基础 1、说明:创建数据库CREATE DATABASE database-name 2、说明:删除数据库drop database dbname 3、说明:备份sql server--- 创建 备份数据的 device USE master EXEC sp_addumpdevice disk, testBack, c:\mssql7backup\MyNwind_1.dat …...

突发——字节跳动被要求出售 TikTok 股票,否则禁令,低代码也曾被打压
一、欲加之罪,何患无辞! 正值人们对TikTok和其它社交媒体平台对年轻用户的影响进行更广泛、持续的反思之际,美政客们以数据安全为由要求TikTok出售股票,已然不顾文明国家的体面。 在美国,TikTok拥有1.4亿用户&#x…...

2023年网络安全趋势
数据安全越来越重要。 我国《数据安全法》提出“建立健全数据安全治理体系”,各地区部门均在探索和简历数据分类分级、重要数据识别与重点保护制度。 数据安全治理不仅是一系列技术应用或产品,更是包括组织构建、规范制定、技术支撑等要素共同完成数据…...

stm32G473的flash模式是单bank还是双bank?
今天突然有人stm32G473的flash模式是单bank还是双bank?由于时间太久,我真忘记了。搜搜发现,还真有人和我一样。见下面的链接:https://shequ.stmicroelectronics.cn/forum.php?modviewthread&tid644563 根据STM32G4系列参考手…...

解决Ubuntu22.04 VMware失败的问题 ubuntu入门之二十八
现象1 打开VMware失败 Ubuntu升级之后打开VMware上报需要安装vmmon和vmnet,点击确认后如下提示 最终上报fail 解决方法 内核升级导致,需要在新内核下重新下载编译安装 查看版本 $ vmware -v VMware Workstation 17.5.1 build-23298084$ lsb_release…...
java调用dll出现unsatisfiedLinkError以及JNA和JNI的区别
UnsatisfiedLinkError 在对接硬件设备中,我们会遇到使用 java 调用 dll文件 的情况,此时大概率出现UnsatisfiedLinkError链接错误,原因可能有如下几种 类名错误包名错误方法名参数错误使用 JNI 协议调用,结果 dll 未实现 JNI 协…...
Leetcode 3577. Count the Number of Computer Unlocking Permutations
Leetcode 3577. Count the Number of Computer Unlocking Permutations 1. 解题思路2. 代码实现 题目链接:3577. Count the Number of Computer Unlocking Permutations 1. 解题思路 这一题其实就是一个脑筋急转弯,要想要能够将所有的电脑解锁&#x…...
基础测试工具使用经验
背景 vtune,perf, nsight system等基础测试工具,都是用过的,但是没有记录,都逐渐忘了。所以写这篇博客总结记录一下,只要以后发现新的用法,就记得来编辑补充一下 perf 比较基础的用法: 先改这…...
大模型多显卡多服务器并行计算方法与实践指南
一、分布式训练概述 大规模语言模型的训练通常需要分布式计算技术,以解决单机资源不足的问题。分布式训练主要分为两种模式: 数据并行:将数据分片到不同设备,每个设备拥有完整的模型副本 模型并行:将模型分割到不同设备,每个设备处理部分模型计算 现代大模型训练通常结合…...
Java求职者面试指南:计算机基础与源码原理深度解析
Java求职者面试指南:计算机基础与源码原理深度解析 第一轮提问:基础概念问题 1. 请解释什么是进程和线程的区别? 面试官:进程是程序的一次执行过程,是系统进行资源分配和调度的基本单位;而线程是进程中的…...

华为OD机考-机房布局
import java.util.*;public class DemoTest5 {public static void main(String[] args) {Scanner in new Scanner(System.in);// 注意 hasNext 和 hasNextLine 的区别while (in.hasNextLine()) { // 注意 while 处理多个 caseSystem.out.println(solve(in.nextLine()));}}priv…...

elementUI点击浏览table所选行数据查看文档
项目场景: table按照要求特定的数据变成按钮可以点击 解决方案: <el-table-columnprop"mlname"label"名称"align"center"width"180"><template slot-scope"scope"><el-buttonv-if&qu…...
【Elasticsearch】Elasticsearch 在大数据生态圈的地位 实践经验
Elasticsearch 在大数据生态圈的地位 & 实践经验 1.Elasticsearch 的优势1.1 Elasticsearch 解决的核心问题1.1.1 传统方案的短板1.1.2 Elasticsearch 的解决方案 1.2 与大数据组件的对比优势1.3 关键优势技术支撑1.4 Elasticsearch 的竞品1.4.1 全文搜索领域1.4.2 日志分析…...