Home > learning > New year’s resolutions of a software developer

New year’s resolutions of a software developer

I registered this account for some time ago but I haven’t really posted anything yet so I decided that a new year’s resolution would be a great way to start.

To sum up my plans for 2011, I’m going to improve my skills on various topics and become better at my profession. I’m planning to take small steps to learn something new everyday.

I categorized the goals under separate topics but many of them overlap.

In no specific order, here goes:

Programming languages:
Primary goal:
Learn Clojure, Ruby, Scala and JavaScript.
Implement something nontrivial with each of them.

Secondary goal:
Improve Python and PHP skills. Learn Groovy.

Functional programming:
Learn all the fundamental concepts related to functional programming.
Implement something nontrivial with a functional programming language.

Parallel programming:
Implement something nontrivial that (effectively) uses parallel programming techniques.

JavaEE platform:
Finish the JEE6 showcase project.
Read at least one book that’s related to JavaEE technologies.

Learn the details of the JVM:
Memory handling and tweaking the memory options, custom class loaders etc.

Client-side web development:
Read a book about JavaScript.
Learn and use JavaScript frameworks, primarily jQuery.
Improve CSS skills.
Do some sort of HTML5 showcase project.

Implement something nontrivial with some cloud technology (like GAE).

Use at least one NoSql DBMS in some hobby project.

Teach/inspire other people to learn:
Organize a study group or training session(s) at work.

Be active online:
Blog and comment other people’s blog posts. Tweet. Answer the questions of others.

I consider it a success if I manage to get some of my colleaques or friends excited about some technology they didn’t previously know about.

Write a blog post at least once a month.

Books about software development:
Finish at least a book per quarter. Aim for a book per month.

Productivity and use of time:
Read at least one book related to developer productivity.
Apply the required knowledge/techniques to work and hobby projects.

And finally, don’t take things too seriously. Remember to keep it fun. 🙂

Categories: learning Tags:
  1. Hadi
    January 3, 2011 at 05:04

    Good luck and happy new year!
    I think if you learn Scala first, you’ll learn functional and parallel programming, and you might probably don’t need to learn Groovy (which is another jvm language), and you’ll be able to learn Clojure easier (because you already know FP).
    I also think going straight for jQuery is better than first javascript then jQuery, because 1. you already know PHP and syntax should be familiar to you, 2. most javascript books cover only very easy things.

    • January 3, 2011 at 20:07

      I’m already in the process of learning both Clojure and Scala at the same time and I think I’ll keep doing that. I also would like to learn Groovy just because it seems such a fun language. Reminds me of Python. As far your recommendation about jQuery is concerned, I think that might be a good idea. Do you think learning jQuery with only little background in JavaScript won’t be too difficult a task?

  2. Hadi
    January 3, 2011 at 05:13

    Some of my resolutions might be:
    – Read http://hginit.com/ ,
    – Understand TDD more thoroughly, and learn python testing tools,
    – Learn Scala (+Lift),
    – Contribute to some open source project (or start a one).
    – Learn some Bottle, Pyjamas, web2py (just to learn how they are different from Django).

    • January 3, 2011 at 20:24

      Nice list.

      Your resolution to contribute to an open source project is a great one. I would definitely like to do that as well. Also learning Lift could be a great way to get my feet wet with functional programming while at the same time doing something useful. The same applies to Compojure as well.

  1. No trackbacks yet.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )


Connecting to %s

%d bloggers like this: