怎样才能成为一名优秀的软件开发者
时刻提醒自己:学习
学习某件事的第一步是承认你不知道。这听起来很正常,但经验丰富的程序员还记得要真正让自己承认这一点需要花多长时间。
不要试图证明自己是正确的
新手(以及很多经验丰富的开发人员)会看着他们自己写的代码,欣赏它的奇妙。他们编写测试来证明他们写的代码是可以运行的,而不是试图让它运行失败。真正优秀的程序员会积极地寻找他们的错误在哪里,因为他们知道最终用户会发现这些遗漏的bug。
“代码可以运行了”这个目标不是终点,而是起点
是的,你的第一步总是想写出质量很高的代码,而且代码上面都写满了注释。但是一般的程序员在这一点上就退出,然后继续下一件事。
但是一旦“完成”就停止了这种思想就像是拍一张快照,然后期待它是一件艺术品一样。伟大的程序员都知道第一次迭代只是一次迭代。它运行起来了,恭喜你!但你的工作还有很多。现在,使它变的更好。
其实这个过程就是在定义“更好”的含义。让它变得更快能有什么价值吗?可重用更高有什么好处吗?更可靠吗?答案随着每个应用程序的不同而不同,但是过程都是一样的。
写三次代码
好的程序员目标是写出可以运行的软件就可以了。伟大的程序员写出来的软件目标是运行得非常好。通过一次编写这种情况几乎不可能发生。最好的软件通常被写三次:
首先,编写软件以向你自己(或客户)证明解决方案是可行的。其他人可能没有意识到这只是一个概念验证,但你确实这么做了。
第二次可以让它正常地运行。
第三次你能够让它平稳的运行。
当你看到最优秀的开发人员的工作时,这种级别的工作可能并不明显。他们所做的一切看起来都很出色,但你没有看到的是,即使是开发界的大腕儿,也可能在向其他人展示他们的软件之前就已经抛弃了第一个和第二个版本。抛弃之前的代码并开始编写另一个版本是一种强大的方式,可以将“更好地”融入到您的个人工作流程中。
如果没有其他情况,通过“写三次代码”可以告诉你解决问题的方法有多少种。而且它可以防止你陷入停滞不前的状态。
阅读大量的代码
阅读他人代码的原因也很重要,只是不是很明显而已。
当阅读其他人的代码时,你会看到其他人是如何解决编程问题的。但不要把它当成是文学作品,而是把它当成一种教训和一种挑战。想要变得更好,问问自己:
那块代码我该怎么写呢?既然你已经看到了别人的解决方案,那你会有什么思路呢?
我学到了什么?我如何将这种技术应用到我过去编写的代码中?(“我从来没有想过可以使用递归下降处理那块的逻辑”)。
我如何改进这段代码?如果这是一个开源项目,你对自己的解决方案更有信心,那就去做吧!
以作者的风格编写代码。练习这个可以帮助你进入作者的思维,这可以提高你的同情心。
不要只是漫不经心地思考这些步骤。写下你自己的答案,无论是在个人日志、博客、审查代码的过程中,还是与其他开发人员交流的论坛中。就像向朋友解释问题可以帮助你解决问题一样,记录和分享你的分析可以帮助你理解为什么你会以一种特定的方式对别人的代码做出反应。这是我之前提到的自省的一部分,帮助你冷静地判断你自己的优点和缺点。
不要把编写代码仅仅看作是任务
从事个人编程项目有很多优势。首先,它为你提供了一种学习工具以及学习技术的方法,而这些工具和技术在你当前的工作中是用不到的,但是这将使你在下一份工作中更有市场。无论你是为开源项目做贡献,还是为当地社区组织做公益工作,你都能获得技术技能和自信。(此外,你的个人项目向潜在雇主证明,你是一个从不停止学习的人。)
编写代码的另一个好处是它强迫你自己去解决问题。你不能把这些难啃的问题留给别人,所以它会让你过早地寻求帮助。
尽一切可能做到与其他开发人员面对面的工作
倾听别人的意见是很有帮助的。这可能意味着结对编程,或者参加黑客马拉松,或者加入一个编程用户组(比如Vermont
Coders
Connection)。当你为一个开源项目做贡献时,要关注一下你从用户和其他开发者得到的反馈意见。你在他们的批评中看到了什么共同点?
这样做你可能会很幸运地认识了一位可以完全信任的导师,无论是编码技术还是职业决策,你都可以完全信任他。所以不要浪费这些机会。
你是在学习技术,而不是在学如何使用工具
编程语言、工具和方法这些都只是一时的。这就是为什么需要你在这么多的语言和框架中尽可能多的获得经验。重点关注编程基础,因为基础永远不会改变;更关注体系结构而不是如何编程。如果你觉得做某件事只有一种正确的方式,那可能是时候进行现实核查了。条条框框的限制会妨碍你学习新事物的能力,也会使你很难适应变化。
学ui设计对学历有要求吗?
纯粹对于这个问题,那么,可以很明白的告诉你,U学I设计对学历是没有要求的!!只要你想学,肯学,跟学历没关系的,设计能力和学历不对等的
但是,如果你是从到大型设计类公司找工作这个角度去想,那些公司也许对自己员工会有一些要求,这里有一篇来自“UI中国”的文章,题目是《没读过设计院校,如何成为设计师》
强烈推荐UI中国这个网站,如果您想自学UI设计的话,时常到一些能提供最新资料与资源的网站上看看,并且跟着学习,坚持下去,一定会有所成就的,不在乎学历,其实对于学历这二字,我认为只是”学习的经历和过程“这个意思,不要把它和证明书挂钩在一起。知识是不会亏待人的,加油!
我没有读过设计院校,却成为了设计师。我曾经想要改变职业生涯,当一名设计师,但我没有4年时间和10W美元重回学校去读。所以我决定自学。首先,我很怀疑一个人是否可以通过自学,达到足够胜任工作的水平。
如果你也有相同怀疑,答案是肯定的。
我在6个月时间内完成了自己的设计学业,同时还做着一份全职工作。那时我没觉得自己做好了准备,但还是开始应聘了——并且在一家很棒的创业公司得到了一份工作, Exec。
我承认,我还远不及许多从精英院校学习4年出来的设计奇才。但肯定足够我做好自己工作了。我的设计范围很广——网站、iPhone app、email、社交媒体,还有印刷品。
或许你想改变人生,成为一名全职设计师。或者你只是想学一点基础,支持你的创业公司或副业。
那么这是一份设计自学指南。
第1步:学着观察
最大的错误是过早陷身Photoshop。学习Photoshop没法让你成为设计师,就像买了笔刷也不会让你成为艺术家一样。从基础开始。
首先,学习如何绘画。
● 不必和一伙艺术家坐在屋子里尝试画一名裸女。
● 甚至不用那么精于绘画。学一些基础,能够舒服地用钢笔绘图就行。
● 学习绘画只需要做一件事:买一本书《You Can Draw in 30 days》,每天练习半小时,坚持一个月。我看了很多绘画书籍,这本是最好的之一。
学习平面设计理论
● 从这本书《Picture This》开始。它是一本小红帽的故事书,但同时也会教你平面设计的基础。
● 学习色彩,字体,和使用网格设计。如果当地有平面设计的基础学习班,去参加。
● 每天参加这些课程。
学习基本的用户体验
有很多关于用户体验的书籍。从这两本快速读物开始,它们会帮你树立正确的观念:
● The Design of Everyday Things
● Don’t Make Me Think!
学着写作
● 别用Lorem Ipsum之类的占位符填充你的设计稿。作为一名设计师,你的工作不只是做出漂亮的图片——你得是个优秀的沟通者。思考整个体验,仔细斟酌每个词。东西是写给人看的。不要用校刊上那些让自己显得聪明的学术调调。
● 读Made to Stick,我有史以来最喜欢的书之一。它会教你如何抓住你的读者。
● Voice and Tone是个很不错的网站,里面都是如何与用户沟通的案例。
学会否定自己的作品
● 这是整个指南中最困难的一步
● 准备好否定每件自己的作品。准备好粗暴地毙掉你先前的宝贝设计。越快拥抱这一点,你的作品会越好。当你意识到自己的作品不够好,消灭它。再来一次。
● 要有另一双眼睛。拿着你的作品去找那些关心设计的人,获得反馈。一个也不认识?结交一些设计师朋友——参加设计师聚会和活动。
● 还有那些不关心设计的人。向一些潜在用户展示你的作品,请他们试用你的网站或者APP。别怕找陌生人——我有一回利用飞机延误,让航站楼里的每个人试用了我正在设计的app。他们中的很多人都正无聊着,很乐意帮忙,然后我得到了一些很棒的可用性反馈。
● 听。真正的聆听。不要去争论。如果你想从某人那里得到反馈,他们付出了时间与注意力来帮你的忙。不要用争论来报复他们的帮助。感谢他们并提问,而不是与之理论。以后再决定是否采纳他们的反馈。
第2步:学习使用Photoshop和Illustrator
万岁!现在你有相当牢固的基础了——视觉与用户体验。可以开始学习Photoshop了。实际上,我建议从Illustrator开始学,然后再转移至Photoshop。Illustrator是设计师用来制作LOGO与图标的工具。InDesign擅长制作印刷品设计,比如传单与名片。
学习Illustrator
● 可以通过大量的书籍、在线教程和当面课程学习Illustrator。选择最适合你的方式。下面这几本书对于学习Illustrator基础尤其有帮助:
● Adobe Illustrator Classroom in a Book——它挺枯燥的,但如果你学习了至少一半,你的Illustrator将掌握得非常好。
● Vector Basic Training——这本书教你如何在Illustrator里绘制美观的东西。
● 接下来是有趣的部分!关注在线教程,你能做的东西会让你印象深刻。其中我最喜欢这两个——一个logo和一副风景画。
学习Photoshop
● 有成千上万的的教程。大部分都一文不值。还好有一些确实质量很高的教程网站。TutsPlus的PSDTuts就是其中之一。
● 这是一个很棒的制作iPhone应用的photoshop教程。
● 这是一个很棒的制作网站效果图的photoshop教程。
● 每天挤出一两个小时来学习这些教程,你的进步速度绝对令人难忘。
第3步:学一些专长
你是想设计移动app?网站?还是信息图表?多多探索,然后选择你最感兴趣的,让自己更加熟练。
学习Logo设计
● 学会做出还过得去的logo:Logo Design Love。
● 不过你还会希望在logo上更进一步。学习创作统一的品牌形象——从网站到名片。看看这本书,Designing Brand Identity。
学习移动app设计
● 从这个教程入手,开始你的移动app视觉设计历程。
● 读一读这本全面且深思熟虑的iPhone设计书:Tapworthy。它会教你如何设计出不仅美观而且易用的app。
● 认真研究你手机上的app。评价它们。哪些好用哪些不好用?
学习网页设计
● 阅读Don’t Make Me Think来学习如何制作让人容易使用和浏览的网站。
● 如果你希望让网站看起来更棒,读一读The Principles of Beautiful Web Design。
● 将你觉得漂亮的网页设计列一份清单。注意他们的共同点。SiteInspire上有一些经典案例。
接下来要面对一个令人纠结的问题,作为一名设计师你是否需要掌握HTML/CSS:这取决于你的工作。掌握它肯定能让你在职场上拥有优势。即使你不想成为网页开发者,它也能帮你了解一些基础。你就能知道什么是可实现的,什么不行。
这里有些不错的HTML与CSS学习资源。
● Web Design Tuts是免费教程中我的最爱。
● 我最爱的付费教程是Treehouse(真的很实惠,每个月25美元)。如果你从零起步,需要有人给你清楚全面地解释,为Treehouse的教程大手笔支付吧。
第4步:创建作品集
你用不着去精英设计院校来成为一个设计师。但你需要一个可靠的作品集。
第一次着手时,要如何建立作品集呢?幸好你未必需要参与真正的项目、接触真正的客户来建立作品集。虚构一些自己的副业。这里有些点子:
● 在T恤上设计一些简单的创意。
● 寻找一些设计很糟糕的网站,重新设计它们。
● 想到一个iPhone app点子?做出它的效果图。
● 在Startup Weekend上加入一个团队,在周末项目中担任设计师。
● 加入99 designs contest来练习设计,作为一份简历。
● 通过Creative Workshop这本书来做平面设计练习。
● 找到当地的非营利组织,免费提供设计服务。
要抵制住把每件作品放进作品集的诱惑。这是仅仅展示你最优秀作品的地方。
最开始就是借鉴,借鉴,再借鉴。不用担心原创性——以后会有的,当你对自己的手艺更满意时。学一门乐器的时候,你总是先学着演奏别人去曲子,然后才谱写自己的。在设计中也一样。像艺术家那样抄袭。
去Dribbble从一些顶尖设计师那里寻找灵感。从pttrns获取iOS设计灵感,从siteinspire寻找网页的。
第5步:找到一份设计工作
当我第一次开始学习设计,我去了一个设计师招聘会。走进一间房间,里面坐满了经验比我丰富的设计师——5年、10年、15年工作经验。所有人都在找工作。情形很吓人。自学上路的我就在那里,很清楚地知道,自己是要与这些经验丰富的设计师竞争。
仅仅一年之后,我得到了一份设计师工作。与很多其他设计师相比,我的关键优势在于:我知道如何与开发者协作。
增进你就业能力的最重要因素,是能够和开发者一起工作。学习一些交互设计。学一些基础的HTML与CSS。科技行业的设计师(交互设计师、网页设计师、app设计师)都是稀缺人才,而且薪资可观。那正是我现在从事的工作。
如果你没有与开发者共同工作的经验,去体验。去Startup Weekend,参加黑客马拉松,或者在合作项目网站找到一名开发者。
做一个个人网站,把你的作品集作为核心内容展示。
出去创造一些奇遇——告诉每个人你在寻找设计工作。你永远不会知道,谁会认识什么人能帮上忙。
研究你感兴趣的公司与机构。在LinkedIn上搜寻那些公司的人,与他们建立深入联系,询问信息。得到工作的最好方式是关系。如果你没什么人际关系,还有很多其他方式为自己建立优势。
找到了工作之后,继续学习
我在Exec待了一年,现在在工作上已经学了很多。我寻找那些比我有天赋的设计师,向他们学习。寻找设计课程(好的在线课程有Skillshare、General Assembly、Treehouse和TutsPlus)。做一些副业项目。在书店的设计专区认真钻研。还有那么多可以学习和进步的空间。
时刻打磨你的技能,而且学无止境。
有疑问?和@karenxcheng打个招呼吧。如果你很认真的想学习设计,并希望每天练习,你或许会对我运营的一项激励实验感兴趣:100。
“没有人告诉新手这些事情,我希望当时有人能告诉我。所有我们这些从事创意工作的人,选择它是因为我们有好的品味。但也有条鸿沟,你在头两年做出的东西,可能没那么好。你觉得它会更好的,它有潜力,结果却没有如你所愿。但是你的品味,你在设计领域中的成绩,仍然可能是罪魁祸首。你的品味导致你的作品让自己失望。很多人没有熬过这阶段,就放弃了。我认识的大多数从事有趣、有创意工作的人,花了很多年才度过这个阶段。我们知道,在自己的作品中,并没有我们所希望赋予的那些特质。这些我们都经历过。而如果你才刚入门,或是仍然处在这一阶段,你得知道这很正常,你能做的最重要的事情,就是创作大量的作品。这需要时间。需要时间也很正常。你得杀出一条自己的路。”——Ira Glass
作者注:本文最初发布在Karen的博客。经过修订和校正后,发布到Medium上。
英国的医疗保障制度
其基本理念是《贝弗里奇报告》所提出的福利国家理论。1948年,英国颁布《国民医疗服务法》,将国家卫生服务制度作为医疗保障制度体系的主体制度,其费用占到全国卫生保健总费用的90%以上,居民享受免费程度很高的医疗卫生服务。在卫生保健的实施及管理方面强调国家中央集权控制卫生资源的分配,采取全科医生制度,医疗服务与资金管理一体化,以社区保健作为卫生服务的重点。其优点是覆盖全面,国民就医的直接费用低廉;不足之处是效率较低,就医等待时间长,医疗服务质量不高,公众满意度低,得不到及时治疗的患者不得不选择到私立医院或国外就医。基本特点:难而不贵。
从哪里能知道spacepi
网上。
SpacePi技术团队参加今年Pinetwork黑客马拉松,并在比赛中取得了骇客称号,Spacepi由此而生。
Spacepi作为Pinetwork的先行者,在此次活动中在测试生态链上开发出诸如:
SpacePiNFT、SpacePiRoblox、SpacePiSwap等多款模拟生态元素应用板块,PiNetwork未来将在SpacePi生态应用展开更多的落地应用。
Pinetwork价值是全世界人民和实用性共同赋予它。Spacepi目前就是让Pinetwork更加伟大。
面试互联网产品经理 怎么自我介绍
如:
面试官:简单介绍下你自己吧!
我:好的,我是大林的小白,我现在是一名产品经理,已经做了五年了。我进入产品经理这一行纯属偶然,当时我发现自己愿意跟客户打交道。我喜欢聆听客户的需求,了解他们究竟面临哪些问题,在什么样的场景下,会遇到什么问题,并想办法让产品简化他们的生活,解决他们的问题。
我大学毕业后,到一家小型创业公司做产品经理。当时我们做的挺不错的,只是没能实现快速增长。我家人都是在教育领域,所以我对教育行业有点儿了解,我建议改变工作重点,加强售卖的时候,对渠道商的了解。我拜访了很多渠道商来证实这个问题,并成功地说服团队改变了方向。
几年后我做了产品负责人吧,领导一个有4名产品经理的团队。我现在在XX做产品经理,管理个性化功能。我最近推出了一个功能,让用户可以创建一项XXXX功能。实际上这是我在一次参加黑客马拉松时创建的,但事实证明这个怪念头得到了用户的喜爱。他们可以用这个功能“讲故事”(这一段你可以用其他的案例,就是你自己的最好的成绩就行。)
之前用户使用我们的产品大部分都是私人行为,现在人们会跟自己的家人和朋友分享他们的XXXX,这让我们的付费用户增长了15%。如果你愿意听,我可以更详细地介绍我在XXXX的工作
工作之外,我会出于兴趣去阅读书籍,然后写点文章,同时呢,还会写点代码,写一些文字小游戏。我还经营着一个读书会和产品公众号。会员和粉丝基本上都是产品经理,以及其他的互联网人。他们愿意听我分享,看我写的文章。很感谢他们的支持。目前文章每个月会有几十万的阅读量吧。我现在希望能在一个处于早期阶段的公司工作,能把一个产品从概念设计阶段一直做到发布阶段,和公司一起,把一个产品从0到1开创起来。
曾经所拥有的产品经理经验让我觉得可以胜任这种工作,甚至可以承担其他几个岗位的一些职责。目前这个职位有很多吸引我的地方,对我来说现在进入是最好的时机,并且它和我眼下正在做的个性化工作有密切的关系。
什么是 Design Hackathon
Hackathon,即「黑客马拉松」,是一个流传于技术爱好者中的活动。在该活动当中,很多程序员相聚在一起,以合作的形式去编程,而且整个编程的过程几乎没有任何限制或方向。Design Hackathon 更类似用「黑客马拉松」的思维做产品设计,这种方法论融合了来自 Google,IDEO 等业界顶尖公司的产品设计工具和方法,它将所有的产品设计师、视觉设计师甚至工程师聚在一起,在一定的时间内,以头脑风暴的方式,最大范围地搜集产品的各种可能性,然后抽象地整理出这些想法背后所隐藏的核心概念和产品需求,快速梳理出正确的产品设计方向,之后将想法转化成可视的手稿和线框图,最终变成产品雏形。
快速发现海量可能性
Design Hackathon 非常适合产品定义阶段。在产品定义阶段,面对确定的需求,设计方向和目标尚模糊,产品形态发展的可能性非常多。如果仅仅采用传统的设计手段(比如单人决策),非常容易走向片面和狭隘的方向,既可能出错,也会丧失许多机会。Design Hackathon 将所有与产品相关的人员聚在一起,利用头脑风暴法,快速产生海量想法和点子,让产品设计从个人经验、老板意愿和竞品预设的桎梏中脱离出来,搜集最大范围的产品可能性。
确定方向的同时,拥有可落地的细节
Design Hackathon 遵循了一个「从发散到抽象再到具体」的过程,从最直接的个人经验、想法或者灵机一动的点子出发,抽象地归纳出这些想法背后所隐藏的核心概念或产品需求,最后再回归到具体的产品设计草图表达当中。这个由「发散到抽象再到具体」的过程,既保证了思维发散阶段的丰富性和灵感的多元化,又能达到将想法现实化的目的。
激发团队不同角色的创意
Design Hackathon 参与人员并不局限于产品设计师和交互设计师,而是可以拓展到工程师等其他产品相关人员。不同背景和角色的人通过讨论和互动,能够相互激发灵感,获得丰富的创意。在产品的设计过程中,设计师、工程师和高层领导者由于背景和理解问题的角度不同,常常会产生分歧和争议,使产品设计的时间周期变得不可预测。Design Hackathon 的方法论可以让整个产品团队都加入其中,在平等、专注且高效的状态下,通过分类的方法,将所有人思考的亮点条理化,汇聚到最终的产品设计中。
硅谷有什么好玩的
对于一些到硅谷来观摩考察的政商名流来说(尤其是那些所在国家GDP大于或等于加州的), 你的游览大多会包含以下内容:首先和下列一些或者全部公司的创始人共进晚餐或午餐: Google, Facebook, Apple, Twitter, 外加一些知名的VC. 如果有时间,斯坦福大学的校长可能会陪你一块逛下校园。还可能会去Intel或某个高新技术公司, 在某个让人印象深刻的设备前合影留念。 这种"标准硅谷游"很像是去迪斯尼玩了趟丛林冒险,然后就认为自己是去过非洲了。 因为你和你的随行人员分不清楚"曾经是创业公司的大公司"和"真正的创业公司"的不同, 你没有看到造就今日硅谷的原因。
如果不是乘坐自己的747专机过来的话, 你可能需要这份指南,来了解到硅谷到底应该来看什么(出于长远考虑,这里所述区域扩大到到由圣克拉拉(Santa Clara)到旧金山(San Francisco)的沿途地区)。这份指南描述了一些可以到硅谷来"看"或者"做"的事情,主要适合两类来访者: "我想来旅游观光一下(比如在Facebook/Google/Zynga/Apple大楼外看看)" 或是 "我想理解那些大楼里面正在进行着什么,并到硅谷来工作"。 传统的旅游景点可以直接参考旅游手册,这里不再赘述。
黑客的硅谷旅游观光指南
硅谷以其说是一个地点, 不如说是一种心境。这里没有巨大的纪念碑和宏伟的建筑,没有古代遗迹,也没有关于公司或者VC的旅行团。从圣克拉拉(Santa Clara)到南旧金山(San Francisco), 是45英里的一片连着一片的居民区。过去50年在这块不大的土地上发生的事几乎可以说成是"创业大爆炸", 很像是雅典文明, 佛罗伦萨文艺复兴, 或者1920年的巴黎。
加州梦
在来硅谷的路上,可以读一下Paul Graham的短文, Jessic Livingston的《创业者》, 还有记得看看硅谷不为人知的历史来了解本地人都不知道的故事。
阿图市(Palo Alto) 跳动的心之一
把旅途的起点设在阿图市, 站在Emerson街和Channing大道的交叉口, 你会看到一个青铜的地标, 真空三极管就诞生在这里。 走到367号Addison大街, 你会看到惠普公司那个著名的车库. 加分项: 你能理解这三处的重要性以及为什么HP改写了硅谷的历史。
中午的时候到阿图的市区走走, 应该可以看到神采奕奕的工程师在去吃饭的路上各种争论. 到Coupa Café这个挤满了创业者的咖啡厅坐坐, 这里时刻都在进行着组队或者融资(吵闹和拥挤的空间使得你不想听也不行). 或者去University Café以及the Peninsula Creamery看看创业中的工程师们;还可以在Il Fornaio吃个早餐,观察下VC以及招聘者的日常工作。
斯坦福(Standford) ——大脑
开车沿着University大道向南, 直到Palm Drive大街. 把车停好徒步去转转斯坦福校园. 然后去科学和工程广场(science and engineer quad), 注意那些建筑上的名字:Gates, Allen, Moore,Varian,Hewlett, Packard, Clark, Plattner, Yang, Huang等等. 加分项:你知道他们是谁以及他们是怎么开创公司的。你也可以命名一栋大楼,当然是等你IPO并且赚了3000万之后。
Terman工程大楼(现已拆毁)是技术创业的起点, 试试看你是否可以旁听到 Tom Byers, Kathy Eisenhardt, Tina Seelig的课,或者其他技术创业方面的讲师。
到工程学院旁听一节免费的创业领袖思想课程. 查下斯坦福创业网络的日历或者BASES日历看看哪里有免费的活动。到斯坦福学生创业实验室(译注:貌似已停办)看看,可以通过计算机论坛了解近期活动。 如果你有时间,可以到学校后面环山路走走, 顺便也感谢一下CIA的基金。
山景城(Mountain view) ——跳动的心之二
然后开车到山景城, 沿着Google后面的Amphitheater Parkway, 瞻仰一下沿途的建筑,他们基本上都是由一家已经倒闭的公司建立的, 一家曾经是硅谷最为炙手可热的公司--硅图(Silicon Graphics)(雪莱的奥西曼达斯可以说是对硅谷周而复始的创造性破坏的颂歌)。
这个街区的下一站是计算机历史博物馆, 很小却又非常重要, 这个博物馆存放了几乎所有计算机时代和前计算机时代的文物(可以提前看一下博物馆的活动日历). 看完之后出来,距离Moffett Field(莫非特场)已经很近了, 这里你可以乘坐香肠式飞艇游硅谷, 如果当时是个晴天而你资金又充足的话,这绝对是一次令人难忘的旅行。
紧挨者莫非特场的是硅谷黑暗一面的核心--洛克希德导弹和太空公司(Lockheed Missiles and Space). 洛克希德公司1956年来到硅谷, 其工程师数量从0增长到2万只用了4年时间。 他们位于森尼维尔(Sunnyvale)和阿图市的装配线生产了三代潜射弹道飞弹(Submarine-Launched Ballistic Missile)以及供CIA,NSA,NRO使用的间谍卫星. 当然人家谢绝参观. 当你开车经过肖克利半导体的时候, 想想从这家如果没死就和洛克希德工厂同岁的公司所衍生出来的每一家硅谷的芯片公司.
午餐时间到山景城市区的Castro大街则可以看到硅谷又个创业热区. 晚上到Red Rock Café看看正在工作的靠咖啡提神的程序员。如果你还想看其他的博物馆或者半导体相关东东, 开车到圣克拉拉(Santa Clara)看看Intel博物馆.
沙丘路(Sand Hill Road) ——风险投资
当我们庆祝硅谷成为技术创新的中心时,要知道这不是故事的全部。创业和创新在这里爆发是因为风险投资的崛起。 可以说VC是创业生态圈中同样疯狂的另一半(聚集在硅谷的VC占全美的42%)。
你可以在Woodside路的Bucks餐厅看到VC们边用早餐边工作,午餐的时候可以在Village Pub或者Madera听听他们抱怨最近的交易.你也可以在老的"VC中心",位于3000 Sand Hill Road的Restaurant 3000餐厅吃饭, 到了之后延周围转转, 看看大楼的公司目录, 你可能会对这些大楼枯燥的外表感到失望(有些VC为了离项目更近些,已经离开沙丘路这个发源地转而到阿图市或者旧金山开设办公室)。 加分项: 你能站到大楼外面,穿上三明治板, 上面写着愿意"为了股份工作", 并且向人发放你的执行计划和PPT打印版。
开车到Facebook创业时待过的位于阿图市的那个房子(对,就像电影里一样), 以及Google位于门洛帕克(Menlo Park)的第一个办公室(Facebook的新总部也位于门洛帕克)。
然后再开到库比蒂诺(Cupertino)绕着Apple的园区转转。Apple虽然不允许进去参观但是有苹果公司商店对外开放,与其他Apple Store不同的是,这里不卖电脑和手机,是全球唯一一个售卖Apple T-shirt和帽子的地方。
南旧金山(South San Francisco) ——生物科技天堂
如果你继续驾车往北会路过旧金山的南部,以机场南面的半山坡上写的"工业城市"而闻名, 在两平方英里的区域内,聚集了72家生物科技公司, 包括: Genentech, Elan Pharmaceuticals, Amgen, Cell Genesys, Cytokinetics, Rigel, Onyx Pharmaceuticals, Solazyme, Catalyst Biosciences。
旧金山(San Francisco) ——创业公司的生活方式
继续旧金山的旅途, 到Market区域南部的南部公园找地方停车, SoMa(South of Market)是Web 2.0创业公司的发源地和聚集地. 如果你是单身并住在旧金山, 关于走路还是骑车上下班比硅谷的其他区域更需要权衡利弊。 Café Centro是南部公园版本的Coupa Café, 也可以到美国芝士烤鸡吃饭(此时你距离旧金山巨人棒球场--S.F. Giants ballpark只有几个街区的距离)。
往北四个街区就是莫斯康会展中心(Moscone Center), 旧金山的主要会展中心。 去参加一个会展,即使你并不是那个行业的人。
伯克利
当斯坦福在20世纪五六十年代作为一个科技大学不断的和外部交流协作的时候,越过湾区位于旧金山东部的伯克利正在自顾自的忙着, 为什么? 因为他们正在研究核武器。然后伯克利也开始紧跟潮流,创业精神很快在各个院系开花结果。 到劳伦斯伯克利国家实验室看一看, 那里有诺贝尔奖,博物馆,还有不少值得一看的东东。 然后去参观1964年自由演讲运动的发生地: 史鲍尔广场(Sproul Plaza), 大学牌坊(Sather Gate)和电报街(Telegraph Avenue). 还可以去Cory大楼,Wozniak以及Soda大楼看看CAD, BSDUnix以及MEMS的诞生地。
硅谷的精髓在于交流互动而非高楼大厦
硅谷之所以是今天的样子,是由于那里的人,以及人与人之间的沟通与互动。这是无法坐在车里或者只是在街上走走所能体会到的。你需要进入那些大楼, 参与那些对话。下面有一些建议如何做到:
如果你想有终极的创业体验, 试试看能否帮那些去给VC融资的人拎包。然后做一只墙上的苍蝇,仔细听着。
如果你想真正感受一些这里的文化,找三家硅谷公司申请一份工作面试, 即使你并不想去任何一家工作。面试的过程你会学到远胜任何观光游所能教你的硅谷公司文化。
参加至少3个技术方面的位于硅谷或者旧金山的聚会, 可以到Meetups或者Plancast寻找(Meetup上有很多内容,可以通过搜索"startup"并把结果限定在旧金山, 阿图, 圣克拉拉三个城市).
查看iOS Developers,Hackers and Founders,106Miles,Ideakick的聚会。 参加一个黑客马拉松。 去之前订阅创业文摘硅谷版。
找一家真正的3到10人规模的工作在拥挤的空间中的创业公司,在那里坐上一下午。免费帮助他们写会儿程序。旧金山有很多这种共享办公室的创业公司。这里很容易了解到当你只有几个联合创始人并且没有自己的车库是什么感觉。 拜访: Founders Den, Sandbox Suites, Citizenspace,pariSoma Innovation, the Hub, NextSpace, RocketSpace, Startup House, The Hatchery,PeopleBrowsr, Dolores Labs以及DogPatch Labs, 到这里查看旧金山的更多地点。
开车到雷德伍德市(Redwood City)的Studio G, 山景城(Mountain view)的Hacker Dojo, 森尼维尔(Sunnyvale)的Plug Play Tech Center. 圣何塞的Semantic Seed. 到这里查找共享办公空间的更多地点。
想办法加入Blackbox.vc和Sandbox Networdk. 看看最近是否有创业周末或者SVForum活动在湾区(Bay area)举行.
混进位于Townsend大街153号9层的SoMa(South of Market)中心孵化基地, 尝试被其中30个创业公司雇佣。
如果你在尝试融资或者认识天使投资人,去之前试试通过AngelList来建立联系.
尝试运用你的创业技能加入这些活动: "Y-Combinator"的晚宴, demo day, 500 startups或者Harrsion Metal的活动。 参加一个Techcrunch活动. 当然还要参加一个精益创业聚会。
给自己找份工作。
永远不走。
c语言编程 不能和百度一样
部分 1: 准备工作
1
下载和安装编译器。 C语言需要通过编译器解释为计算机可以理解的机器码。 编译器通常是免费的, 不同的操作系统上一般使用不同的编译器。
对于Windows系统, 可以尝试 Microsoft Visual Studio Express 或者MinGW。
对于Mac系统, XCode是一款优秀的C语言编译器。
对于Linux, gcc是一个不错的选择。
2
理解基本概念。 C语言是一门古老的语言, 但却十分强大。它最初是为Unix操作系统设计的, 但后来被移植到了几乎所有的操作系统上,并得到了很多扩展。C语言的现代版本是C++。
C语言本质上是由函数构成的,在函数体中你可以使用变量,条件语句,循环等语句来存储和处理数据。
3
查看一些基本的代码。 下面是用C语言写的一段非常基本的代码, 阅读这些代码,尝试理解这种语言的不同部分是如何工作的, 并对程序的运作原理有初步的认识。 "
#include stdio.h
int main()
{
printf("Hello, World!\n");
getchar();
return 0;}
"[1]
这里的#include 指令在程序开始之前就出现了, 它的功能是把包含有你需要的函数的库加载进来。 在这个例子中,引入stdio。h 使得我们能够使用 printf() 和 getchar() 这两个函数。
这里的 main() 指令会告诉编译器,程序需要运行一个叫做“main”的函数,该函数运行完毕后返回一个整数值。所有的C语言都要运行一个“main”函数。
{} 符号表示括号内的所有内容都是函数的一部分。在本例中,他们标记了所有的内容都是“main”函数的一部分。
printf() 函数能够将小括号中的内容显示在用户的屏幕上。双引号保证了这个字符完全按照字面的样子输出, \n 组合告诉编译器这串字符输出完之后将光标移动到下一行 。
; 符号表示一行的结束。绝大部分C代码都以分号结束。
getchar()函数告诉编译器这段程序要等待一个按键的输入才能够继续。考虑到大部分编译器在运行完程序之后会立刻关掉程序窗口,这个功能还是很有用的,因为这样可以让程序保持运行直到有键被按下才会结束。
return 0 指令表示程序的结束。请注意”main”函数是一个int类型的函数,也就是说当函数结束时需要返回一个整数。如果返回0则表示程序正确的执行了,其他数字表示程序运行时发生了错误。
4
尝试编译这段程序。 把上面的代码输入到你的代码编辑器中,然后保存为”*。c”文件。 用你的编译器编译它, 一般来说点击Build或Run按钮即可。
5
要养成写注释的习惯。 注释是代码中的一部分,它不会被编译, 但是却可以告诉你代码做了些什么。这对于提醒你自己你的代码是干什么的以及让其他开发者理解你的代码都很有帮助。
在C语言中添加注释只需要把要注释的部分的前面添加/*, 后面添加 */。
不要吝啬你的注释,除了特别简单明了的地方都尽量加上注释吧。
注释功能也可以快速的屏蔽一部分代码但不删除它们。只需要给你想要排除的代码用注释标签包起来它们就不会被编译。如果你想要改回来,去掉注释标签即可。
END
部分 2: 变量的使用
1
理解变量的功能。 变量是用来存储数据的,不管是计算得出的还是用户输入的数据。变量在使用前要先定义,并且有不同的类型可以选择。
有以下几种常见的变量类型 int, char, 和 float。 每种变量类型都代表一种数据存储的格式。
学习声明变量。 变量在使用前要先被创建出来,或者叫”声明”。 声明一个变量只需要在变量类型的后面写出变量的名字即可。比如,下面就是一些变量声明的例子: "
float x;
char name;
int a, b, c, d;
"
注意,你可以在一行中声明多个变量,只要它们的类型是一样的就行,你只需用逗号把变量名隔开即可。
和大多数的C代码一样,变量的声明也要以分号结尾。
理解在何处声明变量。 变量的声明必须要放在每个代码块之前(代码块是指用大括号{}包起来的一段代码)。如果你在代码块后边声明变量,程序就不能正确执行了。
用变量来存储用户的输入。 现在你了解到了变量的一些基本原理, 你可以写一段简单的程序来存储用户的输入。这次你需要用到另外一个叫scanf的函数, 它的功能是把用户的输入赋值给指定的变量。 "
#include stdio。h
int main()
{
int x;
printf( "请输入一个数: " );
scanf( "%d", x );
printf( "你输入了: %d", x );
getchar();
return 0;
}
"
这里的"%d"符号告诉scanf函数在用户的输入中找出整数。
x前面的符号告诉scanf在哪里找到要修改的变量,并把输入的整数值存进去。
最后的printf命令读出输入的整数并返回给用户。
处理变量。 你可以用数学表达式来处理之前存储的变量。需要注意一个重要的差别:在数学表达式中单个=是赋值号,作用是把等号右边的值赋给等号左边的变量, 而==则是比较两个变量是否相等。 "
x = 3 * 4; /* 把x设为3*4,也就是12 */
x = x + 3; /* 把x的值增加3,然后把新的值赋值给x */
x == 15; /* 检查x是否等于15 */
x 10; /* 检查x是否小于10 */
"
END
部分 3: 使用条件语句
1
理解条件语句的基本概念。大多数程序都是由条件语句驱动的, 这样的语句可以判断一个条件是TRUE(真)还是FALSE(假), 然后据此执行不同的动作。最基本的条件语句是if语句。
C语言中的TRUE和FALSE和你平常理解的有点不太一样。TRUE和任何非0的数总是相等的。当你执行一个比较时,如果结果是TRUE,会返回一个”1”。如果结果是FALSE,会返回0。弄清楚这一点能帮助你更好的理解IF语句的执行过程。
2
学习基本的比较符号。条件语句是以比较大小的数学表达式为核心的。下面列出了最常用的一些比较符号: "
/* 大于 */
/* 小于 */
= /* 大于或等于 */
= /* 小于或等于 */
== /* 等于 */
!= /* 不等于 */
"
"
10 5 TRUE
6 15 TRUE
8 = 8 TRUE
4 = 8 TRUE
3 == 3 TRUE
4 != 5 TRUE
"
3
写一个IF语句。 利用IF语句,你可以根据一个表达式计算的结果决定之后的程序如何运行。之后学习了其他条件语句后你可以把它们组合起来实现更强大的功能,不过现在写一段简单的代码熟悉一下就行了。 "
#include stdio.h
int main()
{
if ( 3 5 )
printf( "3比5小");
getchar();
}
"
4
使用ELSE/ELSE IF语句来扩展你的条件判断。 在IF语句中你可以添加ELSE 和ELSE IF语句来处理更多不同的结果。 ELSE后面的语句在IF中的判断结果为FALSE时执行。 ELSE IF则可以让你在一个代码块中使用多个IF语句来处理更多的情况。阅读下面的代码看一下他们是怎么工作的。 "
#include stdio.h
int main()
{
int age;
printf( "请输入您的年龄: " );
scanf( "%d", $age );
if ( age = 12 ) {
printf( "你是个孩子!\n" );
}
else if ( age 20 ) {
printf( "年轻的感觉真好!\n" );
}
else if ( age 40 ) {
printf( "你充满了青春的活力!\n" );
}
else {
printf( "充满智慧的年纪! \n" );
}
return 0;
}
"[2]
这段代码接收用户输入的一个数据然后传递给IF语句。如果这个数据满足第一个条件,则第一个printf被执行。如果没有满足第一个条件,则后面的各个ELSE IF会逐个进行判断直到有一个满足条件的分支为止。如果没有任何分支满足条件,则ELSE语句被执行。
END
部分 4: 学习循环语句
1
理解循环的原理。 循环是编程中很重要的一部分, 它们让你可以重复执行一段代码直到满足特定条件为止。这个机制使你可以很容易的实现重复的动作,同时省去了每次做条件判断的麻烦。
有3种类型的循环:FOR, WHILE, 和 DO…WHILE。
2
使用FOR循环。这是最常见和好用的循环类型。它会不断的运行循环内的函数直到循环条件不再成立。FOR循环需要包含3条语句:初始化变量,循环条件,和变量更新的方式。如果你不需要其中的某个语句,把该处空着打一个分号即可,否则的话循环会无限运行。[3] "
#include stdio.h
int main()
{
int y;
for ( y = 0; y 15; y++;){
printf( "%d\n", y );
}
getchar();
}
"
在上面的程序中,y被设为0,循环继续运行的条件是y小于15。每次循环中y的值被打印出来,并且被增加1。一旦y=15,循环就结束了。
3
使用WHILE循环。WHILE循环比FOR循环要简单的多。它们只有一个语句,只要该语句为TRUE循环就不断执行。你不需要初始化或更新变量,不过你可以在循环体中做这些事。 "
#include stdio.h
int main()
{
int y;
while ( y = 15 ){
printf( "%d\n", y );
y++;
}
getchar();
}
"
这个循环每执行一次,y++命令就把y的值增加1。一旦y达到16,循环就结束了。(记住只有在y小于等于15的条件下循环才会执行。)
4
使用DO…WHILE 循环。这种循环在你想要确保一个循环至少要被执行一次时非常管用。在FOR和WHILE循环中,循环条件的检测是在循环开始之前进行的,这也就意味着有可能第一次检测就无法通过,那样的话循环体一次都不会被执行。然而DO。。。WHILE循环会先执行一次循环体然后再做检测,这就保证了循环体至少会被执行一次。 "
#include stdio.h
int main()
{
int y;
y = 5;
do {
printf("循环被执行!\n");
} while ( y != 5 );
getchar();
}
"
在上面的循环中,即使循环条件检测的结果为FALSE还是会展示一条信息。变量y的值被设为5而WHILE循环被设置为只有当y 不等于5时才运行,所以循环执行到条件检测时就会终止。但信息还是被展示出来了,因为条件检测是在输出信息之后的。
DO…WHILE循环中的WHILE语句必须以;结尾。这是唯一一种循环体以分号结尾的情形。
END
部分 5: 使用函数
1
理解函数的基本原理。 函数是可以被程序的其他部分调用的自成一体的代码块。使用函数可使你更容易重复一段代码,同时也让程序变得简单易读、便于修改。函数中可以包含前面提到的所有技术,甚至可以包含其他函数。
前面的例子中的main()就是一个函数,同样getchar()也是。
要想写出高效且易读的代码,函数是至关重要的。用好函数可以使你的程序条理更清晰。
2
从函数原型开始。在真正开始编写一个函数之前,你最好先搞清楚你要完成什么功能,并从函数原型开始编写。函数的基本语法格式为: “返回值类型 函数名 (参数1, 参数2, …);”。 比如下面是一个把两个数相加的函数: "
int add ( int x, int y );
"
上面的代码创建了一个把输入的x和y相加然后返回他们的和的函数。
3
把函数添加到程序中。你可以用上面的函数原型实现一个把用户输入的两个数相加的函数。下面的程序展示了"add"函数是如何处理输入的数字的。 "
#include stdio。h
int add ( int x, int y );
int main()
{
int x;
int y;
printf( "请输入要求和的两个数: " );
scanf( "%d", x );
scanf( "%d", y );
printf( "您输入的数字之和为 %d\n" add( x, y ) );
getchar();
}
int add ( int x , int y )
{
return x + y;
}
"
请注意,函数的原型也需要放在程序的顶部,这样能保证当这个函数被调用时编译器已经知道存在这个函数,同时也知道它的返回类型。不过只有你想在函数调用处之后再实现这个函数时才有必要这么做。如果你直接把add()函数的实现放在main()函数之前,那么即使不声明函数原型也是一样的。
这个函数的实现代码其实是放在程序的底部的。main() 函数获取了用户输入的两个整数并把他们传给add()函数以便后者进行处理,然后add()函数把计算的结果返回给main() 。
当add()函数被定义之后,你就可以在程序中的任何地方调用它了。
END
部分 6: 不断学习
找一些C语言编程相关的书来看。 这篇指南涵盖了C语言中最基础的部分,但对于完整的C语言只是体系来说这只是皮毛。如果能有一本好的参考书你在学习C语言的道路上能省去许多麻烦
加入一些社区。不论是在线上还是线下,都有一些很棒的致力于学习和发展优秀编程语言的社区。如果能找到一些志同道合的C语言程序员,并和他们相互交流, 你一定能进步的很快。
如果可能的话还可以尝试黑客马拉松活动。在这项活动参赛的团体或个人需要在有限的时间里对给出的问题提出自己的程序和解决方案,因此很能培养人的创造力。你还可以籍此认识许多优秀的程序员。并且世界各地都有规律性举办的黑客马拉松活动。
参加一些课程。虽然你没必要重新回到学校修得计算机科学的学位,但是适当的参加一些相关课程还是会让你的学习过程有质的飞跃。没有什么能比一位C语言专家的言传身教更能帮助你了。通常你总能在网络上找到一些培训课程,也有一些专业的计算机培训机构可供选择。还有一些大学的优秀课程是免费对外开放的,你可以去旁听。
考虑学习C++。 如果你已经掌握了C语言,了解一下C++将对你大有裨益。因为C++是C语言更现代的版本, 它更加的灵活和方便。C++是以面向对象的思想设计的,掌握C++之后你就可以在几乎所有操作系统中编写强大的程序了。