我从少年时代就开始编码.我开始使用HTML,继续使用PHP/MySQL(创建我自己的论坛,社交网站等等),然后扩展到更传统的语言,如Java和C++(也选择了一些高度的VB .NET)学校).我现在最熟悉C++,因为这是我们在RPI的计算机科学II(跳过Comp Sci I)中教给我们的选择语言.我现在觉得我非常了解如何从这门课程编程(家庭作业是残酷的).
现在是夏天,我在一家为我提供一定程度的新编程体验的公司实习,但我想要更多.每当我完成一项长期任务(从一组单词中生成包含和排除的所有可能的单词搜索)时,我想要感受到我从RPI计算机课程中获得的令人难以置信的满足感.
我的问题是,我从哪里开始?我尝试在线阅读教程,但它们太简单了.然后我尝试前往sourceforge并帮助完成各种项目.但是,一旦我下载了代码,我就会迷失其复杂性.我从来没有创建过实际应用规模的实际软件.我不知道从哪里开始.您如何从编程知识过渡到实际创建软件?
我也愿意学习新语言(javascript/jQuery,ASP .NET,C#,Python),或者使用新的库和/或框架与c ++(我们只使用Comp Sci II中的STL)和其他语言.我的问题再一次是,我从哪里开始?我欢迎所有可能的答案.
非常感谢,迈克尔
你可以加入一个大型的开源项目,你将学到很多东西并完成一些很酷的事情.
评论后编辑:如果这对您来说太复杂,请尝试启动"真实"项目.我说"真实",因为它应该是你想要做的事情,而不是"创建博客"或"如何做循环".例如,去年我创建了一个功能齐全的项目管理系统,我现在用于我的一些项目.如果这是真的,你会更有动力,你会想要完成这项工作.
选择您想要的技术.我推荐Ruby on Rails,因为它很棒且充满了有趣的概念,可以改善你加班的方式(DRY,RESTful,MVC ......)......但你可以选择你想要的任何东西.
尝试使用您所知的内容和基本教程创建项目.您将陷入困境,必须学习更多才能获得您想要的功能.对我而言,这是改进编码方式和一般编程知识的最佳方法.
既然您将从头开始项目,您将看到从哪里开始以及这将如何发展.我将采用项目管理工具.我们从"A project have todos"开始,我们最终得到了所有其他功能,例如复杂的日历,完整的ajax界面,嵌入式聊天......
一旦你看到你是如何做到这一点,尝试与你的朋友做同样的事情,以获得发展中的团队合作.学习如何使用SVN,basecamp ...了解软件开发过程(敏捷!),同行编程..
有很多体验!然后你可以再试一次开源.
希望有所帮助
我建议尝试一种纯函数式语言,比如Haskell.这是一种完全不同的编程方式,我发现它非常令人满意.
我推荐使用Real World Haskell这本书来学习它.
编辑:在回应评论时,我对这个问题的解释是他可以从这里作为程序员去哪里.功能编程是一个合理的方向.对于第一次学习函数式编程的人来说,Haskell很不错,因为它并不能真正实现命令式编程实践.此外,它基本上具有您在其他功能语言中可以找到的所有功能,这意味着它将很容易获得其他功能语言.