首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在学习编程时自我保护的未来

在学习编程时自我保护的未来
EN

Software Engineering用户
提问于 2011-06-21 15:14:41
回答 5查看 2K关注 0票数 9

如果你愿意的话,我想学着用一种“防未来”的方式编程。虽然Windows在桌面操作系统市场占据主导地位(目前而言),但学习其语言/框架/API等显然有很大的价值--随着新设备的出现或Windows自身的发展( Windows 8的过度友好预览看起来不太吸引人……),这种情况可能会发生变化。

我是否正确地认为,掌握C/C++用于后端逻辑/低级编程等方面的扎实知识,再加上一种可移植性极强的语言,如用于GUI的Java等,将成为软件开发的良好基础,而这些软件在大多数系统中都将被证明是有用的?--我指的是台式PC、平板电脑、手机。

EN

回答 5

Software Engineering用户

回答已采纳

发布于 2011-06-21 15:38:32

如果你想成为未来的证据,我能给你的最好的建议就是不要把自己融入到一项技术中。

所以不要盲目地学习API。了解它们是如何孕育出来的。场景背后的哲学是什么?它们的优点和缺点是什么?一般认为软件,而不是一种特定的技术。

您也可以在良好的程序概念上工作,OOP和AOP是一个很好的选择。但不要仅仅理解机制,真正地研究机制背后的哲学。

不要忽视一般的计算机科学,像数据结构和算法,因为它们是交叉的技术知识,总是有用的。

也要有良好的做法。你通常有十几种方法来做一些事情,但大多数都是垃圾:容易出错,很难维护,以后很难理解,或者是被另一个程序员理解等等。。。通常,代码要比编写代码更难读。因此,学习如何在编写上花费更多的精力,使阅读更容易(因为您将阅读代码比编写的代码更多)。

学习有效的调试技术(智能地使用日志和调试器)和测试(如何编写容易被单元测试的代码,以及如何自动化这些测试)。

然后,你将需要一个一般的技术背景。我说的是非常广泛的知识,比如处理器是如何工作的(缓存丢失或分支预测是好的开端)、UNIX系统、网络协议(如IP、TCP和以太网等)。。。

最后,学习如何学习。如果你知道如何学习,那么你就可以适应。

你需要掌握一些特定技术的知识才能找到工作,但这些知识很快就过时了(例如,考虑一下COBOL,或者在IE/Netscape战争时的web编程)。所以不要依赖他们来证明未来。他们将是被录用的关键,但显然不是什么使一个伟大的程序员和什么将使你的技能经久不衰。

编辑:如果你刚刚开始,你应该做一些事情。任何事,真的。像俄罗斯方块或蛇这样的游戏是一个好的开始,也是一个乐趣。如果你不把事情做好,你将花费大量的时间学习,并且真的得不到充分理解你所学到的东西所需的经验。

让我们以设计模式为例。设计模式很棒,您应该明确地使用它们。但是,如果过度使用它们,将使您的代码变得复杂和难以理解。您将不得不面对这样的问题:设计模式解决了,并且浪费了一些时间来解决它或它的副作用,才能完全理解设计模式的意义。随着时间的推移,当代码增长时,设计模式必须用作小的重构。当设计模式的好处大于其使用所导致的代码复杂性时,您将知道何时需要它。这需要经验。

所以明确地说,把事情做好,他们就会从你的错误中吸取教训。我不能再坚持下去了:把事情做好!

票数 31
EN

Software Engineering用户

发布于 2011-06-21 15:51:30

好程序员和坏程序员的区别在于他们用任何语言编程的能力。正如其他海报所指出的,了解任何重要的面向对象语言将为您提供创建优秀程序和需求的工具。

此外,如果你还在学校,一定要选择一些写作课程。最好的工程师和程序员也能很好地交流他们的想法。

一旦你开始工作,防止被淘汰的最好方法就是跟上当前的趋势。如果你不使用现有的技术,或者你的工作流程糟糕等等,不要害怕离开另一份工作。对你的职业生涯来说,最糟糕的事情就是找一份你与旧技术或薄弱流程一起工作的工作。

票数 4
EN

Software Engineering用户

发布于 2011-06-21 16:56:09

“死神”的答案是好的。我还想补充三点:

  1. 可重用信息来自中间,而不是极端。明斯基在他的“思想社会”一书中详细介绍了这一点,因此我将把它概括为:顶层太接近具体的解决方案,大部分无法应用于下一个问题,而底层太靠近特定的平台,大部分无法应用到下一个问题。中间层是发现可重用信息的地方--算法、模式、分类、策略、策略、技术、组织、协议等,它们通常用于解决类似的问题,而不管是域(顶层)还是平台(底层)。注意:这些层与3层体系结构无关,我们在这里讨论的是问题空间/解决方案空间语义。
  2. 在至少看到两个实例之前,您将不知道什么是通用/通用/可重用的。因此,研究Windows如何在内部工作,然后研究linux/unix如何在内部工作,并对两者进行比较。普通的东西是可重用的。不同的事情是设计决策,这也可能导致可重用的洞察力。
  3. 对于任何给定的情况或问题,请考虑如何实现解决方案,然后将您的扶手椅解决方案与实际解决方案进行比较,并尝试了解差异背后的可能原因。
票数 4
EN
页面原文内容由Software Engineering提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://softwareengineering.stackexchange.com/questions/85856

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档