Language agnostic 超越简单的编码:从这里走到哪里?

Language agnostic 超越简单的编码:从这里走到哪里?,language-agnostic,Language Agnostic,我从十几岁起就开始编码了。我开始用HTML,继续PHP/MySQL(创建了我自己的论坛,社交网站等等),然后分支到更传统的语言,如java和C++(也在高中时,拿起了一点VB .NET)。我现在最熟悉C++,因为这是在计算机科学II(跳过COMP SCI I)中在RPI中教给我们的选择语言。我现在觉得我对如何在这门课上编程有了很好的了解(家庭作业很残酷) 现在是夏天,我在一家公司实习,这家公司为我提供一些编程方面的新经验,但我想要更多。每当我完成一项长作业时,我想感受到我在RPI计算机课程中获得

我从十几岁起就开始编码了。我开始用HTML,继续PHP/MySQL(创建了我自己的论坛,社交网站等等),然后分支到更传统的语言,如java和C++(也在高中时,拿起了一点VB .NET)。我现在最熟悉C++,因为这是在计算机科学II(跳过COMP SCI I)中在RPI中教给我们的选择语言。我现在觉得我对如何在这门课上编程有了很好的了解(家庭作业很残酷)

现在是夏天,我在一家公司实习,这家公司为我提供一些编程方面的新经验,但我想要更多。每当我完成一项长作业时,我想感受到我在RPI计算机课程中获得的难以置信的满足感(从一组要包含和排除的单词中生成所有可能的单词搜索)

我的问题是,我该怎么办?我试着在网上学习一些教程,但它们都太简单了。然后我试着前往sourceforge,帮助完成各种项目。但是,我一下载代码,就对它的复杂性感到迷茫。我从未创建过现实生活中可应用规模的实际软件。我不知道从哪里开始。您如何从编程知识过渡到软件的实际创建

<>我还学习新语言(JavaScript、jQuery、ASP.NET、C语言、Python),或者使用C++的新库和/或框架(我们只使用COMP SCII II中的STL)和其他语言。我的问题是,我该怎么办?欢迎我提供所有可能的答案

多谢各位,
Michael

你可以加入一个大型的开源项目,你会学到很多东西,完成一些很酷的事情

评论后编辑如果这对你来说太复杂,试着开始一个“真正的”项目。我说“真实”是因为它应该是你想做的事情,而不是“创建博客”或“如何做循环”。例如,去年我创建了一个功能齐全的项目管理系统,现在我将其用于我的一些项目。如果这是真的,你会更有动力,你会想完成这件事

选择你想要的技术。我之所以推荐它,是因为它很棒,而且充满了有趣的概念,可以改进您编写超时代码的方式(干式、RESTful、MVC……)。。。但是你可以选择你想要的任何东西

尝试使用您所知道的内容和基本教程创建您的项目。你会陷入困境,必须学习更多,才能获得你想要的功能。对我来说,这是改进编码方式和一般编程知识的最好方法

因为您将从头开始这个项目,所以您将看到从何处开始以及这将如何发展。我将使用项目管理工具。我们从“一个项目有很多事情要做”开始,最后我们得到了所有其他的功能,比如一个复杂的日历,一个完整的ajax界面,一个嵌入式聊天

一旦你看到你是如何做到这一点的,试着和你的一个朋友做同样的事情,在开发中获得团队合作的热情。了解如何使用SVN,basecamp。。。了解(!)、对等编程

有很多经验!然后你可以再试试开源


希望这能有所帮助

我建议尝试纯函数式语言,比如Haskell。这是一种完全不同的看待编程的方式,我觉得它非常令人满意

我推荐这本书学习它


编辑:作为对评论的回应,我对这个问题的解释是,作为一名程序员,他可以从这里走向何方。函数式编程是一个逻辑方向。对于第一次学习函数式编程的人来说,Haskell很不错,因为它实际上不允许命令式编程实践。此外,它基本上具有您在其他函数式语言中可以找到的所有功能,这意味着可以很容易地选择其他函数式语言。

您必须找到您感兴趣的特定类型的功能。对我来说,这是基本的套接字编程和制定自己的协议。当我能够在我创建的服务器上创建一个与文件上传服务协同工作的功能性文件上传控件时,我就有了这种感觉。该协议处理身份验证、分块和哈希比较。不久的某个时候,我也计划加入文件恢复功能。

我建议看看。这是学习一门新语言的一种非常有趣的方式,当你解决问题的时候,它确实会给你带来一定程度的满足感。它们提供了各种难度的大量问题。

我的建议是找到您感兴趣的问题/项目,并尝试编写代码。尝试一个真正的问题会驱使你。找一些不复杂但不太简单的东西。当开始一门新语言时,要尝试的是编写一些工具。例如,可以在Python脚本中编写一个在C++项目上打印度量的脚本。你可以编写一个工具,从你使用的网站中提取一些统计数据,等等。当我学习编程时,游戏编程非常有趣(我年轻时:-)。您可以尝试使用3D引擎编写一些简单的游戏,例如。参加一个开源项目也很好,但正如你所说的,现在可能有点势不可挡;-)


找到你喜欢的并且对你有真正有用目标的东西。你将在解决问题的过程中茁壮成长并学到很多东西

我认为提高程序员技能的最好方法是做编程的目的:解决问题。我敢肯定你一直在你的机器上玩,有一段时间你想“我希望有一个程序能做到这一点…”或“我想知道是否有任何程序能做到X…”而不是仅仅通过谷歌搜索看看是不是别人写的,你自己写吧。从小事做起,逐渐让它变得更复杂。添加功能。允许你自己