People in "under-developed" countries are not the only ones in trouble in this world. Those in Europe and the US shouldn't think that they're future is necessarily better than those in the "third world".
What will save the world is a profound recognition of the oneness of humankind, that we all have rights and responsibilities, that we all should be respected and that the only way to solve our problems is learning how to collaborate. Also, the vast majority of humanity must learn to solve its own problems rather than wait for politicians or opportunists to come solve it for them.
The profound understanding of who we are and what we are capable of achieving when we work hard, honestly and with regard for the rights of all at the local, national and international sphere will allow us to over come problems.
Tecnology, economic development, material education will all flourish if progress is made at the human level.
1. Look to see if people are hiring for that technology. If you check dice.com or something similar you'll see if companies are invested in it. 2. Are 3rd parties building "plugins" or "extensions" for it? 3. Does it make sense to you? Does it adapt well to your needs? Is it well designed?
While many frameworks may be cool or superior technologically, the sad thing about software is that popularity DOES matter.
To some degree you are correct that initially such world wide agreements have little meaning while people chose not to enforce it. However, once an international agreement is taught in schools and people become more familiar with its principles, the effect is much greater and much more universal. Take for example the "Universal Declaration on Human Rights," this tool initially a piece of fiction from and for diplomats became a strong cultural force that is used today accross the world as a basis for the defense of human rights for minorities, native groups, women, gay people, political groups, etc. It is with this basis that people have an expectation today that they have some rights.
Note also, that while in the US a lot of credit for these principles is given to the Constitution, it wasn't till the late 60s until basic human rights for African Americans were upheld. International pressure was as significant factor in the US as it was in South Africa.
Another is that what we teach is communication. As students learn the ways of expressing themselves on paper when learning their ABCs and later by writing what happened over the weekend. They can also learn how to communicate more precisely using mathematics. For example by drawing a table, by setting its measurements, by calculating how much wood they'll need.
Another thing a child could describe is a process to solve something. Like how a robot would need to walk by going from one place to another. To do so they would need to use "words" in certain ways to "communicate" with the robot.
All of this is communication. I believe both Math and Programming should be taught as was to communicate and model processes and ideas. Then the creative side of children can be explored.
Its about time Oracle change the name of applets to be JAT (Java Applet Architecture) or something less catchy..
The point is that applets are messing up the Java brand.. so brand them with some other name and keep people from confusing Java with applets.
For example advice like: "remove Java from your machine" would change to "remove JAT from your machine"
Java is very successful server side.. I can't understand why they continue to contaminate the brand with the half baked plugin that only serves as a security hole.
I much prefer just listening to a lecture in class, and then doing the work at home. Working in class is a pain.. and I certainly don't find much benefit in working with classmates usually.
As of Java 7, Java also can allocate objects on the stack automatically with escape analysis.. So in theory C++ and Java are the same in this respect. (It also removes unnecessary synchronized calls in these cases for these objects)
As for other objects Java uses copy collectors for short lived objects that makes cleaning them up essentially free as well. In fact, it is much less expensive than C++ delete calls. C++ still has to run any destructors that are there. In Java finalizers are rare. So short lived objects are much cheaper in Java both on the stack and on the heap in terms of execution overhead related to memory allocation/deallocation.
People from the 80s: When you were learning programming the PC may have been the new shiny toy.. so it didn't really matter that the only thing it could do was BASIC you played with it because it was an interesting new gadget. Fast forward to 2013.. computers are everywhere and they are "boring" nobody cares about 6502 assembler or that you can trick your dot matrix into printing pictures with ASCII codes.
People from the 90s: When you were learning programming this new thing called "The Internet" was all the rave! You wanted to learn "HTML" to show your useless dog in cyberspace. You were entralled by CSS and JS and other sillyness and ignored the fact that you reinvented the wheel (badly) when programming in your awesome Perl script. Fast forward to 2013.. nobody cares about "the Internet" its here.. we use it everyday.. what's the big deal?
Back in the day.. there wasn't much to do with a computer.. so we enjoyed inventing things for it, building things. These days people would rather just hang on Facebook or Tumblr and veg. The computer is not a place for exploration.. it is an old dirty thing that sits in a room somewhere or some unexciting laptop whose battery doesn't last more than 15 mins.
People today are crazed about Cellphones and Tablets that are the new toy. They are looking for ways to justify their ridiculous spending with such toys and trying to convince dad to buy them the iPhone 5 or the Galaxy S4 or whatever. If you can show them to write apps for the baby and give them some instant gratification doing so (PRINT "HELLO" won't work anymore) using modern interfaces they'll love you for it.
Robotics are also starting to be interesting so using a tool like Lego Mindstorms or something better to make some complex programs si cool also.
Also, games are a great way to get started because it is a great excuse to teach math and physics and some advanced programming concept. But to get immediate gratification you could try Pilas Engine (Python based) or maybe something better.
Finally, I agree with other posters that using something like Java can be tedious for beginners. I remeber BASIC and LOGO because they gave me instant gratification. I suggest Python based tools as a good way to begin or AppInventor or something similar if you prefer.
True. GPA can be an impediment to risk taking behavior that often leads to more learning. In College I avoided some classes because of their potential effect on my GPA and also because they wouldn't fulfill any requirement. I regret having made those decisions.. though I don't regret having had a good GPA.
On the other hand, I definitely DO appreciate having taken very hard classes and the only classes I didn't like were the ones that were too soft (well, also the incomprehensible seemingly irrelevant ones). I don't think chosing the easy path is a good College strategy.. I always chose the hard classes in my major (though I avoided the ones outside my major that I probably shouldn't have avoided).
Boring is worse than hard in my opinion. Many colleges allow you to drop late in the semester.. that is a good option sometimes.
Well, I personally would prefer windows 7.. but when laptop providers try to force windows 8 on me I initially didn't have a problem.. until I tried it. I was actually excited to try something new.. but Win 8 seemed very poorly done.
What has bugged me more is MS Office. It seems to have peaked in 2003. Since they added that tool bar thingy and got rid of menus I just can't use it so I cling to my Office 2000. Now Win 8 probably doesn't support that.
So I beginning to believe that MS is purposefully trying to annoy me.. so I'm beginning to seriously consider a move to alternatives. Frankly, I like my MS Office 2000.. I don't have a need to upgrade (I can still open docx files, and stuff like that). But eventually they'll force me.
I also liked Windows 7, but Windows 8 seems to be Windows Me all over again.
I don't know about you.. but the terms of service I agreed to had some very strong language regarding privacy that do cause me to expect that my email would remain private. So I don't think the IRS would have a legal leg to stand on..
Having lived in Latin America most of my life.. I can say that computers are not necessarily the problem. Finding the right teachers or teaching the teachers to take advantage of the computers is the bigger issue.
If you go to some school and setup a lab for them.. in a few years they won't work because there is nobody to maintain the lab. The much bigger cost is training personnel or coming up with a useful vision for computer use. Also, setting up Internet access can be a challenge because it requires paying monthly bills in the long term and some places won't have the budget to do so. So the best is to somehow get them free Internet.
We are surrounded by computers and cell phones and iPads here. We have 4g Internet.. but teachers have obsolete notions of what to do with all this tech.
I moved overseas.. I pay an outrageous $500 per month rent (outrageous because nobody here pays that much). And my earnings this year are about 10x what I made in the US. (I started a company here)
So saving money is not a problem. I also like the life here better.
Maybe CS is a better way to teach mathematics. I never had any use for math till someone asked me how I could solve certain problems using a computer. Suddenly math became interesting.
I think one of the big problems with Math is that kids (and most people) don't know where they are going with all these abstract constructs, whereas programming gives you an immediate use for abstractions.
Also, kids struggle learning basic algorithms like long division but knowing about algorithms and being able to express them with some "language" then maybe they'll have an easier time learning them. Note for example that long division or square roots (or nth roots) are basically modified simple search algorithms.
Most of what students "memorize" in math is odd algorithms but they fail to understand their purpose or source.. CS can do a lot to make things clearer.
Good.. because Netflix Latin America is SEVERELY behind the US version.. so it is very hard to do basic things like bookmark what you'll want to watch later or even find things.
Its hard to say what the future of programming is, but more and more I see voice recognition, computer vision, self driving cars, data mining, and other applications of AI.
While you may not need too much math for basic business oriented software fields that apply AI, that estimate the future, that analyze data may often need quite a bit of math.
Math is basic knowledge that a Software Developer is expected to have. Some may get by without it, lots of us may not use it day to day. But certainly to understand the underlying principles behind algorithms math is very useful. One example is the law of limits for Big-O complexity. Understanding how continuos functions work and how to reason about things to the limit helps you write more scalable software.
People in "under-developed" countries are not the only ones in trouble in this world. Those in Europe and the US shouldn't think that they're future is necessarily better than those in the "third world".
What will save the world is a profound recognition of the oneness of humankind, that we all have rights and responsibilities, that we all should be respected and that the only way to solve our problems is learning how to collaborate. Also, the vast majority of humanity must learn to solve its own problems rather than wait for politicians or opportunists to come solve it for them.
The profound understanding of who we are and what we are capable of achieving when we work hard, honestly and with regard for the rights of all at the local, national and international sphere will allow us to over come problems.
Tecnology, economic development, material education will all flourish if progress is made at the human level.
What I've found works well (90% of the time) is:
1. Look to see if people are hiring for that technology. If you check dice.com or something similar you'll see if companies are invested in it.
2. Are 3rd parties building "plugins" or "extensions" for it?
3. Does it make sense to you? Does it adapt well to your needs? Is it well designed?
While many frameworks may be cool or superior technologically, the sad thing about software is that popularity DOES matter.
My List:
1. Estimates
2. Legacy code / huge uncommented code
3. Designing the features correctly
4. Over/under designing the code
5. Estimates
Computing is not the act of programming.. Computing is the act of executing a program.
In my opinion, this is a question for Computer Scientists and not Physicists.
To some degree you are correct that initially such world wide agreements have little meaning while people chose not to enforce it. However, once an international agreement is taught in schools and people become more familiar with its principles, the effect is much greater and much more universal. Take for example the "Universal Declaration on Human Rights," this tool initially a piece of fiction from and for diplomats became a strong cultural force that is used today accross the world as a basis for the defense of human rights for minorities, native groups, women, gay people, political groups, etc. It is with this basis that people have an expectation today that they have some rights.
Note also, that while in the US a lot of credit for these principles is given to the Constitution, it wasn't till the late 60s until basic human rights for African Americans were upheld. International pressure was as significant factor in the US as it was in South Africa.
That is one way to look at it.
Another is that what we teach is communication. As students learn the ways of expressing themselves on paper when learning their ABCs and later by writing what happened over the weekend. They can also learn how to communicate more precisely using mathematics. For example by drawing a table, by setting its measurements, by calculating how much wood they'll need.
Another thing a child could describe is a process to solve something. Like how a robot would need to walk by going from one place to another. To do so they would need to use "words" in certain ways to "communicate" with the robot.
All of this is communication. I believe both Math and Programming should be taught as was to communicate and model processes and ideas. Then the creative side of children can be explored.
Java != applets
Its about time Oracle change the name of applets to be JAT (Java Applet Architecture) or something less catchy..
The point is that applets are messing up the Java brand.. so brand them with some other name and keep people from confusing Java with applets.
For example advice like: "remove Java from your machine" would change to "remove JAT from your machine"
Java is very successful server side.. I can't understand why they continue to contaminate the brand with the half baked plugin that only serves as a security hole.
Good.. because Introductory courses should be taught by the absolute best instructors. They have the most impact over a student's carreer.
I much prefer just listening to a lecture in class, and then doing the work at home. Working in class is a pain.. and I certainly don't find much benefit in working with classmates usually.
As of Java 7, Java also can allocate objects on the stack automatically with escape analysis.. So in theory C++ and Java are the same in this respect. (It also removes unnecessary synchronized calls in these cases for these objects)
As for other objects Java uses copy collectors for short lived objects that makes cleaning them up essentially free as well. In fact, it is much less expensive than C++ delete calls. C++ still has to run any destructors that are there. In Java finalizers are rare. So short lived objects are much cheaper in Java both on the stack and on the heap in terms of execution overhead related to memory allocation/deallocation.
these women will be waaaaay past menopause by the time they get to space.
They should have selected toddlers and trained them along the way.
nice screen, lousy hard drive, not a lot of ram
People from the 80s:
When you were learning programming the PC may have been the new shiny toy.. so it didn't really matter that the only thing it could do was BASIC you played with it because it was an interesting new gadget. Fast forward to 2013.. computers are everywhere and they are "boring" nobody cares about 6502 assembler or that you can trick your dot matrix into printing pictures with ASCII codes.
People from the 90s:
When you were learning programming this new thing called "The Internet" was all the rave! You wanted to learn "HTML" to show your useless dog in cyberspace. You were entralled by CSS and JS and other sillyness and ignored the fact that you reinvented the wheel (badly) when programming in your awesome Perl script.
Fast forward to 2013.. nobody cares about "the Internet" its here.. we use it everyday.. what's the big deal?
Back in the day.. there wasn't much to do with a computer.. so we enjoyed inventing things for it, building things. These days people would rather just hang on Facebook or Tumblr and veg. The computer is not a place for exploration.. it is an old dirty thing that sits in a room somewhere or some unexciting laptop whose battery doesn't last more than 15 mins.
People today are crazed about Cellphones and Tablets that are the new toy. They are looking for ways to justify their ridiculous spending with such toys and trying to convince dad to buy them the iPhone 5 or the Galaxy S4 or whatever. If you can show them to write apps for the baby and give them some instant gratification doing so (PRINT "HELLO" won't work anymore) using modern interfaces they'll love you for it.
Robotics are also starting to be interesting so using a tool like Lego Mindstorms or something better to make some complex programs si cool also.
Also, games are a great way to get started because it is a great excuse to teach math and physics and some advanced programming concept. But to get immediate gratification you could try Pilas Engine (Python based) or maybe something better.
Finally, I agree with other posters that using something like Java can be tedious for beginners. I remeber BASIC and LOGO because they gave me instant gratification. I suggest Python based tools as a good way to begin or AppInventor or something similar if you prefer.
True. GPA can be an impediment to risk taking behavior that often leads to more learning. In College I avoided some classes because of their potential effect on my GPA and also because they wouldn't fulfill any requirement. I regret having made those decisions.. though I don't regret having had a good GPA.
On the other hand, I definitely DO appreciate having taken very hard classes and the only classes I didn't like were the ones that were too soft (well, also the incomprehensible seemingly irrelevant ones). I don't think chosing the easy path is a good College strategy.. I always chose the hard classes in my major (though I avoided the ones outside my major that I probably shouldn't have avoided).
Boring is worse than hard in my opinion. Many colleges allow you to drop late in the semester.. that is a good option sometimes.
Very depressing.
Well, I personally would prefer windows 7.. but when laptop providers try to force windows 8 on me I initially didn't have a problem.. until I tried it. I was actually excited to try something new.. but Win 8 seemed very poorly done.
What has bugged me more is MS Office. It seems to have peaked in 2003. Since they added that tool bar thingy and got rid of menus I just can't use it so I cling to my Office 2000. Now Win 8 probably doesn't support that.
So I beginning to believe that MS is purposefully trying to annoy me.. so I'm beginning to seriously consider a move to alternatives. Frankly, I like my MS Office 2000.. I don't have a need to upgrade (I can still open docx files, and stuff like that). But eventually they'll force me.
I also liked Windows 7, but Windows 8 seems to be Windows Me all over again.
I don't know about you.. but the terms of service I agreed to had some very strong language regarding privacy that do cause me to expect that my email would remain private. So I don't think the IRS would have a legal leg to stand on..
Having lived in Latin America most of my life.. I can say that computers are not necessarily the problem. Finding the right teachers or teaching the teachers to take advantage of the computers is the bigger issue.
If you go to some school and setup a lab for them.. in a few years they won't work because there is nobody to maintain the lab. The much bigger cost is training personnel or coming up with a useful vision for computer use. Also, setting up Internet access can be a challenge because it requires paying monthly bills in the long term and some places won't have the budget to do so. So the best is to somehow get them free Internet.
We are surrounded by computers and cell phones and iPads here. We have 4g Internet.. but teachers have obsolete notions of what to do with all this tech.
I moved overseas.. I pay an outrageous $500 per month rent (outrageous because nobody here pays that much). And my earnings this year are about 10x what I made in the US. (I started a company here)
So saving money is not a problem. I also like the life here better.
Maybe CS is a better way to teach mathematics. I never had any use for math till someone asked me how I could solve certain problems using a computer. Suddenly math became interesting.
I think one of the big problems with Math is that kids (and most people) don't know where they are going with all these abstract constructs, whereas programming gives you an immediate use for abstractions.
Also, kids struggle learning basic algorithms like long division but knowing about algorithms and being able to express them with some "language" then maybe they'll have an easier time learning them. Note for example that long division or square roots (or nth roots) are basically modified simple search algorithms.
Most of what students "memorize" in math is odd algorithms but they fail to understand their purpose or source.. CS can do a lot to make things clearer.
Good.. because Netflix Latin America is SEVERELY behind the US version.. so it is very hard to do basic things like bookmark what you'll want to watch later or even find things.
Or just use the Corporate BS Generator.
Or, alternatively, here.
I prefer this site for my Corporate BS. Thanks.
Its hard to say what the future of programming is, but more and more I see voice recognition, computer vision, self driving cars, data mining, and other applications of AI.
While you may not need too much math for basic business oriented software fields that apply AI, that estimate the future, that analyze data may often need quite a bit of math.
Math is basic knowledge that a Software Developer is expected to have. Some may get by without it, lots of us may not use it day to day. But certainly to understand the underlying principles behind algorithms math is very useful. One example is the law of limits for Big-O complexity. Understanding how continuos functions work and how to reason about things to the limit helps you write more scalable software.
Inconvenient.. it means we can feel good about ourselves and continue polluting.