Lookie there, it's Ivan's blog! And its name is

Becoming a Front End Developer – Diary 1

In Front End Developer diaries on 2015/03/06 at 01:51

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

via yptrumpet/MemoryTyping.

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.

Becoming a Front End Developer – Diary 0

In Front End Developer diaries on 2015/03/04 at 19:59

I’ve wanted to transition from a Java developer to a front-end web developer for a while. The front-end is exciting (new technologies!) and demanding (there’s simply no way to fake work: your code is either changing things on the page, or it’s not), and thus perfect for me.

Well, it is happening. I am becoming a front-end web developer. I am not going to give up on this. And, though I am not well-prepared for that sort of work, I will not give up or wait. I’m going to start now.

This diary series will serve as a place where I can record what I am learning each day that I put in any significant amount of effort into learning the skills and information necessary for making that transition. I hope it will serve as a good record of my hard work and intention, and maybe serve as encouragement for others who are trying to make the jump, too.

Well, what am I waiting for? The clock is ticking. Let’s get started.

Goals vs Systems

In Life in General, Organization on 2014/12/07 at 20:03

Goals reduce your current happiness. When you’re working toward a goal, you are essentially saying, “I’m not good enough yet, but I will be when I reach my goal.”

That’s a quote from an article on Entrepreneur.com, which was first published at JamesClear.com. It was inspired by an article on The Wall Street Journal, which was adapted from the book “How to Fail at Almost Everything and Still Win Big,” which I have not read. But I was introduced to this concept by a certain Master Programmer, and now I will extend this short chain of article references with my own amateur blag post.

The idea is simple, but takes some courage to embrace. Setting goals puts you in a situation where you are currently failing until you finally reach that goal.When you reach your goal, you become successful–for an instant. Suddenly you find yourself without the driving force that led you there. You can either stop moving forward, rest on your laurels until it stops being satisfying, or make a higher goal and re-enter the cycle of “pre-success failure,” as the article puts it.

Instead, the article seems to propose a better way to get things done: put systems in place that will not only take you to your goals, but also motivate you both before and after. Make your goals, develop systems that will take you to those goals, then put the goals out of mind and focus on your system as you live each day. Every time you follow your system, you are succeeding. Perhaps “system” is just another word for “habit,” and we have been hearing about the habits of successful people and the power of habit for a while. In a physics metaphor, goals give you direction and systems give you velocity. This all reminds me of GTD, which focuses heavily on the Next Action. Goals are un-doable by nature; action is necessary for progress, and systems make you take action.

Let’s apply this new method to my own organizational life. I think my current system (sadly abandoned in 2014) attempted to implement systems by defining more and more granular goals until they became tiny actionable items on a to-do list. But in my system I had to create the Next Action as I went along. I reviewed my actions daily and judged whether they led me to my goals. This created cognitive overhead and stress. Instead, systems should generate the Next Action, either by repetition (if you want to write a novel, write 1,667 words every day for a month) or by following a predefined set of steps (if you want to get fit, follow a fitness program).

To me, this idea took courage to embrace because it comes with an identity-damaging admission that my goal-oriented systems were a bad idea (well, not exactly bad, but not viable as a long-term strategy). It was identity-damaging because I took such pride in my systems, my thorough thinking and planning, and how these things aided the image of willpower that I wanted to portray. Well, it’s good to bring my hidden arrogance to light so I can change it.

I’ll try to implement systems for the goals I’ve been failing to obtain and see if I can realize the dual benefits of satisfaction and attainment.


Get every new post delivered to your Inbox.