Saturday, July 2, 2016

College Does Not Qualify a Programmer

Anyone who looks at college as a relevant way of qualifying a programmer's skills does not know how to program. To all of you knuckleheads out there thinking college is relevant for programming, college is a terrible format for learning how to program, because it is primarily formatted with lecturing, cumulative/aggregate learning that develops from one starting point to a more advanced understanding, memorization. The reason this is a bad format is the following:

1st Reason College is wrong format for learning programming: Lecturing
Lectures don't fit the programmer's learning process because listening and watching someone talk about programming without doing something on a computer is a waste of time. Also, Google is the only fundamental, comprehensive source of information in programming, not some professors lecture notes, which are probably outdated anyways.

2nd Reason College is wrong format for learning programming: Aggregate knowledge
Programming is horizontal stack knowledge, not vertical. Vertical is traveling from a basic to more advanced understanding, whereas horizontal is more like library knowledge where you read the things you want to use. Its not necessary to learn every stack that a program depends on in order to use it because you use apis and interfaces written by other people to do that. College is the wrong format because in order to give off the feel of learning upper level advanced things that aggregate into advanced knowledge, they try to teach people advanced concepts that aren't useful in terms of utility as a programmer, like algorithms, and how compilers work, without actually encouraging people to learn the software stack itself (the code), to be able to use it, and work with it.

3rd Reason College is wrong format for learning programming: Memorization
Testing people on memorized things doesnt fit programming, because you can always look it up online when your programming. Programming isnt a performance, and you dont need to memorize anything. And you probably shouldnt because its just wasting your energy and brainsapce, and you'll make more mistakes by trusting yourself over an online documentation or an ide code completion suggestion.


Flash is better than Web Browser Stack

A lot of people assume that writing websites with html/css/javascript is the fundamental way websites should be written, and a fundamental technology stack when it comes to making websites. However, once you begin to code websites a lot, you start to deal with standards that were developed by world wide web consortium (w3c), in order to form a standard that common browser vendors (chrome/ieexplorer/firefox/opera) implement. The problem is that by separating the web standards committee from the browser vendors, however necessary this is to allow common browser vendors to implement the same software features for developers, it still unavoidably resulted in slow iterations to allow browser vendors time to implement features. Also, since w3c is not a profitable company, it is a community organization that gets funding, the standards it has made over the years haven't developed as quickly or as creatively as they would have if they were a profitable company, that also built the web browser the api was for. The benefit of Flash, is that it is one company, Adobe, that created the entire platform, including a drag and drop web builder (Flash Builder), and iterated their api/platform for optimal developer benefit. This resulted in a better way of making 2 dimensional graphical grid, user interface programs, or in other words websites.

With modern web frameworks like angular and emberjs, the web stack is easier to work with. But Flash will always be the best. Flash has a drag/drop builder that was built by the company that made the stack/api itself, and will always be the best in terms of iterations, and improvements. Even though people will always prefer the web api with browser vendors so that everything is in public domain, the reality is that Flash is better software, and always will be. Adobe should just release it into public domain, maybe take a lot of donations from browser vendors so they can just make their browsers extensions to the Adobe Air platform, and drop Webkit/or watever their rendering engines are. They suck compared to Flash. Just imagine how easy it would be to make websites if developers were using frameworks/api's that were getting iterated on as quickly and creatively as Flash.

Developers and browser vendors should embrace creativity, and the fact is, that Flash already solved the problems Html5 tried to fix decades earlier, and is a much more creative piece of software with more creative company backing it than the community of w3c. It's a fact. Dont argue with reality. If w3c were even close as creative when it comes to web standards iteration, it would not have taken this long to make html5. And the reality is html5 still sucks. So you need other tools to make it better, like emberjs/angular, or some type of templating.

The longer people continue to support w3c and browser vendors using html5/css/javascript instead of flash, the longer people continue relying on public domain software at the expense of developer productivity. Web apis/W3c arent even close to Adobe Flash's level of creativity/software iteration capabilities. And the problem with it not being as good is that programming websites is the most common task in programming, and majority of time spent by developers is associated with websites. If the technology isnt getting iterated on by a real profitable company (or at least adopted by a company that at one point developed it for profit) time is getting wasted using api's that are not as good as possible, because people just don't want to accept Adobe's dominance in 2d graphical grid based, user interfaced technology. There's no reason web browsers cant adopt Adobe Air as dominant technology stack while falling back on html/css rendering when sites arent written with it.

Developer productivity is the only thing that matters. Public domain can get worked around with an Adobe release into public domain, and SEO can get worked around also, with bot crawler improvements. Because in the end developers make websites for money. Why support a technology stack not optimized for productivity. Developer productivity = more profit for developers.

Save yourself the trouble and don't argue with this post in the comments below, you will just be making a fool of yourself. Adobe Flash will always be incomparably better software than the web browser api. Always. You may have to live with web browser development stack, but believing it is better than Flash is incorrect. If you think web browser technology is in any way superior to Flash in terms of pure software / developer productivity, or that it ever will be in the future, you are not appreciating creative software of Flash, and the benefits Adobe's creativity brings to developers and technology.