所以大约一个月前,我爸爸给我买了5本关于编程的书(C ++,Java,PHP,Javascript,Android)。他是一名架构师,对编程一无所知。他买了我,因为我告诉他编程很有趣,我想学习。
你可能知道,小时候(我14岁)并被要求从沉闷的书本中学习编程并不是最容易的事情。我一直都在分心..我之前告诉他我不需要买书,我可以看在线教程..但是,他太老套了。他只是让我使用这些书。
最近,他开始问我我做了什么,我向他展示了我制作的C ++程序,该程序可以接受您输入的内容,然后将值赋给每个字母(A是字母表中的第一个字母,因此它的值为1)。等等。然后,它将所有值加起来并告诉您。因此,“ add”一词的值为9。他对我大喊,并告诉我我一直在做的事情是在搞砸。这不是真的。他非常传统,固执,不听我说的话。我该怎么告诉他?想知道有一些人了解我的情况意味着什么。我读过每一本书,我会考虑每个人的意见。格拉西亚斯!
#1 楼
我向他展示了我制作的C ++程序,该程序接受您键入的内容,然后为每个字母分配值(A是字母表中的第一个字母,因此它的值为1)。然后,它将所有值加起来并告诉您。因此,“ add”一词的值为9。
我不知道该怎么办。但是:
,如果您一个月内从头开始,从书本上学习,那么自己动手做,那真是令人印象深刻。您是使用C ++(这是目前最可怕的编程语言之一)来完成的。看这个故事。
我只能建议:继续做自己喜欢的事情。在这种情况下忽略你的父亲;他不知道他在说什么。您具有编程方面的才能和学习意愿-成为一名出色的程序员的主要因素。
评论
是的,我一直在努力学习(该特定程序使我头痛60左右)。
–大卫
2011年8月2日在7:10
@David:既然他是一名建筑师,那么他关心事物的外观是可以理解的。但是,如果他对编程一无所知,那么他就不应批评它。软件的图形,外观和感觉只是冰山一角。
–乔纳斯·普拉卡(Joonas Pulakka)
2011年8月2日在7:23
认真吗“ Fatbooth”具有一些冗长的图形处理算法,需要多年的学习和掌握。如果您父亲希望您掌握面部识别功能,那么他应该买一本有关它的书。它可能看起来很简单(因为它易于使用),但要实现的难度比您想像的要困难得多,这使您头痛60多个。假设像“ Fatbooth”这样的应用程序容易做到,对程序员来说是一种严重的(但秘密的)侮辱。
–说话
2011年8月2日在7:54
+1令人印象深刻。特别是考虑到您来自哪里。我想您可能会问您的父亲,从零开始学习手艺后的一个月,他甚至参与了多少座建筑物,少了自己的工作。把事情与他可以关联的术语放在一起。
–用户
2011年8月2日在8:01
@Joonas:更不用说图形设计,可用性和界面设计实际上都是与编程几乎没有任何关系的学科。
–托比
2011年8月2日,12:25
#2 楼
向他展示Peter Norvig的这篇文章。诺维格(Norvig)是Google的研发主管,并在斯坦福大学任教,特别是在人工智能领域,他撰写了有关AI的标准入门书籍。你工作了多久了?我希望新手经过一个月的工作之后,再没有其他说明,尤其是像C ++这样棘手的事情,就再也不过了。任何值得学习的东西都值得学习。#3 楼
请记住,您的父亲可能认为您是世界上最聪明的孩子,并且他正在努力帮助您了解您说过的东西。
知道,即使您的父亲是毫无疑问,他错了(五个完全不同的话题可以一次扔给一个孩子),他也很对。许多人试图模仿他们在网络上找到的“教程”来学习程序。这并不总是一件坏事,但IMO通常不会带来扎实的了解。正确的书将首先教您基础知识。这样做可能不会像跟随那些完成一些浮华的教程那样有趣,但是获得长期成功的机会会增加,并且您必须在stackoverflow.com上提问的数量也会减少。 >至少现在就忘记其中一本书。听起来您已经开始使用C ++,所以如果愿意的话,就去做吧。
您会不时感到沮丧。有时感觉好像一半的程序被卡住了,另一半却被卡住了。摆脱粘滞是一项宝贵的技能,练习的次数越多,您的状况就会越好。 (避免陷入困境也是一项宝贵的技能,所以也要练习。)
学习您的第一门计算机语言对于软件开发而言是学习,而对建筑设计则是学习。这可能不是最有趣的部分,但这是必需的技能。
如果可以让他听,请尝试分解所有学习编写小程序所需的知识。仅仅花一点时间来学习使用这些工具,他肯定不了解其全部工作原理。
既然您已经拥有了一个简单的运行程序,并且显然已经学习了一点C ++,那么您可以编写哪些有趣的小程序?接受利率,贷款金额和贷款期限并打印出付款时间表的贷款计算器怎么样?还是可以读取分子式(如“ H2SO4”或“ C6H12O6”)并打印出分子重量的计算器?这并没有比您已经编写的程序复杂得多。
评论
+1“忘记其中的一本书”
– PA。
2011年8月2日,9:03
+1代表实用的构想。学习时,最困难的部分通常是在您被新信息所困扰的同时,为项目提出一个构想。
–摩根·赫洛克(Morgan Herlocker)
2011年8月2日13:40
+1“记住您的父亲……”即使他以自己的激动之心抑制了大卫的热情,也很高兴能将父亲的观点纳入其中。
–约翰·麦金太尔
2011年8月2日在22:17
让您的父亲参与进来,制作一个小的体系结构问题解决/计算工具!
–Vaibhav Garg
2011年8月3日,下午2:53
+1为第一点。我认为对于父母来说,将孩子视为世界上最聪明的孩子非常重要。最后,我敢肯定,如果不采取这种态度,OP将不会在一个月内做得那么多。但是,如果这给OP带来了很多麻烦,则可能会产生开销。
– Anton Strogonoff
2011年8月3日7:35
#4 楼
他买了我,是因为我告诉他编程很有趣,我想
学习它。 ...我应该告诉他什么?
评论
不是最好的建议。爸爸不喜欢这样回答
–塞浦路斯
2011年8月3日在8:45
是的,但是如果OP只是坐在那里接住,那么父亲会觉得他是对的;毕竟他的孩子不是很努力。这个孩子一定要大声说出来,这样他的父亲就会意识到他的工作很努力。
–凯文
2011年8月3日在18:10
@CyprUS是的,但是我现在很怕机器人这个词。一年前那是我一生的挚爱。我安装了Lego Mindstorms Kit,安装了RobotC等等。很喜欢它,直到我父亲有了一些“真实”的齿轮和马达,并告诉我做些“真实”的东西,例如机械臂。现在热爱机器人。
– chandsie
2011年8月3日在20:01
#5 楼
作为一名建筑师,他必须确定要拉你的腿或粗鲁。在他与您一样年轻时花了一个月的时间花了一个月的时间,并进行了灾难风险评估(例如被一架蛇打飞机撞到)。也许会让他平静下来。好吧,也许这不是我能给你的最好的建议,要和你的父母再谈。我可以理解,有个父亲会惩罚进步而不是鼓励孩子,虽然小时候就有点费劲,但可以鼓励孩子做得更好。他可能有态度问题,但这并不意味着恶意。
评论
也是对您父亲的忠告(尽管不在问题范围内):放弃戈登·拉姆齐的态度。它只能在地狱厨房使用,因为竞争者是经验丰富的成年人,他们被期望知道如何在他的餐厅里做饭和做得完美,而戈登在到期时也给予了荣誉。如果您对初学者或孩子这样做,只会吓only他们远离练习。值得一提的是,拉姆齐在他的其他电视剧中表现更好,因为这并不是他本人的生意。
–说话
2011年8月2日在8:36
#6 楼
我很好奇您正在使用哪些书。并非所有的人实际上都是好人。另外,并非每本书都适合所有人。您没有指定年龄,所以我假设您的年龄在18岁以下。我从8岁开始学习。
小时候,我在学习编程时会利用很多资源。我有TI 99 / 4A随附的手册,其中包含许多有趣的程序来绘制图像和动画人物。我无法使用互联网,但是甚至有针对儿童的计算机杂志,我可以键入并获得即时反馈的程序,以及有关如何解决其他类型挑战的文章。我非常喜欢一个间谍小说系列,可以输入和调试作为故事一部分的程序。不幸的是,我不认为这种资源仍然存在,但是有一些针对年轻人的编程书籍,例如关于Python的Hello World书籍和Lisp的土地(尽管这对成年人也很有趣)。 br />
我不了解您,但是有一段时间我开始编写与您刚才描述的程序非常相似的程序。最终,我转向了更高级的东西。我写了一些平庸的游戏,一些演示播放了各种声音和动画以响应击键,还有一些学习工具。当我10岁或11岁左右时,我编写了一个程序,通过反复询问我来帮助我记住元素周期表。 (当时,我的记忆能力比现在要强,所以第一次玩测验时我几乎没有输入数据,但是重点是要进步)。
您的父亲可能没有意识到这一点,但是在您学习编程时,书籍只是过程的一部分。找到一个小问题并试图弄清楚如何解决它是方程式的另一半。找一本可以一次教您一点点书的书,这是另一半。就我而言,强调图形和动画的书是让我胜过的书。
小时候,当我阅读有关排序算法和复杂数据结构的书时,我的眼睛一直呆呆,直到我学会了足以了解它们如何应用于我真正关心的问题。并非您将阅读的书中的每个单词都会吸引人。没关系。您将在需要时使用这些东西。您想解决的一些问题将使您想起三周,三个月或三年前您认为并不有趣的技术,然后您将回过头来对其进行审查并加以解决。
学习编程并不是一个月的时间。大约30年来,我一直在以一种或另一种形式编写代码,包括在童年时期,但我仍然每天学习新知识。我可以肯定的是,在第一个月中,我拥有第一台计算机,我花了很多时间玩《蒙克·曼》,而花了更少的时间试图理解我的参考书中的示例程序。以适合您的速度学习。现在没有任何压力,那就太好了。黑客(Paul Graham这类人)四处摸索,试图了解他们的系统如何工作,编程语言如何工作,工具如何工作。您尝试某些事情,然后失败,然后通过所面临的问题进行推理,然后尝试其他尝试,直到您可以解决问题。不用太担心。
除非你父亲读过同样的书,否则他可能不明白你到目前为止学到了多少。读了一个月的建筑书籍后,尤其是在青少年时期,我不希望能够设计出房屋或摩天大楼。所以我一直在Ruby on Rails框架的Engines功能的一些深奥的方面工作。从今天开始,我终于从用户的角度展示了一些东西。那时,我学到了很多东西,并开发了许多非常有效的关键基础代码,但我的专业水平等同于允许用户键入一些内容并获取其他内容:乍一看,这对休闲用户而言并不令人印象深刻,但其中涉及大量工作。如果有人告诉我我已经搞砸了四个星期,我会很失望,但我也知道他们对使事情变得如此“简单”的原因只有丝毫了解。
评论
+1用于在TI 99 / 4A上割牙。对我来说,几乎相同的故事很有趣,而开始做起来就更容易了(或者也许只是那样)。我的女儿(10岁)对学习编程很感兴趣,而我却很难想起一种有趣而又反复的方法来开始编程。对于OP,从零知识到1个月,按照PAR的要求去做就可以了。
– Ominus
2011年8月2日17:39
Ominus(和David),看看Processing,这本书来自Manning:manning.com/pearson
–JasonTrue
2011年8月2日在22:09
并非所有书籍都+1。以我的经验,大多数书籍都是针对已经了解编程的人的。针对新手的人并不多,但是我会推荐这个和/或这个。
–大卫
2011年8月3日,11:53
@David感谢您的链接。今天早上为女儿订购了这本书。
– Ominus
2011年8月3日在19:17
@Jason:他提到自己是14岁的孩子。
–塞浦路斯
2011年8月4日,下午5:27
#7 楼
听起来像在这种情况下,您的父亲不是一个在工作中给予积极支持和支持的人。一个简单的解决方案:不要用他。做您自己的项目,并执行它们是因为它们很有趣,而不是因为他(或其他任何人)希望您去做。选择对您来说很有趣的东西。您无需从一本书中学习整个语言/技术。而是开始修补事物。最终,随着事情变得简单,您将寻找新的概念/挑战。而且您会发现自己想阅读今天发现无聊的书(或者至少是某些部分)。
如果遇到困难并需要任何编码方面的帮助,stackexchange是您的理想资源已经发现了。
#8 楼
在我看来,您的父亲喜欢不切实际的期望,或者您有开始做事而不遵循的历史,或者两者都有。要意识到的重要一点是,这里并没有什么要紧的,重要的是您喜欢自己在做的事情,并且会做得更好。我永远都不会招待我。通过观察其他人做事,在我不了解某事的目的时提出问题,然后努力奋斗直到我弄清楚它,我才能学得最好。奋斗使我们变得更强大,并使我们拥有最终的成就,这也许就是为什么很难从子宫中爬出来的原因。话虽这么说,工具箱中最犀利的工具之一就是保持开放的能力,在批评中进行富有成效的工作并且不排除基于消息来源的建议的能力。好的编程书籍往往会吸引您,激发您的灵感,并希望您在碰壁时能重回书中。没有它们,您将无法做很多令人惊奇的事情,而不会一开始就准确地了解自己在做什么。编程是一门深思熟虑的艺术,因此,我鼓励您去查找以易于理解的方式编写的书籍。告诉你,我的满足才是我自己的。我的老板不太明白为什么我写的东西太好了,当我告诉她我的一天时,我的妻子睡着了,而我的朋友则竭尽全力避免向我询问我的工作。我很喜欢自己的胜利,偶尔也有机会与同行分享。在这种情况下,您父亲不是您的同伴之一。
继续前进,不断进步。习惯这样一个事实,即非程序员必须在被打动之前先看到视觉上令人印象深刻的东西。为什么不试试运气来编写类似Mandelbrot / Julia set生成器的东西呢?这可能会向他显示他正在寻找的进步,使他暂时离开案件。十年后,您将做非常类似的事情来让非技术经理退缩,以便您可以完成真正的工作。
评论
听这个人,他知道他在说什么;)
– drxzcl
2011年8月2日在8:28
呵呵,我喜欢“非程序员必须在印象深刻之前先看到视觉上令人印象深刻的事实”。编写分形生成器是我在计算机科学学校的第一个项目之一。我给自己留下了深刻的印象:)
–纪尧姆
2011年8月2日在13:43
可能是所有线程中的最佳答案...
–Venki
2012年5月11日14:29
#9 楼
很难说这个问题最适合育儿论坛或编程论坛。我担心我的建议可能没有达到目标,因为我觉得这个问题可能会牵扯到很多父子关系“问题”。对于您和您的父亲而言,这是一个很好的机会,可以让您和您的父亲以某种方式对这一话题充满热情。我自己是一个父亲,并且认识我自己的父亲,我知道我们多么希望我们的孩子们倾听我们的声音,听从我们的教导并向我们学习。我们的孩子经常被迫做相反的事情。因此,你们两个有共同的兴趣这一事实真是太好了。父亲肯定会固执,但是我仍然认为您可以通过此练习来展现自己的个性和选择。并不是出于一种反抗,而是源于您自己的驱动力和雄心壮志,他们非常了解编程主题。就个人而言,这听起来像是您的父亲把您带入了编程的深渊。当然,它可能不是MIPS汇编语言或LISP,但仍然是C ++? Java的? kes。我喜欢编程,但是早点读那些书可能会使我全然关闭。开玩笑的:)
所以我想问的是:什么启发了你?您想建造什么样的东西?回答该问题,然后查找关于该主题的书籍和教程。过来问问题。建立一些东西。然后向您的父亲展示您的建造情况。告诉他你学到了什么。感谢他如此与您互动,并告诉他您感激他。我之所以这么说,是因为最终这就是全部。他想和你分享一些东西,因为他爱你。有时候,父亲很难用传统方式表达这一点,因此我们寻求这些间接方式来表达同一件事。有时我们甚至不愿意这样做。但是请不要忘记,所有这些都是与您更加亲近的愿望。
#10 楼
似乎还没有人提出这样的建议:最近,他开始问我我做了什么,我向他展示了我制作的C ++程序,可以接受您输入的内容,然后为每个字母分配值(A是字母表中的第一个字母,因此它的值为1)。等等。然后,它将所有值加起来并告诉您。因此,“ add”一词的值为9。
^^这对他来说并不太令人印象深刻。他对我大喊,并告诉我我一直在做的事情是在搞砸。这不是真的。他非常传统,固执,不听我说的话。我应该告诉他什么?
如果您考虑一下,该程序对于使用计算机并且对编程一无所知的人来说并不令人印象深刻。它。向他介绍源代码。他可能(肯定)不会理解它,但是它将传达您投入了多少工作以及您了解了多少,也许他会对您实际完成了多少工作产生了更积极的印象。 br />
评论
这种应得的方式比得到的更多。一个很好的非对抗性解决方案,可以使他的父亲更加了解儿子的爱好。
–伦敦的弗格斯
2012年11月20日23:38
@FergusMorrow同意。这个答案得票数太少。
– stommestack
13年6月3日在15:28
#11 楼
做你想做的事这就是你的生活。你想做什么,就可以做什么。不要让任何人(甚至是您的父亲)控制您的生活。
我假设您或多或少喜欢编程并且想成为一名成功的专家(您的父亲想要,每个人都想要)。但是,关键是,除非您知道自己在做什么,而且除非您喜欢它,否则您永远都不会成功。
掌握任何领域都很难。您不能仅在某人的影响下执行此操作。没有人知道您应该做的比您更好的事。您想今天休息,想整天玩游戏吗?那是您的决定,您对此负责。您应该学会对自己的决定和生活负责。每个成功的专家都必须对您的决定负责。
那么在这种情况下您会怎么做?站稳脚跟,不要听别人的话,做对您来说有意义的事情。
评论
OP是未成年人(显然是14岁)。预计他的父母将控制他的生活,在接下来的四年里盲目地反击将很可能使每个人都痛苦。
– jwodder
2011年8月2日在22:46
@jwodder:如果那些父母觉得他们需要控制自己的孩子在业余时间学到的东西,那么这可能是他尽快开始反击的最好方法。我也有孩子,一个和大卫一样大。如果我的孩子不能告诉我我以为她错了,那我会为她的未来担心。 14岁不是7岁的孩子,他对这个世界只有一两件事,而父母却不知道。而且,如果他证明自己不是他们想要的人,那么他们就已经失败了整整一年,也没有机会再追赶,尤其是通过继续做他们14年的努力。
–sbi
2011年8月3日18:58
#12 楼
您要求书籍。老实说,比读书更能解决问题。找到您感兴趣的难题或问题。欧拉计画是一个很好的资源,CodeGolf有时会提出一些有趣的问题。我的第一个编程项目是找到素数的C ++应用程序。我当时使用的教科书提供了一个简单的实现,例如:bool isPrime(int x){
int c = 1;
while(c < x){
if(x%c == 0){
return False;
}
c=c+1
/*c+=1 if compiler is set to '98 or more recent*/
}
return True;
}
效率很低。我发现前500个具有该功能的素数,然后厌恶它的缓慢性。爸爸和我在优化上面进行了很多时间,尽管它是一个简单的应用程序,甚至没有将其输出写入一个文件,但我感到很开心,并且最终的产品很棒。
您会通过读书来学习吗?是的,但是我不能强调仅仅混用一种编程语言并通过反复试验学习的价值。我仍然束手无策地为他建立一个大批量的自动交易系统。当我说您需要找到您想从事的工作时,我非常认真,因为否则您可能会完全放弃编程,因为您会发现它是一项琐事,而不是一项业余爱好或一项运动。
尝试阅读Linus Torvalds的书“ Just For Fun”,其中讲述了Linux操作系统的起源。标题说明了一切。
认真。只是破解一些问题。卡住时,请老人介入。
如果你父亲不欣赏你的工作,那不是因为他感到失望。他是一名建筑师,他不知道某些事情有多复杂。如果只是逻辑,请尝试引导他遍历您的代码,并让他欣赏您通过编写代码所学到的逻辑的含义。 />
只是弄乱了东西。解决问题。如果您无法解决,请找到其他人的解决方案并尝试理解它。
与#1玩乐吧。
每当您学到东西或取得进展时,请务必告诉您的老人。每个人都以自己的方式和自己的速度学习。坚持下去,最终您将拥有完成所需的技能。
评论
实际上,他特别声明他不要求读书。...其余的我都同意
– Paul
2011年8月2日,13:39
#13 楼
尝试查找一本专门针对新手的编程入门的书。也许像Hello World之类的东西! Warren Sande的《面向儿童和其他初学者的计算机编程》。您还应该查看图书馆的内容。大多数图书馆应该有一些入门书籍。
#14 楼
在我看来,您有两个问题:您想学习编程并使之保持乐趣(乐趣是必不可少的,它使一切变得容易)
您的客户对编程一无所知,但是知道了他想要什么。 (您父亲在您的情况下)
恕我直言:
对于第一个问题,您只是去类似的站点并像您一样提问。查找类似这些资源https://softwareengineering.stackexchange.com/questions/62224/how-to-become-a-professional-programmer/62263#62263。想一想您要创建的东西(游戏,任务清单,电影收藏管理系统,次佳社交平台),然后开始编写代码。还是从解决难题开始?在哪里可以找到编程难题和挑战?
您的第二个问题比较困难,您需要教育您的父亲(尽管他似乎不太愿意)。在您学习的同时,您将可以更好地向他解释编程的困难。您可以尝试使用像解释她这样的隐喻。什么是好的编程隐喻? 。另一个要点是,非程序员通常不会获得出色算法的复杂性,但很容易因外观漂亮的接口而烦恼。根据您选择的平台,您可以轻松生成漂亮的界面以打动您的父亲。例如使用:
http://rubyonrails.org/
http://www.microsoft.com/visualstudio/zh-cn/products/ 2010版/ visual-web-developer-express
在此处进行程序员交流的其他开发人员也可能有更多建议。
希望有帮助。
评论
+1我喜欢您的信息,但我认为这里没有人建议这个孩子了解父亲的期望。在不知道父亲的期望的情况下排除父亲的期望似乎为时过早。
–user179700
2011年8月3日,1:16
#15 楼
我想补充一点,就是我一生中曾经处于非常相似的位置,我父亲并不真正了解积极的强化意味着什么。但是,鉴于我对他有时有时会被严厉拒绝的执着和坚韧,我设法坚持了下来。大约二十年后,与我父亲的关系发生了很大变化,改善了,但那时的细微差别仍然存在。这只是生活中的艰难时刻,重要的是,您比其他任何事情都乐在其中。
#16 楼
关于编程语言,我同意您应该只关注一种语言。实际上,我推荐您还没有的一种语言:Python。 Python是一种非常易于学习的语言,但也非常强大。 C ++,Java,PHP和Javascript都更加复杂。
Manning有几本关于使用Python编程的书。我强烈建议您使用“ Hello,World!”,即使它是针对年龄稍小的人群。 >
快速简便的Python(尚未发布)
如果您想继续使用C ++,那么我推荐这本书:
C ++标准库:教程和参考文献
尽管它更多地是“参考文献”,而很少是“教程”。我不知道一个好的C ++教程-那里有很多“快速自学C ++”的书,但是我认为它们不是很有用。 (C ++是一门很难学习的语言;大多数C ++程序员都是从一种更简单的语言开始的。)
评论
同意,python是首选语言。 C ++很棒,但是它非常强大且难于使用-就像在学走路之前先学飞机一样。使用python,您可以立即使用库并做一些有趣的事情。您的string_add函数是5行可读代码。例如,def string_add(a_string):\ n \ t sum = 0 \ n \ t a_string中的字母:\ n \ t \ t sum + = ord(字母)-ord('a')+ 1 \ n \ t返回总和(\ n-新行\ t -tab)或使用更高级的功能编程(一个)。 string_add = lambda a_string:sum(map(lambda ch:ord(ch)-ord('a')+ 1,a_string))
– jimbob博士
2011年8月2日15:06
+1我花了大约一年的时间来学习C ++,而我只花了十分钟的时间来学习Python。
–右键
2011年8月2日在19:06
+1我还建议使用Python的Head First编程。
–大卫
2011年8月3日,11:58
#17 楼
关于C ++,Java,PHP,JavaScript和Android(这样您就可以在它们之间进行选择,因为尝试一次掌握所有内容可能会失败):C ++:它是一种非常强大的语言。但是太强大了,太宽容了,太神秘了。您必须了解许多事情才能继续进行。我认为,这对于启动程序来说是一种糟糕的语言选择。
Java:初学者的热门选择。从某种意义上讲,这与C ++相反:C ++为您提供了一种可以想象的方式来射击自己,而Java则尝试不允许任何超出您控制范围的事情,这实际上是瘫痪的。它太简单,太琐碎,太局限了,无法向您展示很多编程知识。而且,如果不了解很多标准API和几个框架,就无法在Java中完成很多工作。 Java作为一种技术可以提供很多功能,但作为语言却有其缺点。 PHP作为一种语言已经成熟,现在具有人们期望现代语言所具有的功能。但是,由于历史原因,PHP带来了很多负担。因此,尽管它实际上允许编写好的程序,但很少有人这样做,并且您不会找到太多有关如何做的信息。标准库是一团糟。如果您决定编写PHP,我的建议是从一开始就开始使用框架,因为它们通常可以为常见问题提供可靠的解决方案。我个人建议使用symfony,flow3和CakePHP。但是,我的建议是:不要以它开头。
JavaScript:一经了解,它就是一种功能强大的语言。它有一个“很少”的怪癖,但实际上您应该能够忍受。尽管最初用于向HTML页面添加交互性,但现在可以在许多字段中使用JavaScript。除了经典用途外,它还可以用于具有Appcelerator,PhoneGap和AIR等平台的桌面和移动应用程序开发,并可以使用node.js创建服务器。如果您正在寻找成熟的东西,我建议您检查敲除和jQuery以及qooxdoo和ext.js。另外,对于服务器端开发,您应该查看express.js。 /> Android:与其他四个系统不同,这是一个平台。应该根据您要做什么选择平台。如果它是针对Android设备的移动应用程序开发,那就去做吧。不确定一开始是否是最好的方法,但最终您需要创建自己认为很酷的东西。
无论如何,真正重要的是,让自己感到愉快。您创造的东西,您认为很酷。那可以解决您的一些需求,或者很有趣。编程适合那些喜欢它的人。您需要一个工具集,该工具集允许您使用几行代码来构建应用程序。 JavaScript / CoffeeScript可能是一个很好的起点。
个人而言,我想向您介绍Ruby。它教会了我很多关于编程的知识,但不幸的是,当我开始编程时还没有了解它。基本上,有两本令人敬畏的书(均免费提供):
为什么要使用刺激性指南-就个人而言,这太让人分心了(笑话,漫画等) )中为我准备的书,但您可能会喜欢它。它有点干,但只处理必需品。
除此之外,我建议您检查一下鞋子。这是一个很棒的工具,提供了很棒的集成帮助,包括参考资料,教程和演示。您将在几天之内启动并运行第一件事。
,也许以后,我想向您指出haXe。我认为这是一种很棒的语言(我选择的语言),并且有一个全新的初学者指南,该指南是最近才发行的。但是haXe没有可用的工具,这使得创建应用程序和使用JavaScript和Ruby一样简单。因此,您一开始可能会感到乏味甚至令人沮丧,从而破坏了整个目标。
评论
我绝对会建议他在C / C ++上努力。我做了同样的事情,发现学习任何语言都非常容易,因为几乎所有现代lang都从C / C ++派生出一些东西。
–塞浦路斯
2011年8月4日在5:34
@CyprUS:虽然我同意,但两者都值得学习,我也不认为这是开始学习编程的好选择。另外,我看不到LISP或Smalltalk系列如何从这两者中获得任何必不可少的东西。
–back2dos
2011年8月4日在8:19
我认为我们必须让男孩决定他想做什么。就是说,LISP / SmallTalk太深奥了以至于无法通用(我认为)
–塞浦路斯
2011年8月5日12:57
@塞浦路斯:我只提供建议。最后他必须选择。我不是说LISP或SmallTalk,而是他们创建的(部分)重叠的现代语言类,最著名的是Ruby,Squeak,Objective-C,Lua,Scala,Erlang,Clojure,JavaScript,F#,Nemerle,Scheme。实际上所有这些都被使用了,甚至有一些甚至是最受欢迎的语言之一。
–back2dos
2011年8月5日13:26
#18 楼
可以期望在一个月内得到足够的收益。相反,您应该尝试一次集中精力学习一种语言或范例,否则可能会变得势不可挡。一次被推得太多也是关闭它的好方法。通过研究您感兴趣的特定程序,您可能会学得更好。如果您对Android手机感兴趣,那么使用Java而不是C ++可能会更好。他可能一直期望一些典型的UI使用者能像普通客户那样,因此不要因失望而灰心:)一些“ Head First”书籍可以使学习变得少一点干如果您必须坚持读书。
#19 楼
我认为您现在应该暂时放弃更正式的内容,并查看Scratch-http://scratch.mit.edu/-它可以让您以更轻松的方式处理大多数编程结构,同时仍然可以学习这些内容您还需要类似循环之类的东西。它还可以实现完美的多线程,这也许是手工最难的部分,而在当今世界上要提供有趣的结果是必需的。 >不要低估它,因为它使用颜色和乐高积木之类的编程方法。您可以做很多事情而不会迷失技术细节。
评论
+1-从头开始学习是一种了不起的有趣的方式。实际上,它的设计考虑了年龄段,但仍是图灵完整版。另外,请查看BYOB(构建自己的块)以获取Scratch的面向对象扩展。
–摩根·赫洛克(Morgan Herlocker)
2011年8月2日13:54
#20 楼
询问您的父亲,他是否可以按照您的年龄设计高层建筑。那就是编程。学习需要时间,因为有很多东西要学习。这就像骑自行车一样,只有您有上千个踏板,齿轮,手柄,旋钮,并且您无法在任何给定时间选择要使用的踏板。这需要练习。我不怀疑你。您很早就涉足C ++,以成为一名程序员。这对我印象深刻。
呆在那里,祝您在程序员生涯中一切顺利!
#21 楼
我知道已经有很多答案了。但是我还没有看到这样的建议:试着让你父亲帮助你。尝试在C ++书籍中挑一些毛茸茸的东西,您可以理解并要求他提供帮助。很难编码。
#22 楼
为了自己的利益,尝试扭转这种局面。只是接受您到目前为止所取得的成就还不够,并尝试做得更好...如果您不开始克服困难并从现在开始改善,当您为老板工作时,您将遇到这样的困难时期。如果我只有你那年的两倍努力...
#23 楼
父亲的投入不利于您的学习过程。是的,有许多其他人提到过的学习编程的方法。但是,我认为您在C ++中显示了惊人的进步。在Java编程的第一学期结束后,您添加的程序将是我几乎无法处理的事情。 1)处理您的父亲。看,每个爸爸对自己的孩子都有奢侈的梦想。但是,他们的期望可能很高,最终会导致某些童话中甚至不可能发生的事情。我建议在这种情况下请外部的人来更好地评估您的进步,并使您的父亲踏实。您可以尝试与具有编程经验的认识的家人/朋友交谈,甚至这个社区中的人都可以代表我们自己的经验和知识通过电子邮件给他发送电子邮件。 t冷静下来,您会一起失去兴趣。
2)找到焦点。
不利于一次学习所有内容。选择一种语言并坚持使用。当您阅读有关特定语言的书时。照着本书的例子,逐字逐句并不是完全正确的方法。对于某些人,但不是全部(特别是我自己),反流是一个学习过程。重要的是,要从尽可能多的角度和您感兴趣的角度进行攻击。语言和洞察力满足您编程的需求(制作游戏,设计应用程序,测试等)。您还可以进行个人冒险来创建程序。弄清楚您现在想做什么,无论您知道什么,然后在编程时对其进行研究。
随着时间的流逝,您最终将想尝试其他相关的编程语言。您可能还会意识到,您不想在一起进行全部编程。别忘了玩!
#24 楼
您已针对您的情况的编程方面获得了一些不错的反馈和建议。但是我想从不同的角度添加一些东西...我给你的印象是,你对父亲有一些消极的想法-他给你施加了压力,并发表了一些引起你的评论一些悲伤和忧虑-而这又使编程失去了乐趣。真可惜,我想这里的大多数人都会同意编程很有趣-我从事编程已有30多年了,但我仍然觉得它很有趣。
但是,我认为您父亲在您身边真的他做了他认为正确的事情,他正在尝试提供帮助,他为您购买了书籍,为您提供了良好的开端。但是他弄错了(我以爸爸的身份讲话,有时候我们确实做错了!)。对他来说,书籍可能是他从事建筑事业的起点(我想这是在互联网和www普遍出现之前开始的)。所以从他的心态来看,书是您开始的地方。
因此,假设您的父亲站在您身边(我确定他在身边),那么问题在于他只是不了解如何第一次开始编程时可能会很困难-向他展示他在此处发布的所有答案-我确定你爸爸是个好人,他会理解的,他会支持你的。 >祝您编程愉快-看来您有了一个良好的开端。
评论
也许添加“神童”不会太多吗?对我的许多朋友来说,制作这样的程序将很困难,我向您保证
–塞浦路斯
2011年8月3日,9:03
@塞浦路斯-我没有对他的特殊能力发表任何评论(尽管我确定他们很好)。真的和他父亲有关。
–西蒙骑士
2011年8月3日在10:02
#25 楼
在其他答案中未提及的一件事:您可能知道,小时候(我14岁)被告知要学习沉闷的编程知识并不是最简单的事情。我一直都在分心..我之前告诉他我不需要买书,我可以看在线教程..但是,他太老套了。他只是让我使用这些书。
您肯定需要在那部分上进行工作。互联网是每个程序员的关键工具,您必须使用它。
首先,编程与解决问题有关。当您不知道如何用XYZ语言进行X编程时,可以用google搜索并寻找解决方案。 *快速找到解决方案对程序员来说和使用键盘一样重要。
其次,另一个关键技能是使用文档。书籍通常就像教程一样,它们提供了指导,但是却没有为您提供完整的知识,而这正是文档的方便之处。例如:您使用C ++编程,您有一个月的经验。迟早(我很快就会说),您将需要使用标准库...或者您已经使用过它?如果是这样,那是一个好兆头,在这种情况下,您的书可能还不错。无论如何,了解C ++标准库中已经存在的内容以及不存在的内容将很有用。为此,在编程过程中始终保持http://cplusplus.com/这样的引用是很有用的。编码。如果您的父亲不理解它,并希望您仅使用书籍学习编程,那么他的方法会适得其反,使您的学习进度变慢(并可能养成不良习惯)。
#26 楼
他不了解倾向于编程的过程。您可以阅读所有这些书籍,但仍然无法写出像样的东西,因为花费时间最长的是对您可以做什么以及如何使用它的真正了解。您已经告诉您的父亲,您喜欢编程-别让他为您破坏。并且当然不要尝试学习5种编程语言,至少现在不是。坚持使用相对简单的Java之类的语言,一旦精通Java,就可以将其转移给其他人。
关于书籍,顺便说一句,这是正确的方法,因为您以正确的方式了解语言。遵循教程通常会导致养成不良习惯等。
祝你好运;并让他知道您做得正确,进度很慢,但是在学习过程中却学到了很多。
#27 楼
我认为很多年龄在25-35岁之间的程序员在玩Nintendo和Sega时就长大了。他们/我们中的很大一部分在您可以自己制作游戏时就改变了为什么要玩游戏的想法。这是一种非常自私的动机,可以促使您成为更好的程序员。这是一个开始。在生活的后期,您可能会从编写视频游戏(虚拟问题)过渡到赌注更高的游戏(现实问题)。就像该患者的处方药不会与另一种处方药产生不利影响一样,这些卡车能以最少的汽油量提供最多的运送量以减少污染吗?或者我如何确保购买此库存将购买以我想要的价格,同时有1000个其他的价格。我认为您解决这些现实问题会给您父亲留下深刻的印象,但他需要了解您必须采取一些小步骤才能实现目标。#28 楼
建筑植根于物理世界,从出生起就一直在学习。对于建筑专业的大学生来说,与乐高玩具一起玩将浪费时间。您的父亲认为,由于您了解数学,因此您熟悉基础知识,并且应该能够开始制作东西。嗯,那不是真的。他对编程一无所知,因为他甚至没有意识到它不是数学的分支。编程是一个新世界。掌握它的最好方法是像学习物理世界一样学习它:沉浸于自己的身体中并进行实验。一言以蔽之。现在是乐高时间。
为了进行比较,请考虑宇航员。他们也有一个完全没有准备的新世界。他们必须从诸如如何在整个房间中移动等基本知识开始。
下一步,我建议制作一个游戏,其中计算机会选择一个随机数,然后您尝试猜测一下,它会告诉您您猜得太高还是太低。
也可以尝试许多不同的语言!
不是一次全部,而是一次一次。程序员。电子游戏几乎涉及到我们学科的每个角落,建立一个游戏是提高技能的一种好方法。这也是一个不断学习和学习更高技能的理想场所。
#29 楼
花费自己的时间学习编程语言,您越会练习,越会投入编程,这一次您创建了一个非常简单的程序,对初学者来说很可爱,但是随着您的前进,请确保您确保自己创建了一个好的程序,实际上可以被您的父亲使用,好吧,如果您问我,这就是我如何帮助我的父亲工作。确保他会真正理解,我相信有一天你会成为一名出色的开发人员。#30 楼
我以软件工程师的身份学习,在我的教育中学习编程的进步不仅仅是阅读本书。首先,我建议您学习C,因为它是一种易用的语言,并且许多其他语言(例如C ++,objective-c)都是基于C编写的。我们必须购买一个微芯片(在我们的例子中是一个带STK 500套件的Atmel Mega16,它只是一个带有LED和按钮的电路板),然后我们就玩弄它,编写程序使之成对。这比仅阅读和编写IMO问候世界程序要有趣得多。 OOP是许多语言和编程思想中的关键概念,因此如果您认真对待编程,则必须使用OOP。在深入研究OOP之前,请务必先了解其理论,否则可能会很困难:-)
最后但并非最不重要的一点,我建议您研究不同的数据类型,例如堆栈队列,堆等,这在您编程和阅读新语言时非常容易理解。
我的朋友,祝你好运!
评论
我会推荐使用C ++以外的东西来学习OOP。 Python是一个很好的例子。 C ++是一种复杂的语言,尝试使用它来学习OO概念非常痛苦。但是,一旦您真正学会了它们,便会知道如何使用其许多本来就不透明的功能。
–nmichaels
2011年8月2日在13:21
评论
评论员:评论旨在寻求澄清,而不是进行扩展讨论。如果您有解决方案,请留下答案。如果您的解决方案已经发布,请对其进行投票。如果您想与他人讨论此问题,请使用聊天。有关更多信息,请参见FAQ。顺便说一句,你应该给他看这个话题。如果他看到专业程序员对您的进步的看法,那可能会更进一步。
@David这不是传统的,那是一个可怕的父母和一个自私的人。在这一点上,他不希望您真正地成功,否则他会和您陷入困境。他真的只是想成为一个成功孩子的父亲。不幸的是,您对此无能为力,因为它是您的父亲,您不能无礼。我要说的是做鬼脸,忍受它,然后当需要升学时,选择一个离我很远的常春藤联盟。
我对此并不感到惊讶,因为它已经关闭(它是题外话),但是这是我希望我们为“题外,但仍要保留”的标签/标记的问题之一。 :)
问你爸爸他十四岁的时候在做什么