我的问题不仅仅是扩展语言特定技能.我想知道任何人可能会向渴望知识的人提供什么样的建议,但缺乏方向.随意跳过这个问题.
背景:我在我的大学读过一门java计算机科学课程,但我计划主修计算机科学和电子计算机工程(ECE).我的java课程非常简陋.我们获得了一个框架,只是编辑/创建了一些方法和类来执行一个简单的任务.我们制作了一个Breakout版本,并为一个简单的连接四游戏创建了一个AI.虽然我对大O符号有点熟悉,但实际上我没有在课堂上学过它(我的下一个CS课程涵盖了这一点).在我的ECE课程中,我们还在PBASIC中编写了BOE-Bots,以便在各种障碍课程中进行竞争.作为一名工科学生,我也被介绍到matlab,虽然我只用它来做线性代数作业.总而言之,我没有太多的编程背景,但我非常喜欢到目前为止所做的一切,而且我正在寻找建立更有价值的技能的方法.
采取的步骤:在更加关注reddit的编程部分之后,我找到了Project Euler的链接.今年夏天,我一直在抨击这些问题(昨天完成了我的第42个解决方案),但我正在寻找更多方向.我一直在阅读博客文章和SO.我想学习一些关于php的东西,也许还要创建一个动态的网页,但从根本上说,我想做一些事情来改善自己,为工作世界做好准备.
问题: 你会为我推荐什么方向?我应该学习一门新语言吗?继续攻击Project Euler?阅读一些有关编程的书籍?开始一个编码项目(我甚至不知道从哪里开始)?等到上学?了解更基本的编程原则?
我想有了所有可用的路径,我只是有点不知所措,我不想陷入可能对我的职业机会有害的道路.我也很难做出决定.非常感谢您的建议!
这个词很快让我担心...我建议你读十年自学编程 - 为什么每个人都如此急于求成? ~~彼得诺维格
如果你在坐在键盘上三周后没有让世界着火,那么请原谅自己...也许你注定要成为一个大器晚成的人?
;-)
大多数人都建议做更多的编程.虽然这显然很重要,但我认为了解您的程序所处的环境非常重要.
我将研究操作系统如何工作(它们如何为您分配资源,如何调度程序和线程),网络如何工作(路由,TCP/UDP行为和限制等)以及一些数据库理论.
我看到很多初级程序员具有很好的语言知识,但是除了他们程序的沙箱之外,他们还不清楚计算机/网络如何使他们的东西能够运行.
了解上述内容将使您在编写程序方面成为更好的程序员,以及您如何理解它们的工作方式(实际上,如何调试它们或分析它们的失败)
作为程序员,只有一件事可以提高你的技能:程序.
阅读有关编程的书籍类似于阅读有关骑自行车的书籍.它不会让你变成一个骑自行车的人.
编写一些您将使用并具有既得利益的东西.然后只需低头做它 - 随时阅读任何支持信息.