First impressions of TypeScript

For a few months I’ve spent a few hours here and there with TypeScript and Angular 2. I have a number of impressions and reactions. These range from “Microsoft made this?” to “This part is pretty good” to “Man, JavaScript sucks.” The last one is because I haven’t really touched Javascript for a few years and I got really comfortable with a concise, elegant language known as Scala.

If you want to see a really good example of why I don’t like JavaScript / TypeScript let me show you a snippet of something I commonly see in these codebases…

What to do when Github is down

Unicorn! What is that? I guess Github is down everyone. So now what do you do?

Here’s three ideas:

1. Catch up on reading
There is always a book that you want to get to but can’t seem to find time for. For me this year it is Manning’s Functional Reactive Domain Modeling. For you it is probably something else. Either way you just scored some time for reading!

2. Create a professional development plan
If reading isn’t your thing right now, consider creating a professional development plan. Yes it sounds kind of business-y and conjures visions of straight-laced board room suits, but even software engineers can benefit from charting out a plan for how to improve this year.

3. Learn a new language
You don’t need source control to start learning something new. Of course I highly recommend that you learn Scala but how about Go or Kotlin? The truth is that seeing how other languages handle things can produce some real insights.

Happy No Github Day!

Three Books Every Java Developer Must Read

I know, I know. I probably hate “Three Things” blog posts more than you. But when it comes to Java development, there really does seem to be a “holy trinity” of books: Clean Code, Effective Java, and Java Concurrency in Practice. If you google around for “best java books” or whatever, these three titles show up again and again, usually at the top of the list. And for good reason. Aside from the official Java trails, no other books are as good for taking a developer from novice to polished pro in the Java space. Those who read the material in these three books, and practice it, are destined for success in the Java ecosystem.

  • Bloch, Joshua. Effective Java. 2nd ed. Upper Saddle River, NJ: Addison-Wesley, 2008.
  • Goetz, Brian. Java concurrency in practice. Upper Saddle River, NJ: Addison-Wesley, 2006.
  • Martin, Robert C. Clean code: a handbook of agile software craftsmanship. Upper Saddle River, NJ: Prentice Hall, 2009.

Looking Ahead to 2017

I have been living on the academic calendar for the past three years. One or two nights a week I have been completing coursework toward a Master of Software Engineering degree at Seattle University. So even though its a new year tomorrow, it feels like the one-third point for me. I’ve written about getting my degree a little bit before. As an already-working software engineer with ten years of experience, most of my colleagues (with a few exceptions) have thought it crazy to sink tens of thousands of dollars into a graduate degree.

What can you get from the classroom that you can’t learn better on the job?