A friend recently said: "I want to learn how to code. How and where do I start?"

最近有一位朋友说:“我想学习编码。我从哪里开始?”

我想学习编码-是去宜家还是种自己的树? (I want to learn how to code - Do I go to Ikea or grow my own tree?)

It's like woodworking. You can START by growing a tree, then chopping it down and finishing it, sanding it, before you make a table. Or you can go to Ikea. More likely you'll try something in between.

这就像木工。 您可以先种植一棵树,然后砍下来再整理,然后打磨,然后再制成桌子。 或者您可以去宜家。 您更有可能在两者之间尝试一些操作。

Modifying a WordPress theme is going to Ikea. Writing you own web framework is growing a tree first because you don't like the existing trees. You have to decide where on the spectrum you want to be, from being a custom furniture maker from the Woodright's Shop or someone who assembles prefabricated pieces made by someone else.

修改WordPress主题将转到宜家。 编写自己的Web框架首先会长出一棵树,因为您不喜欢现有的树。 您需要决定要属于哪个领域,从伍德赖特商店的定制家具制造商到组装别人生产的预制件的人。

好,我从哪里开始? (Ok, where do I start?)

Very cool. I'm always happy when folks want to learn to code. The Facebook thread continued with the usual suggestions:

很酷。 当人们想学习编码时,我总是很高兴。 Facebook主题继续提供通常的建议:

  • Codecademy.com

    Codecademy.com

  • KhanAcademy.org/cs

    KhanAcademy.org/cs

  • Code.org

    Code.org

  • learncodethehardway.org

    learningcodethehardway.org

  • Udacity

    Udacity

  • CodeSchool

    代码学校

  • Harvard's CS50x at edX

    edX的哈佛大学CS50x

  • CoderByte

    编码字节

Then the more interesting questions started to get to the root of the matter.

然后,更有趣的问题开始成为问题的根源。

编码员,黑客,程序员,开发人员和计算机科学家之间有什么区别? (What's the difference between a Coder, a Hacker, a Programmer, a Developer, and a Computer Scientist?)

These words might all mean the same thing to you. Perhaps you hear geek, nerd, and dweeb, but we all know these have very important differences. Knowing the differences also can give you a sense of how deep you want to go on your coding adventure.

这些话对您可能意味着同一件事。 也许您会听到极客,书呆子和dweeb,但我们都知道这些有非常重要的区别。 了解这些差异还可以使您了解要进行编码冒险的深度。

  • Coders - Can pretty much figure out it. It'll work, but it won't be pretty. 编码员-几乎可以弄清楚。 可以,但是不会很漂亮。
  • Hackers - usually low level folks, skillful, with detailed understanding of some area deeply, often scarily deeply. 黑客-通常是低级人员,技术娴熟,对某些领域有深入的了解,经常会深入。
  • Programmer - Write code and understand algorithms. Often work alone and well. 程序员-编写代码并了解算法。 经常独自工作,身体健康。
  • Developer - Are the best generalists, can use lots of different systems and languages and get them to talk to each other. Are true and broad professionals, work with people, and communicate well. 开发人员-是最好的通才,可以使用许多不同的系统和语言,并使他们彼此交谈。 是真正和广泛的专业人士,与人合作,并能很好地沟通。
  • Computer Scientist - Need to be able to prove how computers work, at a theoretical level. Are usually math people also. 计算机科学家-需要能够从理论上证明计算机的工作方式。 通常都是数学界人士。

If you are closer to one of these already you can get an idea of which direction to head.

如果您已经更接近这些方向之一,则可以了解朝哪个方向前进。

我们是否假设进行网络编程? (Are we assuming web programming?)

Everyone on the thread assumed some kind of web programming, which makes sense, since nearly everyone's on the web in 2013. However, just a few years ago we might have sat our friend down and made a Hello World app at the console, or perhaps loaded up Visual Basic, dragged a button, and MessageBox'ed Hello World.

线程上的每个人都采用某种网络编程,这很有意义,因为2013年几乎每个人都在网络上。但是,仅在几年前,我们可能让我们的朋友坐下来,在控制台上制作了Hello World应用,或者加载了Visual Basic,拖动了一个按钮,然后使用了MessageBox的Hello World。

Is Markup Code? Lots of people said "learn HTML and CSS," but I don't think that's coding in the classical sense. As a gateway to JavaScript and Web Services, I think it's a good place to start. The thing is, though, that while not every app is a web application that makes HTML in a browser, most applications are connected applications in some way. Apps consume data from services, send notifications, texts, emails and tweets. Nearly every application is distributed in some way, even if it's just a simple app that calls a web server for some data.

是标记代码吗? 很多人说“学习HTML和CSS”,但是我认为这不是经典意义上的编码。 作为JavaScript和Web服务的门户,我认为这是一个不错的起点。 事实是,虽然不是每个应用程序都是在浏览器中生成HTML的Web应用程序,但大多数应用程序都是以某种方式连接的应用程序。 应用程序使用服务中的数据,发送通知,文本,电子邮件和推文。 几乎每个应用程序都以某种方式分布,即使它只是一个简单的应用程序,它调用Web服务器获取一些数据。

If you want to be a coder today, or, let me go further and say if you want to be an effective coder, you will want understand the web and what really happens when you type twitter.com in your web browser. Just like you should understand how trees grow if you want to be a carpenter, how engines work if you want to be a race car driver, or where the water comes from if you want to be a plumber. Heck, you should really understand all of these things if you want to be an effective human. ;)

