Now that I have completed the majority of lessons on Codecademy I decided to head over to another online learning platform, Code School, to learn the Rails framework for the Ruby language. So far I have completed three lesson sets at Code School: Try Ruby, Try Git, and Rails for Zombies. These lessons were good, but in some places it was harder to navigate than Codecademy.
The big difference between Code School and Codecademy is that Codecademy uses only text to walk you through the lessons step by step. The instructions are available for easy reference as you move along. Code School plays a video before you try challenges that demonstrate you have mastered your material. (Though Try Git works in the same manner as Codecademy.) Since one of my weaknesses is a bad short-term memory, I found retaining all the information from the Rails for Zombies video difficult as I moved onto challenges. A friend astutely suggested I take notes during the Rails for Zombie video the way I did for class lectures in law school, and that significantly improved my retention along with giving me a nice reference as I worked on the challenges.
Unlike Codecademy Code School uses a freemium model. This means you can try free lessons and then must pay to continue to the more advanced ones. While I enjoy the fact Codecademy is free, I can accept that Code School has to pay its employees and they kindly give you a $5 certificate towards your subscription when you complete a free course. Since I am impressed with the free lessons overall, I probably will subscribe to it for a month or two.
Overall I am finding these online learning platforms great for wetting my feet in the various programming languages. I have also been refreshing my spanish using DuoLingo. I do not believe that on their own they will replace classroom type learning, in spite of the optimism of people like Tom Friedman about MOOCs and other forms of online learning I think it helps to have peers working on these things with you. It also lacks that feeling of “whoa, I did it” you get after doing a final exam or project. So after I finish learning Rails I will probably try making my own Ruby on Rails project as a personal capstone.
If you are not a computer person, or are looking to expand your programming knowledge, I recommend these online programs as good starting points. However it will be up to you to take the next steps. You can read and watch all you want, but it is up to you to take action and make these skills real.
Recently I discovered a great website for viewing bills as they are proposed in the Connecticut General Assembly. One area that the media has not been covering but where the legislature and governor are not slacking is in integrating technology with government. The shifting of government practices from paper to electronic records is now commonly referred to as e-government. The primary advantage of this besides increasing efficiency is it also makes government more easily accessible to its citizens.
Both the Governor and Sen. Doyle and Rep. Guerrera have been proposing bills that make progress in this area. One bill creates an e-government board. It directs that an e-government plan be created and that a user survey be developed for the state website. I think this bill is a great start and I hope that in addition to the user survey the people in charge of the website utilize techniques like A/B testing to optimize user experience as well.
A bill proposed by the Governor orders the creation of an eRegulations system. It further directs that, “[t]he eRegulations System shall be easily accessible to and searchable by the public.” It is my hope that “easily accessible and searchable” includes the creation of an API and allowing bulk downloads of the data. Currently certain regulations and advisory opinions are available online but only in PDF. While PDFs are a universal format, they are not great for searching or building applications on top of.
Another bill expands the mission of the Commission for Educational Technology to encompass technology throughout the state. It renames it the Commission for Technology Advancement and adds the following to its mission:
(A) Increasing the availability and usage of technology that promotes efficiency in operation and increased digital literacy across the state;
(B) Increasing and improving usage of high-speed, cost effective network technology to meet collaboration demands of state and local government and private industry;
On the other end of the spectrum Sen. Musto proposed a bill to allow agencies to remove information from their websites. While I can understand the desire of agencies and administrators to want flexibility in their website design, it is not a best practice to remove information from websites because it can break external links from places like Wikipedia. The cost of storing and providing information is extremely low and the benefit of making it available is high. We need not require the agency to keep every bit of information on its front page, but it should keep the information on the server and be accessible through search and direct links.
Another good bill is one proposed by Rep. Alberts that limits the charge for documents that are scanned and sent electronically to $0.10 a page. The cost of transmitting electronic records is minimal, and is mostly a factor of the labor that goes into doing so. By building systems that allow users to access electronic records without employee intervention, the government can help minimize and eliminate the labor cost. However many older records have not been made electronic yet. I believe this bill strikes a good balance and promotes access to public information.
I will keep tabs on these bills and keep an eye out for other interesting e-government bills as well. Feel free to share your thoughts on these in the comments.
Unlike many users I jumped into Codecademy with some background and experience. I was already familiar with concepts like loops and arrays. However Codecademy helped me learn them in new languages. I also had the luxury of not having to learn HTML and CSS since I have been using them for a long time. In spite of this, I do not feel Codecademy babied me too much. It was easy to breeze through sections I was familiar with and spend more time with the ones I was not. It seems the site is great for beginners and intermediate users alike.
Yet Codecademy suffered from some bugs. First the Safari browser in Mac OS X the would hang and crash when I attempted to view the Q & A section of the website. This was remedied when I later switched to Google Chrome. Secondarily, over the past week, they had a database problem and I lost much of my progress in my jQuery unit. This was disappointing, but Codecademy lets you skip to lessons you want to take so it did not impede my progress once it was restored. Finally, on some of the lessons, I would code a functional solution but the software would not accept it as a right answer. For those units I had to read the Q&A to learn the trick to move on.
The best thing about Codecademy is its presentation is simple and friendly. An explanation and instructions appear on the left, a code box on the right, and for the most part you are spoon fed your answers. The method is they explain the concepts and then through the process of doing you experience the power of the code. You get multiple tabs like a result window and the in-browser code editor even provides code completion. When the code in the editor auto-completes the cursor will merely move to the right if you type the same character that your cursor is to the left of.
So far my favorite lessons have been the API ones. It is especially gratifying to use the Twilio API to send your cell phone a text message or make a voice call. After doing a couple of the lessons it is easy to recognize how much power sits behind different online platforms and brainstorm ideas for web applications.
Overall I would highly recommend Codecademy to anyone interested in learning to code. It is a fantastic place to get started or for a rusty person like me to brush up on their skills.
This is a neat exhibit in the New York Times building in New York City:
There has been ado about President Obama’s move to increase the minimum wage to $9.00 an hour. In my freshman year economics classes at Worcester Polytechnic Institute I was taught that most economists agreed that having a minimum wage at all was a bad idea because employers will hire fewer people. However this post at Wonk Blog explains that there are some dissenting opinions. My general sense is that most companies are already paying above the minimum wage (at least in Connecticut) because workers will not accept less. For most companies the minimum wage is still too low to be consequential to their bottom line. For the rest of companies that are going to lay off employees or can no longer hire new workers, they are staring at a tipping point of profitability already and if it isn’t the minimum wage that is going to knock it out of business then it will be rising commodity prices or tax and insurance costs.
There has been a lot of chatter in the news and economic circles about robots and peak jobs. I think that this concern is overblown. A lot of labor demand is not being filled because of lack of capital. There are plenty of jobs where computers and robots do not function as well as people. You can see this whenever you call a customer service line somewhere and are faced with a robot and a long hold time, or the long lines at the DMV. I do not think most people would accept a robot bartender or waiter in a restaurant. Robots certainly cannot litigate in a courtroom, fill a cavity, or install carpeting. Furthermore technology is opening up new areas of opportunity for unskilled work in things like data entry. There is a huge collection of government records in the Connecticut State Library that have not been digitized and need to be accessed manually. Even certain recent years of the Hartford Courant are not available digitally.
There are a few reasons that I think labor demand in these areas is not being filled. The first is that corporations have temporarily suspended operating with longterm vision in order to fulfill short-term needs. For example as a recent law graduate I have been searching for jobs at firms. Most firms are not willing to hire recent graduates but have plenty of budget to hire experienced attorneys. Instead of paying recent graduates less and training them up, they are paying existing attorneys market rate. Eventually the supply of experienced attorneys will dwindle to the point that it is no longer cost-effective and companies will have to pay to train new attorneys. In the long-term it is better to make a super-star then to hire one.
Despite Republican claims of taxes being too high, government employment in areas like the judicial branch is too low. The court houses are forced to triage the cases and things like patent litigation takes years. This has introduced uncertainty into the economy and created economic loss in the technology sector as companies have chosen to settle their patent cases instead of litigate them. Connecticut specifically has documented issues in administration at the Department of Social Services, and I do not think anyone would dispute that long lines at the DMV create a net economic loss for the economy.
A lot of economic cost is being caused by energy, pensions, and healthcare. In the case of energy the rising cost of electricity and oil have driven up the prices of almost everything. We may see a dip as natural gas supply continues to expand but otherwise we need to continue to focus on becoming more energy-efficient. The United States has failed to innovate its way to cost savings in healthcare. I think this is in part riding on the rising cost of education (which is also a bubble). Doctors need to make good money to pay off their loans. Hans Rosling also explained why a single payer system might help us tackle this issue. Pensions are the toughest of these problems because employers made a promise and then failed to prepare to pay on it. Now we are paying more than we would have otherwise. As a general matter it is poor policy to renege on pension commitments. I think it might be worth companies or governments offering to buy people out of pensions at a discount. Troubled companies or pensions might be able to negotiate benefit reductions because they otherwise would fail or default. Otherwise I am unsure what can be done to tackle that issue.
Ultimately the important thing is to continue to invest in things that create economic productivity today so that tomorrow is more prosperous. Much of the austerity we are practicing is penny-wise and pound-foolish. There is no reason to fear change or innovation, but failing to adapt and invest is why we lack jobs.