7 ms·
Ah yes, the tragedy of studying computing to the exclusion of everything else. Graduates with computer science degrees have an in-depth understanding of... text
by gcv 14y ago
Ah yes, the tragedy of studying computing to the exclusion of everything else. Graduates with computer science degrees have an in-depth understanding of... text editors. And maybe compilers, databases, and operating systems — all items of zero value until they are applied to solving some real problems in some other field. Problems which the computer science graduate knows nothing about.
Then these graduates go into the working world, and they typically can't help solve problems in economics, physics, applied mathematics, or medicine except by coding up some system to someone else's specs. The more dedicated ones make an effort to understand what they're doing. They exceedingly rare, gifted, and motivated ones might learn enough about an industry to make real contributions.
I hope that our field eventually evolves to the point that programming skill becomes an accessory. People will then learn to program just like they learn to write, and use the craft to help them solve their actual problems. The profession of programmers who only know how to program should disappear like the profession of scribes who only know how to write.
- GFischer 14y agoI hope we'll have specialized careers someday (Medical CS, Economics CS, etc...). In many careers, it's the other way round - most physics I know taught themselves how to program, for example, but they're lacking some tools that would probably help them a lot (and physics are very close to CS). I've seen accountants do a lot of programming in Excel macros and Access too. Doctors and Economists might have less interest in learning, but academy-minded ones will really appreciate the modeling they can do with the use of computers (I think I saw a medical paper where they reinvented some basic CS concept :) ). Some of the domain training comes from practical experience - I started out working for the credit report sector, and then moved on to the insurance sector, so I've picked along some domain knowledge in those areas. Other colleagues have worked in logistics, and now know about their problems, etc...
- eru 14y ago> (I think I saw a medical paper where they reinvented some basic CS concept :) Perhaps more shocking: https://fliptomato.wordpress.com/2007/03/19/medical-researcher-discovers-integration-gets-75-citations/ https://fliptomato.wordpress.com/2007/03/19/medical-research...
- pytrin 14y agoProgrammers are not like scribes, they are like authors and writers - which are still here. Programming is a creative discipline, it's not just formatting one written format (specs) into another (code). Of course, the bad ones might make it seem like it...
- blindhippo 14y ago"the bad ones might make it seem like it..." Or the ones with highly uncreative managers who lack sufficient domain knowledge themselves.
- alemhnan 14y ago"Ah yes, the tragedy of studying computing to the exclusion of everything else. Graduates with computer science degrees have an in-depth understanding of... text editors." That makes a lot of sense. To me is that because we are using "languages". With a language you write. And your problems are writing problems: syntax, commas, naming, verbs, etc etc. What if we just get rid of "languages" ? We actually do not "write a skyscraper". We make a project for a skyscraper. Or we "draw" a skyscraper. Are languages the best tool of choice to solve the problem in connection with the information (and its calculation)? (not that I have a definite answer, just a question).
- fallous 14y agoLanguages exist to convey complex information, nothing else comes close to them in that ability. As an exercise, try to convey the idea "I'm diabetic and I need some insulin" via !language. Charades? Interpretive dance? Drawing? And yes, we do "write a skyscraper". That's what blueprints are for.
- jiggy2011 14y agoYou can draw a skyscraper because at it's core a skyscraper is an object that exists strictly in a 3 dimensional world. Therefor you can convey a lot of important information about the skyscraper by showing it's shape and dimensions in an autocad drawing. In reality however I expect that most skyscraper projects involve many many pages of writing and formulas in addition to the drawings. OTOH a computer at it's core is a machine that sequentially follows instructions. So any description of a computer program must be able to reduce to this. Since around the dawn of computer (or at least in the 10+ years I have been involved) there have been attempts to remove the requirement for computer programming, but in reality nobody has come close to anything as powerful as a programming language. The most effective progress has been made via abstraction, where you allow one instruction to be used to imply many. For example making a REST API call with 1 line implies a lot of operations on a lower level (TCP/IP etc). I think this is fundamentally because any system that you propose to replace a programming language will either be: 1) Turing complete, in which case it could be classified as a programming language itself and will require knowledge of algorithms/abstractions etc to operate effectively. This is where you end up with flowchart driven development tools where the flowchart ends up literally resembling a plate of spaghetti for any reasonably complex system. 2) Not Turing complete, in which case you lose a lot of power as there are things the system will not allow you to express and thus lose the ability to deal with many edge cases. Since you are developing software and not just using it, the reason for the development activity in the first place is probably to deal with some edge case than an off the shelf program does not. When I was younger I used to play with various "code free" game development tools and ran into the same fundamental problem. For example, I have a shooting game and when the player is hit with some projectile he takes some amount of damage based on the projectile he was hit with. This was usually very easy to do. BUT then say I want to add an "armour" powerup to the game. If a player with the armour powerup is hit then he takes damage but at a reduced rate that is proportional to his armour value. The armour value is also reduced based on itself and the armour piercing value of the projectile which hits. However if the armour piercing value of the projectile is below some value proportional to the armour and health values combined then no damage is taken at all. Oh and the armour powerup cannot stack with certain other powerups except under some specific circumstances. That type of logic was impossible to express with these tools, or required finding creative ways to abuse the tooling in ways not intended which would in turn make other functionality more difficult/impossible.
- raverbashing 14y agoYes And some are almost proud to not know anything beyond their field. Newsflash: You can be the best writer in the world, but what are you going to write about then if you know nothing besides writing? Programmers often complain about managers knowing nothing about the field. But it's the same thing when the programmer doesn't know anything. There is a lot of money in doing specialist applications. Most of these are made by people who know a lot about their field but only a little bit of programming.
- onemorepassword 14y agoThis. The same programmers that complain about clueless micromanagement are usually also the ones with the "I don't want to know all this business shit" attitude. Guess what? You're being micromanaged by MBA's because otherwise, despite all your l33t coding skills, you're f-ing useless.
- mason55 14y ago> usually also the ones with the "I don't want to know all this business shit" attitude Very easily identified early in school as the ones who say "I don't want to know all this history shit" or "I don't want to know all this writing shit"
- thejteam 14y agoA liberal arts education gives you an advantage over other engineers. "You mean this guy can actually read and write?" Especially true if the business ever needs to write a technical proposal to win a contract. Very important to have engineers who can read and write then.
- jeltz 14y agoMost liberal arts educations are a quite inefficient way to teach people to write. Many who leave such educations are not that much better off than when they started.
- 14y ago
- henrik_w 14y agoYes, reading HN it often seems like programming skill is the only game in town. It is obviously important, but it's nice to see something on the importance of domain knowledge as well. So coding skill is one dimension along which you have to be good. Domain knowledge is another dimension. A third dimension is knowing the code base you're working in (which takes time, since most production systems tend to be big). To be a really effective developer, you need to be good along all these dimensions.
- yareally 14y ago> Yes, reading HN it often seems like programming skill is the only game in town I always felt most of us on HN were well rounded individuals--interested in most areas of knowledge. Looking at the random articles that get upvoted along with ones on programming, it seems to coincide with that premise. Sure, we talk quite a bit about programming, but it's a just a tool for automating the repetitive work we do and to make ours and other's lifes easier. It's a means to an end and also something that happens to interest us at the same time.
- uchi 14y agoOne of the big detractors that made programming very difficult for me was the fact that I couldn't find any practical application to what I was learning. As a result I felt unmotivated and dragged my feet for a very long time. Double clicking on Eclipse and following book instructions on how to make an array in Java for a class wasn't particularly interesting or fun to me. I always chucked it up as not bothering because I wasn't a 'math person', and this was probably something that only people who liked math would do. (I know I know) It was only years later after I began delving into Linux and found a need to make something a bit more powerful than a bash script that I began developing an interest in programming again. I'm sure there are many other capable and willing folks out there right now who feel the same way that I did. They want to learn but they don't see the point of it. Most courses at least don't really teach any real world applicability to what is being studied.
- henrik_w 14y agoExactly. Programming is a means to an end. One of the great joys of programming is making something that is useful, especially if it is useful to somebody else (points 1 and 2 here: http://henrikwarne.com/2012/06/02/why-i-love-coding/ http://henrikwarne.com/2012/06/02/why-i-love-coding/)
- mindcrime 14y agoI had a similar experience, but from a slightly different perspective. I always found programming for the sake of programming to be sufficient motivation to spend time writing code. But when it comes to learning math, I have a really hard time caring about math in the abstract. Sitting me in a math class and having me memorize equations and formulas and operations, and solve a few word problems here and there (two boats leave point A, one going west, one going east, after one hour, blah, blah, blah) leaves me bored shitless for the most part. But if I have an application that matters to me, for the math I'm learning, I'm FAR more interested and willing to put in the time to learn the stuff. Now that I'm trying to get deeper into Machine Learning stuff, I find myself motivated to go pick up books on Statistics and Linear Algebra and dig in, when I had very little interest in that stuff before.
- 14y ago
- deleted 14y ago[deleted]
- Natsu 14y ago> The profession of programmers who only know how to program should disappear like the profession of scribes who only know how to write. I think it would be better to say that the new programmers would replace the old as writers replaced scribes. Because we do have people who only write, it's just not quite the same.
- gcv 14y agoWriters are not merely new scribes. Writers are people who use the written word for some specific purpose. Very coarsely, I claim that novelists are storytellers, poets are artists (who use words as the medium, like sculptors use marble or bronze), biographers are historians, textbook authors are teachers, journalists are investigators. For all these subtypes of "writer," the process of getting words on paper (or into a Word document, or an Emacs buffer!) is simply a means to an end. They certainly don't "only write" — at least not the ones who produce anything remotely worth reading.
- Natsu 14y ago> Writers are not merely new scribes. Indeed, that's why I made the comparison :) The new and old programmers he describes are not the same either.
- jacques_chester 14y ago> The profession of programmers who only know how to program should disappear like the profession of scribes who only know how to write. Everybody "knows" how to write. There's a difference between literacy and mastery. Without fluency in the solution domain, the problem domain will simply remain that: a problem without a solution. The Other Jacques's point was that as developers we often see lots of problem domains and that learning about them is useful. I tell my customers that part of my job is becoming an "instant expert" in the part of the world they've called me in to help with. The only subject I can think of with similar professional requirements would be law, where deep knowledge of the solution domain is required and quick acquisition of the problem domain is a predictor of success.
- yareally 14y agoI guess it all depends on the student in question. Me, I majored in Computer Science, but I love all areas of science and study them on my own. Same with History, Art, Philosophy, Music (played violin & clarinet) and Literature. I was probably one of the few odd students in Computer Science at my school that actually loved the creative writing and art courses he took. I am not a great artist, but I can talk to someone who knows way more about art than me and relate to what interests them to a point. Such things lead to forming connections with people and exchanging great ideas across knowledge gaps between them. It also helps you to form better analogies and metaphors for explaining difficult, technical concepts. I would have actually gone into teaching History if the United States school system was not as limited as it is these days in what one can teach students. I probably read and study history as much as I do about software development. However, I love Computer Science and have no regrets about going into it instead. Any student that does not strive to be well-rounded in as many areas of knowledge as they can outside of their field is really missing out on life. Entrepreneurship in general is all about knowing what will make life better and it's hard to know what needs improving if one does not have experience in areas outside of their field. A person does a great disservice to themselves when they choose to isolate their realm of knowledge to a narrow field, no matter which field it is.
- wpietri 14y agoIf I were to get all novice programmers to learn something else, it would be some practical anthropology. How to observe. How to interview. How to see and record behaviors, triggers, social interactions, power dynamics. How to discover motivations, attitudes, and they way people understand the world. The one thing all of our software has in common is that it is supposed to make a difference in somebody's life. If I could demand a second thing, it would be the basics of business. A large portion of software is directly about business, and almost all of it is somehow shaped by how business works. E.g., I'm volunteering at a non-profit this month, but the developer I sit next to is hip deep in a risk management problem.
- martinced 14y agoAnd yet another cheap stab at many people reading HN. HN is filled with negativity --if not downright hatred-- towards nerds lately. Items of zero value? A certain sci-fi author would beg to differ with you. Even someone that would have zero knowledge of anything else but would be mastering programming is still a technopriest. Even with zero knowledge about anything else but computers one still understand more about today's world than most people out there. I'm not advocating refusing to learn other domains (I'm the kind of person who, when writing a book, decides to learn typography and typesetting software so I can typeset the book myself) but your cheap stab at young programmers (I'm 40) is uncalled for. The world is going to shift to even more 0's and 1's. Many things are going to disappear and be replaced by 0's and 1's. If there's one thing common to every single profession out there is that people need to read, write and communicate. And you know what? The tools allowing to read, write and communicate are written by the technopriests. It's even more "scary" than that: the very infrastructure in place allowing people to communicate (like electricity and Internet) are, themselves, run using software. Not to mention very basic need like the entire infrastructure providing clean water to fullfill one of the most basic Maslow need. There's no need for someone taking care of a network to understand what's inside the packets of information running through the network. All they need to know is that if there's no more Internet packets travelling worldwide, then there's no western civilization anymore. The very foundation the entire society now relies on is software. If a worlwide EMP blast would render all computers useless tomorrow the world would probably turn to a mad max horror scenario in a few hours. No more water. No more electricity. No more food. Our logistics would be so screwed that "advanced" countries would fall into chaos. It's probable that in some places people would die after a few days because of the lack of drinkable water and it's very probable that in a few weeks many would die due to lack of food. Not to mention the nuclear facilities which would leak radioactivity left and right and break havoc. Doctors aren't forced to understand how computers works to do their job. Most doctors are utterly clueless when it comes to technology: they're bound to live in fear of being hacked and not understanding what's going on when they connect to their online banking account and not understand why this or that mainstream article tell them to disable Java in their Mac. I've got doctor friends: they simply don't understand the world they're living in. We're already in the technopriest age. And they're asking me questions, lots of them. The most computer-wise knowledgable doctor I know was thinking that the latest state of the art way to diagnose using computers was still to use an "expert system", filled by doctors. That's not how it works. These "experts" aren't able to process the amount of information a computer can process and can't find the correlation a computer software can find. Which is why now machines are trained with gigantic amount of information and suggesting exams and deceases to look for that are way more relevant than what doctors would suggest. I think you got it totally backwards: it's a lot of the other professions that are going to disappear. Replaced by robots, machine learning algorithms, software and... The technopriests. The ones still able to somehow understand the world they're living in and still able to write the world they're living in. P.S: regarding mainstream economics I'd like to point out that Krugman, Nobel Prize winner, recently said that it wasn't a bad idea to mint a one trillion coin to deal with the U.S. debt SNAFU. Sure. Why not mint 26 of them and be done with the U.S. public debt!? That is the kind of economics most economics and most universities do teach worldwide: Keynesian economics. I happen to think Keynes was all wrong and keynesians have never been able to predict the consequences of their interventions more than a few months/years forward. There are economists from other schools who predicted 15 years before it happened, before the first euro was even circulating, that the euro would lead to: too many houses in spain, too many public servants in France, too many industries in Germany and who explained by which mechanism Greece and Spain would eventually default. Not a single Keynesian has ever been able to do a prediction that precise. That's all I need to know about "economics": that the mainstream is all wrong. I do also think you put way too much faith in doctors: these people really aren't nearly half as expert as you think in their field. And they are the ones getting replaced today by sofware and robots. There's simply no way a surgeon can be as precise and have as many axis of rotation compared to today robotic arms (explained to me by a surgeon friend). There's also simply no way a doctor can read blood samples and other exams results and be able to correlate that with hundreds of thousands of other results and hence make more correct deduction as to what's going on. If we eventually end up one day with true AI then everybody becomes meaningless because that day there ain't going to be doctors nor economists anymore. Until that day programmers (even the one knowing nothing besides 0s and 1s and how 0s and 1s move around) are going to be more and more like the technopriests.
- reactor 14y agoScribing was easy from the onset. But programming as it is today is not easy. Unless it evolved into plug-and-play-the-building-blocks, the profession of programming is going to stay.