现在,技术已经成为所有行业创新的基石。 这引发全世界对程序员和开发人员的巨大需求。 技术的美妙之处在于它触手可及,所以...
你不用先成为火箭科学家就能成为一个牛逼的程序员。
这看起来可能很难,但事实是......它可能比你想象的要容易。 你只需要阅读,练习并付出一些努力。 但是......这不就是你每天都做的事吗?
本文主要大纲:
- 打好基础
- 入门资源
- 编辑器推荐
- 在线课程推荐
- 精神食粮
- 图书推荐
- 融入社区
- App推荐
- 编程环境推荐
- 社区推荐
- 如何提问
- 技术网站推荐
- 一些方法论
首先, 在你开始纠结分号之前(也许你现在还不明白这个梗,但相信我,以后你就会明白的)你需要一个好的计算机科学基础资源和一个好的文本编辑器。 即使已经有一大堆这玩意儿,我会告诉你最常用的那个。
入门资源
- Teach Yourself Computer Science
这个网站给你提供了一个了解计算机科学和编程的起点。 它涵盖了许多重要的基本主题,可以帮你构建对 CS 的背景知识。
- Git
Git 是一个版本控制系统,能维护你的代码版本。如果你改了什么地方,或者加的新东西出了什么问题,你都能回到前一个版本。你可以从https://try.github.io/ 开始学习 git。
- Github
这是一个非常重要的资源。 几乎每家编程公司都会要求你有版本控制系统的经验。 GitHub 是一个基于 Web 的托管服务,用于使用 git 进行版本控制,主要用于托管计算机代码。 它提供了 Git 的所有分布式版本控制和源代码管理功能,还能添加自己的功能。 你还能在上面和其他程序员协作,或者可以将它用作静态 HTML 主机来存储你的个人项目文件。实际上你也可以在 Github 里面弄个网站。
- Bitbucket
Bitbucket 与 Github 相同,除了没有同性社交平台。 这两者之间的另一个重要区别是 Bitbucket 允许你创建私有存储库,而在 Github 中你必须为此功能付费。其他和 GitHub 基本相同。
学习命令行
命令行是大多数神奇的事儿发生的地方。 因此具备一些命令行技能非常重要。
- Sublime
在我看来,这个编辑器是最好的编辑器之一,它有很多插件和代码片段,在性能和生产力方面也非常可靠。 我还会用它,但我也爱尝试新的东西,所以我最近切换到 Visual Studio Code 。
支持平台:Windows,Mac OS和Linux
- Visual Studio Code
Visual Studio Code由微软开发,虽然它还很新,但它已经进入了2017年顶级文本编辑器的行列。它很好用,并促使我最终舍弃Sublime,我得说它是一个非常牛逼的文本编辑器,用了不后悔。
支持平台:Windows,Mac OS和Linux
- Atom
Github出品的这个文本编辑器以前是我的首选。 它界面很好看,设置起来非常简单。 但让我用回Sublime的原因在于它有时会变得非常缓慢,有时我打开一个缩小的文件时它就会崩溃。 但总体而言,它是一个不错的文本编辑器。
支持平台:Windows,Mac OS和Linux
- Notepad++
Notepad ++是一个基本的文本编辑器,具有编写程序基本所需的功能。 有些人喜欢这个,因为它很简单。 就我而言,我发现自己在更强大的文本编辑器(如VS code或Sublime)上更有效率。
支持平台:Windows
- VIM
黑客们,这个适合你。 这个文本编辑器更具技术性,需要更多配置。 它默认出现在Mac OS和大多数基于UNIX的系统上。
支持平台:Mac OS,Linux和Windows
记住:你可以任意选择其中的文本编辑器。 根据流行趋势和我的经验来说,这些都是最好的。
在线学习资源
- Free Code Camp
Free Code Camp是面向 Web 开发人员和全栈开发人员的免费编程学习网站。 我的 Web 开发职业生涯的第一批资源中就有它,我真的很喜欢用。 他们甚至还提供真实的非盈利项目,以磨练你的技能。
- Code Academy
Code academy是最好的学习资源之一,它提供了全面的基础编程体验。 在课程页面上还有一个实时的文本编辑器,以便你边学边练。
- Ruby Monk
Ruby Monk是学习Ruby的非常好的入门教程。 它为初学者提供了一个简单、直接的课程,非常容易理解。
- CodeWars
Code Wars 是个学习编码的好地方。 你能在上面和真人实时互动,完成真实的代码挑战,提升自己的技能。
这是另外一个学习编程的好地方,我建议在尝试这个网站之前掌握一些关于Ruby的基本知识。 这个网站能让你通过游戏学习 Ruby。
- CodeSchool
CodeSchool提供丰富多样的课程,有各种学习路径,可让你根据自己的兴趣确定要点的技能树。
这是我最爱的学习资源之一,它更专注于 Web 开发技术。 它提供了高质量的编码教程和课程,以更好地提升 Javascript 技能。
- Udacity
我只用过 Udacity 几次,但我已经知道很多关于它的内容,它真的很棒。 他们为初学者提供免费课程,他们称之为“纳米学位”。 纳米学位看起来很有前途,基本上是针对某一特定主题的课程,从初级到高级都有。 例如,全栈开发者纳米学位涵盖了从前端 Web 开发到后端 Web 开发的所有内容。 我必须指出,这些 Nanodegrees 是与谷歌,亚马逊,IBM等大公司合作创建的。
- Devslopes
Devslopes最初是一个Kickstarter众筹项目,看到它后我顿时一见钟情。 它提供各种高质量的编程课程,项目还能写在简历上。 作为早期支持者,我得以为他们的项目做出贡献,作为交换,我可以终生免费访问他们发布的所有课程版本。 现在,如果你想拥有这个特权,机会还有,因为他们即将推出Devslopes 2.0并且有相应促销。但我不确定是否还会有这个特权项目。 但这是买过最好的东西之一。 毕竟知识是无价的。
- Treehouse
坦率地说,我以前从未考虑过这个网站,但在 Tomáš Vorel 的建议和几周之后出现在 Facebook 和 Youtube 广告的轰炸下,我决定尝试一下。 我得说,这个学习资源非常有条理,我非常喜欢其中的教学方法。 主题有对应的视觉表现,特别好看。
精神食粮
如果大家对C/C++感兴趣的话,可以加一下我们的学习交流Q群:637 935 295,免费领取一套学习资料和视频课程哟~
没错,如果你想要真正掌握编程,你还是得读书。 这是学习新技能的最传统、有时也是最有效的方式。
这是我觉得有用的书籍清单:
《Computer Science Distilled》
这本书可能有点“无聊”,但它涵盖了计算机科学和算法的基础知识。 如果你真的想了解代码和算法的工作原理,那么这本书是必须的。
《Cracking the Coding Interview》
本书涵盖了在求职面试中可能会被问到的编程问题,并且教你如何处理它们。
《The Innovators: How a group of Hackers, Geniuses, and Geeks Created the Digital Revolution》
本书更多的是关于创新和技术的历史。 它基本上涵盖了所有以某种方式将技术化为现实的人。
《Learn Python the Hard Way》
这本书就是是一本练习册,你可以边学边练。它还有每日挑战,它涵盖了python的基本内容。
《Soft Skills: The developer’s life manual》
《软件开发人员的生活手册》是一本独特的指南,他给专业的软件开发人员提供技术和实践,以获得更愉悦的生活。 作者从一个开发人员的视角出发,从职业和生产力到个人理财和投资,甚至健身和人际关系,书中涉及许多的重要“软”技能。
融入社区
这是成为优秀开发人员的重要因素之一。 大多数人跳过这部分是因为他们认为这没用,但事实是,它有很多帮助。你想不到与其他开发人员交谈的一两个小时会对你有多大的帮助。 举个例子,在我第一次见面时,我有机会见到了 Advanced Custom Fields 的开发者之一(一个全球知名的Wordpress开发人员插件),我实际上经常使用这个插件。 我还成功成为 Wordcamp Miami 2018 Wordpress 会议的工作人员。
话说到这儿,这里有一些我常用的聚会和交流平台:
- Eventbrite 、Meetup
这俩 APP 能让你找到附近的代码会议。
- Co-working spaces
只需查看“协作空间<你的城市>”,你就可以轻松找到附近的协作空间。 协作空间能让你与其他开发人员分享知识,并获得有关你的代码库的真实反馈。
- Playgrounds
游乐场基本上是虚拟编辑器,可以随时随地练习,无需超频电脑,它能帮你节省时间并掌握任何编程语言。 这些虚拟游乐场的优点是你可以从任何地方访问它们。
- Cloud9
这个虚拟游乐场实际上是一个基于Linux的全功能IDE。 这意味着什么? 这意味着你可以通过终端在Linux机器上执行所有操作,甚至可以安装库。 它在大学里给了我很多帮助。
- Codepen
我经常使用这个。 Codepen是Web开发人员的圣杯。 它更像是一个在线社区,用于测试和展示用户创建的HTML,CSS和JavaScript代码片段。
- Glitch
Glitch几乎与Codepen相同。 除了它更“友好”,它也非常强大。 但我还是更喜欢Codepen。
- Orion
Orion是一个可以使用Java的在线IDE。
- Python Fiddle
Python 在过去几年中获得巨大人气。 对于那些想要将 python 添加到你的技能栈中的人来说,这是一个不错的编程环境(你应该至少知道基础知识)。
- Codeanywhere
Codeanywhere是一个跨平台的云IDE。 它能让用户在Web浏览器和任何移动设备上即时编写、编辑、协作和运行Web开发项目。
- Reply.it
这个是Vic A.建议的,我得说它看起来非常有前景。 这个虚拟编程平台能让你创建虚拟游乐场,在上面开发、测试甚至部署应用程序。 它还包括一个非常棒的教学平台,它有自己的评分系统。
卡住了?问问别人
作为一名生活在2018年的开发者的好处在于,有很多人已经踩过了你就要踩的坑。 很有可能其他人和你一样都在同一段代码上卡住了,除非你正在研究专有代码。 即便如此,你应该能够找到关于如何解决这些令人讨厌的错误的提示。 现在,如何解决问题取决于自己的经验。
以下是一些网站和资源列表,能帮你不用纠结于各种问题:
- Stack Overflow
Stack Overflow 也被称为程序员的圣经。它是最大的程序员学习、提问、分享甚至找工作的在线社区。 所以你的收藏夹里一定得有这个。
- Stack Exchange
Stack Exchange是一个简单的问答网站。上面有论坛,帮助你清除那些代码疑虑。
- Quora
我认为 Quora 更像是专业版的 Stack Exchange。 Quora 是一个获取和分享知识的地方。 这是一个提出问题并能和提供独特见解和高质量答案的答主交流的平台。 它能让人们相互学习,更好地了解世界。
- Github
再说一遍,Github是程序员最常用的在线社区之一。学习、使用、分享,并在上面做贡献。
我猜你肯定听过这个。 但是你有没有想过用它作为学习和回答问题的资源? 好吧,让我告诉你,Twitter 上有大量用户,上面有很多专家。 只需发推提问题加上相应标签就行。
Reddit 上不止有 Meme 和 GIF。 Reddit 也可以成为寻找解决方案或学习新技术的强大资源。 它有一个线程系统,可以更好地规划主题。
- Hacker News
该资源有科技行业的重要信息,真的很有用。
- Producthunt
我难以表达我对这个网站的喜爱程度。 我每天都会使用它。 它不断发布一系列新工具,应用程序,框架,网站甚至是查找小工具。很多都和技术相关! 所以你总能在上面学到新东西。 它还具有求职和问答部分。
结论
阅读,练习,分享,提问......重复,这就是一条学习之路,你得坚持下去并有很大的耐心。 没有人生来就是某一领域的专家。我也还有很多东西需要学习。 请记住,成为优秀开发人员最重要的因素之一就是成为社区的一部分。 所以,多尝试不同的东西,约会,结识新朋友,获得一些反馈,改正代码并获得乐趣。