The problem in our Chris-Bosh-codes-so-should-you society is that people learn to code without first asking "for what purpose do you want to use code?" What in your day-to-day work could you actually automate using code?
That right there summarizes the main issue. In my experience, far too many approach programming with the I'm going to learn programming mentality. This is fundamentally flawed, since there is more computer science than one can possibly hope to learn in a life time. It very much all comes down to having the fundamentals (an online course in any language will work for this) and then settling down to working towards an objective. Your objective doesn't need to be anything grand: you are far better off starting small. Little scripts to make your life easier: at home, and in the office.
Once you have an objective in mind, your best friend is the help function for your chosen language. Programming isn't about having everything memorized, it's about effective research applied to solving a problem. One need only work out a decent research methodology once, whereas one can work out infinite ways to solve a given problem programmatically. Writing code with decent headers in your functions lets you call up help, even on your own code. In short, you end up making your own help, based solely on your own programming style. This helps for specific functions, but when you get stuck, unsure of what you need to do: google. Chances are there exists a stackeoverflow post that will steer you in the right direction, if it doesn't outright show you what you need. Once you get an idea, you can also refine your search, often pulling up examples.
The main thing to keep in mind is that you will always be learning. There is always a better way to achieve the same objective, however achieving the objective is what matters. Don't get caught up trying to repeatedly make the code better: instead, push on to completing the first version first. This is a trap that consumes a lot of people just starting off. You'll never finish, if you keep on restarting, and what really matters is that the code works properly.
PS: I did not mention testing, since everyone has their own way of including such. Starting off, debugging will be enough to wrap your head around. Just keep in mind that at some point you will need to work testing into your workflow. Automatic testing makes it easy to write better versions of your code, since you'd be able to see if your tweaking broke anything.
As a canadian living in an isolated city, let me say this: the police are more likely to join in on the harassment than to stop it... if they even show up in the first place. Law enforcement seems to exist for free timmies (a coffee chain where you can't go more than 5 blocks before the next one), parking tickets, and for consuming drugs/drug money they 'confiscate'. It's hard to get police out for serious crimes, even if you have the entire affair recorded on video.
Because of this, what rights people are actually accorded depends directly on their community. A 'we're in this together' type mentality. If you have problems, you get your friends together and go deal with it. Sadly, in more recent years, actual investigative work has become the domain of the mafia in the area (sadly that's still a thing). In a world where you call your weed dealer when you're robbed, instead of the police, do you really think Canadian civil rights count for anything? When the only source of justice comes from the criminal community, civilization has already fallen: all that remains in the illusion held within people's minds.
The main problem with scientific data is retention. Often the results are kept, but the data that led to the results is long lost. Even 5 years later, it's hard to find the data. There is a reason for this: there's a lot! Regardless of what their database size, most particle physics experiments can fill it in less than a day. It's not technologically feasible to gather the information into one system, at our current level of technology.
While wikipedia has editing and flame wars problems, this project would end with similar problems surrounding deletion. What do you keep? How do you know where the break throughs will be made: the ones that make revisiting old experiments and data necessary? One cannot predict the path inspiration will take. Who decides what gets deleted: an editor, an admin, by public vote? This is what will cause the project to fail out of the starting gate. In the event they do succeed, what happens when their funding runs out? We've already established that the main problem is from too much data for practical backup... that only leaves the inevitable fall into oblivion.
In closing, I do offer a ray of hope: the time is fast approaching when we will reach the prerequisite technological level. Take a look at the work HP is currently doing: http://www.engadget.com/2010/0... This technology, at the optimal level, (I crunched some numbers, and it definitely would not be the case with the first iteration) can store all the world's data, and then some, on a device the size of a garbage can. At that point deletion, and all the problems outlined above, become nullified. Until we reach that level, this is a pipe dream, doomed to fail in a quagmire of politics.
The first mars rover that crashed as an international undertaking. In fact, that's one of the reasons it went wrong: us Canadians were responsible for the final calculations. We assumed, Americans being Americans, that the measurements given were in feet. (Yes, our stereotype has Americans pegged as being so backwards that the entire nation doesn't know System International, or are too prideful to use the standardized system.) However, the Americans had been kind and already converted to meters. Needless to say, that rover crashed hard.
The incident is still repeated at my university, to this day, when collaboration with American physicists is suggested.
Like the Person of Interest fictional organization Vigilance? Domestic Privacy Terrorists using computer skills (on the organization level) and varied member skill sets (on the operational level) to insert themselves temporarily into high ranking corporate, and governmental, positions to: gather information, expose ongoing criminal activities, and to 'deal out justice'
hmm... computer skill and varied skill sets...
It's sad that there a need, and that the people needed to found such an organization can be recruited here. Next thing you know, there will be American Revolution book ciphered
Your code should be more efficient!