Great to start off ... then we will end-up reinventing/re-specifying functions for reusability, module/packages for higher-level grouping, types/classes, state machines, control-flows [with the nuances for edge cases and exit conditions], then we will need error control, exceptions; sooner or later concurrency, parallelism, data structures, recursion [lets throw in monads for the Haskellians amoung us]; who knows .. we may even end up with GOTOs peppered all over the English sentences [with global labels] & wake up to the scoping, parameter passing. We can have a whole lot of new fights if we need object-oriented programming; figure out new design patterns with special "Token Factory Factories".
We took a few decades to figure out how to specify & evolve current code to solve a certain class of problems [nothing is perfect .. but it seems to work at scale with trade-offs]. Shall watch this from a distance with pop-corn.
Human skill (and intuition/wisdom?) improves and is sustained by practice in the domain. The real unknown how things will pan out when automation reaches a point where we humans just do not bother putting in the hours because many of the trivial tasks or just lose touch. What happens if a driver relies on just the auto pilot system and gradually loses the skill to drive? Stuff does fail and complex systems will fail in unknown ways.
I think that is the case. There is no difference between the education system in India 300 years ago and now. Then, you had people memorizing poems about daffodils and daisies in order to get an arts degree. This would then mean that they could become low level clerks in a colonial administration. Today, you have people memorizing what a transistor is or a linked list in order to become engineers in an offshore development firm.
This mirrors my opinion, every country has subpar students. I wonder how many of these students are actually quality engineers. Another explanation is that they are graduating from institutes that are not demanding or preparing them for real world challenges.
Seems like a problem that will figure itself out over time, my experience has been that the industry has a very high attrition rate for those who are under talented. If you love what you do and actually possess skill the long term prospects aren't terrible in any kind of way. Of course when I say 'talent', I mean the strategic onus is on the individual to find higher profile work.
+1 problem with the education system, if the hustle is that CS is a golden ticket or some crap like that. The gems will always shine and get snatched up by more mature players.
Oh the possibilities of this - may be with enough data
- you can just wander around a suburb and figure out which houses are currently occupied and which ones are not.
- improve aged care by monitoring walking patterns
- combine it with some more ingenious technology for localised sound -- you can beam music as I walk around the house (or block out sounds)?
- a bit more sensitivity and we can even probably pick up a person while they are having or just about to have a heart attack?
I am sure the privacy folk out there are having multiple heart palpitations.
And maybe predict domestic violence before it happens.
I'm not sure if I qualify as one of the "privacy folk" or not, but I would say "As long as the police cannot compel you to install the thing and switch it on, or have an AI system issue search warrants in seconds based on what the machine reports." Unfortunately I think we will have both of those things 20 years from now.
There is no need to force anybody to install and turn on anything - they could just passively monitor the signal of your wireless router, our that of your neighbor or of your cellphone. Or they could actively send such a signal and analyze it if they don't care about being detected. In the end it is some kind of (passive) radar and you will probably have to actively jam or block it in order to prevent someone from monitoring you.
It seems easy enough to reduce leakage or fuzz the signal.
I don't have the background to try to pull the limits up out of the white paper, but I think the current implementation is more or less looking for movement in 1 dimension (towards and away from the receiver). So plenty of time to decide whether radio waves are revealing anything that sight and sound are not.
Sea cucumbers are very expensive, and the taste is so-so. As the story goes, an emperor did not have offsprings, and his physicians said he should eat those sea cumcumbers in large amounts, and his chefs managed to make some eatable recipes out of this thing, which became a part of the Chinese Imperial Cuisine.
People use words (terms/names) to communicate. I am not sure if most developers think deeply about all this -- nor do they care, or want to care. My observation is that developers just do and mimic what they find commonly used in their environment. Very much like we learn and use English. So, if you are a Java developer and you take the API as your template -- then that is the vocabulary that seeps out.
== Long version ==
Depends on: (i) the job, (ii) quality of CS degree, (iii) career ambition/plans, and (iv) companies/people/culture, (v) project, and (vi) your ability/motivation/persistence.
A lot of basic programming can be picked up over time if you are keen. For many people, structured education is helpful when learning more complex material -- concurrency, compiler construction, advanced data structures, optimisation.
Some companies insist on a CS/SE degree (esp. consulting). Some projects state that all engineers must have formal qualifications.
There are a lot of Dilbert bosses out there -- they do not know/care/will-ever-know about Github profiles. There are bosses that just want stuff done. If you ever have to work for them, a paper with shields on it helps.
Exactly. The more technical and broader hollistic look of a computers, performance is something I think a CS is expected to be mindful of. But it does not mean they all are.
I think it also depends on your drive and your niche. I am in a GIS world and am very enthusiastic about programming. Where most people are more interested in the application than in the backend.
If you know your target group you can cater for them specifically and understand their problems better.
So of course it depends (as always), but to be able to program and know another field is VERY valuable I'd say. To have a CS grad in the group too, but it would serve a more specific purpose.
There is support for this in skills like Martial arts, Music and many art forms. Repetition has been shown to create abstractions inside the brain that eventually help understand the more "deeper" problems better -- though there is no significant evidence. The fact that many learning forms (mostly eastern) have used it for such a long time suggests that we cannot completely dismiss it outright.
one of the better written articles out there for some one new to the language. Also like the fact that some of the funamentals of functional programming are also briefly introduced in context.
We took a few decades to figure out how to specify & evolve current code to solve a certain class of problems [nothing is perfect .. but it seems to work at scale with trade-offs]. Shall watch this from a distance with pop-corn.