惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

阮一峰的网络日志
阮一峰的网络日志
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
Blog — PlanetScale
Blog — PlanetScale
Jina AI
Jina AI
MyScale Blog
MyScale Blog
N
Netflix TechBlog - Medium
月光博客
月光博客
云风的 BLOG
云风的 BLOG
T
The Blog of Author Tim Ferriss
博客园_首页
GbyAI
GbyAI
The Cloudflare Blog
博客园 - 叶小钗
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
MongoDB | Blog
MongoDB | Blog
Y
Y Combinator Blog
博客园 - 三生石上(FineUI控件)
量子位
博客园 - Franky
WordPress大学
WordPress大学
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
人人都是产品经理
人人都是产品经理
F
Fortinet All Blogs
Martin Fowler
Martin Fowler
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
M
MIT News - Artificial intelligence
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
I
InfoQ
Google DeepMind News
Google DeepMind News
S
SegmentFault 最新的问题
大猫的无限游戏
大猫的无限游戏
Apple Machine Learning Research
Apple Machine Learning Research
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
Stack Overflow Blog
Stack Overflow Blog
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
Last Week in AI
Last Week in AI
J
Java Code Geeks
腾讯CDC
aimingoo的专栏
aimingoo的专栏
C
Check Point Blog
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
V
Vulnerabilities – Threatpost
S
Schneier on Security
D
Darknet – Hacking Tools, Hacker News & Cyber Security
L
Lohrmann on Cybersecurity
S
Securelist
F
Full Disclosure
Cisco Talos Blog
Cisco Talos Blog
小众软件
小众软件
The GitHub Blog
The GitHub Blog

卡瓦邦噶!

服务器高性能网络调优 | 卡瓦邦噶! 为何写作 | 卡瓦邦噶! 读《金阁寺》 | 卡瓦邦噶! 雨季又来 | 卡瓦邦噶! MTU Probe 引起的初始延迟 | 卡瓦邦噶! 3.5 秒的固定延迟问题 | 卡瓦邦噶! 学习网络的一点经验 | 卡瓦邦噶! ARP 问题诊断 | 卡瓦邦噶! 网络断断续续…… | 卡瓦邦噶! Piccolo P2P 镜像分发 | 卡瓦邦噶! 一起看电影 | 卡瓦邦噶! 《征服C指针》 | 卡瓦邦噶! 我的姥姥 | 卡瓦邦噶! WordPress网站迁移方案 Python的哲学 Python 3.5的新特性 学校不教的计算机课 垃圾回收(GC)的三种基本方式 在编程中体验纯粹的快乐 从《美丽新世界》谈自由 在快钱实习 迷人的嗓音和迷人的故事——《Sleepyhead》 Python 的十个自然语言处理工具 记一个愚蠢的bug 一年炉石传说的游戏体验 《以撒的结合:重生》网页版图鉴 分清 C++的指针、引用和数组 笑话三则 自由比皇帝更伟大——《悲惨世界》笔记 Git 10 周年访谈:Linus 讲述背后故事 用 0x3f3f3f3f 设定最大int值的优点 Joel给计算机系学生的建议 一个词法分析器的简单实现 怎样才算健康的生活方式 MacVim 配置攻略 学习培训课程的视频效果好吗? 语言的控制 可悲的大多数 CSS样式思维导图 2014年终总结 奥巴马成为首位写程序的美国总统 青岛老城区的下水道好在哪里? 做优秀 UI 的七个建议(第二部分) 选择爱情的骑士 Git简明教程 Java集合总览 读 《1984》 java问答:终极父类(六)——等待/唤醒和接口 Java 问答:终极父类(五)——toString() Hyperlapse快速视频背后的技术细节 平庸之恶 Java程序员须知的七个日志管理工具 苏州 逛书摊随想 关于考试作弊 你的工作不仅仅是编程 推荐在线学习Java的英文资源 关注女性命运——《千禧年三部曲》 用好你的幻灯片——《演说之禅》 使用ReentrantLock和Lambda表达式让同步更纯净 程序员都是工程师吗? 不要学习代码,要学会思考 Java 问答:终极父类(四)——hashCode() Java 问答:终极父类(三)——finalize()和 getClass() 程序员职业之路的选择 我是一名摄影家 写给何小树的城市指南 为什么一些语言会比别的快? Java的常见误区与细节 跟朋友在一起玩游戏 死神永生——读《三体》 五种类型的程序员 创业圣经——读《黑客与画家》 纪念加西亚·马尔克斯 Junit中处理异常的另一种方式:catch-exception Java8采用Martin Fowler的方法创建内部DSL Linux HotSopt虚拟机GC线程的CPU占用率 J2EE概念介绍 如何成为一名黑客 Java 问答:终极父类(二)——equals()方法 为什么我喜欢Java Java 问答:终极父类(一)——clone()方法 七个改变世界的Java项目 java中默认类型转换的小问题 传统与创新 欢迎来到互联网 莫言和马尔克斯——读《生死疲劳》 位运算的妙用 读《人为什么活着》 写博客教会我的事情 中国特色操作系统 2013年总结 《永不妥协》影评 恨不相逢未嫁时——《廊桥遗梦》影评 如何优雅地使用PPT 给明年依然年轻的我们 天才与柱子 黑客守则和黑客精神 Looking for Freedom——《被解救的姜戈》 简洁之道
新手学编程,从哪里开始?
laixintao · 2014-05-30 · via 卡瓦邦噶!

