使逻辑从完全菜鸟级过渡到开发人员?


12

几年来,我的编程工作非常轻松,并且没有取得太大进展。这绝对是我的兴趣所在,但我只是没有动力。然后,我想我知道是什么在杀了我。我读过的所有书,看过的所有屏幕录像似乎都错过了一件重要的事情:

如何从打印语句,变量等过渡到做更复杂的事情?

例如,让我们来看一个类似于Posterous的网站。对于那些不知道的人,这是一个博客平台,可以通过电子邮件接收博客文章。博客的作者有一个特殊的@ posterous.com电子邮件,他们将博客文章发送到该电子邮件,并且会自动对其进行格式设置和发布。

开发人员将如何使用他们的函数和语句工具箱在后端完成类似的任务?

很抱歉,这个问题似乎真的很广泛,只是让我感到沮丧。我感觉自己对基本概念有相当的了解,但不知道如何实际执行任何操作。


他们将解析电子邮件并保留编码,然后将文本插入到数据库中。然后只需选择所有帖子并在给定页面上显示它们即可。为了说明您自己缺乏编程能力,您可以通过做更多的事情来改善它。
Ramhound 2011年

到目前为止,有这么多惊人的答案。现在一切都变得更加清晰了。感谢大家!
Blair Beckwith

Answers:


12

关键是将任务分解为您知道如何做(或可以找到如何做)的离散步骤。您知道如何做取决于您的经验水平。

让我们以您的后继电子邮件示例为例:

要求:接受@ posterous.com电子邮件,设置格式并将其发布在网站上。

任务1)接受电子邮件。

电子邮件很可能必须从邮件服务器中检索。您将必须研究API调用以从您的特定邮件服务器中检索电子邮件。您还必须弄清楚如何从电子邮件正文中提取内容(可能是另一个API调用)。

任务2)格式化电子邮件。

在任务1中,您的内容可能位于内存中的某个位置。对此进行格式化,使其符合步骤3 ...

任务3)将内容发布到博客上。

如果要添加此email2blog功能,则可能已经具有发布博客帖子的机制。使用该机制,而不是接受网站上某个文本区域的输入,而是将其替换为步骤2中的内容。

现在,我们如何从打印语句中获取if语句和函数来完成每个任务。

注意任务1中如何两次提到API调用?API调用本质上是别人编写的函数,因此您可以使用他们的功能。如果您知道如何调用函数,则可以研究从邮件服务器检索邮件所需的正确API调用。

我没有讨论太多有关格式化的内容,但是如果您知道如何进行字符串操作,那么您就会知道如何格式化。格式化html页面是<b>bolded text</b>在字符串中的某处添加诸如标记之类的练习。

在任务3中,我提到了某种发布博客的机制。如果这是现有的博客平台,您将对此非常熟悉。但是,如果没有,那么您需要了解HTTP Post和其他与Web框架相关的内容。

如果在阅读完所有这些内容后您仍然不知道我在说什么,那么我希望我已经说服了您,经验是无可替代的。所以就去那里建造东西吧!不要为新手错误而担心,因为每个开发人员都曾经是新手。


5

最主要的是找到您想做的事情并

这就是大多数伟大公司的起步方式。

  • 谷歌?Brin和Page热衷于索引网络。

  • 元过滤器?Matt Haughey对写作和分享充满热情。

  • 推特?Dorsey非常热衷于简单性,而且您不会比140个字符简单得多。

  • 堆栈溢出?乔尔和工作人员对答案充满热情。

PHP,Perl,Python和Ruby之类的语言都以相同的方式设计。GNU / Linux也是如此。有人刮了一下,然后开始刮痒,然后发布了供一般使用的工具。

因此,环顾四周,确定痒在哪里,然后开始编写程序以消除痒。也许您喜欢玩游戏,所以可以编写一些游戏。也许您的mp3集合上的ID3标签有问题,需要修复。或者,您可能对家族历史感兴趣,并且想爬网以查找对您历史中的人或地方的引用。或者,也许您想以某种方式与现实世界互动。或者,也许您想开发FLOS软件-看一下GitHub,Gitorious和Sourceforge。

