Personal Development Plan

2015 View Changelog


Vision

While I am interested in other types of programming, I plan to focus on my current forte in 2015: web programming. My personal development plan in 2015 assumes the following about the future of web technology:

  • Customers will continue to demand more interactivity. Javascript frameworks will therefore become even more prevalent.

  • Scalability will become a dominant factor in web framework choice. This is because successful businesses will have to serve ever increasing volumes of traffic.

  • New platforms will use the web as a backbone. For example, the “Internet of Things” will continue to grow. These new clients will have a strong emphasis on real-time data.

  • 100% uptime will become extremely important.

  • Maintainability will become a focus for businesses investing in technology. Recycling their investments every two or three years will become unappealing as silly investments fail. The tech bubble will pop.

The plan has three parts. “Concepts” are programming ideas I want to get a more solid grasp of, “Tools” are libraries and languages I’m interested in learning, and “Projects” are ideas I plan to implement during the year.

Concepts

Algorithms
Most web development is just putting a pretty face on a SQL database. However, with a deep understanding of algorithms, much harder problems can be solved, and a different kind of innovation becomes possible. Being self-taught, I haven’t given as much attention to this before as I ought to.

Algorithms Manual

Regular Expressions
Regular expressions are extremely powerful. Many times, it is possible to implement a feature with a language-agnostic regular expression rather than using some specific feature of a specific language. As a result, Regex knowledge is both useful and very portable. In an age where programming languages are a dime a dozen, I’d really like to have as much permanent knowledge as possible.

Mastering Regular Expressions

Tools

  • Elixir: A relatively new functional programming language written on top of the Erlang VM, with a Ruby-esque syntax and strong concurrency, stability, tooling, and metaprogramming.

    [![Metaprogramming Elixir][m-elixir-img]][m-elixir]
    [![Programming Elixir][p-elixir-img]][p-elixir]
  • Phoenix: An exciting Elixir web framework with excellent performance and real-time features.

  • Ember.js and Ember CLI. With Ember 2.0, I’m pretty confident that Ember.js will be a good Javascript framework to spend time and energy learning. The team is in this for the long term.

  • SQL. Similar to regular expressions, SQL can also be used to solve a vast array of data analysis problems in a language-agnostic way. This skill is portable between languages and database systems, and is often a more elegant way to solve problems. My knowledge here isn’t as broad or as deep as I would like.

Projects

  • “OnSale”. A Phoenix app capable of monitoring prices of products on any website and sending notifications when prices change. Contains a significant Javascript component as well.
    [in-progress]

  • LeadSimple. Render customer UI with Ember.js as a single, unified Ember CLI app, rather than the current hybrid approach.
    [unstarted]

Completed Projects

  • ExTwiml. An Elixir library for rendering TwiML for Twilio.
  • ExTwilio. An Elixir library for interacting with Twilio’s API.
  • Telephonist. An Elixir library for handling Twilio phone calls using state machines. Depends on ExTwiml and complements ExTwilio.
  • Phoenix Routes. A toy Phoenix app to test Phoenix routing code and see the resulting routes immediately.

Did You Enjoy This Post?