Normally, employers would be able to hire the high school graduates for jobs that require minimal skills for less pay. What happens when you can't pay people less than $9? Well then they might as well only hire college graduates if they *have* to pay $9/hour.
The real problem is that it seems like most people are not learning anything useful in college. If they were learning useful things, they could demand more money in the job market. But instead they are learning things that have no utility, so they end up being managers at department stores even though they (allegedly) know about Asian American history. The only people know need to know about Asian American history are Asian American History professors.
Why do mechanics and plumbers make so much money? They don't even have college diplomas! Well it turns out that knowing how to fix cars and stop leaks is almost infinitely more useful to society than a random humanities degree. This is not to say that people with random humanities are useless. They are often very talented people. But this is talent in spite of their degree, not because of it.
The people with just a humanities degree (i.e. it's all they have) are pretty useless. The people with just a diploma from plumbers school (i.e. they know how to stop leaks) are still pretty useful.
A person with a college education (and no useful skills beyond dressing themselves nicely and speaking english with mostly correct pronunciation and grammar) has earned the right to the easy jobs where they can surf the web most of day in a climate controlled room, but they don't get to command much more money than a day laborer. On the other hand, day laborers don't have to dress up in a suit, or be nice to a lot of people. Fast food people have it the worst. They get the worst of both worlds.
Research has shown that community college students who enroll in online courses are significantly more likely to fail or withdraw than those in traditional classes, which means that they spend hard-earned tuition dollars and get nothing in return. Worse still, low-performing students who may be just barely hanging on in traditional classes tend to fall even further behind in online courses. 'Colleges need to improve online courses before they deploy them widely,'
Or there needs to be more competition in online courses to bring the costs down. I think it's fine to have products that most people are not self-disciplined enough to fully exploit. If an online course can be offered to a 1000x as many people for the same cost to the university, the free market will drive the cost down 1000x to students. I wouldn't mind flunking out of online school if it only costs me $50 instead of $50,000
If we are already used to being risky, then it would be pretty risky to do something so drastic as to stop being risky. We need to maintain the status quo by remaining dependably risky.
"Conservatives" will argue that risk is the safer bet. The risky free market has been our goto mechanism for creating economic efficiency.
It's not about risk vs. safety. Both parties are equally pussified. It's about which thing seems like the safer bet. Conservatives do not trust the government and liberals do, and that's what drives their choices. It's as simple as that.
It's technically possible for a crooked casino to be cheating with real cards (e.g. as in Lock Stock & Two Smoking Barrels). It's just a bit easier to do for online casinos. Detecting cheating by the house is probably about equally hard for online and real casinos. It would require a bunch of data and statistical analysis to find systemic cheating, or actually catching them in the act somehow (e.g. finding a hidden camera, or hacking into the poker server, or acquiring a confession from an insider) for individual cases.
Yes there are lots of security updates now. This is in contrast to the past when there simply weren't as many security updates for an even greater number of security holes that existed. People are getting ever better at finding and exploiting security holes. They need to be, because there aren't any more easy security holes to exploit.
Second of all, security holes is a different subject. Good security is important, but it is a whole different level than writing stable software. You can write perfectly stable (i.e. doesn't crash or leak) that's full of security holes. The software in the past was not only full of security holes that remained unpatched for longer, but the software was also more unstable.
compilers are dumb machines. they can optimise small parts of the code that fit known patterns, but they can't optimize at the architectural level. algorithms (in the sense that standard patterns can be used) aren't really that bigger part of an application unless you're talking about a small tool like a linux cli tool.
Yes exactly. It is the software engineers job to provide the (hopefully efficient) high level design, using the most appropriate software design patterns, and it's the compilers job to optimize all the low level stuff so that all the abstractions do not cause so much overhead. No compilers aren't perfect, but 99/100 a poorly running program is the result of poor high level design than the result of overhead incurred from using OOP over a function language.
i think a lot of the waste is in use of patterns that are overly generic, such as a class with loads of interfaces/methods/properties etc that are useful for a bunch of different scenarios, which again makes programming much more efficient, but makes more more bloated executables and less efficient running time.
There are different kinds of efficiency. making code more generic through use of design patterns will typically increase execution time slightly, but will also result in smaller executables and a smaller memory footprint, because less redundant code is needed. Making a separate routine for every kind of object is faster than having them all inherit a base class, but having a single method will reduce the amount of memory the code takes up.
compilers are good at stripping out a lot of useless stuff (such as unused variables and procedures), but they can't strip everything, and all those clock cycles spent on conditions determining that a generic class isn't trying to perform a host of other functions that it could but doesn't need to in a specific program could be saved with development of algorithms that are specifically designed for the required task.
That's where good high level design comes in. Some people make things too generic. Some people make things too specific. Doing either results in inefficiency. A good software engineer knows when to make things generic and when to make them specific. Abandoning OOP and software design patterns is way too far on the specific side.
For all the arguments you are using, I could say the same thing about functional languages, and the overhead they incur from stack manipulation. I could say that if you want really fast programs you shouldn't even use functions because functions slow things down. Sure they make code more understandable, but sometimes you just need the speed of a functionless application. If I was talking about anything larger than a 50 line program I would be crazy.
Yes, you are right, DNS in general is a free market. I guess I should have made my argument a little more clear. The DNS system operated by ICANN is not a free market. I think the ability to have alternate DNS roots is and important check to abuse, even if not many people currently use them, which is a separate argument.
I think you can use non-free market tactics in a non-free market without being a free market hypocrite.
The thing that would make him a hypocrite is trying to take something that is already a free market system and attempt to change it into something that isn't. He isn't advocating for more government control of the internet (e.g. advocating a mandate for an ICANN like system), he is just trying to use the system that is already in place.
Domain name registration is not a free market. The fact that you can sell names you've registered makes it a bit freer than it would have otherwise been, but a true free market would be one with no central domain name authority, and each DNS server would be free to do whatever kind of domain name translation they wished.
This system of people rushing to register domains that they think will be popular and reselling them for hundreds of thousands of dollars is ridiculous. It doesn't drive innovation. It doesn't offer any of the benefits of copyright or trademark. It doesn't help end users. It just rewards people for being lucky.
I don't think Ron Paul can be faulted for not following free market principles in a market that isn't free. Just like it isn't fair to expect democrats to pay higher taxes because they believe in higher taxes.
today's software is much more complex, but is much less stable than it used to be
really? Even though most common bugs are memory leaks and buffer overflows? These things are basically solved by modern programming techniques. Do you remember how incredibly unstable windows 95 was? How about old adobe software like premier and photoshop? At the time linux was first written, C was faster than C++ because of the lack of maturity of C++ compilers, but that is no longer the case. You could easily write Linux in C++ were it started today. It may even be faster due to better optimization, along with greater maintainability.
nowadays it is common practice to wait till service pack 1 comes out because with a new release comes guaranteed problems that used to be ironed out during alpha and beta testing phases. testing seems to not be a priority today (with companies preferring the "code and test" methodology). a lot of programmers claim to be into "extreme programming" in an effort to justify their half-baked processes, and yet they have no idea what a unit test is let alone how to write one.
I have no idea why you think this was better in the past. People wouldn't bother waiting for SP1 because the new one couldn't possibly be any worse than the one they were already using. You used to have to reboot windows daily because it was full of memory leaks. Now it is common to leave windows running indefinitely. Our expectations about the reliability of higher has gotten much higher in response to the ever increasing reliability of software.
i'm not saying oo is useless; it definitely has its place, but the core of any complex system requiring maximum efficiency and maintainability will always be functional c, which can be also generally be compiled with c++ compilers. cobol, asm, etc are also used for high end critical business apps.
You keep saying C is more efficient. It isn't. It used to be. That is no longer the case.
you might notice if it takes 1ms extra per 1000 database records in a search, or if it takes an extra ms per kb to transfer megabytes of data over a network connection
Obviously if it takes an extra 1ms to do something that only takes 1ms to begin with, you have doubled the execution time. Not at all what I am talking about. I am talking about the insignificant overhead savings that you used to be able to do through hacks that sacrificed code readability for a clock cycle here and there. Now this code is not only confusing and hard to maintain, but often ultimately slower because it is not as easy to be optimized by modern advanced compilers.
The job of the programmer is to choose good algorithms (with ideal time and space complexity), choose good design patterns so that code can be easily extended and maintained. Most software design patterns are not feasible on non-object oriented languages. To design complex software without these tools is insanity today. It is the job of the compiler to provide optimization.
maybe the user won't notice a 1ms delay due to sloppy programming, but what about when all the other 1ms delays that don't matter compound and the user is left staring at the wheel of boredom or the beach ball of death?
Vastly more time is wasted on software bugs than on software performance overhead. Choosing proper algorithms should be the only thing that matters to programmers. A compiler can optimize code far better than a human can in most situations. You just need to get the algorithms right and let the compiler do the rest.
It's worth -$21 million per day in lost sales. Also you should probably say something about how open source software is bad for jobs and that it takes food out of the mouths of Microsoft developers and their families.
Also, when something bad happens like a war or a hurricane, you can talk about how the silver lining is that more jobs are created to deal with the situation. We must be always sabotaging what we have so that people can remain useful and be needed to rebuild things.
I have literally never uttered the words "cyberspace". I have heard of it and I have a vague idea of what it might mean. I have been using computers since the dawn of the internet, and I have been a professional programmer for 9 years. I never even realized there was any controversy over the word. I just figured it was a dumb catchphrase that only MSM used because they didn't know how not to sound old (like when my mom saying that she "tapes" things on her DVR).
I do like the analogy of the internet as a physical place. It works well. Packets of information are like cyber letters being delivered by a cyber post office to cyber addresses. Ideas like encryption and email sender spoofing also have great post office analogies. I think this analogy will go away once kids are born that will never mail or receive a letter by the post office.
Object oriented programming doesn't result in sloppier code. It's quite the opposite. It is the lack of objects that force people to write "sloppy" code. I define sloppy code as code that is hard to maintain.
efficient programming has taken on new meaning since its inception; instead of writing programs that run fast with a small memory and disk footprint and ergonomic interface, efficient seems to be limited nowadays to getting it to market quick and let the customers find the bugs.
Actually it's the opposite. It's the "optimizations" that save you a clock cycle here and there that programmers used to do in C that caused all the bugs in the first place. If you write maintainable code, it will be a little slower, but provide scalability and reliability, but with the same or better time and space complexity.
Software is much more stable and much more complex today than 20 years ago. The only reason this is possible is because of advances made in making software easier to maintain. It's just not important to save a few clock cycles anymore, no one will even notice if a program runs 1ms faster. We can focus on the big picture.
I never claimed to be a fan of python. I have to use it at work sometimes, and I find it odd, but usable. I must admit I didn;t know much about object pascal specifically, but reading the wikipedia and seeing 5 different object pascal hello world programs written in 5 subsets of the language supported by 5 different interpreters doesn't inspire confidence.
At this point in my life (9 years of programming professionally), I think all programming languages are terrible, but some are more terrible than others.
And also, no one should be using c instead of c++ anymore. There is almost no advantages as c is almost a a subset of c++, and advanced compilers have made c++ just as fast as c.
So really super symmetry and string theory is not 1 single hypothesis but a group of similar hypotheses. You are able to falsify some of them, and others, while still falsifiable, are not able to be falsified currently (e.g. at current energy levels at the LHC).
When I refer to falsifiability, I am talking about theoretical falsifiability. This is the same way that noah's arc is falsifiable. While it may be impossible to know for sure (at this point) whether there was a guy names noah who built an arc full of animals because he thought God told him to, this is falsifiable in principle, because it was possible to witness (or not) this event first hand. It was a knowable fact by someone at some point in history (even if that person was someone who fabricated the story in the first place). This is differne tfomr thinigs which are unfalsifiable in principle, like a God who is outside the universe and the laws of nature.
Sure if you don't care about stuff, then you don't need money to buy stuff, and you don't need a job to get money. That makes sense.
I personally like stuff. I don't like stuff above all other things in life, but some stuff is quite expensive (e.g. mcMansions), and the *easiest* way to get them is to have a job. Now I wouldn't recommend one of these job things if it was soul-stealing kind. I personally enjoy programming quite a bit. I do it at home after 9 hours of doing it for work. For me it's like getting paid to solve puzzles all day long. I might try the entrepreneur thing one day. But in the meantime, I can get paid to solve puzzles without worrying about quarterly profits and evaluating employees (stuff I am not so good at).
I have only been working as a programmer for 9 years. So maybe by 25 I will be bitter too, who knows. But while I am enjoying it, I plan to continue. By the time I get to 25 years, my mcMansion will be almost paid off.
1. Computer science is not that new. It was started back in the 1930s. There have been no real paradigm shifts in computer science since like the 1990s. The technologies improve, faster components, larger memory, but the concepts have stayed the same.
2. While I have met many bad programmers with degrees, I have literally never met a person without a CS degree who was a good programmer. How are you defining a good programmer?
While it is possible to learn fundamental concepts of computation outside of academia, I have never met a person who actually did. People who don't know any fundamentals can write code that compiles. Will they know the time and space complexity of their algorithms?. Will they know how to design new network protocols rather than just use existing ones? Will they know what it means when a language is Turing complete?
What you said in your comment is like someone saying that he never met an engineer with a degree who could build anything, and that the people who built the best buildings were the guys laying the bricks. It's not impossible but I highly doubt it.
Learning computer science means you are learning fundamentals of computing. With these fundamentals, you are able to learn just about anything else (including web development) much more easily.
Writing web code isn't really any different than writing code for any other purpose. Concepts like scalability, efficiency, maintainability, all still apply. Writing web applications just requires a bit more knowledge of computer security, but otherwise it's basically the same.
Most web development classes I have seen focus on learning some particular technology, like the syntax of writing PHP or ASP code, etc. This is something you really shouldn't be spending lots of money on anyway. It is all freely available information. It might be hard to wrap your head around at first, but getting a CS degree from a good school will give you insight into learning any technology.
Also, I don't think you necessarily need a CS degree from a good school. You can probably learn everything from the internet. There are no secrets taught at university. Having a diploma just helps you get a job as there aren't good ways to figure out that people are really good computer scientists if they don't have a degree. Maybe that will change one day.
What does being a great PHP programmer mean? That you know all the basic function calls by heart? No it means you write beautiful PHP code. But there is no reason why just studying PHP would give you this ability or why this ability would only be limited to PHP. Learn how to think and you are off to a better start than most people who just want the answers and not the ability to get the answers themselves.
Funny you should mention stalls. I am quite a prude myself and have noticed a shocking trend that more men's bathrooms have no dividers between the urinals. I am made slightly uncomfortable by this, but I imagine that someone growing up in a world with no dividers would just be used to it.
Furthermore, I don't think bathroom stalls exist to protect privacy. I think they are there because no one wants to look at people shitting. They are not to keep people from getting to see you shit (although it does that too).
I am in favor of people being allowed to try to keep their data private if they want. But I think the mountain of data people are forced to sift through provides much better privacy.
Yes but it's easier to be a discriminator of X in a world where most people can pretend they don't do X. You are free to discriminate against people who do X even if 75% of people do it, but it depends on what your discrimination is. If you are deciding not to date people who pirate music (about 75% maybe?) then fine that's your right. If you decide you want put people in prison for music piracy, now you will be ostracized (i.e. de-elected).
The thing that allows you not to make something that 75% of people do, is the fact that not all 75% of people will get caught. If, however nothing was private and non-one could be singled out, and 75% of the population was going to have to go to jail, then the discrimination becomes unacceptable.
I think after establishing a base of being able to do simple arithmetic with adequate competency, there is diminishing returns in making people better human calculators. It's not that I don;t think this is a useful skill, but rather that I feel the lost opportunity cost from not teaching them more useful things like how to think about problem solving is not a good tradeoff.
We make kids do the same kinds of math problems over and over again. I can barely remember how to do long division nowadays (although I could probably figure it out fairly quickly). Is the reason I can figure it out based on the fact that I was forced to do it over and over again as a kids? Not really. I can figure it out because I know what it is that long division was meant to achieve. I can apply what I learned alter on to rederive long division, although memory can speed this up a a little bit.
Knowing how to think is more versatile than memory. Knowing how to think allows you to do more than just long division. In the same way that we wouldn't dream of making kids use books of logarithms in light of how much better using a calculator is, why not let them use calculators for basic arithmetic, once they've mastered it (and by mastered I don't mean do lightning fast, but just reliably). All the time saved by using calculators means that we can teach them how to do new things sooner.
What is a high enough bit rate and sample rate to make something digital effectively analog?
is that like making a number so big that it is effectively infinite?
Normally, employers would be able to hire the high school graduates for jobs that require minimal skills for less pay. What happens when you can't pay people less than $9? Well then they might as well only hire college graduates if they *have* to pay $9/hour.
The real problem is that it seems like most people are not learning anything useful in college. If they were learning useful things, they could demand more money in the job market. But instead they are learning things that have no utility, so they end up being managers at department stores even though they (allegedly) know about Asian American history. The only people know need to know about Asian American history are Asian American History professors.
Why do mechanics and plumbers make so much money? They don't even have college diplomas! Well it turns out that knowing how to fix cars and stop leaks is almost infinitely more useful to society than a random humanities degree. This is not to say that people with random humanities are useless. They are often very talented people. But this is talent in spite of their degree, not because of it.
The people with just a humanities degree (i.e. it's all they have) are pretty useless. The people with just a diploma from plumbers school (i.e. they know how to stop leaks) are still pretty useful.
A person with a college education (and no useful skills beyond dressing themselves nicely and speaking english with mostly correct pronunciation and grammar) has earned the right to the easy jobs where they can surf the web most of day in a climate controlled room, but they don't get to command much more money than a day laborer. On the other hand, day laborers don't have to dress up in a suit, or be nice to a lot of people. Fast food people have it the worst. They get the worst of both worlds.
Research has shown that community college students who enroll in online courses are significantly more likely to fail or withdraw than those in traditional classes, which means that they spend hard-earned tuition dollars and get nothing in return. Worse still, low-performing students who may be just barely hanging on in traditional classes tend to fall even further behind in online courses. 'Colleges need to improve online courses before they deploy them widely,'
Or there needs to be more competition in online courses to bring the costs down. I think it's fine to have products that most people are not self-disciplined enough to fully exploit. If an online course can be offered to a 1000x as many people for the same cost to the university, the free market will drive the cost down 1000x to students. I wouldn't mind flunking out of online school if it only costs me $50 instead of $50,000
Fixing banks with more regulation is like fixing Lindsay Lohan by taking a large percentage of her cocaine.
I'll bet they have the most advanced encryption known to man and a private key of 0x4.
I wonder which great features it will continue to support after I have purchased (i.e. rented) it.
I don't see how universal background checks are at the expense of freedoms anymore than a driver's license, fishing license, hunting license etc is.
It's not, but driving, fishing and hunting are not constitutional rights, owning a weapon is, at least according to the SCOTUS.
If we are already used to being risky, then it would be pretty risky to do something so drastic as to stop being risky. We need to maintain the status quo by remaining dependably risky.
"Conservatives" will argue that risk is the safer bet. The risky free market has been our goto mechanism for creating economic efficiency.
It's not about risk vs. safety. Both parties are equally pussified. It's about which thing seems like the safer bet. Conservatives do not trust the government and liberals do, and that's what drives their choices. It's as simple as that.
It's technically possible for a crooked casino to be cheating with real cards (e.g. as in Lock Stock & Two Smoking Barrels). It's just a bit easier to do for online casinos. Detecting cheating by the house is probably about equally hard for online and real casinos. It would require a bunch of data and statistical analysis to find systemic cheating, or actually catching them in the act somehow (e.g. finding a hidden camera, or hacking into the poker server, or acquiring a confession from an insider) for individual cases.
Yes there are lots of security updates now. This is in contrast to the past when there simply weren't as many security updates for an even greater number of security holes that existed. People are getting ever better at finding and exploiting security holes. They need to be, because there aren't any more easy security holes to exploit.
Second of all, security holes is a different subject. Good security is important, but it is a whole different level than writing stable software. You can write perfectly stable (i.e. doesn't crash or leak) that's full of security holes. The software in the past was not only full of security holes that remained unpatched for longer, but the software was also more unstable.
compilers are dumb machines. they can optimise small parts of the code that fit known patterns, but they can't optimize at the architectural level. algorithms (in the sense that standard patterns can be used) aren't really that bigger part of an application unless you're talking about a small tool like a linux cli tool.
Yes exactly. It is the software engineers job to provide the (hopefully efficient) high level design, using the most appropriate software design patterns, and it's the compilers job to optimize all the low level stuff so that all the abstractions do not cause so much overhead. No compilers aren't perfect, but 99/100 a poorly running program is the result of poor high level design than the result of overhead incurred from using OOP over a function language.
i think a lot of the waste is in use of patterns that are overly generic, such as a class with loads of interfaces/methods/properties etc that are useful for a bunch of different scenarios, which again makes programming much more efficient, but makes more more bloated executables and less efficient running time.
There are different kinds of efficiency. making code more generic through use of design patterns will typically increase execution time slightly, but will also result in smaller executables and a smaller memory footprint, because less redundant code is needed. Making a separate routine for every kind of object is faster than having them all inherit a base class, but having a single method will reduce the amount of memory the code takes up.
compilers are good at stripping out a lot of useless stuff (such as unused variables and procedures), but they can't strip everything, and all those clock cycles spent on conditions determining that a generic class isn't trying to perform a host of other functions that it could but doesn't need to in a specific program could be saved with development of algorithms that are specifically designed for the required task.
That's where good high level design comes in. Some people make things too generic. Some people make things too specific. Doing either results in inefficiency. A good software engineer knows when to make things generic and when to make them specific. Abandoning OOP and software design patterns is way too far on the specific side.
For all the arguments you are using, I could say the same thing about functional languages, and the overhead they incur from stack manipulation. I could say that if you want really fast programs you shouldn't even use functions because functions slow things down. Sure they make code more understandable, but sometimes you just need the speed of a functionless application. If I was talking about anything larger than a 50 line program I would be crazy.
Yes, you are right, DNS in general is a free market. I guess I should have made my argument a little more clear. The DNS system operated by ICANN is not a free market. I think the ability to have alternate DNS roots is and important check to abuse, even if not many people currently use them, which is a separate argument.
I think you can use non-free market tactics in a non-free market without being a free market hypocrite.
The thing that would make him a hypocrite is trying to take something that is already a free market system and attempt to change it into something that isn't. He isn't advocating for more government control of the internet (e.g. advocating a mandate for an ICANN like system), he is just trying to use the system that is already in place.
Domain name registration is not a free market. The fact that you can sell names you've registered makes it a bit freer than it would have otherwise been, but a true free market would be one with no central domain name authority, and each DNS server would be free to do whatever kind of domain name translation they wished.
This system of people rushing to register domains that they think will be popular and reselling them for hundreds of thousands of dollars is ridiculous. It doesn't drive innovation. It doesn't offer any of the benefits of copyright or trademark. It doesn't help end users. It just rewards people for being lucky.
I don't think Ron Paul can be faulted for not following free market principles in a market that isn't free. Just like it isn't fair to expect democrats to pay higher taxes because they believe in higher taxes.
today's software is much more complex, but is much less stable than it used to be
really? Even though most common bugs are memory leaks and buffer overflows? These things are basically solved by modern programming techniques. Do you remember how incredibly unstable windows 95 was? How about old adobe software like premier and photoshop? At the time linux was first written, C was faster than C++ because of the lack of maturity of C++ compilers, but that is no longer the case. You could easily write Linux in C++ were it started today. It may even be faster due to better optimization, along with greater maintainability.
nowadays it is common practice to wait till service pack 1 comes out because with a new release comes guaranteed problems that used to be ironed out during alpha and beta testing phases. testing seems to not be a priority today (with companies preferring the "code and test" methodology). a lot of programmers claim to be into "extreme programming" in an effort to justify their half-baked processes, and yet they have no idea what a unit test is let alone how to write one.
I have no idea why you think this was better in the past. People wouldn't bother waiting for SP1 because the new one couldn't possibly be any worse than the one they were already using. You used to have to reboot windows daily because it was full of memory leaks. Now it is common to leave windows running indefinitely. Our expectations about the reliability of higher has gotten much higher in response to the ever increasing reliability of software.
i'm not saying oo is useless; it definitely has its place, but the core of any complex system requiring maximum efficiency and maintainability will always be functional c, which can be also generally be compiled with c++ compilers. cobol, asm, etc are also used for high end critical business apps.
You keep saying C is more efficient. It isn't. It used to be. That is no longer the case.
you might notice if it takes 1ms extra per 1000 database records in a search, or if it takes an extra ms per kb to transfer megabytes of data over a network connection
Obviously if it takes an extra 1ms to do something that only takes 1ms to begin with, you have doubled the execution time. Not at all what I am talking about. I am talking about the insignificant overhead savings that you used to be able to do through hacks that sacrificed code readability for a clock cycle here and there. Now this code is not only confusing and hard to maintain, but often ultimately slower because it is not as easy to be optimized by modern advanced compilers.
The job of the programmer is to choose good algorithms (with ideal time and space complexity), choose good design patterns so that code can be easily extended and maintained. Most software design patterns are not feasible on non-object oriented languages. To design complex software without these tools is insanity today. It is the job of the compiler to provide optimization.
maybe the user won't notice a 1ms delay due to sloppy programming, but what about when all the other 1ms delays that don't matter compound and the user is left staring at the wheel of boredom or the beach ball of death?
Vastly more time is wasted on software bugs than on software performance overhead. Choosing proper algorithms should be the only thing that matters to programmers. A compiler can optimize code far better than a human can in most situations. You just need to get the algorithms right and let the compiler do the rest.
It's worth -$21 million per day in lost sales. Also you should probably say something about how open source software is bad for jobs and that it takes food out of the mouths of Microsoft developers and their families.
Also, when something bad happens like a war or a hurricane, you can talk about how the silver lining is that more jobs are created to deal with the situation. We must be always sabotaging what we have so that people can remain useful and be needed to rebuild things.
I have literally never uttered the words "cyberspace". I have heard of it and I have a vague idea of what it might mean. I have been using computers since the dawn of the internet, and I have been a professional programmer for 9 years. I never even realized there was any controversy over the word. I just figured it was a dumb catchphrase that only MSM used because they didn't know how not to sound old (like when my mom saying that she "tapes" things on her DVR).
I do like the analogy of the internet as a physical place. It works well. Packets of information are like cyber letters being delivered by a cyber post office to cyber addresses. Ideas like encryption and email sender spoofing also have great post office analogies. I think this analogy will go away once kids are born that will never mail or receive a letter by the post office.
Object oriented programming doesn't result in sloppier code. It's quite the opposite. It is the lack of objects that force people to write "sloppy" code. I define sloppy code as code that is hard to maintain.
efficient programming has taken on new meaning since its inception; instead of writing programs that run fast with a small memory and disk footprint and ergonomic interface, efficient seems to be limited nowadays to getting it to market quick and let the customers find the bugs.
Actually it's the opposite. It's the "optimizations" that save you a clock cycle here and there that programmers used to do in C that caused all the bugs in the first place. If you write maintainable code, it will be a little slower, but provide scalability and reliability, but with the same or better time and space complexity.
Software is much more stable and much more complex today than 20 years ago. The only reason this is possible is because of advances made in making software easier to maintain. It's just not important to save a few clock cycles anymore, no one will even notice if a program runs 1ms faster. We can focus on the big picture.
I never claimed to be a fan of python. I have to use it at work sometimes, and I find it odd, but usable. I must admit I didn;t know much about object pascal specifically, but reading the wikipedia and seeing 5 different object pascal hello world programs written in 5 subsets of the language supported by 5 different interpreters doesn't inspire confidence.
At this point in my life (9 years of programming professionally), I think all programming languages are terrible, but some are more terrible than others.
And also, no one should be using c instead of c++ anymore. There is almost no advantages as c is almost a a subset of c++, and advanced compilers have made c++ just as fast as c.
So really super symmetry and string theory is not 1 single hypothesis but a group of similar hypotheses. You are able to falsify some of them, and others, while still falsifiable, are not able to be falsified currently (e.g. at current energy levels at the LHC). When I refer to falsifiability, I am talking about theoretical falsifiability. This is the same way that noah's arc is falsifiable. While it may be impossible to know for sure (at this point) whether there was a guy names noah who built an arc full of animals because he thought God told him to, this is falsifiable in principle, because it was possible to witness (or not) this event first hand. It was a knowable fact by someone at some point in history (even if that person was someone who fabricated the story in the first place). This is differne tfomr thinigs which are unfalsifiable in principle, like a God who is outside the universe and the laws of nature.
pascal = good, python = bad?
What kind of programmer are you?
Sure if you don't care about stuff, then you don't need money to buy stuff, and you don't need a job to get money. That makes sense.
I personally like stuff. I don't like stuff above all other things in life, but some stuff is quite expensive (e.g. mcMansions), and the *easiest* way to get them is to have a job. Now I wouldn't recommend one of these job things if it was soul-stealing kind. I personally enjoy programming quite a bit. I do it at home after 9 hours of doing it for work. For me it's like getting paid to solve puzzles all day long. I might try the entrepreneur thing one day. But in the meantime, I can get paid to solve puzzles without worrying about quarterly profits and evaluating employees (stuff I am not so good at).
I have only been working as a programmer for 9 years. So maybe by 25 I will be bitter too, who knows. But while I am enjoying it, I plan to continue. By the time I get to 25 years, my mcMansion will be almost paid off.
1. Computer science is not that new. It was started back in the 1930s. There have been no real paradigm shifts in computer science since like the 1990s. The technologies improve, faster components, larger memory, but the concepts have stayed the same.
2. While I have met many bad programmers with degrees, I have literally never met a person without a CS degree who was a good programmer. How are you defining a good programmer?
While it is possible to learn fundamental concepts of computation outside of academia, I have never met a person who actually did. People who don't know any fundamentals can write code that compiles. Will they know the time and space complexity of their algorithms?. Will they know how to design new network protocols rather than just use existing ones? Will they know what it means when a language is Turing complete?
What you said in your comment is like someone saying that he never met an engineer with a degree who could build anything, and that the people who built the best buildings were the guys laying the bricks. It's not impossible but I highly doubt it.
Learning computer science means you are learning fundamentals of computing. With these fundamentals, you are able to learn just about anything else (including web development) much more easily.
Writing web code isn't really any different than writing code for any other purpose. Concepts like scalability, efficiency, maintainability, all still apply. Writing web applications just requires a bit more knowledge of computer security, but otherwise it's basically the same.
Most web development classes I have seen focus on learning some particular technology, like the syntax of writing PHP or ASP code, etc. This is something you really shouldn't be spending lots of money on anyway. It is all freely available information. It might be hard to wrap your head around at first, but getting a CS degree from a good school will give you insight into learning any technology.
Also, I don't think you necessarily need a CS degree from a good school. You can probably learn everything from the internet. There are no secrets taught at university. Having a diploma just helps you get a job as there aren't good ways to figure out that people are really good computer scientists if they don't have a degree. Maybe that will change one day.
What does being a great PHP programmer mean? That you know all the basic function calls by heart? No it means you write beautiful PHP code. But there is no reason why just studying PHP would give you this ability or why this ability would only be limited to PHP. Learn how to think and you are off to a better start than most people who just want the answers and not the ability to get the answers themselves.
Funny you should mention stalls. I am quite a prude myself and have noticed a shocking trend that more men's bathrooms have no dividers between the urinals. I am made slightly uncomfortable by this, but I imagine that someone growing up in a world with no dividers would just be used to it.
Furthermore, I don't think bathroom stalls exist to protect privacy. I think they are there because no one wants to look at people shitting. They are not to keep people from getting to see you shit (although it does that too).
I am in favor of people being allowed to try to keep their data private if they want. But I think the mountain of data people are forced to sift through provides much better privacy.
Yes but it's easier to be a discriminator of X in a world where most people can pretend they don't do X. You are free to discriminate against people who do X even if 75% of people do it, but it depends on what your discrimination is. If you are deciding not to date people who pirate music (about 75% maybe?) then fine that's your right. If you decide you want put people in prison for music piracy, now you will be ostracized (i.e. de-elected).
The thing that allows you not to make something that 75% of people do, is the fact that not all 75% of people will get caught. If, however nothing was private and non-one could be singled out, and 75% of the population was going to have to go to jail, then the discrimination becomes unacceptable.
I think after establishing a base of being able to do simple arithmetic with adequate competency, there is diminishing returns in making people better human calculators. It's not that I don;t think this is a useful skill, but rather that I feel the lost opportunity cost from not teaching them more useful things like how to think about problem solving is not a good tradeoff.
We make kids do the same kinds of math problems over and over again. I can barely remember how to do long division nowadays (although I could probably figure it out fairly quickly). Is the reason I can figure it out based on the fact that I was forced to do it over and over again as a kids? Not really. I can figure it out because I know what it is that long division was meant to achieve. I can apply what I learned alter on to rederive long division, although memory can speed this up a a little bit.
Knowing how to think is more versatile than memory. Knowing how to think allows you to do more than just long division. In the same way that we wouldn't dream of making kids use books of logarithms in light of how much better using a calculator is, why not let them use calculators for basic arithmetic, once they've mastered it (and by mastered I don't mean do lightning fast, but just reliably). All the time saved by using calculators means that we can teach them how to do new things sooner.