-1

这些年来我一直在编程。我在 Linux 中使用 C/C++ 和 make/open 源代码。我使用 Python 对算法进行原型设计。我使用 C#/Visual C++ MFC 在 Windows 上创建玩具程序。这些代码保存在版本控制系统之下。但是在回顾了软件工程的面试问题后,我意识到我仍然没有掌握 CS 的基础知识。我的大部分编程都是“盲目的”,没有任何精心设计。所以我的问题是SE必须知道的基本CS知识是什么?

1)数据结构和算法

2) 离散数学

我还应该学习什么?

4

2 回答 2

2

熟悉(至少)与主要大学获得学士学位所需的相同主题是一个好主意。例如:http ://www.engin.umd.umich.edu/SRA/pdf/curriculum/Curr_SWE_Fall_2008.pdf

于 2013-02-07T18:02:23.530 回答
1

从“程序员”到“软件工程师”的转变是一个终生的过程。您认识到自己在该领域的弱点这一事实表明您已经朝着正确的方向迈出了一些步伐。恭喜!

在对数据结构和基本算法有扎实的了解之后,我建议您将“设计模式”作为您的#2。这方面的经典文本是“设计模式:可重用的面向对象软件的元素”

第三个研究领域可能是“软件工程过程”。这些是团队创建软件时使用的技术和工作流程。公司看好这些流程的知识,以及以协调方式与他人合作的能力。

于 2013-02-07T18:04:55.343 回答