模版网站后期可以更换图片吗,响应式公司官网建设,kuake自助建站系统源码,win10网络服务都未运行还记得自己那年考清华失败#xff0c;被调剂到中科大软院#xff0c;当初有几个方向可以选#xff0c;软件设计、嵌入式、信息安全等等#xff0c;毫不犹豫地选择了信息安全。为什么选信息安全#xff1f;这四个字听起来多牛多有感觉#xff0c;我本科是学物理的#xf… 还记得自己那年考清华失败被调剂到中科大软院当初有几个方向可以选软件设计、嵌入式、信息安全等等毫不犹豫地选择了信息安全。为什么选信息安全这四个字听起来多牛多有感觉我本科是学物理的记得做一个光学实验的时候一个老师看我做的结果说学物理不是什么人都可以的这个是需要一点智商的。好吧当初其实并非对我一个人所说但我确实感觉到受到了鄙视同时我没有任何在物理上的精湛技艺可以反击我的老师。由于整个大学期间我都在沉迷游戏和小说以至于辅导员说现在找你都得预约。而我的同学基本在学期开始和考试前能见到我当时为了应付考试我不得不学习复杂的物理公式和推导有一门课程是激光原理老师是双博士学位大概是很厉害的在我考试时过来看我的卷子说你的”背功“很厉害。考试时如期通过但老师大概都对我评价不高。自然我是感到不愉快的。回到我的毕业论文大概是做一个电离层特征参量的反演其实就是用迭代法解病态方程。这个论文基本是没有人选的因为题目本身可能相对比较难也需要编程实现好吧当时下载的是盗版的matlab参考的是一个日本学者和我导师的论文铿铿锵锵地写出来了。还做了个所谓的参数优化以使得结果看起来更平滑。当时觉得很得意我女朋友现在的老婆也很惊讶我一个月做完了。其实这不是第一次领略程序的魅力在很久之前高中时期为了追一个女生我做过flash当时我就觉得拖来拖去很麻烦但苦于没有基础看不懂actionscript所以难以深入体会编程的精妙如果看到网上有一些类似雪花飘落、旋转字等效果都是直接拷贝修改到完工。现在回到为什么选择信息安全上来因为在大学时很喜爱游戏尤爱单机国情大家是清楚的而且我没有钱也不知道哪里可以买到正版这个猥琐了呵呵。仙剑、上古、火炬之光、火焰纹章各种类型都喜欢。也很喜欢生存类游戏。给一个单机游戏做的exe补丁和用lua拓展的mod至今看来仍让我怀念。讨厌网游是因为自己没有钱搞不过RMB玩家而且砸装备总失败。 唯独一个2006年时我玩完美世界后来玩它的SF为了砸装备我第一次想到写封包外挂由于当时已经有一些socket、tcp/ip的概念了虽然C玩不转还是各种参考写hook、写字节转换同时完美当时打击WG很厉害游戏基址容易变又加了很多防调试的功能。但为了不手工砸装备SF里的石头几乎免费就是砸上去的几率太低我欲望那个强啊所以用OD调试找网络发送的函数地址 然后C写代码hook。程序最终工作很好我还分享给了几个玩友。后面也写过一些类似跳舞自动击键的WG主要也是为了自娱自乐因为我真的反应不过来屏幕上瞬间出现太多的key与程序为伍的日子很少但每一次接触似乎都是为了达到自己的一些目标。所以凌乱的编程体验虽然不系统不精湛却让我快乐。再次回到为什么选择信息安全上来也许答案已经很清楚。当时觉得虚拟机加密太高深了联网解密也难搞定所以觉得信息安全一定是能解决我的问题的后来你猜到了就是C就是汇编就是linux我当时是多么反感linux当时还用的是ubuntu但为了课程实在是没有办法为了考研自己系统自学了数据结构、计算机网络、操作系统、组成原理当时在考研论坛上还和一个清华搞计算机体系的探讨问题刷了好几页的帖子现在看来多幼稚但快乐也是固定在那个过程之中了。我讨厌汇编我讨厌C我讨厌linux但他们强大能够满足需求这就够了。java还是 c#其实这不应该是我们真正的主题而且入了行的也很少会java还是c#这么比但初学的java和c#往往就代表了两大流派java代替了j2eec#代替了.netok没有关系这么作为title不影响我们说事。如果从语言的角度上来讲c#毫无疑问胜出易用、门槛低、优雅、较为简洁。但java和c#的语言特性是相似的。在很多类的命名上它们都如出一辙//javaSystem.out.println(java比C#强j-a-v-a);//C#System.WriteLine(你没看到#是4个吗我比c还强2个你就歇菜吧);12345c#出现的时间比java晚所以自然吸收、借鉴同时又有它的创新比如很早就支持lamda表达式、比如event和委托比如var比如linq。但如果从面向接口来讲java同样可以做到event和listener只不过对象引用的传递比较直接。而.Net的类库和jdk则各有千秋。如果从应用的角度来看javaee和.Net体系几乎都涵盖了主流的开发方向桌面、Web、服务端、数据库、网络、移动端、中间件。哪个方向哪个更强这个留给读者自己体会吧。微软给.Net一个宇宙最强的IDE也给了各个方向统一而平滑的编程体验不得不说微软的上手要容易的多。而java则一开始就和开源分不开多如牛毛的框架、引擎、包blabla用java开发程序员要懂得东西更多一些。应为你大部分情况下得自己整合。但整合的好了就是很强大的比如SSH。在近几年很热的大数据和云计算领域hadoop、spark、tez、leveldb、mongodb、mariadb、hive、hbase还有oracle都各自在自己不同的层面发力大部分的这些都对java是极为友好的。很多java程序员都觉得搞.net开发的就是拖拖控件而已其实我可以告诉你说出这种话的java程序员一般都还比较小白如果你是搞.net的你也可以说搞java的都是拷贝别人的开源软件的代码然后改改而已。当然改改没什么问题谁都不喜欢重复造轮子比如google里面也并非全部是创新经常”拿“别人的东西自己改吧改吧淘宝就很不用说了招了一些能改c、会点编译的程序员经常拿各种开源框架开刀然后表明是自己的东西。比如双11的那个问题。当然不是说淘宝找的人有问题而是这个企业的文化就是销售和广告文化后来的google也如此。回到正题wpf和silverlight虽然已经EOL中最大的创新莫过于xaml技术如果你认为wpf只是winform的简单升级或者说你只会在wpf中拖控件说明你还是一个非常初级的.net程序员不管你工资上w没有或者你已经是项目经理了。xaml天生就是为mvvm模型而生这一点搞前端的同学应该熟悉即使你不懂wpfjs和html怎么做mvvm你也应该体会过它的好处。wpf中在xaml中布局控件并支持INotifyPropertyChanged接口可以非常容易的实现界面和数据分离做出一个mvvm模型出来。说到标记性语言我们看看jsp的jstl、struts2的tags还有asp.net mvc3之后的razor引擎jstl和aspx的标签类似自由、强大可以很容易的穿插交织到html标记中struts的标签就是个另类我个人反感这种既不遵循主流标准也不简洁的东西虽然好多人会说好用那是个习惯问题我这么说不是说这东西难学难掌握只是比较一下和razor引擎中的标签语法弱爆了。razor强大、简洁、优雅。你肯定觉得我是微软.net的粉丝其实我想告诉你的是最强的标签语言只有两种html和xml穿插动态语句到服务端页面上然后刷出html从来都不是好的做法因为不只你一个人写代码后面可能会有其他人维护这个页面本来这是需要由web designer来做的事情但是有了语句他的维护成本就很高。规范的页面开发程序员是不会染指一个css、style的动态语言在aspx、view、jsp上面应该尽量少用。否则你不如使用php和asp。 这一点你会在工作中会深有体会的。青春的你怎么选择看看现在的招聘吧动不动就是精通j2ee精通struts、spring mvc、hibernate或者mybatis对mysql、oracle有深入理解精通webservice、精通多线程能处理高并发有的还得懂jvm最好有hadoop等开发经验。最后再来个211以上。.net方面呢精通.Net精通mvc3-5、精通wpf、wcf、多线程mssql等等等等。我现在处于离职状态所以每天收到猎聘上的一些推荐都很郁闷因为没有一项是我精通的。但是不妨碍我在2012年实习中就拿到了13K的月薪比一些正式员工可能还要高。而且仔细想想代码中经常讲到要容易维护、这个设计模式、那个AOP这个大并发那个高性能我个人没有见到容易维护的代码。学习一个新公司的一套模式一套老产品比学习一门新技术需要的时间长得多你会发现99%的情况下你最需要的不是什么代码模式而是对产品的理解、对业务的理解很多情况下除非太菜太小白大家的代码都差不多谁有时间重构代码程序员又为何加班这是行情一个项目接一个项目公司需要挣钱的这是大部分公司的现状。为了回答java还是c#的问题我会从我的经历提供一些参考既然是我的那就不会是全面的和准确的你自己判断。还是从故事开始吧在科大软院苏州因为老婆想和我一起在外面过个年我不得不去临时找实习当时c和汇编不行啊所以得选个流行的什么流行呢当时是web。所以我遇到了java还是c#的问题确切的是我遇到了j2ee还是.net的问题。因为经常使用windows又因为.net门槛如此低所以毫不犹豫选择了.net当时是不会写SQL的但是却系统学习了数据库设计原理。进入公司就接触mvc3觉得好外企的技术确实比较新呢比我学习.net时学的aspx优雅那个时候开始接触并尝试理解mvc模式和ddd的概念。当时时薪25人民币。6个月的实习基本能玩javascript和c#然后sql还是不行当时记得一个高级开发跟我说他以前做delphi开发的时候团队写sql写的好就牛我深以为然。只会用Entitiframework mvc3 javascript开发网站的我用理解很浅的.net的web技术体系支撑了我和老婆在上海的生活费用当时10年我们租的拎包式入住公寓1500一个月不算生活费、水电费。再一次通过一项技术达到了我的目标支撑了我的计划当时对技术的理解但是偏执于.Net对java阵营是不屑一顾的。后来很快离开了科大软院和苏州考取了中科院到了北京房租是1580一个月照样不算生活费、水电费。没办法学校发的补贴根本不够押2付3的。找实习做过什么呢office编程而且当时的老板是从IBM下来的工程师项目主要是java开发jsf做页面招我过去做word编程还不能使用.net你猜到了我用的是vba。没做多久公司发钱就开始拖延两周后我没有积蓄只能被迫离职后来加入一家公司从4K到10k用了8个月在这里我完善了程序员生涯中sql能力的快速成长并且广泛地使用了silvelight、aspx、oracle、mssql技术。记得当时一个北邮毕业的同事做了6个月的office文档在web展示因为涉及到了com编程所以运行非常不稳定也难于调试更重要的是拉一个页面到展示需要20秒。老板是中科院软件所的博士架构很厉害但对于这个技术细节并不擅长问我有没有办法我说做过vba大概了解word的dom结构我试试。那个同事说如果你能做到稳定、快速的实现你可以拿这个做你的毕业论文了。 我说我试试。临危受命我猥琐地查找资料研究百度文库如何实现等等后来为了.Net环境的一致性和可维护所以抛弃了pdf flash。 通过大量看老外的东西我选择了aspose.Net框架 一个能把word转为Xaml的框架 silverlight实现可惜这两个框架都收欧元公司铁定不会出钱所以我猥琐地对其进行了破解也开始接触IL码。docx文档在线编辑 展示的功能完成给老板run了一下老板点了个赞显示时间缩短到5秒左右。后来做了数据库的静态显示时间缩短为1秒内。老板又点了个赞。后来带领团队从mssql迁移代码oracle至今还记得和老板并肩一起写存储过程的情形并感叹微软自身的数据库外迁还得依靠三方工具的搞笑。时光很快当时回想.Net是多么的强大是么 在工作的同时学业为了凑够4个整天来实习也为了自己的未来我选择了数据挖掘、计算机图像处理、天文数据处理、文本检索、分布式计算、高性能计算等所有听起来很牛的东西。不求甚解一段一段的代码和注释将能掌握的注入到自己的技术骨头里去。还记得在学校周一开组会同一个组的基本都是博士了我放弃硕博连读因为我实在年龄大了得养家糊口。后来一家西二旗的距离oracle很近的公司面上了记得最后一轮面试是小屋子压力面从董事长到我的小组领导都在没有水。首席架构师是科大少年班的博士在网络所读的问了一个问题 你如何实现google的负载均衡那个问题我答的不好其实即使不理解负载均衡的实现也该从组成原理的总线仲裁知识中窥的一点参考。所以那次又被鄙视了。但那次拿到了13K的月薪当时的总监是汉王以前的副总裁评价是基础扎实思维灵活实习阶段就参与公司重大项目研发值得培养。直到现在我相信也还有很多程序员遇到了数不清的技术我经常会茫然到底我该何去何从一些疑问访问数据库随便找个高效的connector或者driver就行了一般提供数据的厂家谁不提供connectorORM是很必要但是追求性能和反框架泛滥的公司不在乎ORM带来的那点便利性用一个jdbc sql照样写稳定高效的数据访问。做web前端真的需要自己写一个框架出来真正需要这种开发的项目有几个呢jQuery和d3原生的javascript就够了你写的也许不叫框架最多就是个wrapper。数据库的唯一性索引、聚合索引、辅助索引都没搞清楚就开始搞hadoop、spark、hbase、mongodb用人单位也一再这么要求的你的项目中真的有那么大的数据量在传统的rdbms下解决不了你开始知道轮子的概念了并且知道不要重复造轮子。可是你快不是程序员了而是框架员了。所以回到java还是c#这个问题要比我遇到的技术分裂要简单的多。一些建议我的意见是忘记java或者c#的对立如果要做一个开心、有自我追求、同时满足就业的程序员你需要重视以下方面函数调用栈这个很多高级程序员只知其然不知其所以然。你可以不懂的汇编、函数入口、返回地址、寄存器但你需要调试你得深刻理解函数调用栈无论是在dev模式调试struts开发的jsp页面还是debug模式调试aspx页面你得看懂调用栈的信息基本的数据结构和算法数据库中索引的组织方式是B树还是Hash还是堆你的公司有Web、桌面、移动用户有社区有产品你可能要做个推荐什么的或者研究个社交图谱什么的这门技术可以帮助你。一门动态语言。lua、python、javascript都可以你需要随时和系统进行交互或者实现一个原型或者用程序的方式来画点界面、数据图什么它们够轻量、够快捷。一门重量级语言。比如java或者c#。你靠它们吃饭。理解跨平台的含义。掌握一些基本的跨平台技术比如xml、c、html、json。重视网络编程的练习和理解在你使用URLConnection或者MySqlConnection或者WebRequest的时候你是否理解它们的生命周期和底层实现用什么语言无所谓你要记住tcp/ip协议和http的基本特性。这样不至于你写了几年程序还不知道methodpost是什么原理。找一个顺手的IDE我个人不是CLI控虽然不得不CLI一个顺手的IDE真的可以提高生产效率。搞.Net推荐vs resharper搞java推荐intellij IDEA.关注一些热门而经典的领域比如机器学习、图像处理、数据挖掘即使已经有了mahout不代表你不需要了解这些领域你可能永远不会在工作中使用它们但它们的思想值得你拥有因为你选择了做程序员而不是哪个公司的程序员。剩下的就是你的解决问题的思路和你实现的硬功夫编码能力我相信很多看这篇文章的人不能够轻易写出一个ftp服务器不能够不参考、不联网查询资料写出一个简单的快速排序也不能够轻易写出一段通用分页SQL但他们依然可以正常工作。所以外面的功夫容易忘记有网络就能拾起内功才是入骨的东西。 架构不是学出来的是你的理解到位了恰好工作中有这么个需求你就开始整合你的已知然后开始选择轮子。最重要的是你千万不要成为一个只会熟练使用框架的程序员那样你会疲于奔命你也许永远只会使用hadoop而写不出一个hadoop你只是一个hadoop程序员而不是一个分布式程序员。 你也许永远只会使用struts而忘记了自己写filter你只是一个ssh程序员而不是一个web工程师。后记人言三十而立如今二十有九反反复复虽然买房买车俗了~依然一事无成。 转载于:https://blog.51cto.com/xlzh123/1651360