.net程序员工作两年总结
(2015年9月) 最近换了工作,面试了很多家公司想总结下,以便以后回顾知道自己是怎么走过来的。
入行背景:
我是半路转行做软件开发的,2011年7月大学专科毕业,大学专业是:机械制造及其自动化;2011年1月到8月底,在合肥格力电器工作多半年,2011年9月份开始接触编程。
本来只是看了《硅谷禁书》《李开复自传》书上有个观点,一个人千万不能年纪不大,就落后了时代,一定要学会用这个时代的先进技术,那就是计算机互联网技术。我深信不疑!
本来我只是想学习下搜索技术,人人都是讲互联网是个知识宝库,你要学会使用,所以我就想学学搜索,学学办公自动化,学学绘图软件,学学报表制作,以便我能进入机械行业的工艺部门,能在办公室工作,而不是在一线生产线。在一线生产线时,天天被要求做俯卧撑,受班长组长的批评训话,说工作效率低,工作不努力,没有达到规定产量达标,每天下班后总是几个可怜虫和我被留下来,免费加班两个小时,甚至更长时间,真是感觉很委屈很窝囊。个人性格腼腆,思的杂,想的多比较敏感,感觉不适应工厂的那种军事化管理。然后7月份领毕业证时就到北大青鸟咨询了下,有没有电脑培训班,后来在工厂上班,常常接到老师电话邀请,机会难得,速来报道。搞得我有点想离开工厂了,只差一个刺激,只要刺激了我的自尊心我马上就离开。
然后2011年8月27号左右,到郑州的北大青鸟翔天信鸽中心去学习编程去了。去之前老师告诉我.net非常简单,图形化界面拖拽后,设置下属性就行了,我在大学学过autoCAD,以为就像画图一样,我认为我是可以学好.net编程的。北大青鸟有个学士后课程,在线学习,那个课程学习者扮演一个角色,升级学习。后来我才明白,学编程如果没有老师,上来就学那种纯视频引导的课程容易走上歧途,进入死胡同,没有经验的人很容易就卡着学不下去了。我也不能幸免,我卡住了,我卡到了2012年底。
学士后课程号称三个月改变一生,三个月就就业变身白领,月薪6000以上,我当时也是自信满满,我在大学是规规矩矩的学生,没逃过课,也去过图书馆,没有特别擅长的方向,但是实验也都能做出了结果,班级综合成绩第二名,属于踏实型。我刚开始完全就是模仿入门课程学习,学编程前我一点编程都没接触过,只学过单片机和PLC还有数控,PLC当时学的很好,单片机毕业时都忘完了。
开始培训了,没有老师,没有讲课,前两周我就是到学校连上网,装上vs2010,登陆上学士后账号,然后开始学习c语言,笔记做的非常详细,也都能运行处结果,自己感觉很满足。两周后班主任老师,找我说你怎么不开始正式课程学习,我看你没有进度啊?我当时一愣我不是在学习吗?老师就说,你不要在那个入门C上徘徊了,你赶快开始学习C#,C#和C没有关系,你不需要看前面课程,然后我就开始学习C#。当时真是基础太差了,打字是一指禅,慢得特别很,然后我就开始学习C#的数据类型,if判断,while循环,for循环这些入门课程,那些在大学学过两年的同学都是一周多点都学完了,我硬是学了快一个月,从定义一个变量,到数组,到各种逻辑判断,到类的定义,继承,方法,到集合,学的非常细,做各种练习题,我自己不着急毕业,我想学懂学会。(因为开始学编程我还比较小,我1991年出生)。
后来班主任老师又找我了,说你不能这样啊,你的进度太慢了,都一个半月了,你还在基础这一块,要这样下去你怎么能过完年(2012年3-4月)就业呢?然后我就着急了,开始多看视频,不做练习题。这里回头提一下我用vs2010写练习时,刚开始我非常纠结于为什么写一行,写一个语句后面要加分号,我企图搞明白为什么,我经常漏写分号,然后就不到为什么出错,因为我不太明白语句这个概念,有几次为了一个很小的错误,我需要等老师30多分钟他才能跑过来帮我看一眼,说:“这不是很明显吗?少了个分号,着你看不到吗?”当时真的感觉自己太差了,老师不知道完全无基础的人的无知程度,他不知道我在程序面前有多傻,我无法理解为什么需要方法,我宁愿复制代码,我也不愿意写方法,当时我就是这么固执,类型这个概念我也是后来很久才突然明白,int类,和class Student 类,其实它们是一样的,都是一种类型而已,只不过在能存中不一样,在存储或者表达数据方面不一样。一个人无法明白,他没有理解的东西,当时我就是那样的状态蹒跚前进慢慢学习的。
然后快到十一了,当时在和一个女孩谈朋友,因为我从工厂辞职了,就没了收入,学习上也是困难重重,然后我就不想给她过生日,当时是真没钱给她过,因为从工厂了出来我又变为一个学生了,后来不怎么关心她就慢慢分手了,她也不再理我。然后就是就是继续学习,在学到关键字this,as,is关键字, 索引器,多态这个地方我卡住了,我怎么也学不通,我无法灵活变通的使用它们,再下来是学习事件和委托,难度一下子加高了,我不了解C语言的指针,我就无法理解委托这种奇怪的东西,我才刚刚搞明白方法是一段可以重复使用的代码块,然后委托怎么样闹不明白,这个时候学校的网出问题了,我对学校也有点熟悉了,同学也熟悉几个,网友问题,他们就要回家学,其实到家(租的地方)大部分都不学习,女生也不学,因为感觉蛮吃力的。
我跟着也回宿舍学习几次,慢慢的天气变冷了,宿舍特别冷,学校也特别冷,只看视频,不怎么做练习,发现到后面前面的东西又忘记了,然后就回头学,效率低下来,这个时候开始学winform,学习做视频上的练习,winfrom虽然简单,但是要做个和视频上一样的练习项目还是挺花费时间的,可能一节课,把练习做完需要两三天才行,当时没有这样学习过,其实我一直都没有培养出好的学习方法,以前学习都是上课45分钟,作业几十分钟搞定了,然后下一课。这个时候学一课需要做的练习时间非常长,然后自己就 把握不好,进进退退,企图把平台的知识学完,常常倒回去看多态,抽象类,接口,索引器,委托,二维数组,这些难点。然后几天一周下来,不知道自己搞到哪了,似乎这一周什么都没学会,现在看来是人在学习时常常高估自己的能力,编程不是高中背书,不是做数学化学题,它是技能,是需要大量练习和长时间实验感悟的。
到过年时,我学到winfrom了,然后过完年继续回学校学习,过了一个年,又忘记了一部分,然后就开始学习数据库,学习三大范式,数据库本来我是感觉挺简单的,也学得会,但是开始学函数,学子查询,学游标时,我又蒙了,后来我也明白,这个东西需要看多方面的资料,需要在使用中慢慢感悟,死劲看,死劲想是无法明白 的。这个时候还要学习IO操作类TextReader,TextWrite,StringReader,StringWrite,SteamReader,SteamWrite;文件操作类File ,Directory,FileInfo DirectoryInfo;XML操作XmlDocument,XmlNode等;还有序列化特性还有其他特性学习;这个时候我非常搞不明白特性这个东西,我感觉它很丑陋,后来慢慢明白它就是个标记,要给一个类加上点额外信息,不用特性用什么呢?就顺理成章了。
这里提一下,这一块学的差不多的时候,学校给了一个项目就是,模仿windows做一个资源管理器,要求实现树形菜单展示电脑上的资源,能实现新建,修改,复制,剪切,删除,序列化保存信息;时间是两周,这个项目我差不多以两周做完了,但是升级考试的时候,我怎么也考不过,这个是在线平台为了保证你不能随便跳着学习,防止好高骛远,然后我就考试不过去,然后就一直在前面耗着,当时我不知道这个考试可以作弊,可以试答案,现在看来那个考试的标准比较高,就像大学如果严格考试,题不要太简单,大专学校很多人要不及格一样,我当时怎么也考试不过去,因为难点我没学会也没理解,学会的也是死板硬套自己其实是没学会的,只是死板硬套的记住了一些东西。
卡住过不去,然后我就一边回头学习,一边深陷在事件,委托,多线程,序列化里面,一边慢慢迷失了方向,这个时候学校也没有继续找老师,因为以前的辅导老师离职了,完全没有老师指导了。学校网速一直没解决,经常掉线,应该是学校为了省钱,给我们三十多个学生拉了个10MB的网线,虽然不是人人都会同时看视频,但是,10MB让30个人分着用,网速自然也是一种折磨,我们当时也真傻不知道向学校抗议,还傻傻的尝试去练CMCC免费热点,我当时还掏钱开了半个月。然后很多同学都开始三天打鱼两天晒网,经常回到家中打游戏,说不去就不去了。
当时70多个学生报名学习.net编程,最后坚持下来的不到15个,我还是一直在苦苦挣扎的一个这个时候已经到六一了,后来知道我们是郑州北大青鸟第一批实验对象,学士后我们是河南在线平台的第一批学员,当时学习时,平台课程也经常调整,青鸟的平台的老师讲课说话全部是平音,发音标准,声音温柔,规范的不得了,几十分钟讲下来不知道他讲的哪个是重点,听课中不知不觉注意力常常分散,导致学习效率非常低下。我到现在都感觉,在线平台的老师如果讲课发音过去规范化并不好,因为从小到大听惯了老师,抑扬顿挫的讲课吼声。2012年8月到9月的时候我还在学xml,学习DataSet的结构,学习sqlServer,Ado.Net的对象,学习连接查询,资源释放。再后来我常常在家打魔兽,我把RPG地图都打边了,一边受了良心煎熬,练习下打字,偶尔看看平台的课程。总之是怎么也进入不了asp.net部分的学习,自然也就不谈就业工作了。12年底我提前回家了,我告诉我爸我在郑州玩了一年,我不想再玩了,我要到北京去学习,我要到传智播客去学习,因为我无意中学习了传智官网的入门视频,一下子明白了以前我怎么也不明白的东西,我发现没有好的老师,自己模仿视频是不行的。
到现在我一直不太愿意提及2012年这个黑暗的经历,面试我常说是2013年到北京培训,13年10月正式工作。再说2013年2月19号到郑州租住的黑暗房子收拾完退房,坐火车20号我到了北京,21号开始正式上课,.net培训,北京育新金燕龙办公楼。
2013年在北京培训,一直都还可以,但是6月9号毕业时,我的asp.net学的很糊涂,那个时候刚学完,老师上课讲,我什么都明白,然后以冷静下来,我怎么也进入不到那种融汇贯通的思路,然后对就业还是忐忑不安,因为东西是学完了,但是没有消化。然后我复习了,又学了一遍13年9月底30号结课。10月12号我到了第一家公司,面试官是传智播客的学长,看我培训经历是一个学校,问我session存放在哪?说下它的原理,就说没什么问的,然后我就到第一家公司上班了。
第一家公司是一家小公司,程序员在我在的大部分时间里是3个,后来是两个,最多的时候是六个还有两个是搞苹果开发的。
公司主要做医药行业的企业网站;
医药数据系统,内部的数据录入查询系统,还有对外产品,医药查询的,有客户端用winfrom做;
还有就是维护公司官网和合作伙伴的官网,做一些会议报名,社区文档下载,在线咨询预约等。
后来做公司微信开发;
行业商品展示网站开发;
医药行业电商网站开发;
后来14年12月股东闹矛盾,差不多公司都倒闭了,两个月不发工资,技术都走了,然后我就离开开始找第二家公司。
这家公司早期招的技术比较厉害,弄得东西都还可以,别的一般公司有的,我们都有,但是公司留不住人,慢慢的没有成长,一直是小公司;
这家公司开的工资是3.5但是包住,住宿条件还是挺好的。
说下技术:公司大部分是做网站,常用的框架就是三层,再加上工具层,通过类层。只要不是分布式,大量优化,别人能做的,公司也都能做。
第二家是医学教育公司;
主要做视频合成工具;
视频课件数据的分类,搜索;
这个公司给5.5,发到手里面4800多到4900多在北京,吃饭快一千省着吃,一千还要多点,然后交通费快三百,一个剩不下什么钱,也学不到东西就想找个更好的,然后九月就辞了,出来尝试找个好的。
说下面试的技术点吧:
1,对于数据库优化你有什么办法?
2,强制提高网站性能有什么办法?
3,千万级,亿级数据查询慢,有什么优化办法?
4,聚集索引,非聚集索引的区别是什么?怎么用?什么场合用?
5,常用的集合类是哪些?哪些效率高?效率高的原因是什么?
6,权限管理,具体到增删改查,你如何控制页面显示哪些操作功能?
7,Lucene.net建的索引,这个索引的结构是什么样子?索引为什么可以提高访问速度原理是什么?
8,说一说简单工厂模式应用场景是什么?
9,说一说垃圾回收的原理,讲一下过程?
10,说一下单利模式的应用场景,都有哪些模式,区别是什么?
11,iis如何实现一个简单的集群,Session存在哪里?如何实现共享?
12,说下HttpModule和HttpHandle的区别?
13,说下页面的生命周期?从浏览器请求到结束这个过程?
14,说下webForm与MVC分别的优势是什么?
15,有没有用过WCF?说下webService的基础技术是什么?它是靠什么支撑的?
16,说下NPOI你是怎么使用的?说下你用过的数据导入,导出?
17,说下你在项目中用的缓存数据怎么实现?说下常用方式?
18,Memcached的内部结构是什么?它的原理是什么?
19,有没有用过自定义控件,如何在自定义控件中做一些控制?这个就是和那个权限管理一起提出来的。
20,如何强制提高网站的性能?你有什么方式?
21,有没有用过除了Jquery以外的其他框架?
22,数据查询常考的那个笔试题,学生表,课程表,成绩表,查询学生平均成绩低于60分的?(2)所有课程成绩都低于60分的
23,如何实现固定行专列?如何实现动态行专列?
25,你常用的存储过程有哪些?为什么使用存储过程?存储过程的优势是什么?
26,你说说EntityFramework的效率与ADO.Net的效率哪个高?这个问题是个坑,要分情况,我也不好回答?
27,说说盘古分词的原理?说说Lucene.Net+盘古分词这个搜索的实现原理?
28,说一说数据分类的实现过程?
29,说一说session,session的分类,说一说登陆信息存储如何实现多服务器共享?你有什么方案?
30,说一说你为什么从上一家公司辞职?
31,说一说,你对新工作,新公司有一个什么期待,什么想法?
33,说一说你的技术优势是什么? 这个问题被问了很多次,我不知道怎么回答,因为我常常 写简单的css,+html布局,+JavaScript控制界面+ajax请求json数据,还有一些ajax操作+弹窗插件,+zTree+Jquery autocomplete+在线编辑器+百度Echarts+加数字分页+加用户控件+加模板页+加数组对比+加正则匹配+Lucene.net+盘古分词站内搜索+多图片上传插件+xml读取队列控制+ffmpeg命令行使用+多线程界面分类使用委托+HttpHandle实现请求截获,信息判断+sql数据合并stuff,xpath等+单例模式,+Global信息统计差不多就这些,两年经验没有特长。
34,有没有学习过其他语言?懂不懂java?
35,懂不懂非关系型数据库?
36,JavaScript作用域链说一说?继承如何实现?
37,jquery选择器都有哪些?
38,你们公司使用什么框架?后台框架使用什么?
39,多线程和锁的问题你是怎么解决的?
40,说一说抽象类和接口区别,你对类的理解?
41,做一个电商需要多长时间?一个人?多种在线支付。
42,你平常关注什么技术?你现在是否还在学习?你如何学习?说说你最近在博客园看的技术?
等等。
面试题比较杂,什么都有,大部分问题都开始有深度,当工作两年后,开始问比较深入的问题,数据在内存中操作的问题,一些数据对象的内存结构问题,大型网站高性能网站问题,数据库优化问题,学习接触其他数据库问题,接触其他学习语言问题,学习基础其他操作系统问题等。
写了这么多,我都不知道是什么主题了,总之就是编程并不像宣传的那样,三个月就可以学会,不可能。想理解一些东西必须经历一个很长的时间,还需要在使用过程中感悟。慢慢入门以后,还有非常多的东西需要学习。
领导都说我有点浮躁,我也确实感觉到了,但是每次被说在北京工作,一个月挣多少钱,剩余多少呀,一个月拿低工资都被刺激,所以就换了工作,决定到新公司放平心态,好好工作。
先说到这里,以后再说。
.net程序员工作两年总结的更多相关文章
- 毕业一年的大专生程序员工作总结(java后台)
文章导读 一.回眸过去-- 闲扯的话-- 零碎的技术 二.经验总结-- 沟通交流-- 贵在坚持-- 合理规划 三.展望未来-- 积累行业背景-- 学习清单 四.最后补充 一. 回牟过去 1.闲扯的话 ...
- 转载:简化IT程序员工作生活的4个窍门
如果可以简化你的生活——少做枯燥的任务,将时间真正地用于完成事情,你愿不愿意去尝试?下面就让我一起来学一下如何让程序员工作生活变得简单的小窍门.如果你敢于倾听自己的心声,你会发现自己一天中的大多数时间 ...
- JAVA程序员工作常用英语(细心整理)
基础----进阶 A. array数组accessible 可存取的 area面积audio 音频 addition 加法 action 行动 arithmetic 算法adjustment 调整 a ...
- 12个提高Java程序员工作效率的工具
Java开发者常常都会想办法如何更快地编写Java代码,让开发过程变得更加轻松,更加高效.目前,市面上涌现出越来越多的高效编程工具.团长总结了几个常用的工具,其中包含了大多数开发人员已经使用.正在使用 ...
- Java程序员的两项通用能力
工作这几年来,经历了很多.从小白到中级(手机里有一款叫中国象棋的游戏,里面给对弈中电脑水平分为小白.菜鸟.新手.入门.初级.中级.高级.大师.特级大师,编程我暂且按照这样来区分). 学校教给我的是从小 ...
- 【Qt】实现程序重启的两种方法
Qt5/PyQt5 实现程序重启的两种方法 前言 最近在写一个开源项目,需要实现一个程序自动重启的功能.尝试了好几种方式,效果均不太理想. 一开始的实现思路是,记为思路一吧.大概就是写一些 shell ...
- ajax跨域往php程序post数据时,php程序总是执行两次的解决方法
php程序是部署在IIS7上面,ajax提交数据时,遇到了两个问题,一个就是跨域,一个php程序总会被执行两次. 第一个问题的解决方法,是百度出来的,添加下面几行代码就可以了: header('Acc ...
- Android更改桌面应用程序launcher的两种方式
http://blog.csdn.net/mdx20072419/article/details/9632779/ launcher,也就是android的桌面应用程序.下图是我正在使用的魅族手机的l ...
- 神级程序员通过两句话带你完全掌握Python最难知识点——元类!
千万不要被所谓"元类是99%的python程序员不会用到的特性"这类的说辞吓住.因为 每个中国人,都是天生的元类使用者 学懂元类,你只需要知道两句话: 道生一,一生二,二生三,三生 ...
随机推荐
- Android学习笔记之使用LBS实现定位
PS:最近一直在搞使用LBS实现定位.一般现在涉及到日常生活交易平台的app.貌似都需要使用定位.比如说美团外卖,我请客等app. 学习内容: 1.LBS定位的简单介绍. 2.在Map上添加地图覆盖物 ...
- CentOS6.5菜鸟之旅:识别NTFS分区
一.前言 CentOS默认时不能识别NTFS分区的,需要那么需要安装fuse-ntfs-3g来处理了. 二.安装fuse-ntfs-3g yum install fuse-ntfs-3g
- QCustomplot使用分享(一) 能做什么事
一.QCustomPlot简介 之前在Qt之自绘制饼图这篇文章的说明中我简单的描述了下目前依赖于qt的第三方绘图库,此后我会针对自己使用QCustomPlot的情况做一总结,以方便大家参考 QCust ...
- ServletFileUpload(Servlet文件上传)
//**文件上传** form表单提交必须指定Enctype 属性指定将数据回发到服务器时浏览器使用的编码类型"multipart/form-data" //1.创建磁盘文件项目工 ...
- ChartDirector应用笔记(一)
ChartDirector介绍 ChartDirector是一款小巧精细的商业图表库.其适用的语言范围非常广泛,包括.Net, Java, Asp, VB, PHP, Python, Ruby, C+ ...
- javaScript一些函数包括调试方法(二)
Number():设法把括号里面的值,转换成一个数,转换不了为数字的话,就返回NaN. 注意:Number()函数,会拒绝任何包含,非数字字符的字符串(阿拉伯数字.一个有效的小数位.+.-符号是允许的 ...
- SQL Server 文件和文件组
文件和文件组简介 在SQL Server中,数据库在硬盘上的存储方式和普通文件在Windows中的存储方式没有什么不同,仅仅是几个文件而已.SQL Server通过管理逻辑上的文件组的方式来管理文件. ...
- [Eclipse] - 解决导入flask模块出现的Unresolved Import flask问题
http://www.cnblogs.com/mizhon/p/4242073.html [Eclipse] - 解决导入flask模块出现的Unresolved Import flask问题 最近想 ...
- jQuery使用ajaxStart()和ajaxStop()方法
ajaxStart()和ajaxStop()方法是绑定Ajax事件.ajaxStart()方法用于在Ajax请求发出前触发函数,ajaxStop()方法用于在Ajax请求完成后触发函数.它们的调用格式 ...
- oracle sql 语句优化
(1)选择最有效率的表名顺序(只在基于规则的优化器中有效):Oracle的解析器按照从右到左的顺序处理FROM子句中的表名,FROM子句中写在最后的表(基础表 driving table)将被最先处理 ...