未来架构师征文精选4篇
【引读】由阿拉题库最美丽的网友为您整理分享的“未来架构师征文精选4篇”办公资料,以供您学习参考之用,希望这篇文档资料对您有所帮助,喜欢就复制下载吧!
架构师心得【第一篇】
从毕业开始到现在技术已经做了4年了。4年时间,从一个创业MIS型公司的小小程序员混到了现在的互联网企业的技术型PM(其实个人觉得自己应该被称为高级工程师,或者厚着脸皮的话称为“架构师”也行)。中间的道路虽然也是磕磕绊绊,当庆幸的是还总算是爬过来了。
其实要说有什么大的经验也算不上,只能说跌爬滚打了4年时间,再怎么不长记性,忘乎所以,长了伤疤忘了疼,但是疤痕总归要留下一点?!只能说把这些曾经的伤疤拿出来和大家分享一下,怎么样让以后的同志们尽量少去碰石头或者投海。以前有人撞过了,投过了,以后能绕道就绕道吧!
其实做技术呢,不能光去从技术角度看到技术,他牵涉到方方面面(这个不是说大话,我不是“叫兽(教授)”,更不是“装假(专家)”,没必要托大)。如果你光从技术角度去提升你的技术,你将会很快就碰到瓶颈,并且碰到瓶颈后没有什么好的办法去克服。那么我们在提升自己的技术之前要做些什么?怎么提升自己的自身的技术呢?
第一:你先要认识你自己。作为程序员,其实我们90%或者更多都是很自负的。不要不承认,我也是程序员。我深深的了解自己所属的人群。你是不是经常有下面的现象发生:你看别人的代码都是垃圾,看自己的代码都很完美?你是不是觉得别人写的代码或者做的解决方案都不是最优的,只有你自己的代码或者解决方案是最优的?你是不是会觉得你的代码肯定没有bug,别人的代码肯定存在bug?……。太多了。如果这些现象在你身上发生,那么第一件事情就是:请你把它改掉吧?!程序员应该是谦虚的,上进的,否则在这个技术更新比换gf都快的时代,你不太能跟上步伐。
第二:你是不是经常和人家争执?你是不是每个问题都争执?你是不是听不见去别人的任何意见?……。这点也请你改掉它。作为技术人员这个是特有的,我以前也是为了一个问题会和别人争得面红耳赤,情绪激动。最后往往是不欢而散。想想到头来对你有什么好处呢?技术和学术还是有区别的,技术不需要争论,技术需要的是真实,现实。当你们存在争论的时候最好的方式是去做一个demo,又能锻炼自己,又能说明问题。一箭双雕,何乐而不为呢?
第三:不要有信仰之争。现在很多程序员,包括经常听到已经工作了十几年的技术人员往往也在说java比net好,或者是net比java好;window比linux好,linux比window好。这些派别,门户,俨然已经成为了一种信仰。但是不应该有对立啊!大家都是经过高中教育的,都是学过唯物辩证法的。一个东西肯定存在好的一面也肯定存在不好的一面。何况是两个东西比较呢?每个人的信仰可以不一样,但是信仰是用来去尊重的。不是用来争的。你可以有你的信仰,但是你也不能去污蔑别人的信仰啊?!Anders Hejlsberg和James Gosling尚且可以心平气和的坐下来谈谈,我们为什么就不能呢?再说了,我们又不是非得要靠net或者java吃饭的。我们就不能把net的优点和java的优点都拿过来用吗?
第四:别眼高手低。不管是应届毕业生或者是老手,千万要记住一条。你就算再有水平,也要在别人见到你的水平后再去要求别人。不要上去给你做什么都感觉简单,都觉得大材小用,都觉得浪费你的聪明才智。然后往往紧跟出现的就是工作一团糟。美其名曰:这种东西老子不屑做。咳……。这个怎么说呢?你都觉得简单了,为什么不把它做做好呢?碰到这种问题,我只能说你最好还是换位思考一下吧?!
第五:请关心开源社区。开源社区的优点就不多说了。如果你是一位net开发人员,我衷心的劝你一句:请关心一下开源社区吧!我也是net程序员,我也深深的了解net程序员的优缺点。但是请你们不要排斥开源,也不要一味的使用MS的产品。有的时候开源的东东能给你另外的一种解决方案,能让你看到另外的一片天地。你也不要觉得开源非常的高深,如果有机会,你也尽可能的加入其中。不为别的,如果你加入了开源组织,再提交了代码的话,你的简历是不是就加分了?你去面试的时候说我是“某某开源软件”的开发人员,你是不是觉得自己巨牛无比?我想面试官也会另眼相看,你觉得他好意思再给出一个拿不出手的薪水吗?
第六:解决问题的时候,认清本质。最近我们组要开发一个MongoDB的客户端。因为开源的MongoDB客户端功能不完善,没有达到我们的需求,我就让我们组的一个同事开发。我知道他的水平,所以我故意不太和他讲具体怎么做,我也不是经常去问他做的怎么样了。完全靠他自己。我知道这个东西到最后肯定失控(没办法,交学费嘛)。上个星期五见分晓了:确实不行了。那么问题在哪里呢?就是该同志认不清他要做这个软件的本质在哪里?我只要达到什么功能就可以了!结果太多的功能都被复杂化设计,问题引出了新的问题,代码越来越多,越来越臃肿,伴随的现象也是越来越不着边际。使用了99%的时间去实现1%可能会遇到的问题,并且这个1%的问题并不是“”。这个软件就算是做出来,还是可控的吗?是不是又是一个焦油坑-----首先你的软件质量不能保证了;其次,你很难扩展;第三:你花费了太多无谓的工时……。
第七:多看书,多看网站(不是小网站),多练习。我提升自己的经验是多看书和网站。在书上你经常能学到一整套新的技术;网站上的文章能给你一些架构上的思考。因为技术是学出来了,你可以通过书本突击;架构是改出来的,不是设计出来的。所以网站上的文章那种短小精悍的模式正好符合,所以需要提高技术就去看书,需要学习架构方面的知识就去看相关网站上的文章。至于练习,我觉得这个各取所需吧!反正我是不太做练习的,我看一边代码基本上就理解了,但是我几个同事是边看书边写代码才能理解代码的,这些其实也是个人的习惯吧!
第八:学习提升主要靠自己。现在很多的人都觉得我来公司是来学习的;我在这个公司学不到什么东西。大家醒醒吧!公司不是学校,公司的本质是盈利,学校的本质才是教书育人。所以如果你想在公司里面学习东西,那么只有靠自己。别指望公司给你有多大的提升空间。除非公司万不得已,否则很少公司会正统的培训,培养员工。所以学习还是要靠自己,如果你只想着凭项目开发中学到的知识来支撑你整个职业生涯,别的时间可以用来娱乐,打游戏,玩,泡吧等等,那么我觉得你还是现在就转行吧!因为你可能过不了多久时间就要真的去考虑转行这个事情了。所以还不如现在就转行。俗话说;早死早超生嘛!
第九:懂得推销自己。让别人没认识你的时候就让人家知道你。这个是我最近一年才得到的经验。以前我老是觉得进公司的时候可以拿低工资,然后等自己的水平展现后再要求公司提高待遇。但是这条路被很多人证明是不现实的。你进公司的工资往往就决定了你在公司的种种。而且你的要求公司一般也是不太会答应。公司有严格的薪水制度,他也要面临一碗水端平的环境,所以这条被证明成功极少。那么你是否能改变一下你的做法呢?让你在没进公司的时候就让人家知道你的水平,这样你是不是就能得偿所愿了?!
架构师面试题【第二篇】
1. 设计文件系统
2. 数据结构for spreadsheet
3. 一个app需要用cache,怎么实现thread safe
4. social network, billions id, every id has about 100 friends roughly, what is
max connections between any two ppls. write algorithm to return min
connections between two ids: int min_connection(id1, id2)
you can call following functions
expand(id) return friends list of id
expandall(list) return friends union of all the ids in the list
intersection(list1, list2) return intersection
removeintersection(list1, list2)
5. Open , you type some words in the edit box to search something, it will return lots of search results. Among these returning results (that is, website link), you may only CLICK some results that are interesting to you. The system will record the “CLICK”action. Finally, you will have the search results ( url) and “CLICK” informatin at hand.
Question: how do you find the similarity of these searching?
6. 如何找出最热门的话题(根据tweets)。如果一个话题一直热门,我们不想考虑怎么办
7. Discuss design challenges of a distributed web crawler running on commercial PCs. How to utilize network bandwidth of those PCs efficiently?
8. Design a site similar to
9. large log file,含有 customer id, product id, time stamp想得到在某一天中某个custom看网页的次数1. 足够memory 2. limited memory
10. 设计一个actor和movie的数据库的schema, 支持从movie得到它的actors和从actor得到ta出现过的moive (Google, phone, )
11. 某建筑有五十层高,打算装俩电梯,设计该电梯系统
12. how to design facebook’s newsfeed?
13. 一个文件里n行m列,每行是一个record,每列一个feature,你时不时要按不同feature排序和查找。不能用数据库,文件大小内存能装下,数据结构和算法不限,语言不限,给出你最好的办法。
14. Design online game
15. static 变量用来在整个class中共享数据。基于此,各种synchronization技术, 以及busy waiting的优缺点,啥时候要用基于busy waiting的 spinlock主要是基于性能的探讨。 如果有一个应用程序运行时没有达到timing constraint, 你如何去分析问题出在哪儿, 可以用什么工具或者技术。
16. 设计题, 有一个多台机器构成的cluster。 现在有大量公司的数据文件 (并有多个备份)。 如果设计一个算法,使得每台机器尽量均衡的使用,并且 每个公司文件的不同copy不能存在于同一台机器上。主要的Idea就是用round-robin的方式assign每个公司的原数据文件到一台机器,再结合使用hashtable。 Interviewer提到我的解法正是他现在在使用的解法。
17. Design a class providing lock function which provide lock only if it sees there are no possible deadlocks.
18. 设计一个分布式文件系统,给定path name,可以读写文件。具体的system design这里就不提了。其中一个细节是,给定path name,怎么知道哪个node拥有这个文件。我提出需要实现一个lookup function,它可以是一个hash function,也可以是一个lookup table。如果是lookup table,为了让所有client sync,可以考虑额外做一个lookup cluster。然后Interviewer很纠结,既然可以用hash function,为什么还搞得那么复杂。我就告诉他hash function的缺点。假定一开始有N个node,hash function把M个文件uniformly distribute到N个node上。某天发现capacity不够,加了一个node。首先,要通知所有的client machine,configuration 改变了。如果不想重启client machine的process,这不是一个trivial job。其次,文件到node的mapping也变了。比如,本来按照hash function,一个文件是放在node 1。加了一个node 后,它可能就map到node 2了。平均来说,N/(N+1)的文件需要move到新的node。这个data migration还是很大的。然后我就提出一些hash function的design,可以减少data migration。最后他提了一个问题,说要实现一个function,要统计distributed file system所有目录的大小。前提是,一个目录下的文件可能放在不同的node上。我说这个不就是在每个node上统计,然后发到一个merge吗。他说对,但是又问用什么data structure来表示。我说这就是hash table,key就是directory name,value就是大小。因为directory本身是树结构,这个hash table的key可以用tree来组织。最后让我实现一个function,把我说得这个data structure serialize成byte array。因为这个byte array就是网络传输的data。我用了depth first traverse。不过等我程序写完,才发现,用breath first traverse会更方便,code也会很简洁
19. 超大图的存储问题
20. 给个Lock w/ two atomic method lock and unlock(),请用lock实现一个文件读写的系统,要求:
1: reader blocks writer;
2: writer blocks reader;
3: writer blocks writer;
21。设计一个web cache server,假设存储网页数量是10个billion,打算怎么设计
22.你可以得到网站访问记录,每条记录有user IP, 写一个程序,要随时能算出过去5分钟内访问次数最多的1000个IP. 这个好像跟着这个rolling window 的precision 有关,所以我们暂且定为5秒钟一次window
23. Design free and malloc.
24. how to design data structures for a facebook network and how to design an algorithm to find connection? How to optimize it if data is distributed into multiple computers?
25. design a deck class and member function to randomly select a card from those cards which haven’t been selected before. (You can assume the number of this function call will never be larger than the number of cards) For example, we have a deck of four card: 1,2,3,4. First it may select 3, then next time it should randomly select one from 1,2,4… And design a member function to reset.
26. google search design problem. How to distribute data and how to design backup system
27. 设计一个online chat system
28. design url shortening web service。算法设计,后端存储,中间层cache,前端load balance,最后是web analytics。
29. Design and implement an algorithm that would correct typos: for example, if an extra letter is added, what would you do?
30. Suppose there are 2 persons A and B on FB . A should be able to view the pictures of B only if either A is friend of B or A and B have at least one common friend . The interviewer discussed it for nearly 30 minutes . The discussion mainly included following points:
1. How are you going to store the list of friends for a given user?
2. File system vs DB
3. Given list of friends of 2 users, how are you going to find common friends?
4. If you are going to store the friends in DB then how will the table look like?
5. How many servers do you need?
6. How are you going to allocate work to servers?
7. How many copies of data will you need?
8. What problems will you face if you are maintaining multiple copies of data.
31. design structure for auto completion
32. 如何实现search suggestions。
33. 设计fb的系统支持like那个button
34. design 股票#,time,price;
-设计一个client side显示股票信息,给出尽可能多的user case
-在给出的user case里面,怎么设计客户端,使得客户段性能提高
-怎么设计server端
-数据如何传输
-server端如何保存数据
-怎么设计database table保存数据
-不用index怎么提高数据查询速度
-database是怎么实现数据查询的(要求从database implementation角度解释)
[架构师面试题]
遇见未来征文【第三篇】
花丛中飞舞着千万蝴蝶,她们都有艳丽的外表,华丽的服饰,但是,谁又能想到,在这之前,她们所经历的或许是人生中最痛苦的。挣扎——蜕变。从此,她们获得新生。
刘菲,一个东北女孩,走上了令很多人羡慕不已的明星路,就像光亮的蝴蝶,但却从没人去挖掘她走过的艰辛的路。她曾经独自流眼泪,曾经一个人穿越迷雾,擦干泪水,曾经为迷失的爱找回方向,最终破茧,蜕变。可是蝴蝶从来不会忘记她的前身,所以她仅仅是外表蜕变,内心的品质,气质却没有丢失。她还是她,乐观,爽朗,热情,黑色的土地赋予她的灵魂也没有丢失。
她的气质注定了她不再平庸,她飞翔了,来到了花丛中,或许现在花丛里的蝴蝶太多,太耀眼,她没有立刻被注意,但随着时间的推移,她的气质魅力一定会散发出光芒,使周围的一切都变得平庸。
终于,这一天来了。她低声吟唱《无双》,那以后,她就成了无双,没有人可以模仿她,她是唯一的。太阳为她升起,小溪为她流淌,百灵为她歌唱。
经过了多年,翻阅了数不清的面庞,她决定去寻找远方的那些不可思议的梦想。于是,在夕阳的余辉下,她飞向了远处…….
未来航空航天征文【第四篇】
自从杨利伟叔叔登上神舟五号飞船去太空后顺利归来,我心中就有了梦想,那就是——有一天能到太空去遨游、探索太空中的神秘奥妙。
今天总算有这个千载难逢的机会,可以亲眼见到这个充满神秘和骄傲的东西,那是杨利伟叔叔乘坐的神舟号的返回舱在宁波万达广场展出。
节日的万达广场人山人海,那个航天展览会更是吸引着无数的游客。神舟号的返回舱展区,里三圈,外三层围满了许多人观看。我好不容易挤进人群,终于揭开了这层神秘的面纱,亲眼目睹了这个神奇的宝贝。神舟号返回舱像一只倒挂的大钟,周围有几个观察窗,外面黑黑的,有明显的太空摩擦痕迹。透过观察窗,我仿佛看见杨利伟叔叔坐在里面遨游太空的情景。另外还参观了人造卫星、运载火箭等模型,它们可做得真像呀!还有杨利伟叔叔穿着航天服的塑像,多么的神气。此时此刻,我深深地领略了我们航天科学技术的伟大。
回来的路上,我幻想着自己也像杨利伟叔叔那样乘着神舟号飞船,穿过浓浓的大气层,飞向那浩瀚无边的太空。
上一篇:大学英语2答案【4篇】
下一篇:捐书倡议书经典范例【优秀4篇】