学习
程序员是一个活到老,学到老,还有三分学不到的职业。这就无形的要求我们要不断进取,不断学习。
既然学习是一个必然的过程,那么我们就要将这个过程变得高效和有趣。
关于书籍的选择,技术方面还是推荐英文资料,因为翻译质量的问题。你看中文可能10分钟的内容,理解却要1小时。而英文你看需要30分钟,理解只需要10分钟。
1. MOOC
我一直比较关注MOOC的发展。个人认为互联网是肯定会改变人们学习的方式的。但是这个过程需要更多时间去完善。
- tuts+: 首推这家,资源多,质量好,不管视频还有文字教程。
- Lynda: 同tuts+,看过几门课,很有条理。
- Course Hero
- 51CTO学院
- Codecademy
- CodeSchool
- Coursera教育资源大都是顶级大学
- edX教育资源大都是顶级大学
- Udacity里的课有很多业界大牛,更加偏重技能传授。
- Learn X in Y minutes (数十种语言快速入门教程)
- shiyanlou
- TeamTreeHouse
- xuetangX
- 慕课网 (丰富的移动端开发、php开发、web前端、html5教程以及css3视频教程等课程资源)
- 极客学院
- 汇智网
- 计蒜客
- 网易的网易公开课应该是最早发起的在线教育
- 果壳网的MOOC学院
- 中国大学MOOC是一个较大的MOOC课程社区
- 网易云课堂:最全面、权威的计算机专业体系
- 极客学院多为带有培训性质的教育网站。且传授内容以计算机为主。
2. 资源
这里特别提及一下技术学习的一些资源。我个人比较喜欢书本的理论知识结合视频介绍的实践。自己通过项目去学习。
提高技术的方式:
2.1. 英语学习方法
现代的这个社会,不管你做什么,学好英语都是有好处的。 教材方面,我有看过新概念和赖世雄的教程。推荐赖世雄的教程,从发音到初级,中级,高级,循序渐进。
音标
英式音标是20个元音,但是美式好像是24个。网上有一个很好的教材,海伦教你学音标。
美式音标(KK音标)与英式音标的区别: 国际音标&KK音标对照表详细打印版.
单词
所有的文章是由句子组成,句子是由单词组成。了解单词的含义是学习的一个重要过程。我喜欢查看英英解释,在线的词典有这么几个:
软件的话,全部设备推荐欧陆词典,原因是可扩展词库。关于词典的选择,参考市面上最常见的牛津高阶英汉双解词典,朗文当代高级英语辞典和柯林斯COBUILD高阶英汉双解学习词典有何特色?
语法
语法的话,赖世雄有本书好像不错。
运用
当学习到了一定的阶段,应该进行大量的输入过程,并持久化。输入的材料可以是TED或者初级的外文书籍。
2.2. 设计学习
能将自己的想法融入到作品之中,去影响,帮助到他人。是我一直的梦想。
这里摘录一份设计师自学指南:
本文译自国外高质量问答社区Quora,原文作者Karen X. Cheng,原是微软Excel的项目经理,后通过自学转型成为设计师。她讲述的自学过程详实细致且条理有序,读完会发现与想象中的大不一样,对于想自学设计但迷茫不知道从何入手的童鞋来说,可以遵循她的步骤去学习,除了规划得当,还能对设计有一个全局的了解 : )
设计师完全自学指南
我不是毕业于设计学系,但我得到了一份设计师的工作。
我想换工作,成为一位设计师,但我没有四年和十万元美金让我回到学校上课,所以我决定自修。起初,我相当怀疑一个人到底能不能靠着自修来找到相关的工作。
答案是:可以
我边上班边自学了六个月的设计。虽然我觉得还没准备好,但我还是参加了许多公司的面试,最后我成功在一间很棒的新创公司 Exec 找到工作。
我知道我不比许多专业科系毕业的设计学生还要优秀,但我的能力已足以将我的工作做好。我会设计许多东西,例如网页、iPhone 应用程序、电子邮件、社群媒体和印刷品等。
学会观察
新手最容易犯的错误是直接上手Photoshop,要清楚学会Photoshop并不能让你成为设计师,就像你买了一套高质量的画笔也不会成为艺术家一样,从真正的基础开始吧。
学一点绘画
- 你不需要挤在一个画室里,跟一群艺术家一起画裸女
- 你甚至不需要画得非常好,只要掌握一点基础,就能画一幅素描画
- 你只有一件事,去学习如何画画,我看了很多关于绘画的书,这里推荐一本最好的:如何在30天内学会画画(小编找不到中文版,倒是有英文版PDF下载),然后每天花半个小时去练习画画,坚持一个月,会有惊人的效果。
学习平面设计理论
- 从《Picture This》这本书开始学起。本书虽以童话《小红帽》为例,却能教会你一切平面设计的基础。
- 学会运用颜色、排版,以及栅格。若附近有开班教平面设计,就去报名吧。
学习使用者经验的基础
坊间有许多谈论使用者经验的书,我推荐从这两本开始:
- 《The Design of Everyday Things》 → 中文版(设计心理学)PDF下载
- 《Don’t Make Me Think》→ 中文版《不要让我思考》PDF下载
学习如何写作
不要用废话来充版面。身为一个设计师,你的工作不只是画出美美的图片而已,你还必须是个优秀的沟通者。想想你过去的一切经验,并且慎选每一个用字遣词。记得要「说人话」,而不是像学校写报告时拿来充字数的连篇鬼话。
- 读《Made to Stick》 → 中文版《粘住》PDF下载。这是我这辈子最爱的书之一,它将教会你如何获得你专属的死忠读者。
- 「Voice and Tone」这个网站充满了很多很棒的例子,教你如何与使用者沟通。
学习放弃自己的作品
这是最困难的部份。要作好心理准备,随时有可能必须像扼杀自己的孩子般销毁自己的作品。若能越快做好这样的心理准备,工作就能越快上手,因此若觉得成品不够好时,就随时砍掉重练吧。
找到公正的另一双眼:向懂设计的人询问看完你作品后的意见。若身边没有这类朋友,就去参加设计师聚会或相关活动上认识几个吧!
也要问问不懂设计的人,对你的作品有什么看法。让你将来的使用者试用看看你做的网页或应用程序。不要害怕问陌生人的意见,有一次班机误点,我就利用这个机会问问航厦中的其他乘客对于我设计中的应用程序的看法。他们大都乐意协助,我也获得了许多很棒的意见。
聆听
确实地聆听别人的意见,而且不要辩解。当你问别人意见,而对方愿意花时间和精力回答你时,不要用辩解来回报他们。相反地,你可以感谢他们,并且问他们问题,然后再自行考虑是否采纳他们的意见。
学会使用 Photoshop 和 Illustrator
耶!现在你在视觉设计与用户经验上已经有相当坚实的基础,可以朝下一步迈进了。事实上,我建议从 Illustrator 开始学,接着再去碰 Photoshop。设计师通常使用 Illustrator 来制作商标或图示,而 InDesign 则在制作传单或名片等印刷品时非常好用。
学习使用 Illustrator
有无数本书跟网站都在教怎么用 Illustrator,你可以挑自己喜欢的,以下是我自己很喜欢的:
- 《Adobe Illustrator Classroom in a Book》:这本书很无聊,但却非常实用。
- 《Vector Basic Training》:这本书会教你如何用 Illustrator 做出真的还蛮好看的东西。
好玩的来了,到以下的免费学习网站看看你学会了多少吧!这是我最喜欢的两个:logo 和scenic landscape。
学习使用 Photoshop
网络上有成千上万的教学网站,但很多都很烂。幸好,还是有不少高质量的教学网站,例如PSDTuts 就是其一。想学做 iPhone 应用程序的话,这里有很棒的教学 ; 想学做网页的话,则看这个网站。
若每天挤出一两个小时来复习这些教学课程,你进步的速度将会连你自己都感到难以置信。
学会专业技能
你想设计的是应用程序、网页、还是信息图表?我建议在全部尝试过后,选择其中你比较有兴趣的领域去钻研学习。
学习设计商标
- 想学会设计商标,建议读《Logo Design Love》 → 中文版《超越LOGO设计》PDF下载。
- 若连网站和名片都想一起学会,就建议读《Designing Brand Identity》。
学习设计应用程序
- 从这个教学课程开始学习应用程序的视觉设计。
- 读这本关于 iPhone 的书《Tapworthy》→ 中文版《触动人心:设计优秀的Iphone应用》PDF下载,它能教你如何作出美观又实用的应用程序。
- 好好研究你手机中的应用程序。你觉得哪边很棒,哪边又很糟?
学习设计网页
- 读《Don’t Make Me Think》,学习如何做出好读的网页。
- 想做出好看的网页,就去读《The Principles of Beautiful Web Design》。
- 列出你觉得很漂亮的网页,并找出他们的共同点。SiteInspire 上有很多不错的例子。 难题来了:身为设计师,一定要懂 HTML 或 CSS 吗?我的答案是,依工作性质而定,但若懂这些肯定对工作是加分的。网络上有非常多学习 HTML 和 CSS 的资源:
- 我最喜欢的免费网站是Web Design Tuts。
- 我最喜欢的付费网站则是 Treehouse(每个月只要 25 美元)。假如你是从头开始学,而且希望有人为你详细解说一切,就去上 Treehouse 的教学课程吧。
建立自己的作品集
想成为设计师,你不需要去过学校上课,但你一定需要一个作品集。话虽如此,又刚开始学设计又没读过相关学系,要从哪里生出作品集来?告诉你一个好消息:你不需要真的处理过企划项目才能建立一份作品集,你可以列出以下成品:
- 你为 T 恤所做的疯狂设计。
- 替一个很丑的网站重新设计新风貌。
- 设计一个 iPhone 应用程序。
- 参加设计比赛
- 寻找当地的非营利组织,提供免费设计服务。
另外记得:
- 不要把每个作品都放进作品集中,只要把最好的一些作品放进来即可。
- 找灵感:先不必担心原创的问题,就像刚学新乐器时,一定是先学如何演奏别人的歌曲,最后才学做自己的歌曲。
找到一份设计师的工作
当我刚开始学设计时,我曾去过一个设计师工作坊,里面充满了想找工作的资深设计师,有好几位有过 5、10、甚至 15 年的工作经验了。想到必需跟他们竞争,我感到十分胆怯。然而一年后,我就成功找到了一份设计师的工作。我认为我比其他设计师多了一项关键优势:我懂得如何与软件开发人员合作。
去学一些交互式设计,或是基本的 HTML 和 CSS 语法吧!科技业的设计师(交互式装置、网页和应用程序设计师等)炙手可热且薪水很高。假如没有跟开发人员合作过的经验,可以参加Startup Weekend、Hackathons。
最后,告诉你身边所有人你想成为一位设计师吧!谁都有可能会成为帮你找到工作的贵人。
找到工作后也要持续学习
我已经在 Exec 工作一年了,也从这份工作中学到许多。我会去向比我资深的设计师学习、去找其他设计课程,像TutsPlus 都是不错的在线课程,甚至翻遍书店中设计类的书籍。还有许多东西是我可以学习以及改善的。记得要不断磨练你的技能,并且不停学习。
2.3. Podcasts
现在的都市生活,导致我们会有很对的碎片时间,我们应该重视这些碎片时间,利用它们。顺便提一下我认为利用碎片时间的三大法宝:
什么是Podcasts
在网络中可下载的片段,可以是视频,音频甚至是图文资料。实际上我们通常意义上讲的podcasts还是音频,主要是苹果推出ipod带动了其发展。可以类比FM,只不过podcast不再是实时的,而是可以下载使用的。
为什么使用Podcasts
定制性强,收听方便。这是我们用于替代FM的主要原因。对于我上面提到的碎片时间,可以很好的利用起来。
如何收听
大部分的资源还是在iTunes上,所以我们最好使用iTunes来订阅管理Podcasts。在iTunes上,分门别类也很多,根据自己的喜好进行一些订阅。下载之后,我们还可以找到文件本身,将其放到我们的手机或者mp3中使用。
当然,现在也有很多第三方的app,我使用的是Pocket Casts,多平台兼容性较好。
推荐
- 国外
- 国内
- 比特新声
- IT公论
- Teahour
- 好妹妹电台
3. 谷歌公司推荐的程序员必修课
进入谷歌那样的大公司工作是多少程序员的人生梦想!最近,Google Education代言啊不推荐了一系列计算机相关课程,为想要学习编程的大学生们指明方向,非大学生也可以来学习哟~
谷歌推荐的课程更像是一个“技能树”,课程主要来自美国名校和各种开源教程,你也可以按照这个顺序学习中文的同类课程。
前面的 academic 系列课程比较接近计算机专业的学习顺序。如果你不打算成为专业的工程师,只想掌握一点编程知识,在工作中使用的话,可以直接拉到帖子中部开始观看。
以下内容搬运自Google Education
要成为一名成功的软件工程师,你必须具备扎实的计算机科学基础。本自学指南适用于想要学习编程的大学生们,分为专业方向和非专业方向两个系列。你可以借助这个指南进行自学,但请首先修够你的专业学分,以保证顺利毕业。
本课程表中的课程不能代替大学课程,但它们能够帮助你进一步学习计算机科学,或者对这个领域建立初步理解。
关于如何使用本学习指南的4点建议:
- 请考虑自己的实际情况进行学习。
- 如果你还想学习《指南》之外的其他课程,尽管上吧!
- 本指南仅供参考,即使学完这上面的所有课程,也不能保证你一定能进入谷歌工作。
- 本指南不定期更新。你可以在Google +上关注 Google for Students +Page ,随时获取更多资讯。
3.1. 为进军学术界作准备的课程
计算机科学导论课程
学习至少一种面向对象编程语言,如C++,Java 或Python
学习其他的编程语言
测试和提高自己的编程能力
学习逻辑推理和离散数学
深入理解算法和数据结构
- 学习基本的数据类型,如堆栈、队列和数据包;
- 了解排序演算法,如快速排序,二路归并排序和堆排序;
- 了解数据结构,如二叉搜索树,红黑树和哈希表。
深入了解操作系统
人工智能相关课程
如何开发一个编译器
密码学
并行编程
3.2. 如果你侧重应用方向
项目开发相关课程
- 这方面的内容包括创建和维护一个网站,建立自己的服务器,或开发一个机器人。
- 如果你想了解一个大型系统的一部分(如代码库),阅读和理解代码,或跟踪文档和排查故障,那么你可以到Github上围观和学习别人的代码,并尝试开发自己的项目。
- 如果你想通过学习提高与程序员合作的能力,那么你可以先尝试和程序员们共同完成一个项目。
- 如果你想补充算法知识,练习编程技巧,可以参加CodeJam、ACM举办的国际编程大赛等活动。
- 如果你通过教学加深自己对计算机的理解,获得软件工程等相关领域的实习经验,那么你可以申请担任相关课程的助教。注意要在实习期开始前提前申请哟!
- 在美国,学生通常在五月到九月参加实习,一般需要提前几个月进行申请。