建立完整的程序?


15

阅读书籍,观看视频和查看教程都很容易。做笔记和实际学习材料可能会稍微困难一些,但是即使那样,只要脑子不错并且有相当大的兴趣的人,就很容易了(更不用说了,很有趣)。

问题是,它并没有真正让您编写完整的程序或网站。假设您是那些青少年(仅在高中阶段,没有真正的(大学水平)计算机科学或编程课程,没有现实世界的经验),并且选择了Groupon。甚至甚至是马克·扎克伯格(Mark Zuckerburg),都可以肯定他是一个天才,并且他是一个非常有能力的程序员……但是如何?

您如何建议那些并非一定是编程新手,而是真正的编程真正的应用程序和真正的程序员的人去开发它?什么是“开发过程”-特别是对于单个程序员(或大约2-3个青少年)?

此外,就Web开发而言,流程是什么?像Facebook或Groupon这样的东西是用框架(例如CodeIgniter或Zend for PHP)编写的吗?还是他们开发自己的框架?我不是在问如何提出一个好主意,而是要如何有效地实施好主意?有人咨询吗?

我已经阅读了几本有关C和C ++的书籍(主要是C编程语言和C ++编程语言),并读过AP Computer Science(以及一些其他有关Java和OOP的书籍)。我还阅读了一些有关PHP(和CodeIgniter)和Python的教程。但是我还在读高中,从技术上讲,我的年龄还不够大,无法在实习中工作几个月。


3
Reading books, watching videos, and reviewing tutorials is all very easy。是的,阅读它们很容易,理解它们是困难的部分。
yannis 2011年

@Yannis Rizos实际上,我确实理解它们,然后我在后面的句子中谈到。
鲍勃

@Bob学习材料并真正理解它实际上是完全不同的,第二个要困难得多。我个人对“理解”的定义是,我可以用十岁的孩子无法理解的方式来解释这个话题。快速,解释“接口” :)
Thanos Papathanasiou

1
@ThanosPapathanasiou是软件,硬件还是OO概念?:)
yannis 2011年

2
@YannisRizos的优点在于可以向十岁的孩子解释类似的事情,您将不得不使用简化的示例来封装所有这三个示例:)
Thanos Papathanasiou

Answers:


8

简单地知道如何编程和知道如何构造程序(软件体系结构)之间是有区别的。

一本有关特定编程语言的简单书只会教您可以用来设置程序体系结构的工具。

也有书籍可以帮助您进行软件体系结构设计。您应该寻找的主题是设计模式软件抽象,软件体系结构/设计等等。(Head First Design Patterns对我而言确实是大开眼界。)

对于更广泛的资源,此问题可能会让您感兴趣。

学习如何正确地构建整个程序的最佳方法仍然是亲身实践经验,这样做时非常乐于接受建议和新技术。


6

(独立)游戏开发也有一个非常普遍的问题:如何完成。

除了确保您能够做到这一点之外,要么是因为您拥有所有必需的知识,要么是您愿意学习–并且您检查了其他人是否确实做到了这一点……

...使“完成”成为可能的主要事情是设定目标

目标是可以达到的目标,它们不必描述如何实现目标,而只是描述将应用程序的第一个版本视为“完成”所需的基本要求/功能是什么。另外,不要将目标设定得太早。

将目标写在某个地方。写下来。

设定目标之后,您将只需要找到实现目标的方法即可。那就是著名的“路径”,比到达更有趣。不必担心触及墙壁并发现自己会做错什么。在大多数情况下,如果主题是新知识,您会弄错它,并且您会了解原因并能够正确解决,并完成了另一项设置以接近目标。

即使在游戏设计中,我们也知道您必须提供目标,以确保玩家以抽象的方式知道他需要实现的目标,无论他做什么方式。


4

阅读很多关于游泳的知识并不能使一个游泳者成为一个游泳者。当然,它会准备一个具有所需知识的人,成为一名您必须跳入水中的游泳者。

我看到,很多刚做过而不是想/读不懂做的人都是成功的人。

如果您想成为一名游泳者,那就跳入水中学习游泳,如果您想成为一名程序员,那么就从一个想法开始编程并学习编程。

我相信peter norvig的文章与此有关:在10年的时间里教自己编程


2
好答案!我有两个朋友一直在阅读(开始阅读)编程书籍,希望有一天他们会准备开始编程。您将永远不会有这种感觉。只需跳入冷水中,然后开始进行实际项目即可。如果您觉得它太复杂,请选择一个较小的。对其进行处理,直到完成为止。在项目进行期间,请根据您进行中弹出的未解决问题查找书籍和阅读材料。
乔治

1

听起来您过于专注于软件的实现方面,而这只是整个软件开发过程的一小部分(请参阅SDLC)。您可能需要查看一些软件方法,并学习如何使用自己喜欢的方法。除此之外,请阅读案例研究,找出您还将考虑在软件中使用的每种工具的优缺点,进行评估并从那里开始。快速阅读问题后,您可能需要专注于软件的“ 分析设计”领域,并了解UML,分解和某些设计模式。

希望这可以帮助..


0

简短的答案,设定目标并开始。

没有书或任何一种方法可以教给您,只有亲身体验。

您会犯很多错误,并逐渐获得经验。因此,如果遇到问题,请考虑一下,尝试提出解决方案,如果失败,请进入stackoverflow并寻求帮助。还应尽早进行代码审查。

在完成第一个项目并对技术问题有很好的了解之后,请开始研究软件工程的更多抽象和更高杠杆的主题。

随着您对常见问题的新认识,您将获得具有干净代码和分离代码的书籍抽象概念,因为您的第一个项目将是无法维护的混乱。

书籍(一般嫌疑犯):


0

此时,您需要停止阅读编程知识,然后开始编程。如果您想建立一个网站,请阅读有关所选框架的教程。只要选择一个对您有吸引力的。通读本教程,学习如何使用框架,然后开始构建自己的Web应用程序。

在编写了一些代码之后,有关编程技术的书籍将具有更多的意义。


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.