找到您感兴趣的内容并开始编程,不久之后您将拥有庞大的程序,然后再意识到。这就是为什么进行某种计划是一个好主意;)


2

慢慢地逐渐。

通常对于大型项目,您不会仅仅从编写代码开始。某个地方的人必须有一个计划。他们写下了他们想要的系统功能的东西。然后,它们从首页/窗口/任何内容开始。然后他们添加另一个。一直在逐个功能地缓慢添加功能,一次又一次地修复错误。它不仅仅应运而生,还需要有一个整体,一个整体设计。

为了变得更好,您需要练习!从一个小项目开始。简单的东西也让您感兴趣。在执行操作之前先计划好要执行的操作,您会发现“实际执行任何操作” 并不难。


1

您可以观看任意数量的截屏视频,阅读许多书籍以及按照需要学习任意数量的教程,但从来不会觉得自己无所事事。您必须弄清楚您对创建感兴趣的东西。然后将其分解并尝试创建它。您会遇到很多您可能不知道的事情。但是您可以对它们进行研究,并在进行过程中学习更复杂的任务。


1

我也遇到了这个挑战,总的来说,我找到了解决方案:我需要一个外部资源来驱动我提高生产力。

您可能像任何人一样对技术着迷,像任何人一样对编程感到兴奋,以及像任何人一样聪明和快速学习,除非您不动手做事,否则这将意味着很多。但是,很难知道从哪里开始,即使您知道从哪里开始,也很难使事情开始。

如果您是一个优秀的自我入门者,则可能只需要一些想法。尝试一些编程难题,或者看看您经常使用的简单实用程序,然后问自己:“我能做到这一点吗?如果这样做了,我会改变什么?”

坐在开放式编辑器或空白纸前,说“好吧,脑子,创造! ” ,真是令人生畏,但是如果您将其分解,请考虑一下您可能有什么理由要做,从那里开车,你可以走得更远。

而且,如果你发现你只是不能自己的代码,让别人给你一个工作要做,加上一个期限和要求以及所有。它会让您适应。


1

您有基本的知识常识是好的-我自己不是专业人士,但是我可以出售自己的产品,所以我必须做正确的事。我建议您学习有关您的语言和所开发平台的基础知识(看来您已经拥有)。

首先,确定您要做什么,并大致了解您的操作方式,将所有内容煮沸成具体细节,因为它可以帮助您更快地找到内容。然后只是Google,如果您被卡住,您会尝试使用所使用的语言做什么-甚至在Stack Overflow上提问(我本人已经问了70多个问题,呵呵)!

我个人是通过谷歌搜索学习的,一开始我什至没有学过基础知识,而我本应该做的,但是当我制作一些非常好的东西时,我仍然不知道什么是“数组”。;)


0

我认为,要在界面的后端开发技能,就应该开始处理数据。大多数大型项目都是关于移动,转换和显示数据的。

我自己了解,直到对几种不同类型的数据访问和文件操作感到满意之前,我对大型项目没有很好的了解。



0

我认为您只是没有挑战自己做更多的事情。

如果您真的好奇如何做某事,那就去研究吧!如果您想知道Posterous的工作方式,请尝试从一些小事情入手,例如研究所需的工具,如何从文本框中获取信息到网站。然后,您逐渐在此基础上建立。下一个问题可能是建立与网站和数据库的电子邮件连接。

互联网是您有史以来最好的工具。


0

除了将项目分解为任务之外,关键还在于学习代码重用。将代码划分为模块,您可以在需要执行相同操作的其他项目中重复使用这些模块。

例如,在这个示例项目中,您可能会进行数据库工作来存储博客文章。您可以编写一个数据库类来连接数据库,进行查询,获取结果等。然后,在以后的所有项目中,您都可以使用同一类,并且能够轻松地使用数据库。

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.