请问车载充 可以给充电宝能带上飞机吗充电吗

每日分享一些实用的别人的技术经验_西安邮电大学吧_百度贴吧
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&签到排名:今日本吧第个签到,本吧因你更精彩,明天继续来努力!
本吧签到人数:0成为超级会员,使用一键签到本月漏签0次!成为超级会员,赠送8张补签卡连续签到:天&&累计签到:天超级会员单次开通12个月以上,赠送连续签到卡3张
关注:148,128贴子:
每日分享一些实用的别人的技术经验收藏
找工作的一些感悟——前端小菜的成长前些日子辞掉了工作,比较轻松,有大把的时间写博客神马的,陆续面了几个不错的互联网公司,有成功的也有失败的,阿里的面试及offer都来的很意外,还没来得及投百度,由于阿里给的条件及工作内容都让我很满意了,唯一的遗憾是得离开北京去杭州,不知道现在还要不要投投其他的也试试。至于为什么选在年前离职,其实这并不在我的计划内,从毕业起就在这个很小的公司工作,只有六、七个开发人员,但是感觉自己学到了很多东西,工作内容也很有创造性,但最近半年来对老板给公司制定的方向感觉不是很认同,还有非常多的因素就不多说了,让我工作效率很低,有时候带着抵触情绪工作,这样做出来的东西可想而知。继续做下去只能是耗着,耗到年终拿个年终奖然后年后辞职?自己不能接受,所以在网上投了些简历,向公司提了离职。写在前面本文虽然是在说面试感受,但不含面试题,以后会多少总结一些面试的知识点,但希望从本文中看到面试题神马的可以Ctrl+W了。然后虽然找到了自己满意的工作,但本人并不是成功人士,也不是技术大牛,但凡读过我两篇博客的人都可以看出来,我只是前端小菜一枚,自然不会高屋建瓴、口吐莲花,文中说的只是一些自己工作不到三年来经过面试洗礼后的一些认识与感受,和大家见解不同还望多多指教。自己没有想象的那么好扯淡的东西完了,说一些找工作的感受。开始找工作对我最大的冲击就是人家问的东西太多自己没接触过的。大家都说技术人员到一个公司两到三年是一个瓶颈期,工作内容、使用的技术已经轻车熟路,不在有学习的压力,习惯了舒适,我来公司不到三年,面试过程中越来越多的意识到这个问题。之前因为能够很快完成工作内容,出了bug也能很快解决,对自己的技术很自信,随着不断的面试越来越没有自信,因为开始是别人问的东西自己一知半解,然后是闻所未闻。可能也是由于面试的都是一些相对不错的公司,对技术的要求比较高,但自己认真反思了一下,觉得有几个问题,发现很多初级的程序员也都有这些问题对工作用不到的技术漠不关心我开始的时候觉得自己是对技术很有兴趣的人,总会逛一些技术博客、网上回答一些技术问题、给公司新人进行技术培训,现在回头看看自己总是在自己的舒适区,都是围绕着目前工作的技术转圈,对一些工作用不到的技术进去看两眼就出来了,不会耐下性子去学习。很多时候我们会发现自己的技术面很窄,实际上我们有的只是一些孤立的知识点,没有形成面,很多问题的解决方案使用的技术我们看了后会懂,但是自己却想不出来,我觉得这是因为知识的不连贯导致的,如果读博客的同学也意识到了自己有此类问题,建议平时在逛论坛、博客的时候关注一下自己不熟悉的相关知识,会有很大收获。三天打鱼两天晒网这个和上面的恰恰相反,但也是有害的,很多同学技术方面兴趣很广泛,对数据库、设计模式、前端等等都有研究,者没什么问题,是好事儿,我工作一年的时候还在立志做架构师,天天读面向对象和设计模式等方面的书,后来觉得算法和数据结构很重要又买了很多书去学习,然后感觉NoSQL很流行,又在网上搜了很多相关的博客作为书签保存了下来,之后又看到了Memcache、Redis、Hadoop。。。到最后除了工作一直在用的技术,这些我都没有学会。相信有很多我这样的同学,会经常关注编程语言排行榜、十大热门技术。。。,然后上网搜相关博客,买书立志要学习这些人们技术,然后就跳到大公司甚至BAT、工资翻倍神马的。在网上看到一些大牛的博客惊羡一番后,存到自己的书签后者粘到自己的笔记中,告诫自己一定要学习这些知识。或者在网上下了几百G的教学视频、电子书。。。半年后发现那些都变成了封存,除了激励了我们三分钟的学习热情,给我们个心里安慰,什么作用都没有。我所说的三天打鱼,两天晒网,并不是指我们学习了两天就去玩儿了,而是指我们在学习过程中没有恒心把一项知识搞明白就去看另外的知识去了,对技术都是浅尝辄止,最后导致什么都没学好。面试的时候问到相关知识,觉得自己研究过,但回答的千疮百孔。在学习新知识的时候我们需要量力而为,把一个兴趣经过一定时间的学习、研究转化为自己的知识后再去转向下一个兴趣,,甚至做到学而时习之,这样才可以年年有鱼,年年有余。其实我们在浏览一些技术博客、论坛的时候可以做个简单的check list,把感兴趣知识记下来,每周或每月看看自己的check list,看看自己进展到哪项了,循序渐进一步步来。试图一蹴而就,而后高枕无忧曾经有那么一个阶段我每天学习Linux及Linux C编程,主要是看了某份调查报告搞这个很挣钱,自己要是学会了立马能变高大上、直接空降到BAT,买了一些书一目十行看完,觉得看完后就对Linux有深入认识了,结果可想而知,如今仍然是对Linux一知半解,Linux C编程只能呵呵了。不少同学也会有这毛病,认准一个目标不错,Linux C编程确实很重要也很挣钱,但是首先这个目标适不适合自己,如果自己并不感兴趣,也没有相应的努力在里面,只是奔着挣大钱那么学习的效率应该不会很高,至少不会主动去接受很多相关知识。然后目标适合自己后很多同学都会有一种急躁情绪,试图一蹴而就,看书一目十行,看视频用1.8倍速率,觉得看完某些书、写出某个例子等就会掌握XXX了,这样的结果就是只是都是零散而模糊的,当工作需要或者别人问起的时候,似懂非懂、做不出正确决定。作为技术人员,要熟知的一点儿是计算机领域技术日新月异,不可能学会某项技术以后就能轻松躺着领钱了,我们不如静下心来,把知识钻研明白,给自己做个坚实的基础,有新知识来临的时候我们也可以应对自如了自卑最近和很多同学同事聊天发现在技术人员身上有个隐藏很深的问题——自卑!没错,就是自卑。这里的自卑并不是指衣着不光鲜,觉得不好意思哪种。有些做的不错的同学偶尔都会流露出自己学校不怎么出名,再怎么努力也不会有很多进入国际知名企业的机会,我有个很好的朋友对设计很感兴趣,学过美术,也很有品味,当我们聊职业规划时说既然对工业设计感兴趣可以去奔驰、苹果去试试嘛,当然有开玩笑的意思,让我始料不及的是他第一时间的反应是这怎么可能,而不是说人家需要什么条件他达不到。在很多刚入行的技术人员身上我们都可以看到这样自卑的影子,在未经了解的情况下就否定了自己,觉得自己不可能做到某事,自然也不会有这方面针对性的努力,想都不会去想,能做到的希望就更小了。一年前有次冲动想离职,让朋友帮我推荐职位,朋友问我希望什么样的工作,我说工资到XXX就行,朋友说可以去百度试试,我心里第一反应就是,这怎么可能,我就一普通本科生,人家多少985研究生都进不去,我怎么可能。事后我看了一下百度对前端的要求,并没有我想象的那样离谱的高,自己平时也就搜集了一些互联网公司对前端的要求,针对性的学习了一些,感觉进步比较大(这也在一定程度上造成了文章开头是说的过分自信)。其实很多时候看起来遥不可及的目标并没有那么远,很多次我们都是被自己的幻想和恐惧吓住了,甚至连第一步都没有敢迈出去怎么成长说了这么多问题,让我回首,如果有一次重来的机会的话我会这样过对自己有清晰的定位,当然这得在一定尝试之后才可以,并不是所有刚毕业的人就对自己的技术、职业有着清晰的了解,但工作两年后应该对自己有一个定位了是否对从事技术感兴趣喜欢什么工作讨厌什么工作最近几个月不愉快的工作经历让我更深知,要做自己认同、觉得有追求意义的工作,这样才能最大程度激发个人的创造力,如果工作了两年还不明白自己喜欢什么,除了工资追求什么的同学需要好好想想了对自己有清晰的定位以后就可以尝试一些有挑战的事情了,无论是在公司工作还是想跳槽试试其他机会,给自己定一个目标并为之努力,千万不要今天觉得hadoop工资高去学hadoop,明天觉得nodejs流行又去学nodejs,太过贪婪有时候反而让我们一无所获。相信做到了上面两点的同学每年肯定都会有很大收获,啰嗦了这么多感觉都是虚的,说一下自己从小白到小菜的过程(好有成就感。。。)我的炼狱有些人大学一路学霸,有些人成了游戏高手,我则平平凡凡过了四年,除了斗地主和CS没玩过其它游戏几乎,没挂过科也没拿过一等奖学金,对编程也是一知半解,没打工赚过钱,毕业前没有任何项目经验,没做过任何作业外的程序设计。把大部分时间都泡在图书馆看历史书,360度无死角平常人一个,现在看有些在校生的博客都汗颜,自己上学那时就知道在CSDN上下载源代码,除了课本上的知识没主动学习过任何东西,应付考试就行。工作后突然感觉好多东西不会,开始看一些业界推荐的好书,一年后开始在CSDN上回答问题,答了半年在博客园上写博客,中间的各种经历上面也提到过,学了很多乱七八糟的东西,最近一年找到了自己的兴趣所在——前端,看了《JavaScript高级程序设计》、《CSS权威指南》,还有博客园上很多前端大牛的博客成长了很多。每个人都有自己的学习方式,研究流行库函数的源码、分析淘宝等网站的源码、读好书等等,我这里只写一些认为对自己帮助比较大的方式(仅仅是前端学习)1.读好书尤其对于初入门的同学读好书尤为重要,开始学习前端的时候我下载了很多JavaScript经典代码100段等类似的东西,也试图做出一些精美的网页,但抄人家的代码确实能够出来效果,自己却不知道为什么可以,而且稍微想改动一下就束手无策,代码出了一些小问题也让人感觉莫名其妙,只能瞎改一通。这是因为我们还没有建立知识基础,有很多原理性的东西不明白,对于前端入门学习,个人觉得有几本好书和资源值得推荐 这个网站就不多说了,web学习基本的东西都可以找到《JavaScript高级程序设计》 在javaScript经典书籍中这本和犀牛书《JavaScript权威指南》尤为耀眼,但我觉得前者更适合初学者,因为它是按照教程的方式由浅入深,一步步教人学会JavaScript,有一定基础了可以看看后者,使自己JavaScript方面知识更全面《JavaScript语言精粹》 虽然里面每章都引用一些几乎和内容无关的莎士比亚的戏剧让人觉得这是卖弄,但这本书确实值得人一看,对改善自己的代码,更加深入理解JavaScript语言特性有很大帮助《CSS权威指南》 这本书不是在告诉你每个CSS属性,而是简单却又深入的阐述的CSS一些原理性知识园子里汤姆大叔的 深入理解JavaScript系列 虽然这不是JavaScript入门的作品,但是非常值得一看张鑫旭的个人博客 这哥们知识渊博,很多问题都讲的非常深入,而且文风很幽默,相信看了会有很大收获2.自己动手写博客没有诋毁回答问题的意思,毕竟StackOverflow都那么强大了,但是对于小白和小菜而言个人觉得写博客是个很不错的提高方式,很多知识看一遍觉得自己明白了,和自己能够应用知识实现某个功能之间有很大差距,实现功能到写出博客说明白某个技术的前世今生又是很大一个进步。建议大家都自己写写博客,梳理一下自己知识,有时候我们希望写一个技术点,但发现我们还需要很多相关知识才能说明白,就会去了解这些知识,我们写的是一个点,收获的是一条线甚至一个面。在写作过程中会得到大家的鼓励、批评、意见,这些都是让人进步的动力,而且把自己学到的知识分享出来可能会帮到很多人,何乐而不为呢。3.临渊羡鱼不如退而结网不知道大家有没有这样的感觉在网上看到一些技术大神的履历后觉得人家是天才,心里还能安慰过去,看到园子中很多在校生对知识都理解的那么深入,汗颜不已觉得自己还不如人家没工作的,觉得自己学晚了,要是大学的时候多努力,现在就多牛逼了等等,直接打击的没有了学习的动力。或者是看到同学的工资几乎是自己两倍心里着急,觉得时运不济,没给自己个好机遇,就这样沉落下去。我有一段时间是这样度过的,现在看看自己那段日子虽然无数次立志要抓紧学习了,可是急躁,没有静下心学习任何东西,技术上的进步反而不如天天陪我女朋友逛北京免费公园的日子。我们把太多精力用在了和别人比来比去,心急气躁打乱了自己持续的学习节奏,这样反而是有害的。心里平复后看看自己上个月写的博客,觉得自己学习了这么多知识一个月,也算是很大的进步了,临渊羡鱼不如退而结网,自己踏踏实实,一步一个脚印做到比昨天的自己更优秀就可以了。最后啰嗦了这么多缺陷和自己的想法,不知道是不是对同样处于小白到小菜挣扎的同学们有帮助,再回到最开始说一下自己的面试经历。决定要走了就在网上投了一些简历,因为大家都盛年后是公司招人的高峰期,所以自己想年前试几个并不是非常了解的公司,不行的话就当练练手,总结经验全力准备年后投百度,没想到起初的面试虽然给自己了些打击,但从反馈上来看还算不错。于是投了一些大公司的简历,那天在博客园的右上角看到一些招聘信息,进去后发现是个专门做互联网招聘的网站,感觉还不错(防止广告嫌疑,不说名字了,其实这个招聘网站也在招人,我还去试了,因为公司离得比较近,约好下班后过去,结果人家忘了这回事儿,去的时候面试官下班走人了),在上面看到阿里巴巴的招聘信息,看了一下觉得要求并不是很高,就投了,当时并没有抱多大希望,没想到一天后阿里就给了联系安排了两轮电话面试、两轮HR面试,都是电话进行的,然后就通知说过了,体检完就给发offer了,回想起来好不真实,但也在面试过程中学习到了很多。前前后后面试了不少,但给感觉值得总结的不多,大概有老罗的锤子科技、网易、京东和阿里,以后有时间总结出来和大家分享一下。说了这么多做个总结:梦想太遥远很多时候都是我们被吓倒了,没有尝试迈出第一步,也有时候是因为我们没有足够的耐心一步步走完,总是想快跑到彼岸,却在迷失了方向。个人能给和我一样同处小白或小菜阶段的程序员的建议就是,对自己有定位找到合适目标后,为目标持之以恒的努力,不被其它诱惑干扰。在前进的路上与君共勉!
买涂料就上零元素,自建物流体系,全国安全配送,免费化工品交易数据库
程序员学习编程需要攻克的8个障碍作为一个JavaScript Web开发课程的导师,我看到过很多新手程序员满怀热情投入到学习中来,却总是处处碰壁。大多数学习者同样碰到过相同的障碍,但是,一旦克服了这些壁垒,那么好处立马就来:更享受学习经历进步更快碰到难题更执着,不轻言放弃写代码时更独立那么,这些障碍究竟是什么呢,我们又该如何攻克它们?1.不正确的学习动机在谈及壁垒之前,我想先着重说明学习动机的重要性。不要只是为了编程而学编程,也不要因为听说它很酷,很划得来就来学编程。你得因为要解决问题而学习编程,你得因为想要自动化和改善生活而学习编程,你得因为想要构建应用程序以造福社会来学习编程。如果你只是喜欢编程,并希望以此作为职业的话,那么在之后的学习过程中,你可能会有一种强烈的冲动想要放弃。这通常发生在事情变得艰难,学习体验变得痛苦的情况下。这时你会告诉自己,你不喜欢编程了,编程操作不适合你,觉得自己天生就成不了程序员。这就是为什么你应该考虑围绕着完成项目设置目标的原因。如果你的心里有计划,或者你想要解决更高层次的问题,那么你可以对自己说:“这可能不是一次愉快的经历,但是我真的想要解决这个大问题,所以我一定要克服这个障碍。”2.不知道从什么技术入手很多人会问:“我应该先学什么编程语言?”之所以会提出这个问题,是因为他们不知道自己为什么要学习代码。一旦你下定决心去完成一个特定的项目,那么从什么语言入手这个问题就变成一件很容易的事情:如果你想构建iOS app,那么你需要学习Objective C或Swift。如果你想构建Android app,那么你需要学习Java。如果你想构建Web app,那么你需要学习JavaScript。其实现在我们可以使用JavaScript来创建任何类型的项目——无论是简单的web和移动app,还是高级的硬件项目。大多数行业中都有它的身影:音乐、医疗、游戏、时装。这种语言非常值得学习。如果你还是不能确定要选择哪种语言,那么不妨咨询下某个程序员的意见。只要你确定要构建什么项目,那么他就能很快地为你推荐适合你使用的技术。另外,知识都是相通的,所以,不要过于拘谨,选择语言这一步骤几乎没什么风险。3.不能学以致用,以及责备自己选择好技术堆栈之后,刚开始学习理论总是很轻松的,而且网上也有许许多多免费和付费的在线课程。很快大多数学习者掌握了理论知识,甚至完全可以自己来解释某个代码片段的工作原理。理论只是概念的有限集合。任何人都可以在几天之内记住它,如果她/他真的想的话。那么,关键的问题是什么?学习者碰到的最大问题在于,实际应用理论来解决问题并编写新代码的时候。这中间的差距实际上就是技能空白。比如说游泳。你可以阅读大量的技术文章,然后解释得就像一个专业教练。但是,要想实际应用这些理论,就需要大量的实践、斗争和错误——你肯定会吞下大量的水!然而更糟糕的是你开始责备自己。或者认为自己不够聪明,或者觉得自己没有天赋。这其实跟聪明天赋没有关系,你只是需要练习技能的过程:1.选择一个复杂的项目。理想情况下,这项目得能够激发你的兴趣。2.将这个任务分割成既小又独立的任务。例如,“实现登录页面”是一个很大的任务。解决一个任务不应该超过20行左右的代码。下面这些提示有助于成功做到这一点:如果你不能解决这个任务,那么进一步将它分割成更小的任务。一个任务一次不应该使用太多的理论概念。3.一次专注一项任务,而不是并行解决多任务。不要跳到下一个任务,除非你已经彻底测试过当前任务,并确信没有问题。如果你不这么做,而此时应用程序又出现了问题,那么你就不知道你正在并行解决的多任务中到底是哪个出了问题,寻找起来就麻烦多了。4.确保自己在开始任务之前知道所有必要的理论知识。有时候,你可能不知道需要学习什么理论,这很正常,所以你需要向他人寻求帮助:程序员朋友,导师,或类似StackOverflow的社区。5.最后,你解决了任务。在解决任务的过程中,你可能会碰到很多问题,你需要做的就是吸取教训,这也是下面要说的要点:4.不吸取解决任务中获得的经验教训最好的情况是,你解决了任务并且结果证明非常有效。此时,很多人往往就直接开展下一个任务。但是如果你这样做的话,那么你浪费了一个绝佳的学习机会。希望你能够用以下问题来挑战自我,帮助自己成长:哪些边界情况会导致我的代码失败?即使现在还没有失败,有哪些应用程序状态可能会破坏代码?我的代码是否足够整洁?对其他开发人员,甚至是自己而言,代码是否易于理解和改变?因为以后可能需要修复隐藏在这段代码中的问题,或者根据其他产品规格改变代码。我的方法是最好的吗?有没有其他选项是我可以选择使用的?各个方案的利弊?这任务是否值得用不同的方式解决?此模块与其他模块是如何交互的?是否会对其他模块造成负面影响?是否容易被其他模块影响?然而,很多时候,你会进退维谷:5.你不知道如何处理一个任务你不知道从哪里开始?你可能会随机地去尝试,或者从其他地方复制一些你自己也不明白的代码。但是,这是没有帮助的。即使你复制来的代码有效也没用。因为当你今后再一次碰到类似的任务,你依然不能解决。如果你想妥善解决任务,那么首先你得知道你为什么卡壳。下面是一些可能的原因:1.没有很好地掌握这些理论知识:语言语法库或API的工作原理,某个具体方法或类的工作原理编程范式(例如:异步编程)系统运作(例如:HTTP请求是理解Web开发的关键)如果是上述情况,那么可以去复习理论知识,如果依然摸不着头脑,也可以去找人寻求帮助。2.任务太大了,那就分解为一个个小任务。3.也有可能是因为你读得太快,忽略了一些你以为熟悉其实似是而非的概念,所以无法理解任务要求。6.你知道如何解决任务,但解决方案不管用这是编程中最常见的情况,哪怕是那些经验丰富的资深程序员也是如此。你的解决方案之所以不起作用最大的可能是你的代码中存在着bug。如何修复?方法是调试代码。这也是作为一个程序员需要学习的最重要的技能之一。这不是可以随便凑合的事,也不是玩幸运猜猜猜游戏。如何寻找bug是有具体步骤的。而且很多书中都有教这个技能。不幸的是,这是很多新手程序员失去动力选择放弃的难关。很少有课程会说明调试的重要性。如果你不知道如何正确地调试,那么它就是不可战胜无法攻克的难关。很多人担心会花太多时间用于调试代码。这是正常的,在你第一年的编程规划中这是不可避免的。甚至,你还得学着去喜欢调试。不妨将此看成是一个机会,一个修复错误提高编程能力的机会。当你解决了一个bug,可以问问自己这个问题:“我为什么会犯这种错误?以后我该如何预防再犯?”还有一个好主意是将找到的bug写成编程日记,方便你总结和学习。7.不知道如何接受帮助当我们在学习代码,或调试代码时,可以咨询很多材料:书籍、课程、教程、导师,开发者社区等等。在你学习这些资源时最常见的问题是,你并没有完全了解幕后发生了什么事情,也不知道概念是如何融入到更大的蓝图中的。例如:你在某个问题上花了10小时,最后终于有人提供一个解决方案,你往往会采取“拿来主义”——采纳解决方案之后就直接跳到一个任务中去。千万别这样做!相反:思考自己之前的思维过程。问问自己,做错了什么,对于这个特定的解决方案有哪些是值得你先前的思路借鉴和改进的地方。询问他人的思维过程。她/他是如何解决的呢?向对方学习,吸取经验。这也是在StackOverflow和谷歌上搜答案的一大缺点:你只知道解决方案,不知道幕后的思考过程。8.不去应用你学到的理论这篇文章也是理论知识,除非你能够学以致用,否则它是不会发挥一丝一毫作用的——多多应用,直到它变成潜意思的例行程序。编程其实就是通过形成良好的习惯来帮助你解决各种问题的过程。
做靠谱JavaScript程序员的应备素质当我尝试为Cloudera招一个JavaScript程序员时,我发现这项任务相当艰巨。找到一名真正理解JavaScript的人非常困难。不 过,这也证明了一件非常简单的事情,是时侯去研究JavaScript,并成为这个领域的专家了。过去的几个月,我发现了一些天才JS程序员并尝试去录用 他们。显然他们有非常多的选择。他们被各种公司的Offer困扰着。作为一个想招他们进来的人,这让我想起了第一次互联网泡沫时侯的一些事。(我承诺给其 中一位侯选人一辆凯迪拉克,但最终没有打动他)。最后他进入了另一家初创型公司。比较关键的一点是:作为一名JavaScript专家并不能只知道JavaScript. 如果你想专为一名靠谱的前端工程师 ,你需要在更多方面做得更好一点, 可能这些都没有写在JD里面,至少那些要求表现得没有JS那样突出。有些东西你只需要了解一下,但另外一些你需要精通(显然你需要非常精通JS,如果你想 成为一名真正的专家)。 其实,我只是一个普通人,我有博客,其他方面都跟一般人体差不多,但当我把跟HR说出我的要求时,HR告诉我“这个人根本不存在,你描述的是一个超人” 我又告诉他这是我每天都在干的。 他又坚持说“你真是大神一样的人”最后能称上JavaScript专家的人,终究需要一些什么技术,每天究竟需要做一些什么事,怎么判断哪些是天才,哪些是菜鸟,哪些是一般人,这是我列的一张清单:1. 你需要知道HTML, 你需要非常精通它。你需要知道 document types的作用和效果。 你需要知道即使你没有写TBODY,浏览器也会自动将他补上。你需要关注浏览器每一次升级所做的变动。学习这些东西,至少在我这儿你得这样。在你工作的时侯花点时间去研究下。2. 你需要了解CSS, 这样你才不至于后悔。我工作期间碰到的最多的问题就是跨浏览器的CSS兼容问题。一段同样的样式在不同浏览器中显示是不一样的。你添加了一个负的 margin-top值去实现排版,猜猜怎么了? 用户永远也点不到这个东西了,尽管你加了一个z-index,尽管你可以看见这个该死的东西。 或者你加了一组可以自动适应的CSS代码,但你要祈祷你的老板没有在IE里去看你的网页。最重要的一点,你要了解CSS,这是最有价值的一项技术。你不需 要非常精通,但至少能和草图做得一模一样,否则其他的事就不用提了。3. 你需要了解浏览器,你需要明白在IE浏览器中,如果你把 “” 放到DIV中,IE不会把它转换为DOM元素。但放到header里就可以,因为这东西是只读的。你需要明白在Array数组和Object最后加个逗号 会让IE出错。你需要明白IE里iframes里的元素会有偏移问题。而且并不是只有IE会出问题,Firefox在清除浮动时也会出问题,Chrome 里没事。你需要了解最新的webkit那些惊人的特性在手机和safari上面不一定有。4. 我提过JavaScript吗?我们需要了解JavaScript是怎样工作的,你需要知道传入方法 (function)的参数(arguments)对象是有长度的,而且是可以枚举的, 但它绝不是数组对象,更进一步,你需要知道如何将他转换为数组。你需要知道prototype的工作机制,并且知道在不借助框架的情况下如何使用它,并且 知道它的作用和优势是什么。你需要知道垃圾回收(garbage collect)什么时侯起作用,这点很重要,还有它什么时侯不工作。你需要非常善长抽象(abstraction)。你需要非常善于为你自己和别人设计 API。你需要了解怎样测试和管理你的代码。5. 你需要有像样的设计能力(design): 信息流, 图像设计, 用户体验设计, 代码设计。你需要能向用户, 客户, 陌生人, 专家(随便什么人)提出正确的问题并有能力去解决他们的问题。不仅是讲出你的想法,你还要想办法去呈现给他们。你需要能操作Illustrator快速地 把各种框架草图(wireframes)拼出一个方案来,然后你可以到PhotShop中(这个你需要熟练掌握)把设计图画出来(visual style)。你不需要成为世界上最好的设计师,我当然也不是。但你要有能力告诉他们什么是好的,什么是坏,什么是杰出的设计。如果你能管理好你自己好的 设计,你就牛了。6. 你需要对服务器端非常自信。其实你并不是每天都只是写写JavaScript。大多数前端工作都只需要你 花一半 的时间来写JavaScript,另外一些时间你需要处理一些其它相关语言的代码. Python, Ruby, Java, PHP.. 如果你只会一种语言,那根本不值一提。如果你只会JavaScript和PHP, 你马上会有一些需要用到其他语言的任务(其实这是一个很好学习新事物的机会)。应该会用一种框架,但是只知道一种的话也不算真正的了解 JavaScript.7. 然后还有许多其他的东西你需要掌握。你需要了解Git。Git很牛,我知道你经常听别人这样说,如果你发 现一个 保守的人拒绝去学新的知识扩展自己,你需要让他明白他的错误。你需要知道一些shell脚本。在没有记事本,TextMate或其他编辑器的情况下,你需 要能够打开VI或者Emacs去修改一个配置文件(conf)。你需要知道怎么去编绎一些东西,怎么样去截取一个日志文件,解压一个压缩包 (tarball),加密一些东西,开启并配置服务。你需要有能力去关掉(kill)进程并跟踪调试一个堆栈。我甚至算不上一个熟悉敏捷开发流程,参与过开源软件项目或发布新版本的程序员,不过如果你认为你能够匹配我所列出的7条中的5条,或者全部匹配。那么,恭喜你,你就是传说中的大神。那么你成为大神后你会得到什么?你怎么知道多年处理那些乏味的IE6的BUG是值得的?好吧,你得到的是,你会每周都收到HR的邮件和电话。(这其 实并不稀奇,他们就像懂你的销售)。如果你想换工作的时侯,你甚至什么都不用做,告诉一小搓朋友或者发到你的twitter上,然后很多扇门就在你面前打 开了。你会有些新朋友,他们希望你加入他们的事业。当你加入时你会成为传说中的元老。你会得到股票,并设计一款产品的最初版本。你会得到一辆1967年的 凯迪拉克作为签约的报酬。在公司刚起步时我曾经诱惑过这样的家伙。大神是一名还不存在的产品的前端工程师。他指出一两年后这东西值很多美元,然后多年以 后,他可以告诉别人,“这是我做的”。现在已经有这样的一些人了,像已经有无数人使用的Twitter, Facebook, Gamil和Google Maps,像Iphone的界面,Github, YouTube,肯定有人说,“这是我做的”。
今天就发这么多
更多精彩文章
厨师,一个注定了一生要跟温度打交道的职业,在厨房里,为了捧出一道道精美的菜品,厨师们留下过多少艰辛的汗水,似乎也只有厨师们才能感受个中滋味,可以说,温度与激情,就是厨师们的真实写照!自远古人类发明了火,人类便从荒蛮走向文明。人类开始每日与烟与火为伍。在芸芸众生中,有一种人,有一种职业,终生与烟和火为伴,那就是厨师,他们以火为生,与高温相伴,在烟与火中创造艺术,创造美食。26℃在科学家的眼中,是使人体感最舒适的温度。人们的激情迸发,想拥抱世界,想大声呐喊,生活真美好!26℃在诗人的眼中,是一种仙境,烟与火成为他们创造的灵感,一种境界,一种历练!26℃在厨师的眼中,是味蕾最敏感的时刻,是迸发烹饪艺术灵感的温度,是创意美妙菜品的绝佳。36℃灶前的厨师已汗流浃背;众食客早已打开空调,享受清凉,但我们厨师,只能坚守在厨房,并不断地给炉灶加温加热,因为没有高温哪能烹熟美食?没有高温哪能让食物分子变性,迸发出芳香?46℃人们的血管在奔张,心跳在加速,已达到国家禁止室外作业的高温极限。但我们厨师似乎例外,炉前烘烤已头眩目胀;我们挥汗如雨,我们的体液全部蒸发,我们肾已没有尿液!但我们没有退缩,也无法退缩,我们只能坚守,忍受高温与炽热。46℃是考验厨师职业道德的温度,我们的心态,如同炉中的熊熊烈火,已经焦灼,如在烈日炎炎的沙漠中艰难地跋涉!我们明知这会损害我们的健康,高温会烧坏我们的大脑,损坏我们的肾脏,反应的迟钝,已泯灭了太多的创意与灵感。但我们厨师只能坚守,没有退路,因为顾客在等待,家人在守望。56℃已是一种生理极限,但后厨没有停工,餐厅爆满,菜单象雪花飞进后厨,炉前温度仍在急升!56℃!这是很多职业停止工作的温度,但很可悲,后厨却是例外。高温伴着爆锅声和冲天的火光,仿佛大地在颤抖,空气在燃烧,我们仍然象坚守在战壕的士兵,没有退缩,也无法退逃。因为我们选择了这个职业,我们需要养家糊口,泪水与汗水早已融为一体,苦和累只能化作辛酸的泪,还不能让亲朋好友看见,只能往肚里呑!56℃并不是厨房的极限温度,我们忍受的何止56℃高温,60℃+ 也是常态!我们的肌肤被烤灼!我们的肺被烧蚀!还有与高温相伴的高湿,那是比高温更难忍受的一
我觉得该加精
司通科技为交易机构提供一站式MT4交易平台搭建方案,360度全方位服务!
机智的广告哥
提高程序员学习能力三要点IT技术的发展日新月异,新技术层出不穷,具有良好的学习能力,能及时获取新知识、随时补充和丰富自己,已成为程序员职业发展的核心竞争力。本文中,作者结合多年的学习经验总结出了提高程序员学习能力的三个要点。众所周知,现在是一个知识爆炸的时代,知识更新非常快。据测算,一个大学毕业生所学到的知识,在毕业之后2年内,有效的不过剩下5%。对于软件行业而言,这种形势更为明显,我们赖以立足的,不在于我们现在掌握了多少知识,而是我们有多强的学习能力。学习人人都会,但不同的人学习效果却千差万别。一个善于学习的人,首先应该是一个善于读书的人,懂得如何高效地学习,并且拥有良好的心态。唯有如此,才能成为一个卓有成效的学习者,成就卓越的程序人生。  要善于读书  买书是最划算的投资古人云:“书中自有黄金屋,书中自有颜如玉。”这说明先贤们早认识到,买书是最划算的投资。我刚出道时,拿着非常微薄的工资。有一次向主管抱怨道:“现在的书真贵啊,这点工资连饭都吃不起,更别说买书了!”主管对我说:“不要吝惜买书的钱,宁可忍着不吃饭,也不要忍着不买书,因为买书是回报率最高的投资。”主管的话让我非常震动。后来,我看到喜欢的书时,再也没有手软过。通过不断学习,我的开发能力不断提高,工资水平也大幅提高。一年后,我一个月工资的涨幅,就足够买两年的书了。你说,还有比这更划算的投资吗?一本书,哪怕只有一页纸是有用的,它所将产生的潜在价值,也会远远超过书本身的价格。当然,书不在多,踏踏实实消化掉一本好书,比泛泛而读10本普通书,要有价值得多。  多读经典书
要高效学习  只学习与工作相关的东西我曾发现不少程序员在学习方面找不到方向,一会儿学学C#,一会儿学学Java,看了最新的编程语言排行榜,又觉得该学C++。这样左抓抓,右挠挠,只会让你觉得更痒。学习最忌三心二意。俗话说:“伤其十指不如断其一指”,每门都学一点,还不如专心学好一个方向。这个道理谁都懂,可是又该学哪个方向呢?难道只能跟着感觉走吗?不!最实际的方向,应该跟着工作走,工作需要什么,我们就学什么,把工作需要的技能熟练掌握,有很多好处。首先,可以集中精力,在某一方面钻研得更加深入。所谓“百招会不如一招绝”,有了绝招,你还怕不能在“武林”立足吗?《天龙八部》中的慕容复武功博学无比,最后还不是被只会一招六脉神剑的段誉打得落花流水?其次,可以学得更快、更深入,因为学习更具有针对性,而且可以立即在工作中运用,可以马上检验出学习的效果。对存在的问题进行深入研究,掌握的知识也会更加牢固。再次,学习与工作结合在一起,工作时间也就成了学习时间,这样就突破了三个8小时的限制:有人说,我们每天所拥有的时间可以分为三个8小时,工作8小时,睡觉8小时,另外还有8小时可以自己自由支配。工作和睡觉的两个8小时大家都一样,决定人生高度的是另外这个8小时。当我们把学习的焦点放到与工作相关的知识上时,工作时间中的很大一部分,同时也就成了宝贵的学习时间,这真是一举两得的美事啊。  问题是最好的学习机会日本经营之神松下幸之助曾说过:“工作就是不断发现问题、分析问题、最终解决问题的过程,晋升之门将永远为那些随时解决问题的人敞开着。”可见,工作过程中有问题是正常,没有问题才是真正的问题。在发生问题时,能勇于面对问题、解决问题的人,才是公司真正的骨干。现实中,很多人总是千方百计回避问题。当上司安排一项艰巨的任务时,也想尽办法推托。殊不知,对于个人而言,问题其实是最好的学习机会。往往那些愿意接受困难工作的人,能力会越来越强,那就是因为他们在克服困难的过程中取得了巨大的进步。  织网式学习知识的广度和深度都很重要。作为一名程序员,能深入把握技术细节,是写出优质代码的保证。但对于一名项目经理而言,知识的广度更显重要。项目中碰到的问题往 往具有综合性,只有具备广博的知识,才能快速对问题进行分析和定位。在程序员成长的道路上,我们必须有意识地扩大自己的知识面,形成更完善的知识体系。我曾经编写过一个网络信息采集软件,这个软件可以从具有列表页的网站中按字段设置采集信息,支持自定义字段、页面多级关联、下载附件、支持多种数据库、可视 化定义等特性。刚开始,我认为这个软件只是一个比较大的功能点而已,后来发现这个不起眼的功能关联着大量的知识点(如图1所示)。  在开发过程中,我顺藤摸瓜,逐个击破,对很多知识点进行了细致的学习研究。软件开发完成后,我的知识体系网也进一步得到了补充和完善。  经常思考总结子曰:“学而不思则罔”。人只学习不思考,就会迷惑,难以把握事情的本质。这就好比一个学武之人,只习得其形,而未得其神,难以成为真正的高手。从入门到成为高手的过程中,程序员往往要经过几次顿悟。记得有一次,我领悟到了一个很简单的结论:“原来高级编程语言中的类库是封装了Windows API来实现的。”后来碰到一些自带类库无法实现的功能时,我就会想到,其实可以通过调用Windows API来实现。利用这个思路,我解决了一些看起来很难的问题,得到老板的赏识,从而很快获得提升。顿悟非常可贵,然而它不是随便发生的,而是经过一次次苦苦思索之后、灵光闪现的结果。思考的过程,其实就是将外在知识内化为自己的知识的过程。而顿悟,则批量实现这种内化,将无数个知识点连接在一起,达到融会贯通的境界。  克服“高原现象”爱学习的人都会有这样的经历:学习持续了一段时间之后,往往会有一个瓶颈期,长时间似乎都没有什么进步,于是内心非常着急。这种情况,实际上是由人的学习规律决定的一种“高原现象”。据研究,学习者在刚开始进步快,随后有一个明显的或长或短的进步停顿期,后期进步慢,中间的停顿期叫高原期(如图2所示)。  高原期,实质是一个消化期。由于前期的学习积累了太多的知识点,这些知识点在大脑中乱作一团,还没有形成一个知识体系。这时需要一定的时间来消化它,让它融会贯通,经常思考总结可以快速帮你跨过高原期。处于高原期时,还可以换一个相关的方向来学习。例如,编程语言学不下去了,可以学习一下设计模式,设计模式也学不下去了,再换成数据库。通过学习这些相关的知识,不但补齐了知识体系中的短板,而且各个知识点之间可以互相启发,帮助你实现顿悟,跨过高原期。  要有好心态  学习要静心急于求成是学习过程中普遍存在的一种心态,这可以理解。毕竟作为一名程序员,要学的东西实在太多,而社会又是那样的浮躁,让人觉得一切都是那样的不安全、不确定,似乎只有学得快一点,才能跟上社会的脚步。可是“欲速则不达”,想快快地学,往往会形成东一榔头、西一棒槌的学习方式,每一个点都没有吃透。心沉不下去,知识也会沉不下去。要想成为真正的高手,只能静下心,一步一个脚印慢慢来。  学习是持续一生的过程人生,就是一个自我完善过程。子曰:“吾十有五而志于学,三十而立,四十而不惑,五十而知天命,六十而耳顺,七十而从心所欲,不逾矩。”可见孔子也不是天生的圣人,也在不停地学习、进步,从“志于学”到“从心所欲,不逾矩”,孔子一共花了55年的时间。作为一名程序员,更需要不断丰富自己的知识库。我们所知道的东西,就像一个白色的圆圈,圈外则是黑暗的未知的世界。当圆圈越大,所接触到的黑暗部分就越多。我们只有不停地学习,才能打破更多的黑暗,找到更多光明。  保持饥饿,保持愚蠢我非常喜欢乔布斯的一句话:“求知若饥,虚心若愚”(Stay Hungry,Stay Foolish)。其实我更喜欢它更原生态的翻译“保持饥饿,保持愚蠢”。我们只有认识到自己还很饥饿和愚蠢,才会像没吃饱一样,由衷地需要学习、爱上学习。
Web前端工程师成长之路——知识汇总 ( 14:44:06)转载▼标签: web前端工程师 分类: Web开发应用
一、何为Web前端工程师?
前端工程师,也叫Web前端开发工程师。他是随着web发展,细分出来的行业。Web前端开发工程师,主要职责是利用(X)HTML/CSS/JavaScript/DOM/Flash等各种Web技术进行产品的界面开发。制作标准优化的代码,并增加交互动态功能,开发JavaScript以及Flash模块,同时结合后台开发技术模拟整体效果,进行丰富互联网的Web开发,致力于通过技术改善用户体验。图1、前端技术MSS
Web前端开发技术主要包括三个要素:HTML、CSS和JavaScript!
它要求前端开发工程师不仅要掌握基本的Web前端开发技术,网站性能优化、SEO和服务器端的基础知识,而且要学会运用各种工具进行辅助开发以及理论层面的知识,包括代码的可维护性、组件的易用性、分层语义模板和浏览器分级支持等。
随着近两三年来RIA(Rich Internet Applications的缩写,中文含义为:丰富的因特网应用程序)的流行和普及带来的诸如:Flash/Flex,Silverlight、XML和服务器端语言(PHP、ASP.NET,JSP、Python)等语言,前端开发工程师也需要掌握。
前端开发的入门门槛其实很低,与服务器端语言先慢后快的学习曲线相比,前端开发的学习曲线是先快后慢。HTML 甚至不是一门语言,他仅仅是简单的标记语言!CSS 只是无类型的样式修饰语言。当然可以勉强算作弱类型语言。Javascript 的基础部分相对来说不难,入手还算快。
也正因为如此,前端开发领域有很多自学成“才”的同行,但大多数人都停留在会用的阶段,因为后面的学习曲线越来越陡峭,每前进一步都很难。 Web前端技术有一些江湖气,知识点过于琐碎,技术价值观的博弈也难分伯仲,即全局的系统的知识结构并未成体系,这些因素也客观上影响了“正统“前端技术的沉淀!而且各种“奇技淫巧”被滥用,前端技术知识的传承也过于泛泛,新人难看清时局把握主次。因此,前端技术领域,为自己觅得一个靠谱的师兄,重要性要盖过项目、团队、公司、甚至薪水。
另一方面,正如前面所说,前端开发是个非常新的职业,对一些规范和最佳实践的研究都处于探索阶段。总有新的灵感和技术不时闪现出来,例如CSS sprite、负边距布局、栅格布局等;各种JavaScript框架层出不穷,为整个前端开发领域注入了巨大的活力;浏览器大战也越来越白热化,跨浏览器兼容方案依然是五花八门。为了满足“高可维护性”的需要,需要更深入、更系统地去掌握前端知识,这样才可能创建一个好的前端架构,保证代码的质量。
随着手持设备的迅猛发展,带动了 HTML5行业标准的快速发展。web领域的技术,大概有10年都没有大的更新了!现在市场很需要优秀的、高级的前端工程师。一方面是因为这是一个比较新的细分行业,而且前端程序员大都自学一部分,知识结构不系统;另一方面,大学里面没有这种课程,最最重要的是:北大青鸟这类培训机构也没有专门的前端工程师的培训课程!!
吴亮在《JavaScript 王者归来》第一张的序里面说:大多数程序员认为 Javascript 过于简陋,只适合一些网页上面花哨的表现,所以不愿花费精力去学习,或者以为不学习就能掌握。实际上,一门语言是否脚本语言,往往是她的设计目标决定,简单与复杂并不是区分脚本语言和非脚本语言的标准。事实上,在脚本语言里面,Javascript 属于相当复杂的一门语言,他的复杂度即使放在非脚本语言中来衡量,也是一门相当复杂的语言!Javascript 的复杂度不逊色于 Perl 和 Python!二、如何学习前端知识?
作为一名最基础的前端工程师你必须掌握HTML、CSS和JavaScript。三者必须同时精通,类似我字样对前端知识一知半解的,一遇到问题就停下工作就四处搜索解决方案的,首先就算不上一个合格的前端人员。像我这样的如果当了前端工程师那工期肯定是不能保证的。合格的前端工程师第一要学会的就是在没有任何外来帮助的情况下(包括搜索引擎),能够完成大多数任务。以下知识点是作为一个前端工程师必须了解和熟悉的:DOM结构——两个节点之间可能存在哪些关系以及如何在节点之间任意移动。DOM操作——怎样添加、移除、移动、复制、创建和查找节点。事件——怎样使用事件以及IE和DOM事件模型之间存在哪些主要差别。XMLHttpRequest——这是什么、怎样完整地执行一次GET请求、怎样检测错误。严格模式与混杂模式——如何触发这两种模式,区分它们有何意义。盒模型——外边距、内边距和边框之间的关系,IE & 8中的盒模型有什么不同。块级元素与行内元素——怎么用CSS控制它们、它们怎样影响周围的元素以及你觉得应该如何定义它们的样式。浮动元素——怎么使用它们、它们有什么问题以及怎么解决这些问题。HTML与XHTML——二者有什么区别,你觉得应该使用哪一个并说出理由。JSON——它是什么、为什么应该使用它、到底该怎么使用它,说出实现细节来。
上述这些知识点都应该是你“想都不用想”就知道的东西。除了上述的前端知识,也还需学会至少一门后端编程语言,让你自己学会如何与后端进行更好的交互。很多前端工程师对一些库非常的熟悉,jQuery,Bootstrap等,但是对于库的熟悉并不能提现你的优秀,整整优秀的是那些理解库背后的机制,特别是能够徒手写出一个自己的库的人。真正合格的前端工程师是能实现具体的功能要求,而优秀的前端工程师需要解决的问题是寻找一个最优的解决方案。
再者,优秀的前端工程师需要具备良好的沟通能力,因为前端工程师至少都要满足四类客户的需求:产品经理。这些是负责策划应用程序的一群人。他们会想出很多新鲜的、奇怪的、甚至是不可是实现的应用。一般来说,产品经理都追求丰富的功能。UI设计师。这些人负责应用程序的视觉设计和交互模拟。他们关心的是用户对什么敏感、交互的一贯性以及整体的好用性。一般来说,UI设计师于流畅靓丽、但并不容易实现的用户界面,而且他们经常不满前端工程师造成 1px 的误差。项目经理。这些人负责实际地运行和维护应用程序。项目管理的主要关注点,无外乎正常运行时间、应用程序始终正常可用的时间、性能和截止日期。项目经理追求的目标往往是尽量保持事情的简单化,以及不在升级更新时引入新问题。最终用户。指的是应用程序的主要消费者。尽管前端工程师不会经常与最终用户打交道,但他们的反馈意见至关重要。最终用户要求最多的就是对个人有用的功能,以及竞争性产品所具备的功能。
Yahoo公司 ,YUI的开发工程师 Nicholas C. Zakas 认为:前端工程师是计算机科学职业领域中最复杂的一个工种。绝大多数传统的编程思想已经不适用了,为了在多种平台中使用,多种技术都借鉴了大量软科学的知识和理念。成为优秀前端工程师所要具备的专业技术,涉及到广阔而复杂的领域,这些领域又会因为你最终必须服务的各方的介入而变得更加复杂。专业技术可能会引领你进入成为前端工程师的大门,但只有运用该技术创造的应用程序以及你跟他人并肩协同的能力,才会真正让你变得优秀。三、提升无止境图2、Web前端工程师知识架构
优秀的前端工程师应该具备快速学习能力。推动Web发展的技术并不是静止不动的,这些技术几乎每天都在变化,如果没有快速学习能力,你就跟不上Web发展的步伐。你必须不断提升自己,不断学习新技术、新模式;仅仅依靠今天的知识无法适应未来。Web的明天与今天必将有天壤之别,而你的工作就是要搞清楚如何通过自己的Web应用程序来体现这种翻天覆地的变化。四、前端开发知识架构前端工程师浏览器IE6/7/8/9FirefoxChrome/Safari/Opera编程语言JavaScript/Node.jsJavaScript语言精粹切页面HTML/HTML5CSS/CSS3PhotoShop/Paint.net开发工具IDEVIM/Sublime Text2Notepad++/EditPlusWebStorm调试工具Firebug/FirecookieYSlowIEDeveloperToolbar/IETesterFiddler版本管理Git/SVNGithub/Bitbucket/Google Code代码质量Coding styleJSLint/JSHintCSSLintMarkup Validation Service单元测试QUnit/JasmineMocha/Should/Chai自动化测试WebDriver前端库/框架jQuery/Underscore/Mootools/Prototype.jsYUI3/Dojo/ExtJSBackbone/KnockoutJS/Emberjs前端标准/规范HTTP1.1ECMAScript3/5W3C/DOM/BOM/XHTML/XML/JSON/JSONPCommonJS/AMDHTML5/CSS3性能JSPerfYSlow 35 rulesPageSpeedHTTPWatchDynaTrace’s Ajax高性能JavaScript编程知识储备数据结构OOP/AOP原型链/作用域链闭包函数式编程设计模式Javascript Tips部署流程压缩合并YUI CompressorGoogle Clousure ComplierCleanCSS/UglifyJS文档输出JSDocDox/Doxmate项目构建工具make/AntGYPGruntYeoman代码组织类库模块化CommonJS/AMDYUI3模块业务逻辑模块化文件加载LABjsSeaJS/Require.js安全CSRF/XSSADsafe/Caja/Sandbox移动WebHTML5/CSS3响应式设计Zeptojs/iScrollV5/Sencha TouchPhoneGapjQuery MobileJavaScript生态MongoDB/CouchDB前沿技术社区/会议D2/WebRebuildNodeParty/W3CTech/HTML5梦工厂JSConf/沪)QCon/Velocity/SDCCJSConf/NodeConfYDN/YUIConf计算机知识储备编译原理计算机网络操作系统算法原理软件工程/软件测试原理软技能知识管理/总结分享沟通技巧/团队协作需求管理/PM交互设计/可用性/可访问性知识可视化SVG/Canvas/VMLD3/Raphaël/DataV后端工程师编程语言C/C++/Java/PHP/Ruby/Python/…数据库SQLMySQL/MongoDB/Oracle操作系统Unix/Linux/OS X/Windows数据结构
Java程序员转Android开发必读经验分享 devstore 互联网晚自习小编最近几日偷偷的发现部分Java程序员想转安卓开发,故此加紧补充知识,为大家搜集资料,积极整理前人的经验,希望可以给正处于困惑中的你,带来些许的帮助。  啰哩啰嗦的说说Java和Android程序的区别:  Android是主流智能手机的操作系统,Java是一种开发语言,两者没有好坏优劣之分,只是两种职业岗位的选择。学安卓从事移动互联方向开发,学Java从事软件、网站开发。而安卓上的应用大多是Java编写的,所以建议在安卓前期的Java学习阶段中,要用心学好。  言简意赅的说说“转”前的准备:  其实Java程序员要自学安卓开发的基础知识还是没有什么难度的,毕竟语言相通,特性相似,阅读安卓源代码的门槛以比较低一些,作为能够考虑“转”的合格的程序员的你,自学能力和相关的基础知识应该不是问题,学习安卓也相对比较轻松一些。  所以Java程序员转安卓开发可以看做是一次“增量更新”,只需要学习一下安卓的基本组件:Activity、ContentProvider、Service、BroadcastReceiver;  了解一下安卓中的Intent,Handler,Adapter以及各类事件的传递方式(onClick,onTouch等);  同时辅助一定的代码量,像JNI、AIDL什么的都可以看一下;  你还要摒弃“UI元素像素位置”这个概念,安卓本身是允许通过设定元素位置来制作UI的,如果你这样做导致的结果便是大批机器不适配,那么显示效果就有点惨不忍睹了,所以不要妄想通过获取屏幕大小来调整UI,像LinearLayout在swing或者swt上可有可无的东西,在安卓上是必须要精通的。  还有熟悉ide,安卓提供的开发框架、Java及其他编程知识等。  当然,小编在此说的只是九牛一毛,还有很多在开发过程中需要注意的细节问题是我们没有提到的。  下面小编跟大家分享一下前人关于技术开发转移动应用开发的经验,希望对大家有借鉴的作用:  刘铁峰,海豚浏览器CTO  因为具体的开发场景不一样,目标的读者的经验也各不一。分享一点转型过程中,所需要补充的知识点和逻辑上的转变。  移动开发和PC上的开发带来了哪些不一样?  在我看来,从2002年之后,传统桌面的开发者基本都转向了J2EE/.NET/LAMP等以Web技术或者服务器端开发技术为主的开发方式。使用C/C++/MFC/Delphi等开发C/S模式的用户越来越少,甚至工作的需求也开始变得越来越少。  这样在技术体系上,开发者的经验开始基本上覆盖在:  1.HTML + CSS + JavaScript  2.各种脚本语言(PHP/)操作服务器API  3.服务器数据处理逻辑(O/R Mapping, 数据库连接池,各种如AOP等设计模式,甚至DSL等等)  4.大型服务器的架构设计(分布式架构,各种负载均衡,服务器连接优化)  5.数据库(分布式数据库,事务处理,大规模数据的存储、查询优化)  6.大数据处理(Hadoop, Hive)等等。  那对于移动开发上需要什么?  不管是Android / iOS /WP , 其实对于开发的需求上逐渐回到了2002年之前,大概类比MFC/Delphi的时代,更加合适。  移动开发者的技能需求发生了转变,需要的经验变成了:  充分理解各移动平台的进程架构和程序生命周期逻辑(程序启动,程序被系统suspend/kill, Services)  1.界面设计(各种UI控件,事件处理)  2.数据处理逻辑(客户端缓存、多线程并发)  3.网络数据处理  4.平台相关特性(系统API调用,系统通知机制等)  5.各种性能处理。  因此,在学习的路线和需要的经验上有了不同。  如果需要从非移动开发者往移动开发者进行转型,哪怕同样使用的是Java语言,需要的就是了解不同的库以及处理不同领域的具体问题。  在移动设备的开发上,我归结为三大类问题:性能的问题,界面响应的问题,产品的稳定性。这些是技术人员可以需要最为注意和保障的。  季逸超,Peak Labs创始人  记得当时iPhone出来后,让人们看到了一个与传统的“窗口”完全不同概念的逻辑:界面方面一个应用占满整块屏幕,程序方面代码也都是在严格的沙箱内运行。当时我就意识到这将是一整套全新的规则体系,后来渐渐从表面往深层看,写了几年烂代码慢慢我也有了点心得:  1.淡化文件的存在,而凸显应用和工作流。  2.尽量避让主线程/UI线程,避免锁界面。因为桌面应用锁UI的话只不过是一个窗口,而移动应用会给人感觉是“手机”这个整体挂了...  3.能迅速完成的操作/运算就不要指望后台,自己的程序随时可能被kill掉。后台只留给VOIP、网络操作之类的。  4.尽量加快启动速度。移动产品用的频繁,但单次使用远比桌面要短,所以不要出现Photoshop那样让用户傻等的情况。即使用个“假象”也要让用户觉得启动挺快的。  5.同一个功能最好有多种交互/操作方式。不像Windows一统桌面江湖,现在各个版本的android、iOS用户之间使用习惯迥异,最好能让人们的习惯都能work。  6.最好不要让UI控件太显眼(比如街机游戏中硕大的摇杆遮住了人物),但也别太隐晦(猛犸浏览器4,哈哈哈)。  7.用户其实很在意耗电和发热量,桌面用户从不在乎…  8.很多功能别人说做不到或说平台不允许不开放的时候,总有人用匪夷所思的奇葩手段实现了…  个人拙见请勿轻信哈~  王思达,爱安卓,爱刷机,爱移动互联网  从桌面端转向移动端,一定要认识到二者不同的侧重点。桌面端包括web更侧重于逻辑复杂,高级的任务,而移动端的娱乐性明显更强。  就从操作方式说起吧,桌面端主要靠鼠标键盘和touchpad,所以操作精度要高得多,很容易将很多功能集成到一个界面里;但同样的思路就完全不适用于移动端了 (反例我是实在想不起来了,大家可以帮忙想想),相信一个cluttered ui的app,就算功能再强大,用户盯着你的界面超过3s就会头晕,点击某个button要点好几下才会成功,也必定是一个糟糕的app。  那什么样的操作方式是适用于移动端的呢?  ListView的滑动操作就是一个很好的例子,不需要用户任何的思考,只需顺着期待的内容出现的方向滑动,这样 intuitive的设计便是王道。类似的设计还有来自Tweetie的下拉刷新,Android 4.0引入标准库的ViewPager等等。上述的操作都有一个共同特点——手势操作。既然移动端(不管是手机还是平板)是拿在手上的设备,那手势操作成为其杀手锏就毫不奇怪了,自然也就成了区分移动端和桌面端的一个重要特质。PeakJi大神的猛犸浏览器和输入法(忘记名字了)同样也体现了这一点。  有了简单直观的手势操作,还有一个不得不提的feature——push notification。用户很懒,一台机器装了上百个app,可能一个月你的app也就被打开一两次,这当然不是你希望看到的。如果你的app是网站客户端性质的,那么push notification就是一个很好地利器了。怎么做呢?我总结了下面的流程:  1. 与社交网络连接,获取用户资料,分析用户兴趣  2. 记录用户在你的网站或客户端的使用习惯,逐渐逼近用户真正的兴趣  3. 根据得到的用户兴趣,推送他感兴趣的内容  可以看到,不仅仅是“通知”那么简单,像新浪微博那样的,一天一条的palm news,多了只能让人感到annoying,并不能起到和用户很好的沟通的效果;只有推送用户感兴趣的内容,才会引起他们的注意,增加你的app在用户心中的权重。  最后一点我认为很重要的,就是consistency,和操作系统要保持操作习惯的一致性。比如左上角的返回button,Android 4.0的ViewPager滑动换标签等,这样做最大的好处就是降低了用户的学习成本,让你的app和OS融为一体。当然在OS的大框架下,也不乏有新意的app,比如Android下的一款类siri应用Maluuba,大胆地采用了Metro风格的设计,但操作起来并不会觉得陌生,最大的原因就是 ViewPager的滑动操作被保留了下来。
登录百度帐号推荐应用
为兴趣而生,贴吧更懂你。或

我要回帖

更多关于 充电宝什么牌子最好 的文章

 

随机推荐