web app开发自学教程

At the age of twelve, after discovering the “Save as Web Page” option in Microsoft Word, I started to teach myself web development. I learned HTML first, of course, and then CSS and JavaScript, and then bits and pieces of PHP and Rails. (These days, I’m quite fond of Meteor.)

在十二岁的时候,在Microsoft Word中发现“另存为网页”选项之后,我开始自学Web开发。 我当然首先学习HTML,然后学习CSS和JavaScript,然后学习点点PHP和Rails。 (这些天,我很喜欢Meteor。)

Over the years that followed, I considered getting a formal education, and I could see the value in doing so, but in the end:

在随后的几年中,我考虑过接受正规的教育,我可以看到这样做的价值,但最终:

  1. It was too expensive.

    太贵了。
  2. I struggled with learning in a classroom setting.

    我在教室里努力学习。
  3. I was already making comfortable progress.

    我已经取得了令人满意的进步。

But it’s not like this was always an effortless process. I wasn’t just learning how to write code for the web, after all. I was also learning how to learn, and that’s what we’re about to discuss.

但这并不总是一个轻松的过程。 毕竟,我不只是在学习如何为网络编写代码。 我也在学习如何学习 ,这就是我们要讨论的内容。

Here are five steps for teaching yourself web development.

这是自学Web开发的五个步骤。

1.选择一个使您兴奋的Web开发领域。 (1. Pick an area of web development that excites you.)

You can’t just “become a web developer” by reading a certain book or watching a certain number of videos. Web development is a big field and trying to be a jack-of-all-trades will likely leave you exhausted, frustrated, and only a little further ahead than when you first started.

您不能仅仅通过阅读一本书或观看一定数量的视频来“成为一名Web开发人员”。 Web开发是一个广阔的领域,尝试成为千篇一律的杰作可能会使您精疲力尽,沮丧,并且与刚开始时相比只会领先一步。

Being a web developer is like being a scientists. There are foundational ideas that apply across disciplines but, ultimately, you need to specialize. You have to commit to something forever though — it’s easier to move to another area once you’ve mastered one — nor will you be limited by your choice. Someone who is intricately familiar with PHP can do a lot more than someone with a basic grasp of ten cutting-edge web technologies.

成为网络开发人员就像是科学家。 有适用于各个学科的基础思想,但最终您需要专门化。 但是,您必须永远致力于某些事情-一旦掌握了某个内容,就更容易转移到另一个领域-您也不会受到选择的限制。 对PHP十分熟悉的人所能做的远比对10种最先进的Web技术有基本了解的人做得多。

But at this point, there’s no right answer. As long as you have a grasp of HTML and CSS, you simply need to pick whatever seems interesting. Perhaps discover what your favorite websites are built with. You’ll find that Rails is all over the place but JavaScript frameworks are on the rise. I’m working with Meteor because I like its real-time features. Your reasons, however, don’t precisely matter. Just try to follow your own interests, since that’s the only way you’ll be able to maintain your motivation.

但是目前,还没有正确的答案。 只要您掌握了HTML和CSS,就只需选择似乎有趣的内容。 也许会发现您最喜欢的网站是用什么构建的。 您会发现Rails遍地都是,但是JavaScript框架正在兴起。 我正在使用Meteor,因为我喜欢它的实时功能。 但是,您的理由并不重要。 只是要遵循自己的兴趣,因为这是保持动力的唯一途径。

If nothing specifically excites you, stick with the most common technologies, like JavaScript and PHP. There’s so much training material available that you’ll at least get a thrill from the abundance of available support.

如果没有什么特别吸引您,请坚持使用最常见的技术,例如JavaScript和PHP。 可用的培训材料太多了,您至少会从大量可用的支持中受益匪浅。

2.忽略(大多数)经验丰富的Web开发人员的“指导”。 (2. Ignore (most of) the “guidance” from seasoned web developers.)

Seasoned web developers usually offer well-intentioned advice to beginners that is completely impractical to implement. This is because they:

经验丰富的Web开发人员通常会向初学者提供良好的建议,而这是完全不可行的。 这是因为他们:

  1. Don’t remember being a beginner.

    不记得是初学者了。
  2. Expect too much from someone who just needs to grasp the basics.

    对只需要掌握基本知识的人寄予厚望。
  3. Have preferences based on problems you may never encounter. (Such as issues with scaling to millions of users.)

    根据您可能从未遇到过的问题来选择偏好。 (例如扩展到数百万用户的问题。)