如果您想今天成为一名编码员,或者让我进一步说,如果您想成为一名有效的编码员,您将需要了解网络以及在网络浏览器中键入twitter.com时的实际情况。 就像您应该了解要成为木匠的树木如何生长,想成为赛车手的引擎如何工作,或者想成为水管工时水从何而来。 哎呀,如果你想成为一个有效的人,你应该真正理解所有这些东西。 ;)

“我想学习编码”实际上是什么意思? (What do we really mean by "I want to learn to code?")

What's the question under the question? Does she want to make websites? Design them? Does she want to make mobile applications and take them on the go? Does she want to create a gadget that will text her when she leaves the garage door open too long? These are all very different endpoints and there's lots of great ways to get started if we dig in a little.

问题下的问题是什么? 她想建立网站吗? 设计它们? 她是否想制作移动应用程序并随身携带? 她是否要创建一个小工具,当她把车库门打开得太久时会发短信给她? 这些都是截然不同的端点,如果我们稍微深入一点,就有很多很棒的入门方法。

  • Interested in Web Development?

    对Web开发感兴趣?

    • Any of the many "Learn to Code" sites mentioned above will do fine. 上面提到的许多“学习编码”网站中的任何一个都可以。

    Interested in Web Development?

    对Web开发感兴趣?

  • Interested in Hardware?

    对硬件感兴趣?

    • Consider a Raspberry Pi or Arduino.

      考虑使用Raspberry Pi或Arduino 。

    Interested in Hardware?

    对硬件感兴趣?

  • Interested in the code and history under the code you use every day?

    对您每天使用的代码和历史记录感兴趣吗?

    • Read "Code" by Charles Petzold.

      阅读Charles Petzold撰​​写的“代码” 。

    Interested in the code and history under the code you use every day?

    对您每天使用的代码和历史记录感兴趣吗?

  • Already a techie but want to learn the hard way?

    已经是技术人员,但想学习困难的方法?

    • Check out http://learncodethehardway.org

      查看http://learncodethehardway.org

    Already a techie but want to learn the hard way?

    已经是技术人员,但想学习困难的方法?

  • Interested in being a well-rounded developer?

    有兴趣成为一名全面的开发人员吗?

    • Read "Coder to Developer" by Mike Gunderloy

      阅读Mike Gunderloy撰写的“开发人员编码器”

    Interested in being a well-rounded developer?

    有兴趣成为一名全面的开发人员吗?

You can totally jump in to the web, learn a little JavaScript and start making web apps, and you should.  But as with everything, if you've got deeper interest, there are a few different paths to going further. Do a little research into the breadth of possibilities available to you, and you just might try a slightly different path.

您完全可以进入网络,学习一些JavaScript,然后开始制作Web应用程序,应该这样做。 但是,与所有事物一样,如果您有更深的兴趣,可以有一些不同的方法来进一步发展。 对可用的广度进行一些研究,您可能会尝试一条稍微不同的路径。

相关链接 (Related Links)

  • Please Learn to Think about Abstractions

    请学习思考抽象

  • Teaching Kids Electronics, Computers, and Programming Fundamentals with Snap Circuits

    使用Snap Circuit教孩子电子,计算机和编程基础知识

  • Programming's not for you? How about thinking? Be empowered.

    编程不适合您吗? 怎么想呢? 被授权。

翻译自: https://www.hanselman.com/blog/a-coder-a-programmer-a-hacker-a-developer-and-a-computer-scientist-walk-into-a-venn-diagram