最近经常有亲戚朋友甚至陌生人问我,软件工程师的工作是什么样子的。在这一行,我们有很高的声誉,薪资高,工作中的乐趣很多——至少外人是这么想的。虽然这一行的薪水没有电影明星那么高(一些人甚至也将我们看做明星),但是因为不错的收入和声誉,依然很吸引人。

在我的学生生涯中,我们班的退学率是最高的,其中的主要原因是对软件工程师这项工作的误解。一些人退学是因为他们只想玩,不喜欢学习,无论选择什么专业都会退学;另一些则认为他们将来会整天地玩电脑。当然,我们的工作确实是“玩”电脑,只是比打游戏多费一些脑细胞。

亲戚朋友们经常问我:你到底在做什么呢?接下来经常是这个问题:哇,真了不起,怎么才能成为一个工程师?第一个问题的答案,取决于跟我说话的人。如果跟毫无技术背景的人谈,我就不会用像“累加”,“C#”,“Azure”这样的术语,我会用他们懂的东西解释。一般会使用一种通用的语言,无论是工作还是外部项目都用的。

那么,你的工作究竟是什么呢?我帮助顾客解决问题,通过开发软件,来提高他们的工作效率和营业额。通常,我要帮他们实现需求。

这是一个宽泛的答案,几乎可以来描述所有工作。但接下来的问题可以作很好的解释。人们经常使用手机的应用程序,所以谈论起手机应用来轻松地多。所以我就会跟朋友们说我在帮顾客写网页或者应用程序,解决他们的商业问题,让生活更便捷。

这个话题就到此为止了,如果继续讨论下去,有关“建网站”和“写应用”就要说远了。但是偶尔会遇到一些感兴趣的人会接着问:网页不就是一些文本和数值吗?做起来很难吗?当你试图给出一个例子解释的时候,基本上最后都会以好吧,我不知道 而告终。

我有很多科技通朋友,所以经常会被问到:我想学习编程,应该从哪里开始呢?

这是一个有趣的问题,但是又难以回答。当然,我可以甩给他们一本关于.NET编程的书,但是这样做真的好吗?对于初学者,推荐我偏爱的编程语言合适吗?可能不会。不要忘了他们问这个问题的真正的目标。他们是想了解计算机以及软件运行的原理吗?还是写一些小程序来恶作剧?是要解决他们的问题,还是想来抢你的饭碗?

当我听到这个问题的第一反应,就是弄清楚他们为什么想学编程。这是一个很好地起点——弄清楚从中想要得到什么。我们可以根据他们的目的来回答这个问题。

当你发现自己在重复地做同一件事情的时候,就可以考虑自己写一个软件来完成这些事。

