[英]On your very first program, which construct hooked you on programming?
对我来说,这是If声明,我很兴奋,从那以后我相信计算机非常聪明,或者我至少可以让它看起来很聪明。
对于我们在70年代末或80年代初被介绍给计算机的人来说,我们看到的第一个程序看起来像这样:
10 PRINT "Commodore sucks! "
20 GOTO 10
(“Commodore”可以替换为“Apple”,“Atari”或“TRS-80”)。
GOTO太棒了。
回答#2 :)
首先让我着迷的实际语言结构是递归。 问题
编写一个名为SumDigits的函数,它将数字的数字相加。 示例:SumDigits(1234) - > 10
起初我写了一个很长的迭代解决方案。 但过了一会儿,我想出了这个答案。
string SumDigits(int value) {
if ( value > 10 ) {
return SumDigits(value/10) + (value%10);
}
return value;
}
答案的简洁性让我感到惊讶,我立即在递归和简洁编程中找到了新的爱。
虽然只花了几个星期来学习递归的弊端:)
让电脑服从我。 真棒。
我也喜欢(爱恨),即使我错了,电脑也会服从。
但是认真的人。
我被迷住了:
在QBasic开始,所以,我认为它是:
INPUT "What's your name?", a$
PRINT "Hi, "; a$; "!"
能够用PRINT
在屏幕上显示某些内容足以让我对编程感到兴奋。 使用INPUT
进行交互是锦上添花!
指针。
当我开始使用Turbo Pascal进行编程时,我真的无法理解,他们如何编写大型程序。 记忆是有限的,无论我想做什么 - 我经常会达到堆栈限制。
当我最终被引入指针时,我终于迷上了,因为我终于可以开始做大事! 不是说我做了什么大事,而是...... :)
当我第一次开始使用QBASIC学习编程时,使用if语句和循环的流控制的整个想法非常棒。 我想,就在我了解到我建立第一个“选择你自己的冒险”游戏的if语句后的几天。 回想起来,我知道它在代码行方面一定是非常低效和庞大的,但事实上,我可以使用任何东西来分支故事,但如果陈述很精彩。
Lambda表达式
我几乎一直在编程,但现在甚至在Lamdba表达等新事物中找到了兴奋。
MyList.Any(p => p.IsCurrent)
嗯..喜欢它。
对我来说,这不是一个特定的语法 - 它发现我可以突破并改变ZX Spectrum游戏 - 我想发现源代码是让我迷上了。
然后,当我真正开始编程,并从书籍中复制代码,能够自定义书中的内容并使程序仍然有效,但我想要的是什么。
? “你好,世界”
从我的第一本BASIC书(我相信的孩子们的BASIC):
10 INPUT A
20 INPUT B
30 LET C = A + B
40 PRINT C
那是本书的封面,我很高兴有可能性(它可以做我的功课!)......我花了几个星期来掌握这个简单的概念,但是一旦我得到了它,世界的编程为我打开了。
一旦发现评论,我就真的爱上了编程语言。 你可以用它做各种各样的事情,比如
// a commment!
int /* whoa, an inline comment! */ a;
;)
对于循环+阵列为我做了。 一旦我意识到我可以循环通过一组任意大的东西并对它们各自做一些事情,它们就开始走到了一起。
绝对是FOR循环 - 在6岁的时候,有了这个lil'logO Turtle从绘制一条线到绘制一个正方形到绘制一个圆圈就是把我从用户变成程序员所需要的。
清除案例,循环。 特别是在Gwbasic中循环。 只是为了好玩,我想在屏幕上打印0到100之间的所有数字。 所以我开始:
10 print 1
20 print 2
30 print 3
40 print 4
在某些时候,我认为WTF或类似的东西。 肯定有更好的办法。 所以我问了一个人(也许是一位老师或一些同学),然后他向我介绍了变量和循环的魔法。 那一定是我迷上的那一刻。
10 SET i = 0
20 IF i > 100 THEN GOTO 60
30 PRINT i
40 SET I = I + 1
50 GOTO 20
60 REM END LOOP
这是6行而不是100行! 那真是太好了。 对不起,如果我的语法不完全正确。 :-)我真的很喜欢那一刻。
我写的第一个Fortran代码中有一个if语句,是我当时看到的最有趣的东西之一。 像这样的东西
integer n
n = 1
20 if (n .le. 100) then
n = 2*n
write (*,*) n
goto 20
endif
当我第一次学习时,我认为阵列是肯定的。 在此之前,我真的只考虑单个变量。 当我了解数组时,我能用qbasic :)做更多的事情。
现在我有各种各样的数据结构,而不仅仅是数组:)
对我来说这是指针。
虽然我甚至不会假装完全理解指针,但这是我第一次真正陷入编程困境。 在搞乱了Visual Basic 6和服务器端脚本语言之后,我转到了C,获得了基础知识,然后遇到了指针。
在那次演讲中,我记得人们对指针的反应。 自封的节目之神在恐惧中畏缩,那些知之甚少的人开始在当地报纸上阅读招聘广告。 我真的记得我班上的一个女孩说“whaaa?”
许多程序员在点击指针时会收到警钟。 编程世界刚刚向你介绍了计算机世界,如果你真的只是遇到了你,你会发现很少谈论。
我记得第一个让我着迷的计算机问题。 这是我在高中编程课上遇到的一个问题。
编写一个程序,从控制台读取一个数字
为什么那让我着迷? 嗯,一开始没有。 我写了一个快速而肮脏的程序来做这件事,但后来老师做了一件非常意外的事情。 她进入该计划的“一个”,它死了一个可怕的死亡。
我花了一天的时间来处理邪恶的输入,但最终我得到了它的工作。 这个过程完全吸引我关于程序正确性的想法。
IF-GOTO。
可不是闹着玩的。 在我得到像指针这样的语言之前很久我就迷上了。
到那时我已经使用数组索引编写了类似指针的算法。
C中的函数指针
首先我学习了C,但没有学习函数指针。
然后我开始在汇编程序中编写大约一个学期的编程。 我使用函数指针然后甚至不知道它们。 不知怎的,对我来说,它们似乎是汇编程序中的自然物。 我不得不向老师解释几次,因为他们不理解他们:)。
然后,我回到了C,并且启示击中了我。
现在我嘲笑Java方法,泛型,后期多态和所谓的“神奇”事物。
PRINT 3 + 4
电脑说7.这一切都在我父母的电视上可见。 在电视上!!! 你能想象吗? 我立刻迷上了。 您可以告诉机器该做什么,你可以在电视上看到。 哇。
Backgound:我的父亲雇主买了一台小型电脑(Robotron KC 85/1),让工程师与这项技术取得联系。 他们可以在周末把它带回家玩。 所以我父亲把它带回家,所有新的关于如何连接它以及如何打开它。 他的一个同事告诉他使用“PRINT”命令和添加数字的技巧。 他告诉我,我被迷住了。 这是大约1986年,当时我12岁。我仍然因为基本相同的原因而迷上了(告诉机器该怎么做)。
qBasic,当我在10-12岁左右时,我开始复制“医生问你奇怪的问题” - 游戏。 这最终成了很多令人讨厌的问题。 就在那时,我知道我想要使用电脑。
几年后,我开始玩HTML和PHP,给了我几个客户,我创办了一家公司,就在那时我知道我可能会变得血腥丰富:)
我只编程了大约一年,所以对我来说,这是LINQ。 我查看了将查询字符串暴露给数据库的书中的代码,并认为“哇,这有点蹩脚。”。 我遇到了LINQ,从那以后我们一直幸福地结婚了。
当DBase II允许我将记录打印到文本文件时,并在我想要的地方完全贴上正确的排版代码 - 在它们之前,在它们内部,在它们后面,围绕它们。 我仍然可以感觉到脖子后面的寒意。 在我的小电脑里哇整个排版系统! 预热300波特调制解调器并将此文件直接发送到8英寸磁盘并通过Compugraphic运行。 码数美丽闪亮的照片式纸张,所有字母都在正确的位置。 我不值得这种幸福......
我是基本的转到。 我认为你可以让程序跳到你想要的地方是不可思议的。 直到后来我才意识到强大的责任。
for or while循环,因为我可以在分子动力学模拟中使用它,我不必一次一个地进行计算
让我迷上编程的是x86汇编程序的以下几行:
mov ax, 13h
int 10h
mov ax, 0a000h
mov es, ax
当我通过弄乱视频内存来绘制东西是多么容易时,我所学到的所有其他东西突然对某些东西很有用。
启发了这个词
BASIC B eginners A ll P urpose S ymbolic I nstruction C ode
我发现++在高中时很有魅力。
其他人都知道Basic,Pascal等。但是i ++是代码 ! 只有我知道的代码!
而这些微小的变化可能会产生非常重要的影响:++ i在许多重要方面与i ++不同。 而且++直接转换为机器代码。 通过学习这一点,我可以直接访问MACHINE的CORE。 想象一下力量!
了解这一点让我想要学习所有其他奇怪的操作和C语言的角落。
TRS-80图形
POKE 15360, 191
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.