8 ms·
Really. Every time I whine publicly how web programming people aren't familiar with even basic CS, I get a slap. But really, I should move to web programming.
by perdunov 12y ago
Really. Every time I whine publicly how web programming people aren't familiar with even basic CS, I get a slap.
But really, I should move to web programming. I'll be an expert computer scientist there, probably.
- deleted 12y ago[deleted]
- aidos 12y agoAnnnndddd.... what reaction do you expect? "Oh, please come and do web development so we can bask in the glow of your self-righteousness and infinite knowledge of computers." /snark (apologies for being offensive, but good lord, what a silly statement - unless I missed the joke) I stand before you as a counterpoint to your foolish generalisation, and guess what, I know plenty of other people that don't fit your stereotype either. I'm not saying there's not an element of truth to your statement. See, here's the thing. People throughout the software (or any) industry have different collections of knowledge. There are an endless number of things to learn and each one of us is different and brings a different set of skills to the table. To be great at web development you spend years learning the subtleties of developing for a vast domain of different platforms. There are bugs in the platforms decades old that I know the intimate details of and have workarounds for especially constructed to fit in with the other bugs in the other platforms we deal with. And that's a tiny facet of what you need to know. You know what would really happen when you came over to web development? You'd find that a lot of the skills as a computer scientist aren't altogether useful. You wouldn't be an expert computer scientist. You'd be a junior developer, probably.
- Swizec 12y agoI keep repeating myself on Hacker News, but once more, we've found the difference between Software Engineer and Computer Scientist. One makes things work, the other is a mathematician. Why do we keep conflating the two?
- TickleSteve 12y agoBecause you cant be good at either without having an element of the other. Ideally, they overlap.
- Swizec 12y agoIdeally they do overlap. But we don't call people who design bridges physicists even though they know a shitload of physics. Our field is maturing. These difference are only going to become more important.
- robmccoll 12y agoYou should be careful with the term engineer. By definition, engineering is the application of scientific and mathematical knowledge to solving practical problems. Without knowing and understanding the science and math behind computing and software, one can hardly claim to be a software engineer.
- FLUX-YOU 12y agoThe title is cheap in the US and in some companies (cough) they slap it on every position that directly touches the product.
- Dewie 12y agoSo many programmers have this weird inferiority complex when it comes to the term "engineer". Not you, but those who think that most programming can never be called "engineering" because people don't die if you introduce a software bug[1] (as if the only kinds of modern "engineers" have to do with immediately safety-critical things). I prefer the plain "programmer" myself, but I don't see the big deal unless "engineer" is a protected title wherever that person lives. [1] Note that I said "most programming".
- agentultra 12y agoI'm a little sheepish about using it around the engineers in my life because I know I'm not legally liable and held accountable to the same standards they are when I make a mistake in the software I ship. I like to think I take a certain amount of rigor in the choices of tools and processes and design philosophy that reduces the amount and impact of bugs... but if we get a customer complaint about our product we don't generally issue a recall and lose millions of dollars. It's not that I spend any less time learning theory and application and it's certainly no less challenging in some cases than even mechanical engineering but... it's a liability thing. Also, I don't write software for aerospace control systems. I've seen companies advertise "software engineer," positions whose primary responsibilities included running a fleet of Wordpress blogs. Just a matter of perspective I guess.
- perdunov 12y agoI completely agree that software development is such a vast field that it is completely impossible to be proficient in everything. I am kind of a lamer in web development, for example. But fundamental CS is a different thing. "Annnndddd.... what reaction do you expect?" Admitting your shortcomings and try to fix them is not an option at all? When some central web frameworks do lamest mistakes like making an O(n^2) queue, it is frightening. And instead of deflecting any critique, one may try to fix this situation somehow.
- grey-area 12y agoAlmost everyone does do lamest mistakes at some point, e.g.: goto:fail - https://news.ycombinator.com/item?id=7281378 https://news.ycombinator.com/item?id=7281378 shellshock - https://news.ycombinator.com/item?id=8365110 https://news.ycombinator.com/item?id=8365110 I'm sure whoever wrote this would feel a little chagrin when coming back to their code and seeing how inefficient it was (though it got the job done when the lists were small), and they probably would admit their shortcomings, why wouldn't they? Condescending snark is really easy, and it's easy to say in retrospect and with time to reflect that most useful code has flaws and point them out - software is never finished, and there are a lot of different levels of experience and requirements. If rubygems had never become popular, this wouldn't even be an issue. PS Rubygems isn't a web framework, it's a package management tool, so the straw man you're hacking away at is the wrong one.
- perdunov 12y agoMistakes come for different reasons: the human brain's limitations; carelessness; bad methodologies; ignorance. I was talking about the last one here. "PS Rubygems isn't a web framework, it's a package management tool, so the straw man you're hacking away at is the wrong one." My statement about web frameworks was not about RubyGems, it was about web frameworks, and it was an example of the state of affairs in web development.
- grey-area 12y agoYou think the original authors (Chad Fowler, Rich Kilmer, Jim Weirich) were ignorant of linked lists? What hubris. The story is about rubygems, not web dev.
- twsted 12y agoThe statement was a little strong, but in my experience it contains some truth. People who has never used a lower-level programming language can't often recognize these performance issues.
- lmm 12y agoI've often found the opposite; people who use C get excited about using >> rather than / because it saved a few cycles on very old compilers, but fail to notice where they could've made it a million times faster by using a hash table rather than a linked list.
- deleted 12y ago[deleted]
- pointernil 12y agoUnless a senior developer / a "wise" developer reviews the artifact created and allows him/herself to state: "This is not effective code. Refactor it by x y z". The problem is, I think, this is NOT happening or at least to seldom because it "does not pay off", because "the aws boxes are sooo cheap!" I'd say: the aws boxes are way too cheap and effectively misused. What should have been a way to scale up apps with reasonable effort turned into an energy and resources burning landfill. Granted, at least it is a shared landfill which really helps with from the resources/energy point of view. (Juniors) Coders should be able to power the machines by driving a bicycle ergometer ... as a way to make the homo-sapience grasp the effects of their "mental work" ;)
- kendallpark 12y ago> You wouldn't be an expert computer scientist. You'd be a junior developer, probably. +1
- Sir_Cmpwn 12y agoI'm a senior dev in both domains and I can safely say that your comment is bullshit.
- aidos 12y agoWhat does any of that even mean? Edit Could you clarify? Which part of what I said is "bullshit"?
- pnathan 12y ago"Oh cute, a web dev. You've just reinvented 1975, but this time without algorithmic analysis. Would you like a pat on the head?" /snark Bluntly, web devs often screw up in the fundamentals of algorithmic operations and data. Web dev comes out of the horrific slap-it-up-i-tude of the HTML/Perl days of the mid-90s, and its tooling is still incredibly shoddy compared to desktop development. And the really fun part is? Web devs don't even get it. They often think they are the top of the food chain, with the best tools ever built. I still can't even find a tool to match VB 5's capabilities.
- LnxPrgr3 12y agoI think you over-estimate the average skill of non-Web devs, and over-estimate the attention paid to performance even by groups who probably know what they're doing. One example, from Chrome: https://groups.google.com/a/chromium.org/forum/#!msg/chromium-dev/EUqoIz2iFU4/kPZ5ZK0K3gEJ https://groups.google.com/a/chromium.org/forum/#!msg/chromiu...
- pnathan 12y agoIt's less about skill and more about culture, knowledge, and the valuation of wisdom/knowledge within that culture. but, yeah, I've seen some awful non-web code. :)
- ICWiener 12y agoSlap. Stop whining.
- robmccoll 12y agoThat's a bit strongly worded, but I also see the pattern of people who came into computing from the Web direction rediscovering basic principles of computing and computer science. Similarly, the NoSQL community seems to slowly be discovering why traditional relational databases work the way they do, why supplying correct and durable replicated storage with high performance is difficult, and why some of the features that NoSQL threw out along side SQL itself in the name of simplicity and performance are actually quite useful and occasionally important.
- raverbashing 12y agoI was going to post the photoshopped joke, but this gets more to the gist of it http://stackoverflow.com/questions/3811678/add-two-variables-using-jquery http://stackoverflow.com/questions/3811678/add-two-variables... Edit: found it https://plus.google.com/u/0/+DougTyrrell/posts/br3kqg6Vet6 https://plus.google.com/u/0/+DougTyrrell/posts/br3kqg6Vet6
- drinchev 12y agoWhen I was in my early teenage years I was already making some development efforts on Pascal, VisualBasic and later on I switched to linux and started doing Perl CGI web apps. Back in time when I had to choose if I want to do CS degree I was already paid as a web developer and doing what I was going to study for. Then I asked some friends that were actually studying CS and they told me that they have a very tight schedule with work in the following disciplines : FORTRAN, ASM, C, C++ . I told them that's too low-level for me and probably I will not use it for my work so I decided to go into completely different sphere ( I graduated law ). Now I'm not the best programmer lived on the planet, but certainly I still do what I love and I'm paid for web development as high as a senior person, because of my experience - not CS degree. So... If you think you can make benefit to web development, why don't you start with a simple open source contribution to any of the existing projects and reduce Wirth's law [1] a bit with some low-level skills. But for something more complicated, please consider some experience first in that specific area. [1] http://en.wikipedia.org/wiki/Wirth%27s_law http://en.wikipedia.org/wiki/Wirth%27s_law
- manish_gill 12y agoI'm a web dev who has a degree in CS. Do you think I'm a unicorn? Of course not. Stop generalising.
- matthewmacleod 12y agoGood, you deserve a slap for being self-satisfied about it. There are loads of fully competent and skilled web developers out there with great, in-depth CS knowledge, and publicly berating them achieves nothing. Web development is interesting, because it tends to mix in people from a lot of different backgrounds — in particular, some of them come through the design side, and move down the stack. That's good, because it demonstrates the accessibility and flexibility of the stack; it's bad because it can result in suboptimal solutions to common problems.
- thaumaturgy 12y agoYou probably wouldn't do that well in web development, because it's too different from embedded or systems programming. You probably have the luxury of specializing in one particular language, and maybe a handful of processor architectures. You probably rely on one or a few libraries, and know them backwards and forwards. You probably have your own personal repository of code and tactics that you go back to often. In other words, your knowledge of programming is probably narrow and deep. Web developers usually don't get that luxury. Top web developers today have to be fluent in a minimum of two programming languages (javascript and a backend language like Python, Ruby, PHP...), use several different fast prototyping approaches (css compilers and wacky templating systems), have a good working general knowledge of everything from the web browser to the web server, and cope with an environment in which at least one of those parts is changing on almost a daily basis. Web development is shallow and very, very broad. I prefer systems programming but I've worked as a web developer off and on for several years now. I have a lot of respect for any web developer that's really good at it. They aren't lesser programmers at all, and I suspect a lot of them, if they decided to do it, could kick the pants off of most systems programmers.