Ask what language you should learn, for instance, and the debate that follows won’t be what’s best suited for you. It’ll be a debate based heavily on the biases the developers themselves have developed through their work.

例如,询问您应该学习哪种语言,然后进行的辩论就不会最适合 。 这场辩论将主要基于开发人员自己通过工作所产生的偏见。

Here’s how I see it:

这是我的看法:

Whether or not you start learning PHP or Rails or JavaScript, or whatever else, is irrelevant. Why? Because making the switch from one language to another is incredibly insignificant compared to making the leap from not being a web developer to then being a web developer.

无论您是否开始学习PHP或Rails或JavaScript或其他任何东西都无关紧要。 为什么? 因为从一种语言切换到另一种语言与从从不是Web开发人员到后来成为Web开发人员的飞跃相比非常微不足道

There are experienced web developers with great advice but, when advice is offered, ask yourself: Is this truly the best way for a beginner to approach this process? Or is this simply how the developer had wished they’d learned?

有经验丰富的Web开发人员会提供很好的建议,但是当提供建议时,请问自己:对于初学者来说,这真的是最好的方法吗? 还是这仅仅是开发人员所希望的学习方式?

3.给自己一个精确的(并且可以实现的)项目。 (3. Give yourself a precise (and achievable) project.)

After learning the basics of web development, try building something without following a book or tutorial. By far, this is the most effective way to:

在学习了Web开发的基础知识之后,尝试构建一些东西而无需遵循本书或教程。 到目前为止,这是最有效的方法:

  1. Get the thrill of making something.

    快点做些什么。
  2. Discover the weak spots in your knowledge.

    发现您的知识薄弱环节。
  3. Learn how to actually solve problems.

    了解如何实际解决问题。

It doesn’t matter what choose to build but keep the scope of the project as small as possible. If you can forsee yourself spending days on this project, it’s too big. Make it smaller. You don’t want it to drag-on.

无论选择哪种构建方式,都应使项目范围尽可能小。 如果您可以预见自己会花几天时间在这个项目上,那就太大了。 缩小尺寸。 您不希望它拖累。

Also make sure to define an end-point for the project. What features will it have when you can label it “done”? You want to know when you’re allowed to feel satisfied with what you’ve made. (And this doesn’t have to mean when the project is ready for the world since there’s no need to publish the creation.)

另外,请确保定义项目的终点。 当您将其标记为“完成”时,它将具有什么功能? 您想知道什么时候才可以对自己的所作所为感到满意。 (这并不一定意味着该项目何时可以为世界所用,因为无需发布创作。)

Depending on what area of web development you specialise in certain projects may be simpler to create but here’s a few ideas worth considering:

根据您专注于某些项目的Web开发领域的不同,您可能更容易创建某些项目,但是这里有一些值得考虑的想法:

  • A to-do list application.

    待办事项列表应用程序。
  • A private blogging tool.

    私人博客工具。
  • A tool for tracking workouts.

    跟踪锻炼的工具。

Basically, any sort of project that’s main purpose is to track some basic data is a good way to test your knowledge as a beginner.

基本上,任何主要目的是跟踪一些基本数据的项目都是一种测试初学者知识的好方法。

4.每天进行一定量的练习。 (4. Commit to a specific amount of daily practice.)

When you’re getting started with web development, you’ll make quick progress in some areas, but there’ll come a time when your progress slows and this is where a lot of beginners throw up their hands in frustration, and give up.

当您开始进行Web开发时,您会在某些方面取得快速的进步,但是有时会出现进度缓慢的情况,许多初学者为此感到沮丧,然后放弃。

This happens because beginners usually rely on achieving milestones to feel satisfied. Milestones aren’t predictable though. After getting a handle on the basics, you can go days or weeks without making significant leaps.

发生这种情况是因为初学者通常依靠达到里程碑来感到满意。 里程碑是不可预测的。 在掌握了基本知识之后,您可以花上几天或几周时间,而不会取得重大的进步。

There is, however, an alternative approach:

但是,还有另一种方法:

Instead of focusing on achieving milestones, commit to learning and practicing web development for a specific amount of time every day. At least twenty minutes is a good starting point but there’s no precise limit or requirements. Just pick whatever length you can reasonably manage on a consistent basis.