编码员,程序员,黑客,开发人员和计算机科学家走进维恩图相关推荐

  1. 一程序员辞职开发赌博软件,2年涉案4千万被抓

    (给程序员的那些事加星标) 转自:人民法制网/侯珂 通讯员 张科顶 随着功能的不断完善升级,其附带的各种小程序.app也是五花八门,有游戏.实用工具等等,而一些不法分子则从中看到商机,开发非法赌博ap ...

  2. 扬尼斯定律:程序员的开发效率每6年提高一倍

    我不断的听到各种关于"软件危机"的警言,以及关于软件开发缺少过程规范的批评.我做编程工作超过15年,我认为这些言论基本上都是错的:我确信我能在很短的时间里用如今的开发工具复制出15 ...

  3. Unity游戏设计与实现 南梦宫一线程序员的开发实例pdf

    下载地址:网盘下载 编辑推荐 10个典型的开发实例,覆盖基本游戏类型  怪物--点击动作游戏  迷你拼图--拼图游戏  地牢吞噬者--吃豆游戏  In the Dark Water--3D声音探索游戏 ...

  4. Unity游戏设计与实现 南梦宫一线程序员的开发实例

    图灵程序设计丛书 Unity游戏设计与实现:南梦宫一线程序员的开发实例(修订版) 加藤政树 (作者) 罗水东 (译者)  c# 游戏 unity <内容提要> 本书的作者是日本知名游戏公司 ...

  5. php高级程序员/php开发工程师/web技术员

    职位描述: 职位标签: PHP 网站开发 互联网开发 网站开发工程师 高级程序员 网站开发技术员 PHP初中高程序员 职位职能: 软件工程师 互联网软件开发工程师 职位描述: 1.计算机或相关专业,3 ...

  6. 程序员需求开发流程及注意事项

    建议先关注博主,哈 更多精彩就在公众号:BiggerBoy 需求开发流程及注意事项 企业中,程序员如何开发,流程是什么样的,注意事项是什么. 前言 在这个春风得意马蹄急,金三银四跳槽季的日子里,相信很 ...

  7. 程序员因开发速度太慢被告,公司索赔90万!网友:活久见

    你遇到过哪些糟心 奇葩 事?程序员因为代码写的太慢被告上法庭,算不算? 随着人们法治意识的日益增强,越来越多个人或公司愿意拿起法律武器为自己维权.近日,有一位程序员因开发进度太慢被告上法庭,公司索赔9 ...

  8. 黑马程序员_IOS开发简介和C语言基础

    (一)IOS开发简介: (1)IOS开发: IOS开发就是开发运行在IOS环境系统的软件.apple公司2009年推出开发包和环境,国内2010年iphone4问世,从而相 继出现开发者---> ...

  9. 最老程序员创业开发实训---30+程序员的希望

    我想做一个培训,主要想针对30+的程序员.因为这类程序员普遍存在着职业生涯的迷茫,想转做管理,但是一将成名万骨枯,十个中有一个就不错了:想去做销售,可是成天面对计算机,人际交往能力严重退化,想到要做到 ...

最新文章

  1. Google开源OCR项目Tesseract安装版在Windows下的使用测试记录
  2. 写在那个毕业五年的日子
  3. groovy学习(一)
  4. mysql中的order by
  5. SAP Fiori 应用的本地 sandbox Launchpad - 出于测试用途
  6. python线程安全的计数器_+ =运算符在Python中是线程安全的吗?
  7. MFileServer管理员用户名密码配置
  8. 大学计算机应用基础教程pdf,最新大学计算机应用基础教程
  9. java实现RSA公私钥PKCS8与PKCS1之间的相互转换(java RSA pkcs8转pkcs1,RSA pkcs1转pkcs8),PKCS8和PKCS1公私钥byte数组还原为java对象
  10. 电视盒子为啥不安装鸿蒙,电视盒子视频播放不了怎么办?只需三步轻松解决!...
  11. win10跳过计算机密码,Win10怎么取消开机密码?Win10如何跳过开机密码?
  12. 《机械制造技术基础》常见的问题
  13. java 刘意 2018_2018年刘姓宝宝起名,2018年刘姓宝宝名字大全
  14. 程序员有必要掌握 TDD 吗?
  15. CvPoint及CvPoint2D32f
  16. 不错的U3D第一人称射击类游戏教程
  17. Echarts散点象限图
  18. Linux性能优化:CPU篇
  19. graphql入门使用-查询
  20. 雷电模拟器adb devices返回127.0.0.1:5555 offline分析和解决办法

热门文章

  1. 微信h5页面之微信授权、获取头像等
  2. 原码、反码、补码的互相转换
  3. 第一部分 利用opencv基于hsv颜色的目标提取效果和python代码
  4. a标签与button按钮
  5. 计算机基础之流水线(七)
  6. 关于手机号码四重号,四连号的校验
  7. C语言数组求和与求平均值例题
  8. 使用DB2 pureXML管理蛋白质数据库
  9. 2017毕设论文小结
  10. python用来查看变量类型的函数是什么_python查看变量类型的函数