我是非洲埃塞俄比亚的第二年计算机工程专业的学生。我们已经学习了C和C ++,并且我已经教我自己的HTML,CSS,PHP(cakePHP框架)和小javascript,JQUERY和mySQL来开发像博客一样的小系统。但我想建立安全可靠的大型系统。我非常谦虚地看到非常聪明且经验丰富的开发人员。我一开始就想要遵循哪个(即ASP.NET或PHP),以及我应该学习哪些其他语言或系统来实现这一目标。在此先感谢。
PS。我可以处理任何类型的数学。
答案 0 :(得分:7)
我觉得自己像是一位老人,但是你会意识到,软件开发中最大的两个挑战是:
这如何回答你的问题?
专注于改善这两者。选择您喜欢并认为适合完成任务的任何库/框架/平台/语言。由于种种原因,恕我直言PHP并不是一个很好的语言,但最后,你应该使用你喜欢的东西并且感觉良好。我个人使用Haxe来完成我的项目。你可能想尝试一下。最后,我认为你应该尝试许多语言和框架来掌握不同的概念。你将学习的大多数东西,超越具体的语言和框架,但你只能通过真正地了解它们中的一些来学习它们。
在结束之前,我想指出你的5 commandments;)
答案 1 :(得分:2)
PayPal起步并不大 - 随着时间的推移它变得越来越大,因为它们是成功的。由于特定的平台选择,他们没有成功。由于他们的商业模式,他们取得了成功,因为他们提供的服务和他们吸引的客户。
所以学习ASP或PHP或两者兼而有之。它们对于程序员来说同样有用。并且同样能够支持高度可扩展的系统。
答案 2 :(得分:2)
从你所知道的开始。你看到的大问题实际上是从头开始的人分心。
答案 3 :(得分:2)
大型系统都是关于组件和测试之间的耦合。
“软件架构”和“软件工程”等课程应该擅长教你如何设计系统(正确地在组件之间进行耦合和通信)。我对大学的这种看法感到有些失望,但它至少可以帮助你思考正确的事情。
然后进行测试,开始查看test driven development方法。在考虑稳健性和安全性的情况下,测试覆盖率非常重要。
最后,如果没有其他原因,我甚至建议您查看Haskell,而不是进入更“正式”的操作模式。 Haskell或多或少地强迫你通过类型系统更正式地表达问题。 (另外,如果你真的喜欢高级数学,你可能会喜欢haskell:))
答案 4 :(得分:2)
这里有两个目标。单独处理它们:
构建大型复杂系统:
大型复杂系统是由于两件事而产生的:
实现这一点可能意味着与其他人合作。显然,你 对技术方面感兴趣 - 这是你的力量。 您可能需要找到其他愿意提供帮助的人 管理事物的非技术方面。这包括像 筹集资金,促进和营销。你们小组的每个成员都应该 带来不同的核心力量。
作为技术领导者,您需要牢牢掌握应用程序 建筑。这不仅仅是一个棘手的编程技能问题 它正在理解如何利用各种设计模式和技术来实现 你的目标。了解尽可能多的框架和设计模式。你不需要 成为他们中任何一个的专家,直到你感受到优势 关于你正在寻找的应用程序的每个弱点 建立。
建立一般CS技能
理论永远不会过时。在你的科学方面获得强大的背景 计算机工程专业。学习语言理论,离散数学, 算法设计/分析,计算机体系结构,应用架构等 这些将为您的职业生涯提供良好的服务。
然后问题的实际方面是:您现在应该了解哪些语言,技术和框架 利用你的职业生涯(希望做一些非常大的事情)。为此,您已经走上正轨。好奇,暴露自己 尽可能多的工具。你知道的东西越多,学习就越容易 新的。花些时间了解每个工具所基于的模型以及方法 它与您使用的其他工具类似但不同。
请记住 编程语言只是“交易的工具”,而不是交易本身。随着时间的推移你会 找到新工具并丢弃其他工具。
全部放在一起
让你的想象力推出那个“杀手级应用”。与交朋友 有技能的人补充你自己的。一起谈论和梦想大事。
致力于发展您的核心CS技能
尽可能多地使用不同的工具和语言。获得一个 良好的工作知识,你发现最有用的几个你在做什么 时刻。获得任何一个工具的掌握可能需要数年,但让你的 目前需要你的指导。随时准备让您的技术工具集发展。
答案 5 :(得分:1)
我认为这不是语言或系统的问题。如果您是一名优秀的程序员,您将很容易采用和适应任何类型的编程语言或框架。
对于您想要编程的系统类型,有许多框架需要考虑。一切都有其优点和缺点。我建议你尝试向之前做过的人学习,看看大公司使用的是什么,并研究更多。
答案 6 :(得分:0)