<p>
</p>
<p>My son told me about “shaving a yak.” :)</p>
<p>
</p>
<p>My son told me about “shaving a yak.” :)</p>
<br>
<br>
<p>Yes. But it’s interesting to see what the compiler generates rather
than looking at hand-coded assembler.</p>
<br>
<br>
<p>Today’s CS programs teach a lot of things.</p>
<br>
<br>
<p>I understand the point and the benefits of using languages like Java
and C#. But I also understand the benefits of using C and C++. Why
are Internet Explorer, Firefox, Safari and Chrome written in C/C++?
What language is Developer Studio or Windows written in? Why not
Java? Would you write Linux in Java or C#? Why or why not?</p>
<br>
<br>
<p>There are a wide variety of engineering and programming jobs out
there. If you work on operating systems or middleware, you’re more
likely to be working with C/C++. If you’re working on application
software, then you may be more likely to work with Java, Python and
C#.</p>
<p>Believe it or not, there are a great many end-user customers that
run on top of operating systems and middleware written in BLISS.</p>
<p>“Even big international companies primarily do not outsource.” - Perhaps outsourcing is no not the correct term. But I do know of people loosing their jobs, being backfilled by employees from other countries. Some have CS/math or engineering background.</p>
<p>This is a concern to me as DS will likely pick Computer Engineering when forced to declare a major. But he excels at programming and loves it, so it is his choice.</p>
<p>BCEagle - I never underestimate the power of C/C++. The only point I want to make is the strength of a CS program is not the programming language.</p>
<br>
<br>
<p>I do not get this point.</p>
<p>I think that architecture is important.
I think that algorithms is important.
I think that data structures is important.
I think that assembler is important.</p>
<p>I prefer compiled languages as the main teaching tool; especially for those planning to do systems work.</p>
<p>Danger, potentially heretical post approaching… ;)</p>
<p>
There are 10 kinds of people in this world. Those who understand binary and those who don’t. ;)</p>
<p>
hello world
</p>
<p>
Like anything, the key is doing something that one loves. The time-consumption, difficulty, and frustration are part of what makes CS fun and keeps the makers of Mt. Dew in business. It isn’t hard if you enjoy it. It is miserable otherwise. Personally, I switched from Pre-Law to CS because I found CS to be much easier (yes, I am lazy :)). CS is fairly tangible, mechanical and one gets relatively instantaneous feedback as to how well something works.</p>
<p>
Gotta agree with that. Where one goes to get the degree is irrelevant assuming the classes are available. It isn’t like twos complement math, Java, discrete structures, C, recursion, etc. are going to be different at different schools.</p>
<p>
I agree that is part of the fun of CS, but more important than fast is maintainable by the poor soul who comes in behind you to figure it out. Fast && Obfuscated == Costly. ;)</p>
<p>
This is true in my experience with the best software engineers that I know. Most were theology, poli sci, philosophy, etc. majors or have no college whatsoever. These people can sit around a conference room and say shift left register, pass the carry bit when they want someone to pass them a slice of pizza, but also understand the real-world, practical application of their work in terms of cost, risk management, ethical implications, etc… On the flip side, I have worked with people with CS degrees, who can write a BNF parser for compiler construction, but couldn’t write a simple business justification for actually constructing a compiler to save their lives… it is very sad. As ubcalumnus points out, the technical part of CS can be feasibly self-educated. The business end of CS can be more difficult.</p>
<p>With that in mind, my mantra is that the first language that any programmer should learn is English (or one’s native language). There isn’t enough technology on the planet to make up for the inability to communicate ideas in human terms. Programming language(s) are secondary.</p>
<p>Now back to your regularly scheduled meaningful conversation… ;)</p>
<p>BCEagle -
I left out the word “not”. I tend to miss words these days. I don’t know why.</p>
<br>
<br>
<p>I blame my new Tri-Focals for that sort of thing.</p>
<p>I think I am getting too old. I only have bi-focal but I don’t use often.</p>
<p>Also, I would like to point out that some students who do get into CS often do not have the right intentions. From what I have noticed from some of my peers is that money was often the driving force. Motivation from money can only get you so far. That correlates to the high dropout rate of CS and Engineering majors.</p>
<p>^I have to admit, though, that money, as long as it’s not in isolation, isn’t that bad of a motivation. Part of the reason I’m doing CS is because there are so many cool, amazing things that I can build, and at the same time I can make potentially lots of money. I mean, I find a lot of other fields amazing and interesting, like philosophy and creative writing. However, the only reason those fields will be my electives/minors, and CS will be my major, is because CS has a clearer career path.</p>
<p>“I’d say it’s a mix of lack of math/science preparation”
-But there is no math or science in CS. None. It is not like in pre-med or engineering.</p>
<p>"SAT Math is very irrelevant to what would be needed in CS (and most other areas, but that’s another topic…).
-Exactly correct.</p>
<p>Programming requires pure analytical skill. This skill is developed in kids thru CORRECT way of teaching of math and sciences. The American k - 12 does not provide what is needed in this area, not a bit. It is heavily based on memorization, while both math and hard sciences have to be heavily based on ability to derive most formulas from very few basic ones. No kid is stupid, but kids have to taught certain skills in addition to memory development, English…etc. Everybody can be in CS if they are provided the right education, no genius is reguired, not much of special knowledge, not much memory either, it is actually a fun fot those who lack in memory department, very many older folks…still enjoying their job</p>
<br>
<br>
<p>I’d suggest watching this lecture.</p>
<p>[MIT</a> OpenCourseWare | Electrical Engineering and Computer Science | 6.002 Circuits and Electronics, Spring 2007 | Video Lectures | Lecture 1: Introduction and Lumped Abstraction](<a href=“http://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-002-circuits-and-electronics-spring-2007/video-lectures/lecture-1/]MIT”>Lecture 1: Introduction and Lumped Abstraction | Circuits and Electronics | Electrical Engineering and Computer Science | MIT OpenCourseWare)</p>
<p>CS is math and science.</p>
<br>
<br>
<p>CS is much, much more than programming.</p>
<br>
<br>
<p>Perhaps most can program but not everyone can do CS.</p>
<p>miami, I agree that the relationship between math and computer science is a tenuous one.</p>
<p>
</p>
<p>[Smart</a> Software: Unifying Math and Computer Science](<a href=“http://wesnerm.blogs.com/net_undocumented/2009/02/unifying-math-and-computer-science.html]Smart”>http://wesnerm.blogs.com/net_undocumented/2009/02/unifying-math-and-computer-science.html)</p>
<p>To the extent that math teaches logical thinking skills, then it’s one route to becoming a good programmer. And in the referenced link, the author points out that linear algebra is useful in computer graphic applications. But do calculus and differential equations make a programmer a better coder (or an analyst a better analyst)? I think not. </p>
<p>But I disagree with your point, “everybody can be in CS if they are provided the right education.” People’s brains are wired in different ways. I’ve encountered very intelligent people who, try as they might, just can’t “get” programming. And I’m sure we all know people to whom writing effective code is as natural as swimming is to a sturgeon. And it’s also a well-known fact that the best coder is not always the best analyst, and vice-versa.</p>
<p>
</p>
<p>Everyone I knew or worked with who graduated with a CS degree would disagree with you…especially the ones who struggled because of their lack of math/science preparation in K-12. </p>
<p>Also, most CS programs I know of have core major requirements in areas like algorithms and heavy math requirements…sometimes to the point it was easy for several friends to complete second majors in mathematics. </p>
<p>One of them said CS summed up is “mathematics with electricity”.</p>
<p>“People’s brains are wired in different ways.”</p>
<p>-Kids brains in k-12 are very much open to re-wiring. If you give a kid a pencil every time you need to calm him down, he has much higher chances of developing higher than average artistic skills. Look at every musical genius, they spend huge hours every day in their early childhood doing music, developing skills. Nobody can be successful without developing required skills. Einstein taught himself lots of math and physcis outside of regular curriculum. One has to develop analytical skills even if their brain is already wired this way. You can see it in every exchange HS student, they are placed in higher classes in math and hard sciences, they are not smarter, they just have developed superior skills.</p>
<p>I am not familiar with CS then, I jaust have a BS in it, MBA in IS and over 30 years working in IT…I have no idea what CS is though, not something that I can easily picture.</p>
<p>anniezz, S taught himself Haskell and wrote a couple of articles; it got him a lot of attention in interviews – I think mainly because it reflected a certain mindset and perspective in attacking problems.</p>
<p>Also agree with Cobrat – the math courses and accompanying theory are what hang up a lot of would-be CS majors. S argues that the cool part of CS is in fact the beauty of the underlying math.</p>
<p>mathmom, S1 would also agree now that there were a couple of other schools where he would have been quite happy and fit in socially. ;)</p>
<p>DH was a financial analyst intern (Wharton MIS/Accounting) at a Fortune 50 corporation back in college and a manager tossed him a manual one day and said he could teach himself to program in ALGOL or he could spend the summer doing lots of accounting work, but it’d be kind of boring. He had a fun summer (and worked there for several years after graduation). Lesson passed on to son: it’s not the language it’s the ability to attack new problems and challenges. Let the languages be the tool, but make sure the work itself is interesting and challenging. He seems to have paid attention. :)</p>
<p>
</p>
<p>IS/IT, where one is managing computers from a “business” standpoint, is not the same as CS, where one is designing algorithms, software, and hardware.</p>
<p>Unfortunately, the business-oriented curriculum for IS/IT often leaves graduates weak in technical skills, so that the ability to handle unusual problems or quickly learn new technologies is often lacking in IS/IT departments. This may be why vendor-specific certifications seem to be fairly big in the IS/IT area.</p>
<p>IS/IT major curriculums would produce technically stronger graduates if they included the CS versions of courses in operating systems, networks, and databases, but these courses and their prerequisites may be too difficult for business school students.</p>
<p>
</p>
<p>Not so much. There is ongoing debate about how much innate wiring is genetically wired, and how much is from very early childhood wiring, but it’s generally agreed among researchers that by the time a kid enters kindergarten, much of the wiring is firmly in place.</p>
<p>K-12 education can play a role in huge role in developing capabilities - or, unfortunately, leaving them dormant - but if the fundamental wiring isn’t there, it’s going to be an uphill slog – and the kid who comes with the wiring in place will far outperform the one who lacks it.</p>
<p>My anecdotal experience reflects the research. My father was a brilliant historian and a renowned teacher. In school, he struggled with long division, never mastered things like simple household repairs (to my mother’s lifelong consternation), and later in life completely gave up after numerous tries to figure out how to use an ATM. (I am not making this up!) His brother, with very similar education, was a successful airplane mechanic.</p>
<p>My 16-year-old son can way outperform me when it comes to anything requiring mechanical aptitude - and I noticed the beginning of that ability when he was less than a year old, when he intuitively knew how to put together Legos. Three or four years ago, I bought one of those complicated (to me) desk chairs to assemble and then lost the instructions. I was completely at a loss as to how to start. He came along and had it together in under five minutes.</p>