(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多分钟,他才跑过来帮我看,说:“这不是很明显吗??少了一个分号,你看不出来吗?”那时候真的觉得自己太坏了。老师不知道没有基础的人的无知程度。他不知道我在程序面前有多傻。我不明白为什么需要方法。宁愿copyCode,也不想写方法,当时太固执了,很久以后才明白类型的概念,intclass,还有classStudentclass,其实,它们是一样的,都是一种类型,只是在存储方式上可以不同,在存储或者表达数据方面是不一样的。一个人听不懂,他听不懂的东西,我当时就是那种状态,慢慢的在学。然后快11号了,当时和一个妹子谈朋友,因为我从工厂辞职了,没有收入,学习也有很多困难,然后就不想给她过生日了,因为我真的没钱给她,因为我从厂里出来又变成了学生,然后我就不太在意她了,慢慢的就分手了,她也就不在乎我了。然后就是继续学习了。当我学习关键字this、as、is、indexer和polymorphism时,我卡住了。我学不会。我不能灵活地使用它们。代表团,难度骤然增加。我不懂C语言的指针,所以不能理解委托这种稀奇古怪的东西。刚弄明白method就是可以复用的代码块,然后就不懂怎么委托了,此时学校的网络出现了问题。我对学校有点熟悉,我的一些同学也熟悉了几个。网友有问题,还得回家学习。学习,因为感觉挺累的。我跟着回宿舍学习了几次。天气渐渐变冷了。宿舍很冷,学校也很冷。我只看了视频,并没有做太多练习。我发现我忘记了后面和前面的东西,然后我又回去学习了。效率很低。这时候开始学习winform,学习做视频上的习题。winfrom虽然简单,但是做和视频上一样的练习还是要花很多时间的。完成一节课的练习可能需要两三个小时。我是个天才,那时我从来没有这样学习过,事实上,我从来没有养成一个好的学习方法。以前上课学习45分钟,作业几分钟就做完了,然后下节课。这时候学一课需要的练习时间很长,然后就掌握不好了。次元阵,这些困难。然后过了几天又一周,我不知道我是从哪里弄来的。看来这周我什么都没学到。现在看来,人们在学习的时候,往往会高估自己的能力。编程不是高中背书,也不是做数学化学题。技能需要大量的练习和长期的试验。过年的时候学了winfrom,过完年再回学校学习。过了一年,我忘记了一部分,然后开始学习数据库和三大范式。本来以为数据库挺简单的,自己也能学好,可是等开始学函数、子查询、游标的时候,又一头雾水了。后来也明白了,这个东西需要看很多资料,需要在使用过程中慢慢体会。可以理解。这时候还需要学习IO操作类TextReader、TextWrite、StringReader、StringWrite、SteamReader、SteamWrite;文件操作类File,Directory,FileInfoDirectoryInfo;XML操作XmlDocument、XmlNode等;还有序列化特性和其他特性需要学习;这时我真的不明白这个功能。我觉得很丑。后来,我渐渐明白,那只是一个记号。如果你想给一个类添加一些额外的信息,没有特性你能用什么?这是理所当然的事情。这里提一下,学这部分的时候,学校给了我一个仿windows做资源管理器的项目,需要实现树形菜单,在电脑上显示资源,可以实现新建,修改、复制、剪切和删除,序列化并保存信息;时间是两周,这个项目我差不多两周就做完了,但是升级到考试的时候,怎么也过不了。我就是考不上,然后就一直浪费时间。那时我还不知道这个考试可以作弊,可以试一下答案。现在看来考试的标准还是比较高的,就像大学有严格的考试,题目就不能太简单。和学校里很多考试不及格的人一样,我那时候考不上,因为不学不明白其中的难点,学的都是死记硬背,但没有学好。卡住了,过不去,又回去学习,一边卡在事件、委托、多线程、序列化中,一边慢慢迷路。这时候,学校因为之前的导师走了,所以没有继续找老师。根本没有老师指导。学校的网速一直没解决,经常掉线。应该是学校为了省钱给30多个学生拉了10MB的网线。虽然不是所有人都能同时看视频,但是10MB可以30个人共享。网速自然是一种折磨。当时我们真的是傻到向学校抗议,傻傻的去搞CMCC免费热点。我付了半个月的钱。然后很多同学开始了三天打鱼两天晒网,经常回家玩游戏,不能去就不去了。当时,有70多名学生报名学习.net编程。最后坚持下来的不到15人。我还在挣扎。已经是6月1日了,后来才知道我们是郑州北大青鸟的第一批实验对象。本科毕业后,我们是河南在线平台的第一批学生。我们那时候学习的时候,平台的课程经常调整。青鸟平台的老师们都是平淡的语调,发音标准,声音柔和。我不知道他说的哪一个是重点,而且我在听课的时候经常注意力不集中,导致学习效率很低。我还是觉得以前网络平台老师讲课发音规范不好,因为我从小就听惯了老师有节奏的讲课吼声。2012年8月到9月还在学习xml,学习DataSet的结构,学习sqlServer,Ado.Net对象,学习连接查询,资源发布。后来经常在家玩魔兽世界。把所有的RPG地图都放一边玩了,饱受着良心的折磨。我练习打字,偶尔看看平台上的课程。总之,我进不了asp.net部分的学习,自然就不谈就业了。2012年底我早早回家了,我跟爸爸说我在郑州打了一年球。我不想再玩了。我想去北京读书。官网的介绍视频一下子明白了一个以前不懂的东西。我发现没有好的老师,自己模仿视频是不可能的。直到现在,我都不愿提起2012年的这段黑暗经历。在采访中,我经常说自己2013年去北京培训,2013年10月正式参加工作。另外,2013年2月19日,我去了郑州租的暗房,退房。我是20号坐火车到北京的。21号开始正式上课,.net培训,北京裕信金燕龙写字楼。2013年在北京培训,一直都还好,但是6月9号毕业的时候,我的asp.net很乱。那时,我刚学完。老师教我,我什么都明白了,这才静下心来。进不去那种综合思维,对就业还是心存忐忑,因为学了东西,但是没有消化。然后我复习了一下,又学了一遍。2013年9月30日结课,10月12日去了第一家公司。面试官是传智播客的学长。看到我的培训经历是在学校,问我session存放在哪里?先说说它的原理吧,说没什么好问的,然后就去第一家公司上班了。第一家公司是一家小公司,我在的大部分时间都是三个程序员,然后是两个,最多六个,两个苹果开发。公司主要做医药行业的企业网站;医疗数据系统,内部数据录入和查询系统,以及外部产品,医疗查询,部分客户使用winfrom来做;还有公司官网和合作伙伴官网的维护,做一些会议注册,社区文档下载,在线咨询预约等。后来从事公司微信开发;行业产品展示网站开发;医药行业电子商务网站开发;然后2014年12月,股东闹矛盾,差点公司破产,两个月工资没发,技术没了,然后我离开Start找第二家公司。这家公司早期招了比较厉害的技术,能做出东西来。其他公司有的我们都有,但是公司留不住人,一直没有慢慢成长起来。它一直是一家小公司;这家公司开始工资3.5但是cover,住宿条件也挺好的。说说技术:公司大部分是网站,常用的框架是三层,加上工具层,通过类层。只要不是分布式,大量的优化,别人能做的,公司也能做。二是医学教育公司;主要做视频合成工具;对视频课件数据进行分类检索;这家公司给5.5,4800多到4900多在北京。多了一点,路费也快300了,一个没钱了,又学不到东西,就想找个好点的。然后他在九月份辞职了,出来想找个好人。说说面试的技术要点:1.数据库优化能做什么?2、有没有办法强行提升网站性能?3、千万级、亿级数据查询速度慢。有什么办法可以优化吗?4.聚集索引和非聚集索引有什么区别?如何使用?什么场合?5、常用的集合类有哪些?哪些效率更高?效率高的原因是什么?6、权限管理,具体到增删改查,如何控制页面显示哪些操作功能?7、Lucene.net建立的索引的结构是怎样的?为什么索引可以提高访问速度的原理是什么?8.说说简单工厂模式的应用场景是什么?9、说说垃圾回收的原理和过程?10、说说单利模型的应用场景,有哪些模型,有什么区别?11、iis如何实现一个简单的集群,Session存在哪里?如何实现共享?12.告诉我HttpModule和HttpHandle的区别?