与其专注于实现里程碑,不如每天致力于特定时间的学习和实践Web开发。 至少二十分钟是一个很好的起点,但是没有确切的限制或要求。 只要选择您可以在一致的基础上合理管理的长度即可。

The point in commiting to a time frame is that you’ll then allow youself to feel satisifaction for meeting that commitment. The milestones will continue to arrive, but as a pleasant by-product, rather than an unpredictable goal.

承诺时间框架的意义在于,您然后将让自己对实现该承诺感到满意。 里程碑将继续到达,但作为令人愉悦的副产品,而不是不可预测的目标。

5.参加大量的培训材料。 (5. Engage with a significant amount of training material.)

You may have seen the writing-focused video from Ira Glass where he suggests that people “do a lot of work.”

您可能已经看过Ira Glass提供的以写作为重点的视频,他在视频中建议人们“做很多工作”。

Ira Glass on Storytelling from David Shiyang Liu on Vimeo.

伊拉·格拉斯讲故事从大卫石羊河刘上的Vimeo 。

It’s a simple belief that leads to a state of skill, and the idea easily applies to web development. You have to write a lot of code if you want to be a developer but what a lot of people don’t realise is that the code doesn’t have to be your own. There’s an immense value in following along with the code from books and tutorials and video training material — like that covered on sites like SitePoint and in books and courses from sites like Learnable.

这是一种简单的信念,可以带来一定的技术水平,并且该想法很容易应用于Web开发。 如果您想成为一名开发人员,则必须编写大量代码,但是很多人没有意识到的是,这些代码不必一定是您自己的。 有在沿有从书本和教程和视频培训材料的代码之后的巨大价值-就像覆盖在像SitePoint并从类似网站的书籍和课程网站可学习 。

You do have to be engaged with the material — you should consider the purpose of each line of code as you’re writing it — but even though you’re “learning by rote”, you’re still learning.

您确实必须参与其中的工作-在编写代码时应考虑每一行代码的目的-但是即使您是“死记硬背”,您仍在学习。

Here’s what most people don’t consider:

这是大多数人不考虑的:

The syntax isn’t the difficult part of web development. It’s a stumbling block for beginners but, afterward, the tricky part is determining how to think about how to solve certain problems. Here, the grand irony is that beginners often think of far more complex solutions than a professional would.

语法不是Web开发的难点。 对于初学者来说,这是一个绊脚石,但随后,棘手的部分是确定如何考虑如何解决某些问题。 在这里,具有讽刺意味的是,初学者经常想到比专业人士更复杂的解决方案。

With this in mind, the benefit of following allow with an immense amount of training material is that:

考虑到这一点,下面的好处是可以提供大量的培训材料:

  • You can see how different developers solve different problems.

    您可以看到不同的开发人员如何解决不同的问题。
  • You can see how different developers solve similar problems.

    您可以看到不同的开发人员如何解决类似的问题。

When you’re ready to work on your own projects, this exposure to how problems can be solved will provide the mental tools required to:

当您准备好自己的项目时,对如何解决问题的了解将提供所需的心理工具:

  1. Identify the core of what the actual problem is.

    确定实际问题的核心。
  2. Figure out what’s required to solve that problem.

    找出解决该问题所需的条件。

You may not be able to recall any precise solutions, but that won’t matter. Most problems have been solved before, in some form or another, and half of the difficulty of “speaking in code” is understanding what you’re trying to say. Beyond that point, the syntax and details are far easier to grasp.

您可能无法回忆起任何精确的解决方案,但这无关紧要。 大多数问题已经以某种形式解决了,“讲代码”的一半困难是理解您要说的话。 除此之外,语法和细节也更容易掌握。

结论 (Conclusion)

I’ve only shared a handful of “big picture” tips for teaching yourself web development, but they’re definitely things I wish someone had told me when I first got started.

我只分享了一些自学技巧,用于自学Web开发,但是这些绝对是我希望刚上手时告诉我的东西。

If you’re already on your self-education journey, where did you begin? And how have your techniques for learning changed since first getting started?

如果您已经在接受自我教育,那么您从哪里开始? 自从开始使用以来,您的学习方法有何变化?

翻译自: https://www.sitepoint/teach-web-development/

web app开发自学教程

更多推荐

web app开发自学教程_如何自学Web开发