|
|
|
|
|
by ejames
5322 days ago
|
|
I would say it's a little from column A and a little from column B. On the one hand, no I don't need to know calculus formulas off the top of my head for my daily work. Even if something came up, I could kick my textbooks out of the attic and look it up. Most of the actual, job-specific knowledge in modern programming is either domain-specific information or integration "plumbing" knowledge. Although the practice from doing engineering homework is helpful, you can get better practice faster in a more direct form by simply holding down a programming job or working on an open-source project. On the other hand, if I had never read my textbooks in the first place, I wouldn't know which ones to reference for solving problems I encounter later. Many of the problems you face in real-world programming are ones that have already been solved somewhere else, but if you never heard of the solution, that doesn't help. Real problems also are not conveniently labeled with the name of the algorithm that solves them, so you need to know the solutions at a fundamental enough level that you can recognize and apply the solution to apparently-unrelated problems in disparate fields. That usually means you need to know it at an academic level. There are theories and rules-of-thumb from my Artificial Intelligence class that I consider to be the most important programming knowledge I have precisely because I understand the issues at that level. My feeling is that studying engineering formally at college is the second-best training you can receive for programming. The first-best is working on a programming job at a company that has a nice, deep technical bench and the willingness to mentor you. However, most companies with that much technical capacity will only hire you if you're at least somewhat trained or experienced to begin with, so the real alternative to college is working by yourself and teaching yourself programming. The effect of teaching yourself will depend somewhat on how good you are at teaching yourself and a huge amount on sheer, dumb luck, since you might pick a terrible place to start learning and quite patently not know any better. So I recommend majoring in engineering if you want to be an engineer. It's not the only way, but it's the most practical and likely one. |
|