This post has moved to a new home! If you're interested in Ivan's technology-related ramblings, please see blog.jonas.ninja!
Wow, this is only the first day of this diary series and already things are moving so quickly. Let me quickly write up the three things that are the highlights of the day.
1. I have started writing an app!
A simple app for practicing memorization, recall, and touch typing at the same time
It does what it says on the tin. At least, it will. It has no code in it whatsoever. The idea is to build something like Amphetype, but in the browser. I have dipped my toes into Node.js, but I don’t want to spend too much time on that so I will write the first version of this app using HTML5 LocalStorage. It’s not portable across computers or even across browsers, but I think that for the most typical use case, this will be more than sufficient.
2. I am considering leaving my job!
Yeah, this is absolutely nuts. But I have saved up 4-7 months of living expenses (depending on how tightly I cinch my belt), so I can afford to not have an income stream for a limited time. It wouldn’t be Hack Reactor, but within two months I feel that I would have significant expertise in a number of technologies that would more that would soon make up for the loss of income.
All this is theoretical, of course. The decision to leave your job without another waiting for you is only scary when you’re seriously contemplating it. The difference between the optimistic scenario and finding myself grasping for a terrible job would be narrow. I am leaning toward it, but I remain undecided. Some people suggest that I should learn slowly on my personal time while I’m employed, or get a job elsewhere as a junior developer and learn quickly while on the job. But I won’t have too many opportunities in the future to just take off and ride the wind. And I have never regretted taking a leap before. So. Decisions, decision…
3. Technologies learned!
This, I guess, is the meat of this diary series. Today I learned how to use Bower. Simply put, it is like npm for front-end developers who are bootstrapping new projects with new dependencies. In case you don’t know, npm is like maven for Node.js developers. In case you don’t know, Maven is a dependency management tool for Java. All three of these work on the same principle: you have a smallish file that describes all the dependencies of your project. Anyone who wants to get those dependencies can run a simple command in the terminal instead of hunting down potentially dozens of independent packages, each with their own dependencies. It keeps things organized, and it really speeds up rapid prototyping.
(Speaking of rapid prototyping, one thing I’m having to quickly come to terms with is that things in the front-end world move very quickly. I have always done well in school because the covered material is limited, and thus possible for one person to “learn everything.” In programming, there is no such thing. You can never know everything, because there is just too much, and more coming out every day, and you simply have to learn how to live with that, no matter how much of a completionist you might be. For example, did you know that only two weeks ago HTTP/2 was approved by the Internet Engineering Steering Group (a cabal of about fifteen technowizards who control the very fabric of the Internet from behind the curtains) and will “soon” be published as a recommendation? I bet you didn’t. Now you do. Go impress people.)
Today I also learned a bit about Angular.js routes. While I have a book that I had been going through (something something MEAN Stack published by Sitepoint), it is more full-stack, and I really just need to boost my front-end skills right now, so I caved and got a month’s subscription at CodeSchool. Heck, they deserve it. I’ve done half of their free courses anyway, and I got a deal for the first month at $9 instead of $30.
That is all for day 1. Signing off.