如果你有一个真实世界的问题待解决,或者有一个明确的目标,那么给你行动的建议就很简单了。写代码和学习代码不仅仅是重复,而且要花上很多的时间,这是事实,要牢记于心。事实上,当你学着写出你的第一个程序的时候,写第二个就简单多了,逐渐变得熟练,越写越快。

我想学习编程,应该从哪里开始呢?

简单地建议是鼓励他们尝试解决一个真实世界的问题,但这仍然没有告诉他们如何开始。首先,我要给他们推荐顺手的工具。说到工具,就不得不提语言或者参考书,对于初学者来说,不能太高级,最好是简单几步就能运行一个hello world程序。如果不能很快看到自己的成果,他们就可能会放弃。编程不只是我们所写的代码,还有其他相关的东西。

我想让他们尽快的看见自己的成果,即使只是写了一行代码也没有关系,他们也会为此感到自豪。这么快看到自己的成果,他们就会有兴趣进行更深层次的探索,并准备好学习一门真正的编程语言,可能是C#,Java,Python或者其他的语言。早期你要教他们思维过程:if……this我这样做,else就这样,等等。

近几年兴起了教孩子编程的热潮,让有一些人问我如何学习编程的时候,我会告诉他们:像一个天真的孩子那样去学习。我们是如何教小孩子编程的呢?Code.org是一个很好的资源,通过教你把浏览器里的代码块拼装在一起来教编程,使你能够很快看到自己的成果。甚至可以通过这个写出自己的Flappy Bird。虽然这些课程不能解决你重复的工作,也不能解决你的业务需求。但是却给了你一个对编程的很好的印象。告诉你如何将代码组织在一起,如果将两个重要的代码块接在一起需要注意什么。

我想学习编程,应该从哪里开始呢?对于这个问题,没有同意的答案。根据你学习的热情和进度,可以给予一些指导。有数以万计的资料可以供你利用,在Code.org上做一些东西只是第一步,还有很长的路要走。如果你准备好了继续前行,首先应该有一本介绍编程基础的书。

真的吗?我已经准备好了学习编程,给我那些资源吧!

很多人想要别人拿勺子来一口一口地喂给自己知识,这是不现实的,编程要花很多时间,不断练习。你将会在错误中得到进步,并收获很多“哇,太棒了!”的时刻。如果你真的想要给你的电脑写一个软件,也有很多给初学者的好书供参考。即使最后没有完成你自己的软件,这些物价的知识也会让你受益匪浅。

我初学Java的时候看过一本Head First Java,对初学者来说是不错的一本书。很多人以前从没有写过什么程序,这本书中的介绍给了他们很大帮助。Help First是涵盖编程语言和技术的一系列书籍。想要走最少的弯路开始你的第一个hello world程序,我推荐Head First Python

不喜欢读书?推荐你看一下这个视频:Pluralsight’s Programming for Kids video.

如果你有孩子,和他们一起学习编程将使你们双方受益。孩子们有极高的兴趣和有趣的问题,可以拓宽你的思维。这也是和孩子们相处的一个好机会!坦白的说,我一直期待教我的孩子编程。

读一本书,再花些时间在Code.org上玩一玩,看一些Pluralsight上看的视频。这之后,你就会感觉你已经有了进步,想要更多的知识。如果你真的想学的更多的话,建议你去大学听一些课,或者上夜校学编程。为以后写真正的软件积累一些知识。

下面,是我为想要学习编程,又没有经验的人列的一些链接资源:

最后的建议,想象一下买一个小小的硬件,安装在你的车库里,当你的车开的离墙太近的时候,它就会发出信号——Arduino可以将它变成现实。可能性是无限的,只要你抓住你脑子里出现的新奇的想法,不断体验到编程的乐趣。

如果你和朋友或亲戚讨论这个问题的时间和这篇文章这样长,他们一定会满意地离开,并期待写出自己的第一个程序。

你会怎么回答这个问题呢?  ——如果我想学习编程,应该从哪里开始?

本文翻译自Filip的博客。